

- ONE LINKER SCRIPT FOR BOOTLOADER AND APPLICATION UPDATE
- ONE LINKER SCRIPT FOR BOOTLOADER AND APPLICATION SOFTWARE
- ONE LINKER SCRIPT FOR BOOTLOADER AND APPLICATION SERIES
Likewise, should the new application not work properly, we want to allow falling back to the previous version known to work.įinally, we want to be able to store firmware in external flash, which has potentially different page and transfer sizes than the internal on-chip flash. What happens on power failure while updating? With devices installed in hard-to-reach locations, it is important that we can gracefully handle such a scenario and fall back to an existing version and try again. Given some connectivity strategies may be slow, this may result in an exceedingly long time not executing the application itself.
ONE LINKER SCRIPT FOR BOOTLOADER AND APPLICATION UPDATE
Moreover, for many applications, it's desirable to retrieve the updates while the application is running, which excludes some bootloader designs that do the firmware update within the bootloader. Since we're focused on IoT, we can assume that our devices have some form of network connectivity, but we do not wish to tie ourselves to any specific connectivity type. The complexity and size of a bootloader is also determined by its functionality: a bootloader being able to retrieve firmware from a network has a bigger footprint than one that only loads an application from a fixed location in flash. Making a generic bootloader is hard, because there is a large number of different possible device configurations.

BootloaderĪ fundamental component in an updatable system is the ability to boot different versions of an application.
ONE LINKER SCRIPT FOR BOOTLOADER AND APPLICATION SOFTWARE
One goal for Drogue IoT is to support the entire software update workflow on tiny devices, all the way from building your firmware to delivering it to the device, just like any other modern application. However, managing a fleet of occasionally connected devices with little bandwidth requires a different approach to delivering software updates to regular applications. Backgroundįor a connected devices to be maintainable at scale, they must be able to update themselves just like any other software. This post will be about a fundamental component in such a system: the bootloader. We'll explore the different parts of a complete end-to-end system with this capability.
ONE LINKER SCRIPT FOR BOOTLOADER AND APPLICATION SERIES
This is the first post in a series about doing device firmware updates (DFU) over the air (OTA) and continuous delivery of firmware for embedded devices.
