|

楼主 |
发表于 2020-8-7 18:30:49
|
显示全部楼层
硬汉哥keil的ac6跳转指令不对吗?
//THUMB指令不支持汇编内联
//采用如下方法实现执行汇编指令WFI
void WFI_SET(void)
{
__ASM volatile("wfi");
}
//关闭所有中断
void INTX_DISABLE(void)
{
__ASM volatile("cpsid i");
}
//开启所有中断
void INTX_ENABLE(void)
{
__ASM volatile("cpsie i");
}
#ifdef ARMCC_AC5
//设置栈顶地址
//addr:栈顶地址
//__asm void MSR_MSP(uint32_t addr)
//{
// MSR MSP, r0 //set Main Stack value
// BX r14
//}
//设置栈顶地址
//addr:栈顶地址 ac5 版本
__asm void MSR_MSP(uint32_t addr)
{
MSR MSP, r0 //set Main Stack value
BX r14
}
#else
//设置栈顶地址
//addr:栈顶地址 ac6 版本
void MSR_MSP_(unsigned int addr)
{
__asm("MSR MSP, r0"); //set Main Stack value
__asm("BX r14");
}
void MSR_MSP(uint32_t addr)
{
__ASM volatile("MSR MSP,r0");
__ASM volatile("BX r14");
}
#endif
|
|