使用Keil STM32构建时未定义的符号SystemInit(参考startup_stm32f2x.o)

使用Keil STM32构建时未定义的符号SystemInit(参考startup_stm32f2x.o),stm32,keil,Stm32,Keil,我使用的是STM32F207VC控制器。我使用的是Uvision4IDE,当我试图编译一个简单的代码时,我得到了错误tst1.axf:error:L6218E:Undefined symbol SystemInit,引用自startup_stm32f2x.o。我已将stm32f2x文件放置到我的项目目录中 但还是一样的问题 请帮助解决这个问题 谢谢那么,您应该定义或从某处获取函数SystemInit,因为它是从startup.s文件调用的 也可以在启动文件中的注释行中调用SystemInit函数

我使用的是STM32F207VC控制器。我使用的是Uvision4IDE,当我试图编译一个简单的代码时,我得到了错误tst1.axf:error:L6218E:Undefined symbol SystemInit,引用自startup_stm32f2x.o。我已将stm32f2x文件放置到我的项目目录中

但还是一样的问题

请帮助解决这个问题


谢谢

那么,您应该定义或从某处获取函数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外围库的一部分,其目的是初始化您需要的所有外围设备。如果没有它,您将不得不自己进行初始化。

那么,您应该定义或从某处获取函数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外围库的一部分,其目的是初始化您需要的所有外围设备。没有它,您将不得不自己进行初始化。

库\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system\u STM32F10x.c
需要添加它,因为SystemInit在其中定义。

Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system\u STM32F10x.c
需要添加它,因为其中定义了SystemInit。

可能太晚了,但是: 您应该检查Keil uVision安装文件夹,我希望所有供应商都有带SystemInit功能的文件:


~\Keil\ARM\Startup\ST\stm32fxxx\system\u stm32fxxx.c

可能已经太晚了,但是: 您应该检查Keil uVision安装文件夹,我希望所有供应商都有带SystemInit功能的文件:


~\Keil\ARM\Startup\ST\stm32fxxx\system\u stm32fxxx.c

优化您的解决方案:优化您的解决方案: