Bootloader
Der semf Bootloader besteht aus drei Kernmodulen, dem PC-Tool Firmware Packer, der Applikationsklasse Firmware Updater und der Bootloader-Applikation selbst.
Firmware-Updates: sicher und schnell …mit dem Bootloader von semf
Ob Fehlerbeseitigung oder Funktionserweiterungen – Embedded Systeme müssen in immer kürzeren Zyklen upgedatet werden. Firmware-Aktualisierungen sind jedoch häufig kritische Arbeitsschritte und für den Entwickler meist mit großem Zeitaufwand verbunden.
Gut, wenn es für diese Aufgaben Systeme gibt, die die Arbeit für den Embedded Engineer schneller, sicherer und komfortabler machen. Aus langjähriger Erfahrung haben die Macher von semf mit dem semf Bootloader ein Toolset entwickelt, das funktionssichere Firmware-Updates in wenigen Schritten ermöglicht.
Der semf Bootloader – drei Kernkomponenten inklusive Speichermodulen und Treibern
Der semf Bootloader besteht aus drei Kernmodulen, dem PC-Tool Firmware Packer, der Applikationsklasse Firmware Updater und der Bootloader-Applikation selbst. Komplettiert wird das Komponenten-Set durch optionale Treiber und Speichermodule.
Bootloader Komponente 1: Firmware Packer
Mit dem Firmware Packer wird die Binärdatei Ihrer neuen Firmware wie gewünscht mit einer CRC oder einem Hash versehen, AES-verschlüsselt oder mit einem Zertifikat versehen. Anschließend können die Daten über unterschiedlichste Kommunikationswege an den Mikrocontroller übertragen werden. Übliche Beispiele reichen von I2C, SPI, UART (RS232 oder RS485) über CAN, Modbus, USB hin bis zu MQTT-Datenpaketen über TCP/IP via Ethernet. Der semf Bootloader unterstützt weitestgehend alle gängigen Kommunikationsschnittstellen.
Bootloader Komponente 2: Firmware Updater
Über die Kommunikationsschnittstelle gelangen die Daten zur Firmware-Updater-Klasse, die je nach Konfiguration die Daten und ggf. das Zertifikat prüft, entschlüsselt und anschließend an einen gewünschten Bereich im Speicher ablegt. Als Speichertechnologien werden interne Mikrocontroller-Flash und externe NOR- und NAND-Flash Bausteine unterstützt.
Programmiersprache: C++