Forum: Digitale Signalverarbeitung / DSP / Machine Learning Division in Float (TMS320F28335)


von Tim R. (mugen)


Lesenswert?

Ich arbeite schon seit ein paar Monaten mit dem TI DSC TMS320F28335. 
Erst seit kurzem mit den TMS Typen und nicht mit den TMX Typen. Leider 
verhält sich der DSC leicht anders, bzw. eher der Compiler oder die 
Entwicklungsumgebung. Der DSC dividiert nicht mehr laut Watchwindow. 
Multiplikation in float macht er ohne Probleme. Meine Vermutung ist nun, 
dass der Compiler den Sourcecode nicht richtig interpretiert und den 
Quotienten für die anschließende Multiplikation nicht bildet. Wenn 
jemand ein ähnliches Verhalten hat oder hatte, dann würde ich mich über 
Tipps etc. sehr freuen.

von Jan (Gast)


Lesenswert?

Im CCS lässt sich unter

"Project" => "Build Options.." => "Compiler" => "Advanced"

der "Floating Point Support" einstellen. Vielleicht ist das bei Dir ja 
deaktiviert.

(Nur Schuss ins Blaue, da ich bisher mit den Floating-Point-DSCs noch 
nicht gearbeitet habe)

Gruss, Jan

von Jan (Gast)


Lesenswert?

Hab' grad mal im "Getting Started With TMS320C28x" (spraam0a.pdf) 
geschaut. Dort steht drin, dass man für die 2833x-Generation "CCS 3.3+" 
mit "Code Generation Tools 5.0+" benötigt.

Weitere Hinweise hierzu findet man auch in "TMS320x280x to TMS320x2833x 
or 2823x Migration Overview" (spraaq8a.pdf) unter Punkt 3 (Development 
Tools).

Links:
http://focus.ti.com/general/docs/techdocsabstract.tsp?abstractName=spraam0a
http://focus.ti.com/general/docs/techdocsabstract.tsp?abstractName=spraaq8a

Vielleicht hilft Dir das ja noch weiter.

Gruss, Jan

von Tim R. (mugen)


Lesenswert?

Danke Jan für deine Mühe.

Soweit von Dir beschrieben habe ich es vor ein paar Wochen bereits 
getan. Allerdings bin ich durch deinen Hinweis auf einen anderen Fehler 
gestoßen. Der Compiler von TI wird von der Installationsroutine an einem 
falschen Ort gespeichert, daher habe ich immer einen veralteten Compiler 
benutzt. Toller Wurst! Nun funktioniert alles und des DSC dividiert 
fleißig.

Richtiger Installationszielort wäre übrigens 
C:\CCStudio_v3.3\C2000\cgtools
Kommt natürlich auf das System an.

Also nochmals Danke - Ein Problem weniger ;)

Gruß

von Tim R. (mugen)


Lesenswert?

Aus unerklärlichen Gründen braucht bei mir eine Division ca. 1,78µs.
Eine Multiplikation braucht übrigens 0,0855µs und Cosinus-Funktion 
1,33µs.

Dies bedeutet: eine Division benötigt 267 Zyklen bei 150Mhz(6,66ns)
Angegeben ist laut TI mindestens 24 Zyklen.

Hat jemand die gleiche Beobachtung gemacht?
Eine Division von 1,78µs ist meiner Meinung nach viel zu lang!

Bei integer16 braucht einer Division nur noch 0,381µs.

Ich benutze die neues CC Version, CodeGenerationTools und habe die 
neuste RTS eingebunden.

von Tim R. (mugen)


Lesenswert?

Tim R. schrieb:
> Aus unerklärlichen Gründen braucht bei mir eine Division ca. 1,78µs.
> Eine Multiplikation braucht übrigens 0,0855µs und Cosinus-Funktion
> 1,33µs.
>
> Dies bedeutet: eine Division benötigt 267 Zyklen bei 150Mhz(6,66ns)
> Angegeben ist laut TI mindestens 24 Zyklen.
>
> Hat jemand die gleiche Beobachtung gemacht?
> Eine Division von 1,78µs ist meiner Meinung nach viel zu lang!
>
> Bei integer16 braucht einer Division nur noch 0,381µs.
>
> Ich benutze die neues CC Version, CodeGenerationTools und habe die
> neuste RTS eingebunden.

Hat sich erledigt, ich hätte auch mal die Assembler-Files zufügen 
sollen.

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.