3 Min. Lesezeit

MCU-Updates

Screenshots: Firmware-Installation mittels „Reset Emulation“ über „Teensy Loader“
Firmware-Installation mittels „Reset Emulation“ über „Teensy Loader“

Bei der bereits im vorherigen Beitrag gepriesenen Cortex-M7-Platine handelte es sich um das konkrete Produkt „Teensy 4.1“ des von mir hochverehrten Entwicklers PJRC:

Teensy® 4.1

Dass ich „Teensy“-Platinen schon lange bevorzuge, hat sehr viele Gründe, ein wesentlicher liegt jedoch darin, wie elegant PJRC das Aktualisieren seiner MCU-Produkte via USB ermöglicht.

Komfortabel UND zuverlässig, in der MCU-Welt beileibe nicht selbstverständlich.

Da dieses besondere Detail von Einsteigern oft erst einmal unbeachtet bleibt und erst nach der Auswahl eines bestimmten Produkts (aus anderen Gründen) erkenn- bzw. spürbar wird, möchte ich dieser Thematik nun einen eigenen Beitrag widmen.

Was in einer Elektronikwerkstatt alltäglich ist, kann in einer Installation vor Ort bzw. in der Hand eines unerfahrenen Anwenders für erhebliche Schwierigkeiten sorgen.

Ein geschulter Techniker hat es natürlich nicht schwer damit, sich mit der MCU zu verbinden und ein Update zu „flashen“, ob nun über USB, RS-232 oder auch proprietäre Anschlüsse.

Ganz anders jedoch der Endanwender mit seinem Gerät, in dem sich hierfür bestenfalls auch nur eine USB-Buchse befinden sollte.

Was diese USB-Schnittstelle jedoch verlangt und bewirkt, kann sich im Einzelfall drastisch voneinander unterscheiden.

Prinzipiell nutzen praktisch alle MCU-Plattformen einen sogenannten „Bootloader“, um nach dem Einschalten oder einem „Reset“ entweder die bereits installierte Firmware zu starten (der normale Programmablauf) oder eine neue Firmware zu laden und im sogenannten Flash-Speicher nichtflüchtig zu speichern, womit schließlich auch ein Update installiert wird.

USB-Verbindungen zu einem MCU-Produkt stellen üblicherweise entweder ein Massenspeicher-Laufwerk oder eine serielle Schnittstelle (UART-USB-Transceiver) bereit.

Einige Hersteller nutzen diesen Massenspeicher zum Aktualisieren der Firmware, aus meiner Sicht die zweitbeste Alternative.

Der Anwender muss hierbei das Update in Form einer exakt spezifizierten Binärdatei an eine bestimmte Stelle im Dateisystem dieses Massenspeichers kopieren und das Gerät danach noch einmal ausschalten.

Findet der Bootloader dann beim nächsten Einschalten diese Datei, führt er das Update durch und startet sich abschließend nochmals neu, wonach die neue Firmware auch laufen sollte.

Andere Entwickler verlangen leider zwingend die Betätigung eines „Reset“-Tasters, was bei bereits in Geräten verbauten MCU-Produkten natürlich alles andere als einfach ist.

PJRC stellt jedoch auch noch etwas Software für MacOS, Windows und Linux bereit.

Dieser „Teensy Loader“ kommuniziert ganz unkompliziert via USB HCI (Host Controller Interface) mit dem auf jeder Teensy-Platine bereits vorinstallierten „HalfKay Bootloader“, so dass sich somit auch ganz ohne einen physischen Reset-Taster eine „Reset Emulation“ realisieren lässt.

Das funktioniert in der Praxis schon seit vielen Jahren verblüffend zuverlässig.

Und die Moral von der Geschicht'?

Augen auf bei der Bootloader-Wahl! 😏


Einige weiterführende Informationen: