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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.