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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.