2014-09-04 55 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啓動文件)理解過程的

相關問題