Hi Ich arbeite mich gerade in den Cortex M3 (LM3S9B92 von TI) ein. Da ich mit ihm einige DSP Aufgaben in C erledigen möchte, ist für mich die Unterstüzung der Sättigung interessant. Bisher habe ich aber nur Assembler Anweisungen gefunden und das Datenblatt erwähnt nur ein Sättigungsbit im Programm Status Register. Wie sieht es beim Cortex mit der Sättigung aus? Muss man das ganze erst aktivieren oder geht wird das ganze nur bei Rechnungen mit expliziter Assembleranweisung unterstützt? Würde mich freuen, wenn mir jemand bei dieser Frage helfen könnte. Schöne Grüße
André M. schrieb: > wird das ganze nur bei Rechnungen mit expliziter > Assembleranweisung unterstützt? Ebendies. Wenn es um den GCC geht, dann lassen sich solche Assembler-Anweisungen allerdings recht elegant in den C Code einbauen. Inwieweit andere Compiler diese Befehle als Intrinsics unterstützen muss du nachsehen.
A. K. schrieb: > André M. schrieb: > >> wird das ganze nur bei Rechnungen mit expliziter >> Assembleranweisung unterstützt? > > Ebendies. Wenn es um den GCC geht, dann lassen sich solche > Assembler-Anweisungen allerdings recht elegant in den C Code einbauen. > Inwieweit andere Compiler diese Befehle als Intrinsics unterstützen muss > du nachsehen. Danke für deine schnelle Antwort. Ich arbeite mit dem Code Composer Studio und dem entsprechenden Compiler. Mh, das ist natürlich ärgerlich, wenn ich dann noch auf Assembler Eben "rumfrickeln" muss, was ich eher vermeiden wollte.
Ich habe dazu gleich mal eine Anschlussfrage. Der Cortex M3 besitzt ja auch hardware devider und untersützt die hardwareseitige multiplikation und accumulation (ähnlich der MAC Einheit beim DSP), was als SIMD (Single Instruction Multiple Data) bezeichnet wird. Können auch diese Funktionalitäten nur aus Assembler heraus genutzt werden oder generieren die C Compiler Code, der diese Hardwarefunktionalitäten ausnutzt?
André M. schrieb: > Mh, das ist natürlich ärgerlich, > wenn ich dann noch auf Assembler Eben "rumfrickeln" muss, was ich eher > vermeiden wollte. Hast du nachgesehen, ob dieser Compiler nicht schon Intrinsics für diese Befehle anbietet?
http://infocenter.arm.com/help/topic/com.arm.doc.dui0491c/CIHEGGAJ.html z.T. als Intrinsics, z.T im CMSIS und in der CMSIS-DSP-Bibliothek http://www.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=spma041a&fileType=pdf http://www.onarm.com/cmsis/download/
Hi, danke für eure Antworten. Ich habe mir den User Guide zu dem Compiler (TMS470, http://www.ti.com/lit/ug/spnu151g/spnu151g.pdf) angeschaut und der offenbart mir, dass es für den M3 Intrinsics für die Sättigungsoperationen gibt (Seite 104) aber für die für DSP Aufgaben interessesanten Operationen wie "multiply-accumulation" gibt es seltsamerweise nur welche für den M4, obwohl doch der M3 diese Befehle auch unterstützt. Oder sollten diese Intrinsics auch für den M3 funktionieren?
André M. schrieb: > obwohl doch der M3 diese Befehle auch unterstützt. Nur 32x32=>32/64bit. Und die stehen dort nicht drin.
A. K. schrieb: > André M. schrieb: > >> obwohl doch der M3 diese Befehle auch unterstützt. > > Nur 32x32=>32/64bit. Und die stehen dort nicht drin. Und das heißt in letzter Konsequenz was?
Das Du nen M4 nehmen sollst der M3 hat den ganzen DSP Kram nicht das ist ja der Unterschied zwischen den beiden.
Zorg schrieb: > Das Du nen M4 nehmen sollst der M3 hat den ganzen DSP Kram nicht das ist > ja der Unterschied zwischen den beiden. Naja, der M3 wird es sein müssen, das steht fest und der Befehlssatz ist ja da und wird vom M3 unterstützt, also zumindest die beiden für mich relevanten Funktionen der Sättigung und der "multiply-accumulation". Müsste es nicht sonst möglich sein, letztere Funktionalität über "inline assembler" aus meinem C Code heraus zu nutzen? Wäre ja aus der Sicht der Performance ganz schön die Hardwareblöcke nutzen zu können.
André M. schrieb: > Ich arbeite mich gerade in den Cortex M3 (LM3S9B92 von TI) ein. Da würd ich an deiner Stelle mal die Verfügbarkeit prüfen. Mit dem Prozessor haben wir vor nem halben Jahr schon ein Projekt durchgezogen und dann mit hängen und Würgen ein paar Samples gekriegt, Massenverfügbarkeit = 0 Es gibt nur diese dämlichen Entwicklungskits... Oder hat sich das mittlerweile geändert? Farnell und Digikey haben jedenfalls keine
Phantomix schrieb: > André M. schrieb: >> Ich arbeite mich gerade in den Cortex M3 (LM3S9B92 von TI) ein. > > Da würd ich an deiner Stelle mal die Verfügbarkeit prüfen. Mit dem > Prozessor haben wir vor nem halben Jahr schon ein Projekt durchgezogen > und dann mit hängen und Würgen ein paar Samples gekriegt, > Massenverfügbarkeit = 0 > Es gibt nur diese dämlichen Entwicklungskits... Oder hat sich das > mittlerweile geändert? Farnell und Digikey haben jedenfalls keine Es soll kein Massenprodukt werden sondern dient zur Studie für eine Bachelorarbeit. Es geht dabei rein um Machbarkeitsuntersuchungen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.