解决STM32CubeMX-Keil MDK报错error: L6236E: No section matches selector – no section to be FIRST/LAST问题

1.报错过程

学习正点原子HAL库开发教学视频时跟随操作出现,对应如下链接视频P35。

【【正点原子】手把手教你学STM32 HAL库开发全集【真人出镜】STM32入门教学视频教程 单片机 嵌入式】 第35讲 基础篇-新建STM32CubeMX工程步骤_哔哩哔哩_bilibili

软件版本:

STM32CubeMX 6.3.0
Keil MDK 5.36

2.报错原因

error: L6236E: No section matches selector – no section to be FIRST/LAST.

翻译:错误:L6236E:没有节与选择器匹配-没有节是第一个/最后一个。

这是在编译时发现的Error,其实使用STM32CubeMX生成Project工程文件时也会出现报错提示:

but MDK-ARM V5.32project generation have a problem.

只不过当时开倍速看视频没有注意到这个操作的不同,所以一定要仔细看视频操作!


出现这个错误的原因是没有驱动文件,也就是缺少后缀为.s的文件,与本工程对应的文件为startup_stm32f103xe.s

也就是下面的文件:

 错误原因有以下两种:

①跟随视频操作失误

可能出现遗漏或操作失误情况,这种情况要多次对比操作是否正确,排除这种错误方式才能确定是下面的问题。

②路径过深或者中文路径

首先确保跟随视频操作正确,无遗漏或误操作情况。

如果操作正确,依旧出现这种错误,则可能是因为路径深浅原因导致,或者不同版本的STM32CubeMX版本对于中文的兼容性不一致。

此前学习正点原子视频时,有说过Keil的MDK不同版本对中文的兼容性不一致,路径过深或者中文路径可能导致异常,没想到STM32CubeMX也有这种问题。

因此建议统一都用英文路径,并且不要设置过深的路径,从根本上杜绝路径问题这种可能


3.解决方法

解决方法如下:

方法①:

不管是什么原因引起的报错,将启动文件添加至对应Project即可,操作如下:

 

注意文件后缀为.s

PS:如果是从官网下载下的.s文件需要注释掉如下图所示的三行不然会报另一个link错误 -> “undefined symbol…”,这点正点原子教学视频中有讲到。

方法②:

如果是路径问题则把路径改好,重新生成,永绝后患。


参考文章:

http://t.csdn.cn/NVEm1

http://t.csdn.cn/nhGOj


作者:王家寧

物联沃分享整理
物联沃-IOTWORD物联网 » 解决STM32CubeMX-Keil MDK报错error: L6236E: No section matches selector – no section to be FIRST/LAST问题

发表评论