编写STM32项目遇到的报错

2019-07-23来源: eefocus关键字:STM32项目  报错  新建项目  编译

1.Undefined symbol SystemInit(未定义符号SystemInit)


新建项目并编译后遇到以下的错误:


..OutputLED.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f429_439xx.o).


错误分析:从括号里面的内容可以知道:这个错误在 startup_stm32f0xx.o 这个文件里面被提及到,所以我们只需要在工程里面找到对应的.s或者.c文件即可(此错误对应的文件为startup_stm32f429_439xx.s)。


这个文件是STM32的启动文件,在此文件中可以找到SystemInit所在:



此时可以发现:在startup_stm32f429_439xx.s文件中,调用了SystemInit这个函数,而这个函数在.s文件里面没有定义。 


解决方法:


(1)在工程项目当中任意一个.c文件中加入SystemInit函数的定义,空函数即可。


void SystemInit()

{

//do nothing 

}

 (2)注释调用的代码段。注意这是汇编程序,注释用 “;”


   SystemInit 是在使用main前做一些初始化工作,如果不需要官方的库,只是自己编写一些简单的应用,则可以把此函数禁掉。


Reset_Handler   PROC

                EXPORT  Reset_Handler             [WEAK]

                IMPORT  __main

;               IMPORT  SystemInit

;               LDR     R0, =SystemInit

;               BLX     R0               

                LDR     R0, =__main

                BX      R0

                ENDP

 


2.No such file or directory(没有这样的文件或目录)


在编译过程中遇到以下的错误:


D:Keil_v5ARMPACKKeilSTM32F1xx_DFP2.2.0DeviceIncludestm32f10x.h(483): error:  #5: cannot open source input file "core_cm3.h": No such file or directory


..Userstm32f10x_it.c(26): error:  #5: cannot open source input file "usart.h": No such file or directory


错误分析:这些错误是由于在工程里没有包含这些文件(换个说法就是在工程路径里找不到这些文件),所以解决这些错误的做法是把这些文件所在的路径包含进来。


解决方法:


在keil软件中:选择“花棒”--“c/c++”,按照下图操作将文件所在路径包含到项目里,重新编译


关键字:STM32项目  报错  新建项目  编译

编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic468826.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32F103移植uCOS-III,keil4调试卡在CPU_TS_TmrRd函数过不去
下一篇:STM32--Error: L6218E: Undefined symbol

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

如何在linux环境下使用gcc进行stm32项目开发

背景我之前一直是从事单片机相关的开发工作,对于STM32平台的开发,都是在keil中进行的。后来转为搞linux相关的开发了,发现开发工具是大大的不同,linux下的开发都是makefile+gcc+gdb,写代码也是用sourceInsight,代码的编译也是在服务器上进行的,没有了集成开发环境,当对这样的开发模式逐渐熟悉之后才发现Makefile真的很强大,开发效率高,对底层细节也是掌握了很多,弥补了不少盲区。keil工具虽然十分方便,但对于开发人员来说,隐藏了太多的细节,灵活性不高,对于高级应用显得力不从心了。因此在习惯了linux平台的开发之后,我萌生了一个想法:在linux下进行stm32的开发,这里涉及到的开发环境
发表于 2019-07-31
如何在linux环境下使用gcc进行stm32项目开发

创建第一个stm32项目工程常见错误警告

.ObjectsLightOneLed.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_hd.o).意思是SystemInit这个函数未定义(在startup_stm32f10x_hd.o引用)。在外部(其他任何.c文件里面)定义SystemInit这个函数,哪怕是个空函数也可以。void SystemInit(){ }usermain.c(26): warning:  #1-D: last line of file ends without a newlineint main(){ RCC_APB2ENR
发表于 2019-07-23

STM32CubeMx(Keil5)开发之路——1配置第一个项目

运行环境Windows10STM32CubeMX___Version 5.0.0Keil5(MDK5)___Version 5.15简介本例程主要搭建第一个项目,并且完成最基本的项目所需配置,后续的教程都基于这篇教程。STM32CubeMx配置新建项目搜索自己芯片的型号点击选择封装形式选择外部晶振可以根据需求调节各个总线的时钟频率(就具体情况而定)DEBUG选项选择"Serial Wire"(4线烧录,CLK,DIO,VCC,GND)你会看到芯片引脚会占用这几个引脚,就是烧录用的CLK和DIO点击"Project Manager"修改项目名称修改项目保存路径选择编写工具(我使用Keil5
发表于 2019-06-18
STM32CubeMx(Keil5)开发之路——1配置第一个项目

在STM32项目中使用SysTick实现延时(STM32_06)

。① 为SysTick设置时钟源在STM32的库函数文件中有"misc.h"头文件和"misc.c"程序文件定义了相应的宏和库函数。在"misc.h"头文件有定义:#define SysTick_CLKSource_HCLK_Div8    ((uint32_t)0xFFFFFFFB)#define SysTick_CLKSource_HCLK         ((uint32_t)0x00000004)在"misc.c"程序文件定义函数void SysT
发表于 2019-05-29

STM32F0项目进阶之实时时钟DS1307

写在前面的话:STM32F0项目进阶系列是硬件系统工程师星克曼以项目进阶的方式写出的入门教程,以项目开发为蓝底,快速学习进入实战。STM32 I2C总线在上一讲 STM32F0项目进阶之I2C 中已经讲过了,已经将标准库抽象成hal_i2c.c和hal_i2c.h了,下面的就是适配不同的芯片了,这次我们适配一下DS1307。芯片手册如下:www.maximintegrated.com/en/DS1307.pdf电路配置 引脚图如下:   引脚描述如下: 电路配置如下: BCD格式 注意:时间和日期的格式均是BCD格式的。上电工作 上电即可以工作
发表于 2019-05-14
STM32F0项目进阶之实时时钟DS1307

小熊arm学习总结:iar7.3建立工程报错

方法一.STM32工程 从IAR6.0 转到 IAR6.3用IAR6.3打开IAR6.0 的工程,编译的时候出现提示错误:extern uint32_t __get_PSP(void); 已经在C:Program FilesIAR SystemsEmbedded Workbench 6.0arminccintrinsics.h文件中定义extern uint32_t __get_MSP(void);已经在C:Program FilesIAR SystemsEmbedded Workbench 6.0arminccintrinsics.h文件中定义 。。。。。。这是由于IAR6.3已经加入了CM3的内核定义,就不需要ST库中的core
发表于 2019-08-15

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved