Flash-Bootloader für embedded Devices mit STM32F4 Derivaten

Die Forderung, auch Kundenspezifische Firmware auf embedded Systemen schnell und einfach Updaten zu können macht es heutzutage fast unumgänglich solche Systeme mit einem Flash Bootloader auszustatten, der auch vom Endkunden bedient werden kann. Firmware Updates können dann per Download oder per Email an die Endkunden verteilt werden. Diese können dann ihre Systeme selbst updaten ohne komplizierte Software oder JTAG Interfaces benutzen zu müssen.

Wir haben unser Softwareportfolio daher um einen Flash Bootloader für den STM32F4 Controller von ST Microelectronics erweitert. Unser Bootloader kann individuell an die Anforderungen der Applikation angepasst werden. z.B:

  • Update über verschiedene Schnittstellen (RS232, X-/Y-Modem, USB, Ethernet,…)
  • Update über USB Host Interface und USB Stick
  • Startverhalten, User Interaktion usw.

Außerdem kann unser Bootloader während der Produktion verwendet werden um Produktionsdaten in den Flash Speicher des Controllers zu programmieren z.B.:

  • Initialisierungsdaten
  • Betriebsdaten
  • Produktionsdaten, Seriennummern,…

data-generator

Solche Daten erzeugen wir mit Hilfe von eigenen PC-Tools als binäre Datei die vom Bootloader verarbeitet werden kann. Gerne erstellen wir ihnen ein Kundenspezifisches PC-Tool, falls Sie unseren Bootloader verwenden wollen um Produktions-/Betriebsparameter zu programmieren.

Unser Bootloader ist besonders sicher, da er nicht Teil der Applikation ist sondern in einem separaten Speicherbereich des Controllers untergebracht wird. Dieser Speicherbereich wird gegen Schreibzugriffe geschützt. So stellen wir sicher, dass auch bei einer Unterbrechung des Update Vorgangs (z.B. durch Stromausfall) das System nicht unbrauchbar wird und der Update Vorgang einfach erneut gestartet werden kann.

Kernfunktionen unseres STM32F4 Bootloaders:

  • Umfangreiche Überprüfung der geflashten Applikation vor deren Start zb. Durch CRC, Magic Number,…
  • Beliebige Einteilung des Flash Speichers für Applikation, Daten, Produktionskennzahlen usw.
  • Bootkonfiguration kann per Config File eingestellt werden. Das Config File wird zuerst an den Bootloader übergeben. Damit kann dem Bootloader mitgeteilt werden welche Datei an welche Speicheradressen geflasht werden soll.

Applikationsfirmware die mit einem Bootloader zusammen im Flash Speicher stehen soll ist oft nicht mehr ohne Änderungen lauffähig. Die Standart-Einstellungen von Compilern und Linkern gehen i.d.R. davon aus das Firmware am Restart- Vector des Controllers beginnt. Bei Einsatz eines Bootloaders muss die Applikation daher im Speicher verschoben werden.

Wir unterstützen Sie gerne bei der Portierung ihrer bestehenden Applikation auf unseren Bootloader. Wir passen Ihre Entwicklungsumgebung so an, dass Ihre Applikation mit Bootloader lauffähig ist.

  • Verschieben von Interrupt-Vectoren
  • Anpassen der Linker Einstellungen
  • usw.