Tag Archives: Squeezing maximum flash out of the ESP8266

ESP8266 SDK 1.11

Just a short one for those of you who’ve not tried the new Espressif SDK update yet (SDK 1.11).  I noted a pair of commands “system_param_load” and “system_param_save_with_protect” which appear to replace the need for the load and save functions that TuanPM uses in his code in /mqtt/config.c  - so for the sake of it I gave them a shot – and just to make sure, changed the location a little.  Originally TuanPm was using 3c and I’ve long since moved that up to 7c… well, of course the saving mechanism only uses three 4k sectors, so now I’ve moved it to 0x7d.

With the new base at 0x10000 and the code finishing in my case at around 0x43400, even on the humble ESP-01 that means there is now a WOPPING great 236k of FLASH left… can’t be bad. Tested, works a treat.

As I start to get to grips with the importance of ICACHE_FLASH_ATTR for keeping functions out of limited RAM until they are actually needed, would those who know agree that it is probably better to split up any large functions into smaller ones?  Presumably if not, when any function is called, the whole function ends up in RAM? Yes?

Facebooktwittergoogle_pluspinterestlinkedin