天天看点

KEIL ARM 6.12 compiler 编译__ASM 错误的解决方法

1、问题

KEIL compiler 设置为 “use default compiler version 5” 可以正确编译以下汇编和C混合代码,更改编译器为V6.12后不识别__ASM关键字,并对汇编语法报错。

KEIL ARM 6.12 compiler 编译__ASM 错误的解决方法

 替换为

KEIL ARM 6.12 compiler 编译__ASM 错误的解决方法
__ASM void MSR_MSP(uint32_t addr)
{
    MSR MSP, r0 
    BX r14
}
           
KEIL ARM 6.12 compiler 编译__ASM 错误的解决方法

2、解决办法

6.12编译器对于汇编和C的混合代码格式做了要求,按照以下方式修改汇编代码,即可编译通过。

void MSR_MSP(uint32_t addr) 
{
    __ASM("MSR MSP, r0"); 
    __ASM("BX r14");
}