Gast
#538174
Hallo, ist es eigentlich möglich den Bootloader bei AVR µCs direkt aus dem Betrieb heraus zu starten (Ohne Hardware Eingriffe)?
|
Anzeige
|
Bootloader aus Betrieb heraus starten?
Gast
#538174
Hallo, ist es eigentlich möglich den Bootloader bei AVR µCs direkt aus dem Betrieb heraus zu starten (Ohne Hardware Eingriffe)? 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.
Gast
#538182
kann ich nicht einfach per asm auf 0x00 springen? Kann man eigentlich auch Speichersprünge in C machen? Über einen NULL Pointer oder so? Unterstützt dein Compiler keinen Softwarereset? Der sollte den Sprung zum "Start" machen... Interrupts aus nicht vergessen. Wenn der Bootloader gut ist sollte einfaches Reinspringen reichen. 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 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 schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|