编写STM32项目遇到的报错

发布者:SerendipityLove最新更新时间: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项目  报错  新建项目  编译 引用地址:编写STM32项目遇到的报错

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

推荐阅读最新更新时间:2024-11-11 15:53

USE_STDPERIPH_DRIVER, STM32F10X_HD说明
如果在STM32工程编译时没有添加USE_STDPERIPH_DRIVER, STM32F10X_HD时会出现如下错误: ..\library\cortex_m3\stm32f10x.h(96): error: #35: #error directive: Please select first the target STM32F10x device used in your application (in stm32f10x.h file) 这时候我们需要在 Target Options 中的 C/C++ 选项卡中添加USE_STDPERIPH_DRIVER、STM32F10X_HD。这样才能使编顺利通过。 那么这个错
[单片机]
USE_STDPERIPH_DRIVER, STM32F10X_HD说明
PIC18FxxJxx HID Bootloader移植以及编译的经验之谈
一、移植参考资料: microchip官方提供的MLA,本人下载的是版本是V2018_11_26,主要参考资料路径如下(版本若是老一点的也没问题,我比较了V2016_11_07,在HID bootloader应用方面的例程代码是完全一样的): (1)参考例程:microchipmlav2018_11_26appsusbdevicebootloadersfirmwarepic18fxxjxxpic18f_starter_kit.x (2)文档:microchipmlav2018_11_26dochelp_mla_usb.pdf(章节1.6.3)、microchipmlav2018_11_26appsusbdevicebootload
[单片机]
PIC18FxxJxx HID Bootloader移植以及<font color='red'>编译</font>的经验之谈
C51编译器-语言扩展(4)-函数
Function Declarations函数声明 Cx51对标准C进行了一定的扩展,使用这些扩展可以: (1)把一个函数声明为一个中断过程 (2)选择使用的寄存器组 (3)选择存储器模式 (4)声时可重入 (5)声明外部函数 在函数声中包含这些扩展或属性,使用下面的方法声明Cx51函数 funcname ( ) 这里 return_type 返回值类型 funcname 函数名称 args 参数 small, compact, or large 存储器模式 reentrant 是否可重入 interrupt 是否是中断函数 using
[单片机]
STM32之_keil编译内存大小解析
Program Size: Code=28784 RO-data=6480 RW-data=60 ZI-data=3900 的含义 1. Code: 程序所占用的FLASH大小,存储在FLASH. 2. RO-data: Read-only-data,程序定义的常量,存储在FLASH中。 3. RW-data:Read-write-data,已经被初始化的变量,存储在SRAM中。 4. ZI-data:Zero-Init-data,未被初始化的变量,存储在SRAM中。 简单的说就是在烧写的时候是FLASH中的被占用的空间为: ROM(Flash) size = Code+RO-data+RW-data; 上面代码大小
[单片机]
<font color='red'>STM32</font>之_keil<font color='red'>编译</font>内存大小解析
KEILC51编译ERROR L104
c/c++语言中有很多地方要用到extern,但是如果没有真正的了解它的意义,会给编程带来很大的麻烦,为了使大家少走弯路,特祥细的说明一下。 对于比较小的程序,一般只有一个c文件和一个头文件,全局变量我们通常会直接定义在c文件中,在程序之前加int i定义。如果要在头文件中定义有以下两种方法:用extern来声明:extern int i;这一句只是对变量i进行声明,在c文件的程序之前必须加上int i进行定义。extern int i=0;这一句声明和定义都做了。 对于大一点的程序,有很多c文件和头文件,这个时候全局变量就必须在头文件中声明(不需要初始化),然后在一个c文件中定义(该初始化的要初始化)。如果在头文件中定
[单片机]
三星S3C6410(ARM1176)平台Android资源获取与编译(RedHat AS5)
1. Android的一些有用的官方网站: http://android.git.kernel.org android源码网站 http://source.android.com http://code.google.com/android http://developer.android.com 2. 安装git源码管理工具 # cd ~ # mkdir bin # echo $PATH # curl http://android.git.kernel.org/repo ~/bin/repo # chmod a+x ~/bin/repo git下载源码方法: 下载一个tree(至当前路径): # git clone
[单片机]
Android 13早期编译版本:揭示诸多细节体验的调整
尽管Android 12尚未普及,但这并不妨碍 Google启动下一重大版本的开发工作。按照计划,该公司会在2022年夏季宣布 Android 13,然后向全球测试人员开放早期体验。 然而在圣诞节前,XDA 已经抢先分享了泄露出来的 Android 13早期编译版本,并且指出了一些有趣的变化。 (来自: XDA-Developers ) 代号为“提拉米苏”(Tiramisu)的 Android 13,预计将引入额外的可自定义锁屏选项,比如用户可选择占据一行或两行的时钟显示、 Android 13还将包含一些有关 应用程序 推送通知的变更,改进后的权限管理,专门针对想要发送通知的应用程序,比如在每次启动 App 时都必须授予
[手机便携]
Android 13早期<font color='red'>编译</font>版本:揭示诸多细节体验的调整
交叉编译Python-2.7.13到ARM(aarch32)平台
环境 主机: ubuntu14.04 64bit 开发板: qemu + vexpress-a9 (参考: http://www.cnblogs.com/pengdonglin137/p/6442583.html) 工具链: arm-none-linux-gnueabi-gcc (gcc version 4.8.3 20140320) Python版本: Python-2.7.13 回到顶部(go to top) 参考 http://www.41443.com/HTML/Python/20151105/414154.html http://www.cnblogs.com/tolimit/p/4519838.ht
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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