NXP S32k Cortex M4 Code start adresse ändern

OP #5537148
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
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.
Gast
Seltsam, bei stm32 cortex m4, also der selbe core wie s32k, konnte ich 
meine firmware problemlos auf eine andere Addresse legen und debuggen.
Sind diese Geschichten nicht gleich bei alle Cortexe?
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
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.
Gast
Ähm - ich sehe gerade, Du versuchst die Flash Config in irgendwelche 
Speicherzellen abzulegen. Kannste so machen, hat aber dann keine 
Auswirkungen auf die Flash-Konfiguration.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.