Forum: Compiler & IDEs MAC Opperation ARM7TDMI Core


von Tilo (Gast)


Lesenswert?

Hallo

Ich programmiere gerade einen ADUC7020 mit ARM7TDMI Core.
Ich will nächstes Jahr kleine Digitalfilter implementieren.

Im Handbuch habe ich folgendes gefunden:

LONG MULTIPLY (M)
The ARM7TDMI instruduction set includes four extra instruductions
that perform 23-bit by 32-bit multiplications with 64-bit result,
and 32-bit by 32-bit multiplication-accumulation (MAC) with 64-bit
result. These results are archived in fewer cycles than required on
a standard core.

Ich bin vor allem an der MAC-Operation interessiert, da dadurch die
Filter wesentlich schneller sein sollten.

Mein Problem ist nun: Wie nutze ich diese Funktionen?

Geht das einfach in C?

Vielen Dank,

Tilo

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Wenn deine Compiler-Toolchain diese Funktionen nicht schon in der Libary 
drin haben (Manual prüfen und anschliessend vielleicht Developerforum 
befragen) kannst du mit Inline-Assembler was an^H^Hausrichten.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

GCC verwendet MLA wo sinnvoll. Ggf. musst du den Code etwas umstellen.

von Tilo (Gast)


Lesenswert?

Woher weiß der gcc denn, dass mein MCU diese Befehle kennt?
Die scheinen ja nicht zum Standardbefehlssatz zu gehören.

Bis dann,

von Mark .. (mork)


Lesenswert?

Doch. Das 'M' ist ja ein Teil von TDMI, also gehört es auch zum 
Standardbefehlssatz. Du brauchst beim Kompilieren nur arm7tdmi als MCU 
anzugeben.

MfG Mark

von Tilo (Gast)


Lesenswert?

Super, danke für die Info!

Ich dachte ich müsste das alles von Hand implementieren.

Bis dann, Tilo

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.