Forum: Mikrocontroller und Digitale Elektronik Literatur über Flash-Loader?


von Rolf F. (Gast)


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.

von Markus Kaufmann (Gast)


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

von Rolf F. (Gast)


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.

von Markus Kaufmann (Gast)


Lesenswert?

Du meinst wohl sowas:
http://focus.ti.com/docs/apps/catalog/resources/appnoteabstract.jhtml?abstractName=slaa103

Es ist allerdings so, daß das bei jeder CPU anders ist. Bei den AVRs
z.B. geht das nicht, da sie weder Code im RAM ausführen noch das Flash
zur Laufzeit updaten können.

Markus

von Rolf F. (Gast)


Lesenswert?

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.

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
Noch kein Account? Hier anmelden.