NXP S32k Cortex M4 Code start adresse ändern

OP #5537148
Lesenswert?

Hi
ich habe in mein funktionierndes Projekt die Start Addresse meiner 
Applikation geändert
vorher:
  /* Flash */
  m_interrupts          (RX)  : ORIGIN = 0x00000000, LENGTH = 0x00000400
  m_flash_config        (RX)  : ORIGIN = 0x00000400, LENGTH = 0x00000010
  m_text                (RX)  : ORIGIN = 0x00000410, LENGTH = 0x0007FBF0
Nachher:
/* Flash */
  m_interrupts          (RX)  : ORIGIN = 0x00020000, LENGTH = 0x00000400
  m_flash_config        (RX)  : ORIGIN = 0x00020400, LENGTH = 0x00000010
  m_text                (RX)  : ORIGIN = 0x00020410, LENGTH = 0x0005FBF0

Seitdem kann ich njicht mehr debuggen.
Sieht jemand auf Anhieb was schief geht?
VTOR wird an sich automatisch gesetzt von der NXP startup.c

Danke
#5537329
Lesenswert?

Der Prozessor sucht an Addresse 0 nach der Vektor Tabelle.

Falls da kein Bootloader drin steht, gehen normale NXP LPC µCs in den 
ISP Mode.

Den scheint der S32k nicht zu kennen, dann gibts (Hard) Fault -> Lockup.

Abhilfe: Ein (Dummy-) Bootloader der das Programm ab 0x00020000 startet.
#5537373
Lesenswert?

klaus schrieb:
> Sind diese Geschichten nicht gleich bei alle Cortexe?

In der Theorie ja, in der Praxis haben zumindest die LPCxxx µCs einiges 
Zeugs im ROM was vor dem Flash ausgeführt wird. Daher spielen NXP Tools 
beim Debuggen IMO nicht am PC (program counter register) rum.

Die S32k Serie scheint aber anderen Aufbau zu haben - ich sehe da kein 
internes Masken ROM in der Doku. Bleibt aber die Frage welche Debug 
Tools eingesetzt werden - und ob die das PC Register setzen.
Gast #5537499
Lesenswert?

Dein Programm darfste hinlegen wo Du willst. Aber die Info, wo es liegt 
muss am Anfang des Speicherbereichs bleiben.
Sobald das Programm dann los gelaufen ist, kannst Du sogar die Adresse 
der Interrupt-Vektor-Tabelle irgendwohin legen.

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