您的位置:首页 > 其它

keil中解决sct连接脚本告警和错误的一些方法

2016-09-23 06:18 148 查看
Keil中的sct连接脚本用户可以自己定义参数在flash中的位置,非常重要!

转载:http://www.openedv.com/posts/list/54873.htm

【问题现象1】

错误 ..\..\source\platform\board\stm32\lite\armcc\stm32-lite.sct(17): error: L6236E: No section matches selector - no section to be FIRST/LAST.

【问题原因1】

没有段与选择符匹配,指定为FIRST或LAST的段不存在,例如编译文件为 startup_stm32f10x_hd.s 实际在配置脚本中指定文件为 startup_stm32f10x_md.s

[C] 纯文本查看 复制代码

?
【解决方法1】

配置正确的段名或者替换正确的文件名:

[C] 纯文本查看 复制代码

?
【问题现象2】

错误..\..\objects\stm32-lite\stm32-lite.axf: Error: L6223E: Ambiguous selectors found for dc.o(!!!dc) from Exec regions RW_IRAM2 and
RW_IRAM3.

【问题原因2】

段未明确分配到某个region,该错误由于dc.o 中的段!!!dc没有明确指定分配到哪个Region,导致问题的配置:

[C] 纯文本查看 复制代码

?
【解决方法2】

将未指定的段配置到相应Region

[C] 纯文本查看 复制代码

?
【问题现象3】

..\..\source\platform\board\stm32\lite\armcc\stm32-lite.sct(28): warning: L6329W: Pattern *.o(!!!dc) only matches removed unused
sections.

【问题原因3】为解决问题2,为!!!dc配置到某个Region后出现该问题,分配到某个Region的段由于未被使用而移除,导致问题的配置:

[C] 纯文本查看 复制代码

?
【解决方法3】

为解决问题2加入!!!dc配置导致问题3,但是删除!!!dc的配置又会导致2,怎么解决呢?实际上该问题是由于配置了多个ROM/RAM后,有多个Region出现模糊配置。armcc只允许一个Region使用模糊配置,解决办法:删除 !!!dc的配置,并修改其他Region中的段及文件名完全匹配(将
RAM3 中的*.o改为正确的文件名。

[C] 纯文本查看 复制代码

?
【问题现象4】

..\..\source\platform\board\stm32\lite\armcc\stm32-lite.sct(34): warning: L6314W: No section matches pattern *.o(.UserRWdata2)..

【问题原因4】

指定的段不存在,导致问题的配置:

[C] 纯文本查看 复制代码

?
【解决方法4】

删除不存在的段,或者检查代码将其修改为正确的段名

[C] 纯文本查看 复制代码

?
或者修改C代码:

[C] 纯文本查看 复制代码

?
【完整配置】

[C] 纯文本查看 复制代码

?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: