Hallo zusammen, ich möchte mit den Open OCD meinen Atmel SAMD20E15 flashen, zum flashen benutze ich das Raspberry Pi. Wenn ich meine APP in die Adresse 0x0 lade funktioniert das ganze gut. Ich möchte jedoch noch einen Bootloader flashen. Wenn ich den Bootloader in den Atmel auf 0x0 flashe ist soweit alles okay und der uC geht normal in den run modus. Wenn ich dann die APP auf die Adresse 0x2000 programmiere funktioniert nichts mehr und der uC führt nichts mehr aus. Wenn ich den Bootloader und die APP von AtmelStudio flashe funktioniert es. Wenn ich die Daten im Flash mit meinem APP und der BOOT vergleiche, sind diese nicht mehr mit dem original identisch. Ich hoffe sehr das ihr mir eine antwort habt. Beste Grüße DDMW
Daniel X. schrieb: > Wenn ich dann die APP auf die Adresse 0x2000 programmiere funktioniert > nichts mehr und der uC führt nichts mehr aus. Korrekt. Die App muss neu für die höhere Addresse verlinkt werden - siehe Linkerskript.
Neben dem Linkerscript muss sehr wahrscheinlich noch der Offset der Vektortabelle im Code angepasst werden. Dafür gibt es bei den Cortex-M das "Vector Table Offset Register" (VTOR). Häufig gibt es in der SystemInit einen Abschnitt der per #define aktiviert werden kann, dann kann man das auch ins Makefile auslagern (sofern man eines nutzt) und muss nicht jedesmal am Code rumdoktorn wenn man eine andere Konfiguration bauen möchte.
Es lag an mir ich habe eine Fehlerhafte Software verwendet.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.