STM32编译错误汇总(一)

  1. error: L6236E: No section matches selector - no section matche&nbs
    没有添加启动文件 startup.

  2. 移植STM32程序失败
    检查Target中 Use Cross-Module Optimization 和 Use MicroLIB 有没有勾选上。

  3. FCARM - Output Name not specified, please check ‘Options for Target - Utilities’
    看看添加的lib文件是不是 lib后缀名,或者说编译器是否把它识别为lib文件,
    往项目管理器添加文件的时候,文件类型是不是手滑 选成了Image file

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

    添加system_stm32f10xm.c

  5. STM32运行时有时候会卡在 LDR R0,= LDR SystemInit
    出现最多的情况就是设置的断点过多,可以把断点全部删除试试看,把断点设置在主函数。
    在程序中使用了C库(printf),那么进入Option —target 将 use microLib 勾选上。
    硬件原因,主芯片,或者晶振有问题,更换一下就好了

  6. MDK5 每次编译都全部重新编译
    (1)通过TARGET 选项卡下 use Cross-Module Optimization 的勾去掉试试。
    (2)而只要MDK工程和输出文件(就是战舰板说的OBJ文件夹,里面存放编译中间生成的各种零时文件)在同一个文件夹下,就不用全部编译.
    比如,我们工程新建在USER文件夹里面,只要输出文件全部在USER里面,就不用每次都全编译.
    而如果不在USER文件夹,比如在USER上一文件夹新建一个OBJ文件夹存放中间文件,那么就必定每次都要全编译.(By 原子哥)。

  7. Stm32使用JILK下载程序不能直接运行,需要按复位键才能运行
    看看Rerst and Run 是否勾选。

  8. Keil4 编译时出现RL-ARM is not allowed with this license
    最近在用MDK编译一个别人的工程时,有如上提示:
    原因是没有注册Real-Time OS;
    解决方法:打开MDK的注册机,按如上所设,再生成一个序列号,注册Real-Time OS;
    注:CID从MDK的file->license Management中复制得来,点击Generate,生成序号,添加进去。
    OK!问题解决……

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

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

  11. ADS1.2和KEIL会存在冲突的问题 L6411E: No compatible library exists with a definition of startup symbol __main.
    电脑点击属性—>高级—>环境变量—->系统变量,增加环境变量名: ARMCC5LIB 变量值:C:\Keil\ARM\ARMCC\lib(keil的安装目录,视您的安装情况更改)

你可能感兴趣的:(STM32,stm32)