Replies: 1 comment
-
Have a look on Mcuboot integration with Zephyr. As you mentioned it requires sysbuild to build a multimage build (bootloader + app) The partitions (bootloader + app ) are defined in the device tree and will use this information to define the offsets for your flash and linker scripts. The integration is quite easy (KConfig settings + device tree) but just have to check how much RAM you have. For a project with a low end MCU I am almost over the limit of my SRAM 16 KB. For my configuration without Image signature and encryption its around 13 KB. For upgrades you also would need to use MCUMgr. Its based on the Zephyr SMP protocol . This supports BLE, Serial, and UDP over IP. I would also recommend checking a SMP Client to do updates over a PC such as https://github.com/intercreate/smpmgr |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I'm working on a project that needs to be able to have a bootloader on it in order to upgrade it in the field. However, the bootloader protocol that is mandated is a complex high-level protocol that wouldn't make sense to put in a dedicated bootloader. My idea then is to have a simple bootloader that simply selects which part of the flash to boot into, so if I have 128k of Flash I could put one version of my application into the first 64k and a new version into the other 64k.
Is there some simple bootloader that already exists that would be easy to modify to perform this? If not, is this where sysbuild would be useful? Is there anything that needs to be configured in Zephyr to make sure that it can load from an address that is not the start of flash?
Beta Was this translation helpful? Give feedback.
All reactions