Forum: Digitale Signalverarbeitung / DSP / Machine Learning TI C2000 und MatLAB Target Link: Interruptproblem


von Christian N. (phoenix)


Lesenswert?

Hallo,


ich muss mit dem C2000 von TI (genauer dem TMS320F28335) arbeiten. Dafür 
verwende ich das CodeComposerStudio v3.3 von TI zusammen mit 
MatLAB/Simulink und dem Target Link für den C2000.

Ein Projekt in reinem C-Code geschrieben und direkt im 
CodeComposerStudio kompiliert lief auf anhieb (einfach den PWM-Block, 
ADC-Block und GPIO-Ports angesteuert).

Jetzt wollte ich MatLAB/Simulink verwenden und konstruierte entsprechend 
die Blöcke. Kompiliert wird alles und es wird auch in den C2000 geladen 
und ausgeführt. Leider läuft das Programm nur wenige µs (PWM Blöcke 
laufen kurz an - sieht man am Oszi) und läuft sich dann in einem 
Interrupt fest (hab es durch Kommentierung der einzelnen Funktionen im 
erstellten C-Code herausgefunden). Der Interrupt kommt aber nicht von 
mir, da ich in dem einfachen Beispiel keine Interrupts verwenden wollte.
Selbst die mitgelieferten Demo-Beispiele zeigen das gleiche Verhalten. 
Muss man irgendwo noch Dateien im Simulink-Modell einbinden, dass die 
Interrupt-Vektoren anders initialisiert werden? Ich komme leider nicht 
weiter. Wäre nett, wenn hier jemand einen Tipp hätte. Auch einfache 
Modelle ohne Interrupts erzeugen diesen "Festlauf"-Interrupt.



Also nochmal kurz:

manueller C-Code: läuft

C-Code aus MatLAB/Simulink über TargetLink: startet und läuft in 
Interrupt fest - Kommentierung von "enable_interrupts();" in 
main-Funktion lässt Programm normal ausführen, allerdings brauche ich 
später die Interrupts (für PWM-gesteuerte ADC-Wandlung).


Warum erstellt Simulink diesen zusätzlichen Interrupt überhaupt 
automatisch?


Vielen Dank!

von Christian N. (phoenix)


Lesenswert?

Habs selber rausgefunden. War ein Bug in TargetLink für C2000 DSPs. Wer 
das gleiche Problem hat:

Die Datei 
"%MATLABINSTALLDIR%\R2009a\toolbox\rtw\targets\ccslink\ccslink\c2000\c28 
33xPeripherals.cmd"  öffnen und die Zeile "PieVectTableFile : > 
PIE_VECT,   PAGE = 1" als Zeile 79 einfügen. Danach kompiliert das 
Simulink- Modell und es wird hervorragend ausgeführt.

Naja, die Software kostet ja auch nix - da kann man ja schonmal so einen 
"kleinen" Bug erwarten.

ciao!

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.