ARM SAM-BA reset nach flashen

OP #5136601
Lesenswert?

Servus Gemeinde,
 ich habe ein custom Board mit einem AT SAM3S2 drauf.

Dieses soll im Feld über USB geupdated werden.
Dazu habe ich in meinem Programm eine Funktion um das Boot-bit auf ROM 
umstellen zu können und zu resetten.
Das Board startet dann in den SAM-BA Bootloader.

Soweit so gut, ein upload des neuen Programmes um ein Umstellen des 
Boot-Bit zurück auf Flash geht auch einwandfrei.

Ich finde jedoch keine Möglichkeit aus dem Bootloader heraus das Board 
wieder zu resetten um das Programm wieder zu starten. Man muss also an 
dieser Stelle manuell eingreifen und den Stecker einmal ziehen.

Gibt es eine Möglichkeit SAM-BA das User-Programm starten zu lassen, 
oder einfach die CPU zu resetten?

Gruß
Fabian
Gast #5136626
Lesenswert?

Ohne den Controller zu kennen, das sollte über RSTC_CR gehen.
1
• PROCRST: Processor Reset
2
0 = No effect.
3
1 = If KEY is correct, resets the processor.
4
• PERRST: Peripheral Reset
5
0 = No effect.
6
1 = If KEY is correct, resets the peripherals.
7
• EXTRST: External Reset
8
0 = No effect.
9
1 = If KEY is correct, asserts the NRST pin.
10
• KEY: Password
11
Should be written at value 0xA5. Writing any other value in this field aborts the write operation.
OP #5136792
Lesenswert?

Wie ich das aus einem Programm raus mache ist klar. Dafür gibts sogar in 
der Atmel ASF Befehle.

Der im ROM befindliche Bootloader SAM-BA scheint aber keinen direkten 
Befehl zu kennen. Ich habe bisher auch keine Infos dazu bekommen ob es 
überhaupt möglich ist.

Theoretisch müsste es möglich sein, ein mini-Programm zu erstellen, das 
man über SAM-BA in den RAM schreibt und dann dort ausführt...

Da der SAM-BA Bootloader scheinbar in vielen ARM Cores enthalten ist, 
sollte das kein reines Atmel Thema sein...

Vielleicht kennt dazu jemand was?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren