STM32/STM8技术论坛
直播中

何瑾

7年用户 138经验值
私信 关注
[问答]

STM32F103做IAP编译过程出现 Error: L6218E

芯片:STM32F103VC
官方库:V3.5
MDK:      5.11
在做IAP工程时,参考官方代码
if (((*(__IO uint32_t*)AppAddress) & 0x2FFE0000 ) == 0x20000000) //检查栈顶地址是否合法.
        {/* Jump to user application */

                JumpAddress = *(__IO uint32_t*) (AppAddress + 4);
                /* 用户应用地址 */
                Jump_To_Application = (pFunction) JumpAddress;
                /* Initialize user application's Stack Pointer */
                __set_MSP(*(__IO uint32_t*) AppAddress);
                 //跳转到APP.
                Jump_To_Application();                              
        }


编译过程  出现 Error: L6218E: Undefined symbol __set_MSP (referred from iap.o).
头文件路径已都包含,百度谷歌 无果,求助弄过的大神,谢谢

回帖(5)

陈炜

2019-5-10 11:01:12
本帖最后由 xmshao 于 2017-3-20 16:03 编辑

应该是工程里少了跟内核定义相关的代码,你查下那个core_cm3.c文件加进来没有。

最简单的方法基于ST的模板建个新工程。说不定你少的文件还不止一个。
举报

李悛

2019-5-10 11:10:25
本帖最后由 moyanming2013 于 2017-3-21 12:30 编辑
举报

何瑾

2019-5-10 11:29:02
引用: 7762642422d 发表于 2019-5-10 11:10
本帖最后由 moyanming2013 于 2017-3-21 12:30 编辑

是的,我在我电脑里面搜cmsis_armcc.h, 只有CUBE库里面有这个.h 文件, 标准库没有这个文件
举报

李鑫赢

2019-5-10 11:34:25
不用谢,实在找不到路径,而且问题又只有这个__set_MSP,就可以自己编写一个,官方的也是人编写出来的。MSP主堆栈指针赋值,不过就几条语句,简单的汇编命令而已。
举报

成贯征

2019-5-10 11:46:46
你好,我也出现了同样的问题,最后楼主解决了吗?怎么解决的?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分