ESP32のパーティションテーブルに関するメモです。

ESP32 Dev Moduleの仕様について

ESP32 Dev Moduleの仕様は以下の通りです。
プログラム (FLASH): 4MB
データ (RAM): 320KB

パーティションテーブルについて

パーティションテーブルを変更することでプログラム領域を1.28MBから3.07MBまで拡張できる。

Visual Studio Code + PlatformIO

platformio.iniに以下の設定を追加する。

board_build.partitions = no_ota.csv

Arduino IDE

[ツール]-[Partition Scheme]メニューで設定する。
※Huge Appは選択できない??

定義ファイルについて

標準でいくつかのプリセットが用意されている。

プリセット プログラム SPIFFS EEPROM OTA
default.csv 1.28MB 1.46MB 4KB 有効
minimal.csv 1.28MB 700KB 4KB 無効
no_ota.csv 2MB 1.98MB 4KB 無効
huge_app.csv 3.07MB 956KB 4KB 無効
min_spiffs.csv 1.92MB 188KB 4KB 有効

PlatformIOの場合は、C:\Users\<ユーザー名>\.platformio\packages\framework-arduinoespressif32\tools\partitionsフォルダーに格納されている。

defalut.csv (デフォルト)

Name Type SubType Offset Size Flags
nvs data nvs 0x9000 0x5000
otadata data ota 0xe000 0x2000
app0 app ota_0 0x10000 0x140000
app1 app ota_1 0x150000 0x140000
eeprom data 0x99 0x290000 0x1000
spiffs data spiffs 0x291000 0x16F000

minimal.csv

Name Type SubType Offset Size Flags
nvs data nvs 0x9000 0x5000
otadata data ota 0xe000 0x2000
app0 app ota_0 0x10000 0x140000
eeprom data 0x99 0x150000 0x1000
spiffs data spiffs 0x151000 0xAF000

no_ota.csv

Name Type SubType Offset Size Flags
nvs data nvs 0x9000 0x5000
otadata data ota 0xe000 0x2000
app0 app ota_0 0x10000 0x200000
eeprom data 0x99 0x210000 0x1000
spiffs data spiffs 0x211000 0x1EF000

huge_app.csv

Name Type SubType Offset Size Flags
nvs data nvs 0x9000 0x5000
otadata data ota 0xe000 0x2000
app0 app ota_0 0x10000 0x300000
eeprom data 0x99 0x310000 0x1000
spiffs data spiffs 0x311000 0xEF000

min_spiffs.csv

Name Type SubType Offset Size Flags
nvs data nvs 0x9000 0x5000
otadata data ota 0xe000 0x2000
app0 app ota_0 0x10000 0x1E0000
app1 app ota_1 0x1F0000 0x1E0000
eeprom data 0x99 0x3D0000 0x1000
spiffs data spiffs 0x3D1000 0x2F000

参考資料

前の記事 次の記事