STM32 CAN nur mit NVIC-Vektor im Flash?

OP (Firma: dl1bg) #1541563
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

Eine eigene Frage? Dieser Thread ist über 16 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.