【问题标题】:Missing SystemInit function from LPC1788 startup file? where can i find it?LPC1788 启动文件中缺少 SystemInit 函数?我在哪里可以找到它?
【发布时间】:2014-09-04 11:44:19
【问题描述】:

我正在使用带有 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 的新手...非常感谢。

【问题讨论】:

标签: c embedded keil


【解决方案1】:

它是这个文件中的IMPORT 符号——它是在别处定义的。

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

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

【讨论】:

    【解决方案2】:

    取决于您安装 Keil 的位置。

    这是我电脑里的地址:

    D:\Program Files\keil\ARM\INC\NXP\LPC17xx

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

    D:\Program Files\keil\ARM\Startup\NXP\LPC17xx

    (这里包含你使用的启动文件,SystemInit函数在这里定义在system_LPC13xx.c中)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-14
      • 1970-01-01
      • 1970-01-01
      • 2015-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多