1、在正点原子的程序中,编译原子哥的SYSTEM出现错误 Inline assembler not permitted when generating Thumb code的问题,解决方法如下;
https://blog.csdn.net/xqhrs232/article/details/49952151
void WFI_SET(void)
{
__ASM volatile("wfi");
}
//关闭所有中断
void INTX_DISABLE(void)
{
__ASM volatile("cpsid i");
}
//开启所有中断
void INTX_ENABLE(void)
{
__ASM volatile("cpsie i");
}
//设置栈顶地址
//addr:栈顶地址
__asm void MSR_MSP(u32 addr)
{
MSR MSP, r0 //set Main Stack value
BX r14
}
//=========================================修改如下就可以了==============================================//
//THUMB指令不支持汇编内联
//采用如下方法实现执行汇编指令WFI
__asm void WFI_SET(void)
{
//__ASM volatile("wfi");
WFI;
}
//关闭所有中断
__asm void INTX_DISABLE(void)
{
//__ASM volatile("cpsid i");
CPSID I;
}
//开启所有中断
__asm void INTX_ENABLE(void)
{
//__ASM volatile("cpsie i");
CPSIE I;
}
//设置栈顶地址
//addr:栈顶地址
__asm void MSR_MSP(u32 addr)
{
MSR MSP, r0 //set Main Stack value
BX r14
}
程序地址:https://pan.baidu.com/s/12PFhnWHdFMirqU3sfXN5bg 密码:zu5q