본문 바로가기
PC&웹/Arduino

(Arduino) ESP32 파티션을 나눠서 프로그램 공간 확보 (1.9MB with OTA)

by Simulz 2022. 8. 1.
반응형

ESP32 설정 기본 값으로 다음과 같습니다.

플래시가 4MB인 제품을 많이 사용하는데, 파티션 설정 때문에 프로그램 영역이 1.2MB 뿐입니다.

그 이유는 SPIFFS 공간이 1.5MB나 되기 때문입니다.

프로그램 공간 1.2MB + OTA 공간 1.2MB + SPIFFS 공간 1.5MB = 4MB

이것저것 라이브러리를 사용하다 보면 컴파일된 바이너리가 1.2MB를 초과하는 경우가 있어서 파티션을 재설정 해야할 필요가 있습니다.

SPIFFS 영역이 많이 필요하지 않다면 바꾸는 것이 좋겠지요.

여기서 Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)로 설정하면 

프로그램 영역은 기본값 보다 700KB를 더 사용할 수 있습니다.
(SPIFFS는 환경설정 등 텍스트 파일로 사용한다면 충분합니다)

OTA를 안 쓴다, 펌웨어 업데이트 할 때마다 PC에 연결할거다, 그러면 No OTA 파티션으로 설정하면 됩니다.


설정 방법

PlatformIO

platformio.ini 파일을 열고, 개발 환경 섹션에 다음과 같이 파티션 설정 항목을 추가합니다.

board_build.partitions = min_spiffs.csv

예)

[env:esp32dev]
platform = espressif32
board = esp32dev
board_build.partitions = min_spiffs.csv
framework = arduino

※ 파티션 설정 관련 문서는 Espressif 32 — PlatformIO latest documentation

 

Arduino

툴 메뉴 - Partition scheme에서 파티션을 선택하면 됩니다.


귀찮다, 돈좀 있다, 그러면 8MB, 16MB 플래시를 가진 ESP32를 사용하면 됩니다.
(대신 싱글 코어이거나 클럭 속도는 떨어지는...)

반응형

댓글0