Forum: Digitale Signalverarbeitung / DSP / Machine Learning TMS320F2812 erstes Programm


von Torsten O. (Gast)


Lesenswert?

Hallo,

ich versuche gerade den TMS320F2812 von Texas Instrumentes via Code 
Composer Studio zu programmieren. Leider komme ich nicht wirklich weit, 
da ich mit den Fehlermeldungen bzw. Warnungen nicht viel anfangen kann. 
Vielleicht kann mir da jemand helfen oder ein Tutorial empfehlen wie ich 
"mein erstes Programm" schreiben kann.

Hier wäre erstmal mein aktueller Quelltext, wobei da natürlich noch 
keine Funktion enthalten ist.

#include "DSP281x_Device.h"
#include "DSP281x_Examples.h"

void main()
{
  EALLOW;

  SysCtrlRegs.PLLCR.bit.DIV = 0x0A;      // Prescaler OscCLK * 10 / 2 
einstellen
  SysCtrlRegs.HISPCP.all = 0x00;        // Systemtakt 150MHz

  EDIS;
}

Die Datei lässt sich problemlos kompilieren, wenn ich allerdings auf 
"Build" klicke kommt folgender Output :

-----------------------------  source.pjt - Debug 
-----------------------------
[main.c] "C:\CCStudio_v3.3\C2000\cgtools\bin\cl2000" -g -fr"C:/Dokumente 
und Einstellungen/Administrator/Desktop/Source/Debug" -d"_DEBUG" 
-d"LARGE_MODEL" -ml -v28 -@"Debug.lkf" "main.c"

[Linking...] "C:\CCStudio_v3.3\C2000\cgtools\bin\cl2000" -@"Debug.lkf"
<Linking>
>> warning: entry point symbol _c_int00 undefined

undefined                        first referenced
 symbol                              in file
---------                        ----------------
_SysCtrlRegs                     C:\Dokumente und 
Einstellungen\Administrator\Desktop\Source\Debug\main.obj
>>   error: symbol referencing errors - './Debug/source.out' not built

>> Compilation failure

Build Complete,
  2 Errors, 1 Warnings, 0 Remarks.

Also meine Fragen sind :

1) Was hat es mit "_c_int00" auf sich (ich nehme an, das ist der 
Eintrittspunkt für das Programm)?

2) Wieso kennt er "_SysCtrlRegs" nicht?


Vielen Dank im Voraus



lg Torsten

von Michael K. (Gast)


Lesenswert?

Ist bei mir (leider) schon ne Weile her, aber soweit ich mich erinnere 
kommt der Fehler durch eine fehlende Library. Um das zu beheben trägst 
du unter
-> Build Options -> Linker -> Libraries -> Incl. Libraries eine 
entsprechende Lib ein. Bei mir ist das die "rts2800_ml.lib" für einen 
2812.

Torsten Ohne schrieb:
> 1) Was hat es mit "_c_int00" auf sich (ich nehme an, das ist der
> Eintrittspunkt für das Programm)?
Richtig.

> 2) Wieso kennt er "_SysCtrlRegs" nicht?
Das hängt mit dem oben zusammen.

von Jens S. (jenser)


Lesenswert?

Moin Torsten,

ich kämpfe mich auch gerade durch die schreckliche Welt der DSPs von TI. 
Zur zeit benutze ich ein eZdsp Board mit einem TMSF2812, ich vermute mal 
du hast das gleiche Board!

Zu Beginn hatte ich auch ziemliche Schwierigkeiten! Geholfen hat mir 
dabei die Beispielcodesammlung von TI. Die ist schön nach Themen 
unterteilt und für den Sart optimal.

Google am besten und du findest sie. Im Notfall kann ich sie dir auch 
per Mail schicken!

Viel Erfolg!

von Torsten O. (Gast)


Lesenswert?

Danke für die Tipps. Die Beispiele habe ich mir auch schon aus dem Netz 
gezogen, direkt von der TI-Seite. Die Programme lassen sich fehlerfrei 
kompilieren und in den Prozessor übertragen.

Allerdings! Ich habe als erstes die GPIOToggle-Sachen probiert. Um zu 
sehen ob sich was auf der Hardware tut habe ich ein Oszi an den Pin9 des 
40-poligen Steckverbinders gehalten - und nichts zu sehen. Der Pin 
bleibt auf high. Benötige ich denn unbedingt diesen "Zwickauadapter" 
oder müsste es auch ohne dem funktionieren?


lg Torsten

von Jens S. (jenser)


Lesenswert?

Ne, du brauchst keinen Adapter. Messe einfach direkt am DSP, da müsstest 
du die Flanken sehen.

Was ist eigentlich ein Zwickauadapter?

Da haben wir vermutlich doch unterschiedliche Boards! 
(http://www.spectrumdigital.com/product_info.php?cPath=31_85&products_id=137&osCsid=b1b2783a95339684ecb09ff62bb46353)

von Jens S. (jenser)


Lesenswert?

Jetzt hab ich´s doch selber raus gefunden^^!

http://www.lmgtfy.com/?q=Zwickauadapter

von Torsten O. (Gast)


Lesenswert?

Hallo,

so, ich habe nochmal direkt am Pin92 gemessen. Das Signal bleibt trotz 
laufendem Programm auf High. Ich nutze zur Zeit leider nur das parallele 
Schnittstellenkabel, d.h. ich kann nicht debuggen. Hat noch jemand eine 
Idee was ich falsch machen könnte?


lg Torsten

von Honk (Gast)


Lesenswert?

Hallo!

Hast Du alle GPIO-Register richtig konfiguriert? Die GPIO-MUX-Register 
sind EALLOW-protected, d.h. man muss die GPIO-Konfiguration zwischen 
EALLOW und EDIS machen.

Sind die GPIO-Register auf die richtigen Adressen gemapped?

http://focus.ti.com/lit/ug/spru078f/spru078f.pdf
(Chapter 4)

Grüße,
Honk

von Torsten O. (Gast)


Lesenswert?

Die Quelltexte sind ja die originalen von der TI-Seite, mal abgesehen 
von Rechtschreibtfehlern kann ich da keine anderen Fehler finden - diese 
Quelltexte sollten doch eigentlich funktionieren, oder?

lg Torsten

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.