[elektro] MPLAB C30 inline asm
hg12345
hg12345 at freemail.hu
Thu Apr 22 18:51:16 CEST 2010
Hi!
Néha már azt hiszem értem a MPLAB C30 (alias GCC 4.xx) inline asm :-(
De tévedtem :-(
Két problémám van, szeretnék egy asm fuggvényt C betétként megírni.
A függvényt megírtam, az csinálja mit szeretnék, de !
1, ha használnám a regiszter változókat amit a bemenetnek definiáltam
ExtMath.c.s:57: Error: bad expression
ExtMath.c.s:57: Warning: Missing , assumed.
ExtMath.c.s:57: Error: Too many operands ('mov.d %1,w4').
üzeneteket kapom. %1 -> "r"(T21) ahol
register long T21 asm("w0"); van definiálva.
a "mov.d w0,w4" simán lefordul.
2, amikor simán lefordul és az optimalizálást is bekapcsolom akkor egyetlen utasítás sor se tetszik neki:
ExtMath.c.p: line 0055: PA-E0013 Error: Unrecognized instruction mnemonic
ExtMath.c.p: line 0055: PA-E0028 Error: Expected a machine or assembler instruction
Ami a legszebb, hogy az 55 sorban:
mov.d w0,w4
mov.d w2,w6
mul.uu w4,w6,w0
a helyes kód van.
Hol lehet a hiba?
üdv
More information about the Elektro
mailing list