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
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. |
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?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.