Forum: Mikrocontroller und Digitale Elektronik generic bootloader für ARM cortex


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von H. R. (hacker_r)


Bewertung
0 lesenswert
nicht lesenswert
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
von Jim M. (turboj)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Christopher J. (christopher_j23)


Bewertung
0 lesenswert
nicht lesenswert
Du kannst dir mal den Bootloader aus dem PX4-Projekt anschauen: 
https://github.com/PX4/Bootloader

von Jim M. (turboj)


Bewertung
0 lesenswert
nicht lesenswert
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.

von Bernd K. (prof7bit)


Bewertung
0 lesenswert
nicht lesenswert
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...

von Programmiersprachentheaterintendant (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
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...

von Christopher J. (christopher_j23)


Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.