__asm void delay_ntimes(unsigned int n)
{
L1
SUBS R0,#1
BCS L1
BX LR
}
如上是AC5編譯器下能編譯的嵌匯編的代碼,
但是改AC6后就不知道這么改了
嘗試過如下
void delay_ntimes(unsigned int n)
{
__asm("L1:\n\t"
"SUBS R0,#1\n\t"
"BCS L1\n\t"
"BX LR"
);
}
報錯如下:
../User/time_base.c(92): error: symbol 'L1' is already defined
__asm("L1:\n\t"
^
<inline asm>(1): note: instantiated into assembly here
L1:
^
其他語句都是可以的,就是L1這個跳轉用的標識符認報錯,不知道怎么寫。
|