Flash- und RAM-Budget

Wohin 1MB Flash und ~23KB Heap gehen und wie man unter 60% Flash / 65% RAM bleibt.

Flash-Budget

Der 1 MB große ESP8285-Flash wird von der WebUI dominiert: der gebündelte Client-Build ist ~160 KB komprimiert (~16% des Flash) nach Tree-Shaking. Die Float-Runtime (_scanf_float, _printf_float, _dtoa_r, _strtod_l …) ist ~9,7 KB — real, aber nicht der größte Hebel. Die aktuelle Basis liegt bei ~68,6% Flash; das 60%-Ziel braucht eine Kürzung um ~83 KB, und die WebUI ist der einzige Hebel, der groß genug dafür ist.

RAM-Budget

Der ESP8285 stellt grob 23 KB Heap bereit. Config-Saves dürfen niemals ein großes JSON-Dokument auf dem Heap anlegen — der Ornithopter-Config-Saver streamt direkt nach LittleFS, um den Heap nicht zu erschöpfen und mitten im Poll neu zu booten. Halte DynamicJsonDocument aus dem heißen Pfad; bevorzuge Stack-Buffer und direkte Schreibvorgänge.

Optimierungs-Tipps

Build-Ziele

Ziel Flash-Budget RAM-Budget
PteronautOS_ESP8285_2400_RX ≤ 60% ≤ 65%

Das Manifest verbietet, 60% Flash / 65% RAM zu überschreiten, um Expansionsspielraum zu lassen. Miss nach jedem Feature; ein grüner Build ist erst dann ein lebender Build, wenn er geflasht und sein Boot-Log gelesen ist.