您的位置:首页 > Web前端

STM32_TEST.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_md.o).

2017-07-24 16:37 477 查看
转自:http://blog.sina.com.cn/s/blog_542bad910101g1h5.html

此问题错误提示已经十分清楚的告诉你错在哪里了,Undefined symbol SystemInit ,翻译过来就是:SystemInit
这个符号没有定义,随后的小括号告诉你了,是在startup_stm32f10x_md.o这个文件里面被提及的,这个.o文件在工程里面并没有,它是一个在编译的时候根据.c/.s文件生成的。所以我们只需要找到工程里面的.s或者.c即可,这里对应这个名字的就是startup_stm32f10x_md.s了。

   在此文件里面可以找到SystemInit的所在:
Reset_Handler    PROC
                 EXPORT  Reset_Handler             [WEAK]
     IMPORT  __main
     IMPORT  SystemInit
                 LDR     R0, =SystemInit
                 BLX     R0
                 LDR     R0, =__main
                 BX      R0
                 ENDP
  
 原来在复位中断服务函数里面,调用了SystemInit这个函数,而这个函数在.s文件里面没有定义。

    所以解决的办法有两个。

   1,在外部(其他任何.c文件里面)定义SystemInit这个函数,哪怕是个空函数也可以。

   2,把                
                 LDR     R0, =SystemInit
                 BLX     R0


      这两句话去掉。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐