我正在使用带有Keil4的LPC1788微控制器,当我创建项目时,Keil添加了一个名为“startup_LPC177x_8x.s”的文件。在这个文件的一个阶段,IMPORT命令试图导入SystemInit,但是当我编译时,我得到一个错误如下:
compiling main.c...
main.c(6): warning: #1-D: last line of file ends without a newline
linking...
project_1.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_lpc177x_8x.o).
Target not created
这段代码如下:
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT SystemInit
IMPORT __main
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
我在项目中包含了头文件“lpc177x_8x.h”。
请指导我的朋友......我是Keil的新手...非常感谢。
答案 0 :(得分:0)
此文件中的IMPORT
符号 - 在其他地方定义。
它可能位于名为system_LPC177x_8x.c或类似的文件中;它可能需要为您的项目定制设置PLL并初始化外部存储器接口和其他时钟相关功能。
如果您在创建项目时要求包含启动文件,它通常会自动包含在您的项目中;否则它将在Keil ARM-MDK安装中的CMSIS目标特定支持文件夹中,在这种情况下我猜:CMSIS\CM3\DeviceSupport\NXP\LPC17xx\
或类似,CMSIS版本之间的确切目录结构已经改变。
答案 1 :(得分:0)
取决于你安装Keil的位置。
这是我电脑中的地址:
D:\ Program Files \ keil \ ARM \ INC \ NXP \ LPC17xx
(这里包含您使用的头文件)
D:\ Program Files \ keil \ ARM \ Startup \ NXP \ LPC17xx
(这里包含您使用的启动文件,SystemInit函数在system_LPC13xx.c中定义)