2014-09-04 90 views
0

我使用Keil4的LPC1788微控制器,当我创建一个项目时,Keil添加了一个名为“startup_LPC177x_8x.s”的文件。在一个阶段,这个文件中的IMPORT命令试图导入SystemInit,但是当我编译,我得到一个错误如下:LPC1788启动文件中缺少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

可能重复罚款符号SystemInit(引用启动\ _stm32f2xx.o),而建设使用Keil STM32](http://stackoverflow.com/questions/12889732/undefined-symbol-systeminitreferred-from-startup-system32f2xx-o-while-building-us ) – Vicky 2014-09-04 12:26:38

回答

0

这是一个IMPORT符号在这个文件 - 这是它在别处定义。

它可能在一个名为system_LPC177x_8x.c或类似的文件中;它可能需要为您的项目定制设置PLL并初始化外部存储器接口以及其他与时钟相关的功能。

如果您在创建项目时要求包含启动文件,它通常会自动包含在您的项目中;否则它将在Keil ARM-MDK安装中的CMSIS目标特定支持文件夹中,在这种情况下,我猜测:CMSIS\CM3\DeviceSupport\NXP\LPC17xx\或类似的,准确的目录结构在CMSIS版本之间已经改变。

0

取决于您安装Keil的位置。

这里是在我的电脑地址:

d:\ Program Files文件\ KEIL \ ARM \ INC \ NXP \ LPC17xx

(这里包含了你使用的头文件)

d: \ Program Files文件\ KEIL \ ARM \启动\ NXP \ LPC17xx

(这里包含了你使用的SystemInit功能在这里被定义在system_LPC13xx.c启动文件)理解过程的

相关问题