Forum: Mikrocontroller und Digitale Elektronik OpenOCD Raspberry |ATMEL programming|BOOT and APP


von Daniel X. (ddmw)


Lesenswert?

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

von Jim M. (turboj)


Lesenswert?

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.

von Christopher J. (christopher_j23)


Lesenswert?

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.

von Daniel X. (ddmw)


Lesenswert?

Es lag an mir ich habe eine Fehlerhafte Software verwendet.

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
Noch kein Account? Hier anmelden.