使用Keil STM32构建时未定义的符号SystemInit(从startup_stm32f2xx.o引用)

时间:2012-10-15 05:24:54

标签: stm32 keil

我使用的是STM32F207VC控制器。我正在使用uvision4 IDE,当我尝试编译一个简单的代码时,我得到错误tst1.axf:错误:L6218E:未定义的符号SystemInit(引自startup_stm32f2xx.o)。 。我把stm32f2x文件放到我的项目目录中。

但仍然是同样的问题。

请帮助解决这个问题。

由于

3 个答案:

答案 0 :(得分:6)

“库\ CMSIS \ CM3 \ DeviceSupport \ ST \ STM32F10x \ system_stm32f10x.c” 需要添加,因为SystemInit()是在其中定义的。

答案 1 :(得分:2)

好吧,你应该定义(或从某处获取)函数SystemInit,因为它是从startup.s文件中调用的。

或者您可以在启动文件中注释行,其中调用SystemInit函数。会有类似的东西:

1 IMPORT  SystemInit
2 IMPORT  __main
3 LDR     R0, =SystemInit
4 BLX     R0
5 LDR     R0, =__main
6 BX      R0

你可以评论1,3,4行;符号。

实际上,函数SystemInit通常是STM Peripheral库的一部分,它的目的是初始化您需要的所有外围设备。没有它,你必须自己做初始化。

答案 2 :(得分:0)

可能为时已晚,但是: 您应该检查Keil uVision安装文件夹,并且所有(我希望)供应商都有带有SystemInit功能的文件:)

〜\的Keil \ ARM \启动\ ST \ STM32F2xx \ system_stm32f2xx.c