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