Bootloader starten

Gast #4063885
Lesenswert?
• ▲
▼
Hallo Leute,

ich verwende momentan 2 XMEGA Mikrocontroller den XMEGA256A3U und den 
XMEGA32A4U. Für beide habe ich bereits einen Bootloader geschrieben. Ich 
habe dabei die ATMEL SP_DRIVER.c verwendet. Das scheint auch schon alles 
ganz gut zu funktionieren.

Ich flashe den Bootloader mit den AVR Studio in den XMEGA. Anschließend 
stelle ich mit Hilfe des AVR Studios das Bootfuse auf Bootloader um und 
schon startet der Bootloader.

Jedoch möchte ich den Bootloader nicht über das AVR Studio starten 
sondern über ein RS232 Kommando. Und genau hier tue ich mich momentan 
sehr schwer.

Hier mein Code:

BOOTRST_BOOTLDR_gc;

CCP = CCP_IOREG_gc;
RST.CTRL = RST_SWRST_bm;

Nur leider startet der Bootloader nicht. Auch wird das FUSE Bit nicht 
verändert. Der Softwarereset wird ausgeführt. Das konnte habe ich 
geprüft.
Gast #4354486
Lesenswert?
• ▲
▼
Johann schrieb:
> Geht das auch aus der Applitkation herraus dann wäre das ja schon die
> Lösung?

Hi Johann,

kamst du mitlerweile weiter mit dem Start von deinem Bootloader? Ich ich 
möchte auch aus der Application in den Bootloader jumpen (zB nachdem 
seriell ich ein bestimmtes Command schicke) und frage mich wie es am 
gescheitesten tue. Soll ich es über EIND o. Software Reset machen? Danke
Gast #4360758
Lesenswert?
• ▲
▼
Ja, das passt. Danke!

Ich probiere gerade die Lösung mit dem Reset in meiner Application. So 
kann ich, bevor die Hauptschleife im Bootloader startet RST.STATUS-Bit 
abfragen. Nur funktioniert es nicht ganz, wie ich es mir vorstelle....

Nachdem ich RST.CTRL manipuliere, wird das SRF-Flag zwar 1, nur wird 
dieser nicht mehr zurückgesetzt. Soll ich es manuell auf 0 setzen? Sonst 
gelange ich immer in den Bootloader, egal welchen Reset ich mache. Und 
meine (RST.STATUS & RST_SRF_bm) Abfrage nutzt dann nichts. Schreiben mit 
(RST.STATUS &= ~(RST_SRF_bm) hat keine Auswirkung.

Ich habe genauso mit dem WDT-Reset probiert. Genauso hier, nachdem der 
WD STATUS-Bit gesetzt wird, wird dieser nicht zurückgesetzt.

Also wie kann ich die RST.STATUS Register zurücksetzen??
Gast #4362166
Lesenswert?
• ▲
▼
OK, alles klar, wer lesen kann ist klar im Vorteil... Laut Datenblatt: 
"The flag will be cleared by a power-on reset or by writing a one to the 
bit
location." Also anstatt ne 0 zu schreiben, soll man ne 1 setzen.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.