Difference between revisions of "emLoad"

From SEGGER Wiki
Jump to: navigation, search
m
Line 4: Line 4:
   
 
==The emLoad V4 Bootstrap Loader==
 
==The emLoad V4 Bootstrap Loader==
[[File:emLoad2.png|right|300px]]After a RESET, instead of starting the application program immediately, the emLoad V4 bootstrap loader gets started and waits for an update interface to get 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 afterward. 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.
+
[[File:emLoad2.png|right|250px]]After a RESET, instead of starting the application program immediately, the emLoad V4 bootstrap loader gets started and waits for an update interface to get 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 afterward. 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.
   
 
===PC Program: PrepareFW===
 
===PC Program: PrepareFW===

Revision as of 13:12, 28 May 2024

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 embedded bootstrap loader for firmware updates. SEGGER offers the embedded bootstrap loader emLoad in two different versions: V4 and V3 (legacy).

The emLoad V4 Bootstrap Loader

emLoad2.png

After a RESET, instead of starting the application program immediately, the emLoad V4 bootstrap loader gets started and waits for an update interface to get 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 afterward. 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.

PC Program: PrepareFW

To be considered valid, firmware updates for the emLoad V4 bootstrap loader must adhere to a specific format. To ensure this format, SEGGER offers the PrepareFW tool for creating firmware in a specific format. This 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 as a Microsoft Visual Studio Project to recompile the executable when needed.

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 a data frame (via RS-232 or RS-485), the bootstrap loader will update the target software and start the application afterward. 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.

PC Program: HEXLoad

HEXLoad is an easy to operate 32-bit Windows application and can be started from the Explorer or the command line, in order to load and transfer any hex file for a program update to the emLoad V3 bootstrap loader.