Commit f258832
docs: cross-compile clean on the full ESP32 RISC-V family
The reference firmware was already portable by design (Arduino Stream +
software SHA-256, no Xtensa intrinsics, no vendor-SDK crypto). This
commit just measures and documents what was already true: the same
firmware/esp32/ library compiles unchanged for every RISC-V variant
of the ESP32 family.
Build matrix (Arduino-ESP32 core 3.3.8, lamp.ino with the blink intent):
ESP32-WROOM-32 Xtensa LX6 baseline 294 KB / 22.7 KB (runtime ✓)
ESP32-C3 RV32IMC 289 KB / 13.4 KB (builds ✓)
ESP32-C6 RV32IMAC + HW-crypto 266 KB / 14.0 KB (builds ✓)
ESP32-H2 RV32IMAC + 802.15.4 292 KB / 14.0 KB (builds ✓)
ESP32-P4 RV32IMAFC dual-core 326 KB / 22.0 KB (builds ✓)
Notable: every RISC-V target lands at or below the Xtensa baseline on
both flash and globals. C6 is the lightest (266 KB), benefiting from
tighter code density and a slimmer peripheral baseline.
Changes:
- README.md: new subsection "Cross-compile clean on the ESP32 RISC-V
family" with the matrix table and a reproduce-it command. Roadmap
bullet added.
- docs/paper/main.tex: new paragraph in §validation noting portability
across the four RISC-V variants. The empirical claim ("builds clean
unchanged") is now backed by measured artefact sizes; runtime UART
validation on these targets is left as "pending bench availability"
rather than fabricated.
Build gotchas worth knowing for anyone reproducing:
- Use --library firmware/esp32 (singular) NOT --libraries (plural), so
arduino-cli prefers the repo copy over any stale user-installed DCP
library at ~/Documents/Arduino/libraries/DCP.
- Always pass --clean for cross-target builds; arduino-cli's sketch
cache otherwise misroutes -o + -c flags when targeting different
ISAs against the same sketch directory.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 5852063 commit f258832
2 files changed
Lines changed: 34 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
93 | 116 | | |
94 | 117 | | |
95 | 118 | | |
| |||
265 | 288 | | |
266 | 289 | | |
267 | 290 | | |
| 291 | + | |
268 | 292 | | |
269 | 293 | | |
270 | 294 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
468 | 468 | | |
469 | 469 | | |
470 | 470 | | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
471 | 481 | | |
472 | 482 | | |
473 | 483 | | |
| |||
0 commit comments