www.mikrocontroller.net

Forum: Compiler & IDEs AVR Bootloader, Flash beschreiben, dann Booten.


Autor: Skittler Bruce (skittler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

mal eine kleine Frage zum Thema Bootloader. Ich habe ein 
Mikrocontrollerprojekt bei dem die Daten nicht über eine standart 
Schnittstelle, sondern über ein eigenes Protokoll per Interrupt 
empfangen werden.
Aus diesem Grund kann ich den Datenempfang nicht ohne weiteres in den 
Bootloader packen.

Ich würde gerne folgendes realisieren und brauche Ratschläge:

Ich empfange wärend der regulären Programmlaufzeit die "neuen" Daten für 
den Bootloader. Dieses Speichere ich im Flash ab. (z.b. Nutze ich nur 
halbe Flashgröße für mein Programm, somit kann ich die andere Hälfte für 
die empfangenen Bootloaderdaten verwenden).

Wenn alle neuen Daten da sind, löse ich den Bootloader per Software aus.
Dieser kopiert dann die "neuen" Daten auf die niedrigen Speicherbereiche 
und löscht den oberen Flash wieder.

Kann man das so machen? Was haltet Ihr davon???

Schönen gruß und interessantes mitgrübeln.

Skittler.

Autor: Jörg G. (joergderxte)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist dein Spezialprotokoll so kompliziert, dass es nicht im Bootloader 
implementiert werden kann?
a) Bei den (meisten? - weiß ich nicht aus dem Kopf heraus) AVRs kann man 
die Interruptvektoren auf die Bootloaderadresse umschalten
b) Da der Bootloader ja sonst nichts zu tun hat, kann man praktisch alle 
Datenübertragungen (z.B. Soft-uart, I²C, soft-spi, 1Wire) auch mit 
Warteschleifen machen (insbesondere, weil das Flash-schreiben auch seine 
Zeit dauert)

hth. Jörg

Autor: Skittler Bruce (skittler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber den Bootloader selber kann man auch überschreiben, oder? Denn wenn 
sich was am Empfangsprotokoll ändert, könnte ich es ja sonst nicht 
korrigieren.

Autor: Georg A. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dass der Bootloader sich selbst überschreiben kann oder es einen Zustand 
gibt, aus dem man ohne SPI-Flashen nicht mehr rauskommt, ist IMO recht 
gefährlich. Solange man man nicht immer selbst das Flashen durchführt, 
kann ein externer Idi^H^H^Hunbedarfter Kunde so ein Konzept schnell 
ruinieren und zu ungeahntem Serviceaufwand führen.

Überleg dir lieber etwas länger einen "foolproof"-Bootloader, der 
vollständig in die sichere Bootloader-Section passt und der mit den 
passenden Fuses nie kaputtgehen kann.

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.