Keil4编译原子哥的SYSTEM出现错误 Inline assembler not permitted when generating Thumb code
生活随笔
收集整理的這篇文章主要介紹了
Keil4编译原子哥的SYSTEM出现错误 Inline assembler not permitted when generating Thumb code
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
原文地址::http://www.openedv.com/posts/list/0/55803.htm;jsessionid=BF32A849CB8EF733FEEC85010EBCE48C
void WFI_SET(void)
{
__ASM volatile("wfi"); ?
}
//關(guān)閉所有中斷
void INTX_DISABLE(void)
{ ?
__ASM volatile("cpsid i");
}
//開啟所有中斷
void INTX_ENABLE(void)
{
__ASM volatile("cpsie i"); ?
}
//設(shè)置棧頂?shù)刂?/span>
//addr:棧頂?shù)刂?/span>
__asm void MSR_MSP(u32 addr)?
{
? ? MSR MSP, r0 //set Main Stack value
? ? BX r14
}
//=========================================修改如下就可以了==============================================
| 01 | //THUMB指令不支持匯編內(nèi)聯(lián) |
| 02 | //采用如下方法實現(xiàn)執(zhí)行匯編指令WFI? |
| 03 | __asm?void?WFI_SET(void) |
| 04 | { |
| 05 | ????WFI;????????? |
| 06 | } |
| 07 | //關(guān)閉所有中斷 |
| 08 | __asm?void?INTX_DISABLE(void) |
| 09 | { |
| 10 | ????CPSID I;????????? |
| 11 | } |
| 12 | //開啟所有中斷 |
| 13 | __asm?void?INTX_ENABLE(void) |
| 14 | { |
| 15 | ????CPSIE I;????????? |
| 16 | } |
| 17 | //設(shè)置棧頂?shù)刂?/td> |
| 18 | //addr:棧頂?shù)刂?/td> |
| 19 | __asm?void?MSR_MSP(u32 addr) |
| 20 | { |
| 21 | ????MSR MSP, r0?????????????//set Main Stack value |
| 22 | ????BX r14 |
| 23 | } |
總結(jié)
以上是生活随笔為你收集整理的Keil4编译原子哥的SYSTEM出现错误 Inline assembler not permitted when generating Thumb code的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 串口协议的制定以及串口中怎样接收一个完整
- 下一篇: Px4源码框架结构图