MDK错误 Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_hd.o). 解决方法
此错误产生的位置在STM32工程所包含的汇编启动代码文件,如下图
熟悉ARM汇编的朋友一定可以看出,这是一个子程序调用语句,而调用的子程序正是SystemInit。出现错误的原因就是汇编器没有在代码之中寻找到SystemInit子程序。所以可以有两种解决方法。
1、在工程C文件内定义SystemInit函数,如下图
这里定义了一个空函数,虽然没有完成任何功能,但是这样做之后输出的汇编代码中就可以寻找到SystemInit子程序。
2、在汇编代码之中注释掉上上图之中用红色方框圈出的子程序调用代码。