www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Interrupt Programmierung mit TI-DSP TMS320C64xx


Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

gerade tue ich mich etwas schwer mit der Interrupt Programmierung des 
TMS320C6416. Dieser Prozessor ist für mich noch Neuland und ich schlage 
mich mit der Fülle von App.notes und User's Guides herum. (Bin etwas von 
der übersichtlichen Dokumentation von Infineon verwöhnt!)
Was ich eigentlich suche, ist die Angabe, wo sich nun der 
Interrupt-Vector-Table befindet. Also Adresse, Länge, ... usw.
Ich würde gerne in "C" diesen Table als Pointer-Array ansprechen und 
befüllen. Geht das?

In der Dokumentation von TI finde ich entweder nur etwas über das 
DSP-BIOS, oder nur Sachen zur Interrupt-Source-Selection, nie aber die 
ersehnte Vektor-Tabelle. Vielleicht heißt die Tabelle auch nur anders, 
weswegen ich sie nicht finde! Wer kann mir hier eine Dokumentennummer 
empfehlen.

Danke für Eure Antworten,
Patrick

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, ist wirklich ein schwieriges Thema.
Aber die Doku von TI ist extrem beschissen.
Ich meine jetzt das eine Problem gelöst zu haben, jetzt scheitere ich 
daran, daß ich das CSR nicht definieren kann, weil ich nicht weiß auf 
welcher Adresse es sich befindet.

Meine Frage:
Wer weiß, auf welcher Adresse ich beim TMS320C6416T das 
Control-Status-Register finde? - Besser noch, die Quelle, wo das steht.
(Oh, Infineon, was warst Du gut dokumentiert!)

Autor: Peter Diener (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

du musst das doch gar nicht definieren, du greifst einfach so drauf zu, 
es ist bereits definiert:

CSR = 0x00;    //schreibt da überall 0 rein

Oder möchtest du etwas anderes machen?

&CSR sollte dir die Adresse liefern.

Grüße,

Peter

Autor: Peter Diener (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ti Document spru732h.pdf Seite 325 Table 3-21 listet die Control 
Register auf.

Die Adressen beziehen sich wohl auf den Assemblerbefehl MVC (Move 
Between Control File and Register File), so genau hab ich das aber auch 
nicht verstanden, ich verwende es nur in C.

Peter

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

danke für Deine Antwort. Inzwischen hänge ich noch tiefer im Thema drin. 
Das CSR-Register ist tätsächlich nicht in den normalen Adressraum 
gemappt, sondern wird über spezielle Befehle angesprochen.
Die Interrupt-Programmierung selber ist hier noch schwieriger als 
erwartet: Man MUSS eine Assembler-Datei erstellen, in der die 
Interrupt-Vektoren liegen. Die einzelnen Vektor-"Zellen" muß in einer 
ganz bestimmten Weise aufgebaut sein. Von dort werden dann die 
eigentlichen Service-Routinen aufgerufen.
Soweit die Theorie. - In der Praxis klappt das nur leider immernoch 
nicht. - Mein Timer läuft, GIE ist an, entsprechender IE ist an, 
Interrupt-Request wird generiert, aber die Interruptroutine wird nicht 
aufgerufen!
Hätte nie gedacht, daß eine "einfache" Interrupt-Programmierung ohne das 
DSP-BIOS so ein Problem werden kann.
Wer kann mir helfen?

Autor: Patrick G. (pattyman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat sich erledigt:
Nach erneutem Nachlesen ist mir eine Passage ins Auge gefallen, in der 
steht, daß man auch den NMI-Interrupt aktivieren muß, damit es überhaupt 
funktioniert. - Naja, und jetzt funktioniert es!

Danke Dir Peter für Deine freundliche Mithilfe!

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.