Literatur über Flash-Loader?

Gast #45069
Lesenswert?

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 #45070
Lesenswert?

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 #45071
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren