mirror of
https://github.com/imjasonh/esp32
synced 2026-07-06 23:52:24 +00:00
`[profile.release]` now uses lto, codegen-units=1, strip, and panic=abort (last one matches the build-std=panic_abort already in .cargo/config.toml). Combined: firmware shrinks from 1.71 MB to 1.52 MB (~9% smaller). partitions.csv: grow each OTA slot from 1.75 MB to 1.9375 MB by absorbing the previously-unused 384 KB at the end of flash. Now no unused space at the end. Repartitioning is a USB-only migration (`make flash-all`); device migrated locally before pushing. Net headroom per slot: 126 KB -> 463 KB (3.7x). Plenty for the upcoming e-ink driver + embedded-graphics stack. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.2 KiB
1.2 KiB
| 1 | # Partition table for OTA. Two equal app slots (ota_0 / ota_1), no |
|---|---|
| 2 | # `factory` partition — once OTA is enabled we always boot from one of |
| 3 | # the OTA slots, with the other holding the previous (or pending) image. |
| 4 | # |
| 5 | # Flash layout (4 MB total): |
| 6 | # 0x001000-0x008FFF bootloader (~28 KB) |
| 7 | # 0x008000-0x008FFF partition table itself (4 KB) |
| 8 | # 0x009000-0x00EFFF nvs (24 KB) |
| 9 | # 0x00F000-0x010FFF otadata (8 KB) - which slot to boot |
| 10 | # 0x011000-0x011FFF phy_init (4 KB) |
| 11 | # 0x020000-0x20FFFF ota_0 (1.9375 MB) |
| 12 | # 0x210000-0x3FFFFF ota_1 (1.9375 MB) |
| 13 | # |
| 14 | # Bumped from 1.75 MB to 1.9375 MB slots so we can absorb future feature |
| 15 | # work (e-ink driver, more crates) without immediately running out. There |
| 16 | # is no unused space left at the end of flash; if we need it later (extra |
| 17 | # nvs, spiffs, etc.) we'd have to shrink slots again. Repartitioning is |
| 18 | # a USB-only migration (`make flash-all`). |
| 19 | # |
| 20 | # Name, Type, SubType, Offset, Size |
| 21 | nvs, data, nvs, 0x9000, 0x6000 |
| 22 | otadata, data, ota, 0xf000, 0x2000 |
| 23 | phy_init, data, phy, 0x11000, 0x1000 |
| 24 | ota_0, app, ota_0, 0x20000, 0x1F0000 |
| 25 | ota_1, app, ota_1, 0x210000, 0x1F0000 |