Hi gibt es eigentlich irgendein open source boot loader für ARM, den ich als starting point für mein bootloader verwenden konnte? ein wo ich zum beispiel ein crc routine kopieren kann, allgemeine sachen wie ein struct wo bootloader versions nummer und co sind, ein sicheres protokol zur update, evtl nicht nur versions nummer sondern auch compile date and time. es geht darum: ich habe ein dutzend produkte: Lichtsteuerungen, einfache Motorsteuerungen auf basis von Stm32 oder Atmel SAMD die über Ethernet /CAN/Lin angesprochen werden. Irgendwie sollte ja das ganze einheitlich sein. Vorschläge?
:
Bearbeitet durch User
Gibt es AFAIK nicht, schon weil das Schreiben im Flash hochgradig Hersteller spezifisch ist - genauso wie die Peripherie für UART oder CAN. Ich habe hier schon mehrmals 'nen RS485 Bootloader auf verschiedenen Cortex-M Familien portiert, da blieb zwar 75% derselbe Code (Bus Protokoll) aber die 25% hatten es in sich.
Christopher J. schrieb: > Du kannst dir mal den Bootloader aus dem PX4-Projekt anschauen: Da sehe ich für jede Variante ein eigenes main .c File. Also IMHO eher nicht was der OP haben wollte.
Das ist das altbekannte Eierlegende-Wollmilchsau-Problem. Die denkbaren Anforderungen sind zu verschieden. Es ist als ob Du fragst wie der generische Prototyp der optimalen Ehefrau beschaffen sein soll, die möglichen Anforderungsprofile wären beim besten Willen nicht unter einen Hut zu bekommen, möglicherweise wird es noch nicht mal gelingen sich darauf zu einigen welches Geschlecht sie überhaupt haben soll! Also merke: Bootloader sind wie Frauen...
Jim M. schrieb: > Christopher J. schrieb: >> Du kannst dir mal den Bootloader aus dem PX4-Projekt anschauen: > > Da sehe ich für jede Variante ein eigenes main .c File. Also IMHO eher > nicht was der OP haben wollte. Hierzu stelle ich folgende Hypothesen: - C ist nicht so portabel wie von den C-Verfechter zu oft behauptet wird; - C ist keine Hochsprache weil sie nicht für gute Abstraktionen taugt; - in diesem Projekt war kein guter SW-Architekt dabei, es haben nur bit-pfriemelnde HW-Entwickler Code beigesteuert; Ich habe mir kein Code des Projektes angeschaut, kenne aber ähnliches von kommerziellen RTOSe. Sieht das gemeinsame "main.c" dann aber wie ein #ifdef-Dschungel aus, gelten obige Hypothesen trotzdem UND zusätzlich leidet die Lesbarkeit arg fest...
Jim M. schrieb: > Christopher J. schrieb: >> Du kannst dir mal den Bootloader aus dem PX4-Projekt anschauen: > > Da sehe ich für jede Variante ein eigenes main .c File. Also IMHO eher > nicht was der OP haben wollte. Es ging mir eigentlich mehr um H. R. schrieb: > wie ein struct wo bootloader versions nummer und co sind, ein sicheres > protokol zur update, evtl nicht nur versions nummer sondern auch compile > date and time also das was man in der bl.c und bl.h findet, sowie den Python-Skripten px_mkfw.py und px_uploader.py. Peripherie und Flash sind natürlich bei jedem Controller anders. Der Bootloader ist momentan nur für USB und UART ausgelegt und müsste für andere Übertragungsmöglichkeiten (z.B. CAN) natürlich angepasst werden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.