Forum: Mikrocontroller und Digitale Elektronik STM32 CAN nur mit NVIC-Vektor im Flash?


von Bernhard _. (Firma: dl1bg) (bernhard_)


Lesenswert?

Guten Abend,

nachdem ja schon einige von euch Erfahrungen mit dem STM32F sammeln 
konnten, hoffe ich auf eine Erklärung.

In Kürze: Warum kann ich per CAN nicht senden, wenn die NVIC vector 
table nicht im Flash sondern im RAM (also bei 0x20000000) beginnt?

Folgendes Problem: Ein Beispielcode läuft bei mir einwandfrei, bei ihm 
wird mit
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
der Vektor entsprechend gesetzt.
Ich arbeite mit GCC, Eclipse und dem STM32F103VE.

Jetzt möchte ich den Code aber unter eCos einsetzen, wo die NVIC-Tabelle 
im RAM liegt. Da ich zumindest anfangs ohne Interrupts arbeite, dachte 
ich das wäre völlig Wurst.

Aber: Mit falschem Vektor funktioniert nur noch der Empfang, in eine 
TX-Mailbox gelegte Message bleibt unberührt liegen und der TX-Pin bewegt 
sich nicht mehr.

Kann mir jemand von euch erklären, wieso der NVIC hier reinspielt und 
wie ich damit im RAM arbeiten kann?

Danke,
Bernhard

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.