Although it’s always been possible to use Sming compiled apps with rBoot it wasn’t easy. I’ve shared Makefiles and talked a few people through it previously on the esp8266.com forum, but now there is a new sample project on GitHub to help everyone do it.
The sample demonstrates:
- Compiling a basic app (similar to the rBoot sample for the regular sdk).
- Big flash support, allowing up to 4 roms each up to 1mb in size on an ESP12.
- Over-the-air (OTA) updates.
- Spiffs support, with a different filesystem per app rom.
Spiffs support depends on a patch to Sming, for which there is a pull request pending to have it included properly. Probably the most common way I envisage this being used is a pair of app roms (to allow for easy OTA updates ) with a separate spiffs file system each, but rBoot is flexible enough to let you lay out your flash however you want to.
Suggested layout for 4mb flash:
0x000000 rboot 0x001000 rboot config 0x002000 rom0 0x100000 spiffs0 0x1fc000 (4 unused sectors*) 0x200000 (2 unused sectors†) 0x202000 rom1 0x300000 spiffs1 0x3fc000 sdk config (last 4 sectors)
* The small unused section at the top of the second mb means the same size spiffs can be used for spiffs0 and spiffs1. The top of the fourth mb (where spiffs1 sits) is reserved for the sdk to store config.
†The small unused section at the start of the third mb mirrors the space used by rBoot at the start of the first mb. This means only one rom needs to be produced, that can be used in either slot, because it will be of the same size and have the same linker rom address.