- 論壇徽章:
- 9
|
- static volatile int g_interlock = 0;
- static void NcInterLock()
- {
- __asm__ volatile("\
- mov r0, #1\r\n\t\
- 1:\r\n\t\
- swp r0, r0, [%0]\r\n\t\
- teqne r0, #0\r\n\t\
- bne 1b" \
- : \
- : "r"(&g_interlock)
- : "r0", "cc");
- }
復(fù)制代碼 第一個(gè)錯(cuò)誤是不認(rèn)最后那行冒號(hào)后面的r0寄存器,如果把"r0"刪了,
編譯則
提示錯(cuò)誤:Instruction requires: arm-mode
Predicated instructions must be in IT block
第一個(gè)錯(cuò)誤指向第一行r0寄存器,第二個(gè)是指向swp
那個(gè)xcode是否支持arm匯編呢?還是項(xiàng)目屬性哪里不對(duì)?這段匯編主要是想有一個(gè)忙等的自旋鎖,如果有內(nèi)置的自旋鎖API也可以,那就不需要匯編了。
|
|