×
单片机 > 单片机程序设计 > 详情

STM32编译错误汇总(一)

发布时间:2020-05-22 发布时间:
|

error: L6236E: No section matches selector - no section matche&nbs 

没有添加启动文件 startup.


移植STM32程序失败 

检查Target中 Use Cross-Module Optimization 和 Use MicroLIB 有没有勾选上。


FCARM - Output Name not specified, please check ‘Options for Target - Utilities’ 

看看添加的lib文件是不是 lib后缀名,或者说编译器是否把它识别为lib文件, 

往项目管理器添加文件的时候,文件类型是不是手滑 选成了Image file


XXX.axf: Error: L6218E: Undefined symbol xxx (referred from xxxx.o).


添加system_stm32f10xm.c


STM32运行时有时候会卡在 LDR R0,= LDR SystemInit 

出现最多的情况就是设置的断点过多,可以把断点全部删除试试看,把断点设置在主函数。 

在程序中使用了C库(printf),那么进入Option —target 将 use microLib 勾选上。 

硬件原因,主芯片,或者晶振有问题,更换一下就好了


MDK5 每次编译都全部重新编译 

(1)通过TARGET 选项卡下 use Cross-Module Optimization 的勾去掉试试。 

(2)而只要MDK工程和输出文件(就是战舰板说的OBJ文件夹,里面存放编译中间生成的各种零时文件)在同一个文件夹下,就不用全部编译. 

比如,我们工程新建在USER文件夹里面,只要输出文件全部在USER里面,就不用每次都全编译. 

而如果不在USER文件夹,比如在USER上一文件夹新建一个OBJ文件夹存放中间文件,那么就必定每次都要全编译.(By 原子哥)。


Stm32使用JILK下载程序不能直接运行,需要按复位键才能运行 

看看Rerst and Run 是否勾选。


Keil4 编译时出现RL-ARM is not allowed with this license 

最近在用MDK编译一个别人的工程时,有如上提示: 

原因是没有注册Real-Time OS; 

解决方法:打开MDK的注册机,按如上所设,再生成一个序列号,注册Real-Time OS; 

注:CID从MDK的file->license Management中复制得来,点击Generate,生成序号,添加进去。 

OK!问题解决……


Symbol SVC_Handler multiply defined (by hal_cm3.o and stm32f10x_it.o). 

函数名被重复定义,因为你使用了RTX,stm32f10x_it.c中这几个函数你必须注释掉,要不RTX就没法运行了,如果不能运行应该是你的程序有点问题,是不是RTX没有正常初始化啊,或者你没用RTX却挂了它的库,不知道你程序啥样的。


MDK Error:L6405E 

把options for target “” 中的C/C++选项中Execute-only Code的勾选去掉(原文见http://www.openedv.com/thread-84038-1-1.html)


ADS1.2和KEIL会存在冲突的问题 L6411E: No compatible library exists with a definition of startup symbol __main. 

电脑点击属性—>高级—>环境变量—->系统变量,增加环境变量名: ARMCC5LIB 变量值:C:KeilARMARMCClib(keil的安装目录,视您的安装情况更改)



关键字:STM32  编译错误  汇总 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
TQ210天嵌开发板S5PV210 LED闪烁程序C语言代码记录