mikrocontroller.net

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


Autor: Rolf F. (Gast)
Datum:

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

Autor: Markus Kaufmann (Gast)
Datum:

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

Autor: Rolf F. (Gast)
Datum:

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

Autor: Markus Kaufmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du meinst wohl sowas:
http://focus.ti.com/docs/apps/catalog/resources/ap...

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

Autor: Rolf F. (Gast)
Datum:

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

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.