懂汇编的进,STM32一段汇编程序报错

2019-12-26 18:56发布

本帖最后由 SUPER_CRJ 于 2017-7-28 11:38 编辑

// 下面这个函数在Keil中报错,但是只是在预编译阶段,这是为什么?对于追求完美的人,我不能允许有这样的错
__asm void MSR_MSP_RJ(u32 addr)
{
        MSR MSP, r0                         //set Main Stack value
        BX r14
}

2.png (54.19 KB, 下载次数: 0) 下载附件 2017-7-28 11:36 上传
11条回答
jiaowoxiaolu
1楼 · 2019-12-26 20:01.采纳回答
void __set_PSP(uint32_t topOfProcStack)
{
  __ASM("msr psp, r0");
  __ASM("bx lr");
}
yanhaijian2005
2楼-- · 2019-12-27 12:52
这中语法可以参考FREERTOS。
SUPER_CRJ
3楼-- · 2019-12-27 15:07
liyang121316 发表于 2017-7-28 16:59
二楼给的是小写,而你用的是大写。

内部有宏定义了定义了大写和小写是一样的
SUPER_CRJ
4楼-- · 2019-12-27 17:54
jiaowoxiaolu 发表于 2017-7-28 15:45
__ASM void __set_MSP(uint32_t mainStackPointer)
{
  msr msp, r0

内部有宏定义,大小写是等价的。
myxiaonia
5楼-- · 2019-12-27 20:26
因为mdk的在线语法检查恨捉急,遇上汇编就歇菜了,至于你后面写错的,我估计它不认识只好假装媚看见

一周热门 更多>