Literatur über Flash-Loader?

Gast #45069
Wo gibt es denn Literatur über Flash-Loader, also Programme, die nachdem
sie komplett in´s RAM geladen wurden, das Flash (des Microcontrollers)
überschreiben um ihn so upzudaten?

Ich brauche erstmal etwas zur Theorie um da einen Überblick zu
bekommmen und selber sowas entwerfen zu können.

Beispielsweise soll ein MC (erstmal nur MSP430) sich selbst updaten und
den Code dafür von einer Speicherkarte laden, an die er über einen
USART angebunden ist.
Eine andere Aufgabe ist das Updaten eines anderen MCs nur über einen
RxD- und einen TxD-Pin eines USARTs ebenfalls mit Daten von einer
Speicherkarte.
Gast
Prinzipiell geht das so:
Man schreibt ein spezielles Programm, das beim Booten entscheidet, ob
es neue Software gibt und wenn ja, diese irgendwie empfängt und und
dann ins Flash schreibt.

Dabei ist zu beachten:

- Bei manchen Prozessoren ist überhaupt nur der Bootloader in der Lage,
das Flash abzudaten. Sobald das eigentliche Programm läuft, kann das
Flash nicht mehr modifiziert werden (zur Sicherheit als Schutz gegen
wildgewordene Programme).

- Damit Dein Bootloader überhaupt in den MC gelangen kann, muß es eine
andere Programmiermöglichkeit geben. Da man idR nicht zwei
Programmiermöglichkeiten in der Schaltung vorsehen will, muß man die
MCs also programmieren bevor sie eingelötet werden.

- Der Bootloader hat auch oft eine maximale Größe, die man nicht
überschreiten kann.

- Die Daten zuerst komplett zu empfangen (d.h. im RAM
zwischenzuspeichern) geht idR nicht, weil oft das Flash viel größer als
das RAM ist.

Bei Atmel gibts zu dem Thema eine Application Note für die AVRs, in den
Datenblättern zu den einzelnen Prozessoren (z.B. ATMega8) ist auch noch
ein Teil erklärt. Bei den MSPs sollte es so eine Doku eigentlich auch
geben, schonmal beim Hersteller danach gesucht?

Markus
Gast
Aha, danke, aber ich meine nicht einen Bootloader sondern einen reinen
Flash-Programmer, der z. B. über eine Schnittstelle in´s RAM geladen
wird und dann vom RAM aus das Flash komplett updatet. In der Firma
haben wir sowas schlecht dokumentiert und da lädt das erste Programm
das zweite (nur über RxD u. TxD) u. dieses wiederum das dritte, das es
dann macht.
Es sollte doch nicht schwer sein, das zu modifizieren um den IC sich
selber updaten zu lassen, aber es sieht kompliziert aus.
Gast
Aha, danke.
Mal sehen ob wir es in der Firma in 4 Manntagen schaffen, dass der
MSP430 sich selbst von einer Speicherkarte updaten kann ...
Vielleicht kann ja die  TI-Hotline da etwas weiterhelfen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.