emLoad—The Embedded Bootloader Solution
A common challenge for manufacturers of embedded systems is to guarantee a system's firmware can be updated in the easiest way, even under adverse conditions. To replace bugged code in the field or to enhance the features of deployed systems, SEGGER provides the ideal solution: emLoad, the bootloader for firmware updates.
- Embedded bootloader for firmware updates
- Low memory footprint
- Straightforward configuration
- ANSI-C code is completely portable and runs on any target
- 100% safe & fast: CRC check implemented
- Optional support for firmware passwords
emLoad—Firmware Updates—The Easy Way
The bootloader emLoad is available with different interface modules. emLoad allows straight-forward firmware updates of embedded applications, either with a USB stick, an SD card, via USB-connection to a PC, or a serial connection (type RS-232, RS-485). In addition it can be used with an application that retrieves the update and stores it in a place where the update process of the bootloader can easily access it.
emLoad is prepared to operate over the air updates. Furthermore, it can be configured to include security and authentication modules. Written in ANSI-C, emLoad may be used on virtually any CPU, and comes with all Windows tools necessary to prepare the software/firmware update as well as the bootstrap loader for the target application itself.
SEGGER offers the embedded bootloader emLoad in two different versions and four distinct shipments, all of which are prepared to run out-of-the-box on the particular target hardware they were ported for. See here for a list of available ports. Additional ports for emLoad V4 can be made within a short amount of time.
|Feature||emLoad V3(legacy)||emLoad V4:emFileSDCard||emLoad V4:emUSB‑DeviceHID||emLoad V4:emUSB‑HostMSD||emLoad V4:UART|
|Includes serial update interface (RS-232, RS-485)|
|Includes SD card update interface (MMC/SD card)|
|Includes USB HID update interface (USB to PC)|
|Includes USBH MSD update interface (USB stick)|
|Supports Intel hex (.hex) format for firmware files|
|Supports Motorola S (.mot) format for firmware files|
|Supports binary (.bin) format for firmware files|
|Includes HexLoad application for Windows (binary, source code available separately)|
|Includes PrepareFW application for Windows (binary and source code)|
|Includes USB HID Updater application for Windows (binary and source code)|
|Includes UART Updater application for Windows (binary and source code)|
|Encryption Add-On (available)|
|Signature ECDSA Add-On (available)|
|Signature RSA Add-On (available)|
The emLoad V4 Bootstrap Loader
After a RESET, instead of starting the application program immediately, the emLoad V4 bootstrap loader gets started and waits for an update interface to become ready within a configurable amount of time. If any of the available interfaces (SD card, USB HID, and USBH MSD) does so, the bootstrap loader will update the target software via that interface and starts the application afterwards. If no update interface becomes available in time, the bootstrap loader will instead check the flash memory for a valid application and, in case it finds one, will start without performing an update. Except for this short delay during startup, the application program is not affected by the bootstrap loader in any way, but has all resources available; it can use interrupts and the entire RAM of the target system without limitation.
Firmware updates for the bootloader emLoad V4 need to adhere to a specific format to be considered valid. To ensure this format, SEGGER provides the PrepareFW tool (a tool to create a firmware in a specific format) which is a 32-bit Windows application specifically designed to transform binary files, Intel hex files, or Motorola files into emLoad-compatible firmware files.
PrepareFW is shipped as both, an executable that works out-of-the-box and also as a Microsoft Visual Studio project, to recompile the executable when needed. SEGGER - Its Simply Works!
PC-Program: USB HID Updater
By using an emLoad-V4-compatible firmware file, the USB HID Updater updates an emLoad V4 target via the USB HID interface. USB HID Updater is shipped as both, an executable that works out-of-the-box and also as a Microsoft Visual Studio project to recompile the executable when needed. An installation of a custom-host USB driver is not necessary, because the USB human interface device class is standardized and every major OS already provides host drivers for it. Everything works out-of-the-box and ensures an easy firmware update for your embedded device.
The emLoad V3 Bootstrap Loader
After a RESET, instead of starting the application program immediately, the emLoad V3 bootstrap loader gets started and waits for an incoming data frame from a PC for a configurable amount of time. If it does receive such data frame (via RS-232 or RS-485), the bootstrap loader will update the target software and start the application afterwards. If communication with the PC times out instead, the bootstrap loader will check the flash memory for a valid application and, in case it finds one, will start without performing an update. Except for this short delay during startup, the application program is not affected by the bootstrap loader in any way and has all resources available: it can use interrupts and the entire RAM of the target system without limitation.