www.mikrocontroller.net

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


Autor: Bernhard __ (Firma: dl1bg) (bernhard_)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.