STM32编译错误

.\output\test.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_hd.o). Not enough information to list image symbols.

此问题错误提示已经十分清楚的告诉你错在哪里了,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文件里面没有定义。
解决办法:
IMPORT SystemInit
LDR R0, =SystemInit
BLX R0
这三行去掉。

发布了12 篇原创文章 · 获赞 5 · 访问量 1012

猜你喜欢

转载自blog.csdn.net/weixin_44133391/article/details/98056112