www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bootloader aus Betrieb heraus starten?


Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ist es eigentlich möglich den Bootloader bei AVR µCs direkt aus dem 
Betrieb heraus zu starten (Ohne Hardware Eingriffe)?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tom wrote:
> Hallo,
>
> ist es eigentlich möglich den Bootloader bei AVR µCs direkt aus dem
> Betrieb heraus zu starten (Ohne Hardware Eingriffe)?

Watchdog einschalten und ablaufen lassen müsste gehen.


Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann ich nicht einfach per asm auf 0x00 springen?
Kann man eigentlich auch Speichersprünge in C machen? Über einen NULL 
Pointer oder so?

Autor: Rooney Bob (rooney)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Unterstützt dein Compiler keinen Softwarereset? Der sollte den Sprung 
zum "Start" machen...

Autor: Andreas Lang (andi84)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Interrupts aus nicht vergessen. Wenn der Bootloader gut ist sollte 
einfaches Reinspringen reichen.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tom wrote:
> ist es eigentlich möglich den Bootloader bei AVR µCs direkt aus dem
> Betrieb heraus zu starten (Ohne Hardware Eingriffe)?

Nein, denn AVRs haben garkeinen Factory-Bootloader.

Du  mußt erst einen Bootloader reinbrennen und der kann dann alles, was 
man in ihn einprogrammiert hat.
Wie man diesen nun aufruft, hängt ganz davon ab, z.B. muß man für einige 
Bootloader einen Pin entsprechend setzen.


Einige Bootloader haben auch API-Calls an einer bestimmten Adresse. 
Diese sind dann komplett in Assembler geschrieben, damit das 
Speicherabbild der Applikation nicht zerstört wird. Somit ist ein 
gefahrloser Rücksprung zur Applikation möglich. Z.B. um größere 
Datenmengen im Flash zu speichern.


Peter

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Günstigenfalls sollte der Bootloader in der dafür vorgesehenen und per 
Fuse einstellbaren, oberen Flash-Region liegen und bei RESET automatisch 
aufgerufen werden. Somit ist immer ein definierter Start des Controllers 
möglich. Will man von der Applikation in den Bootloader, genügt ein 
RESET über den Watchdog. Ausführen des Bootloaders ohne RESET kann, 
falls der Bootloader nicht alle benötigten I/O-Register selber 
initialisiert, in einem völlig undefinierten Aufruf und den daraus 
resultierenden Konsequenzen enden. Da der Speicher für einen Bootloader 
oft recht eng ist, sollte man so viel wie möglich von der Hardware 
erledigen lassen.

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.