你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

罕见编译的warrning!

[复制链接]
lebment 提问时间:2018-12-28 20:20 /
本帖最后由 lebment 于 2018-12-29 11:24 编辑

Code symbol free defined in non executable section main.o(.data).  这个warnning 具体是什么原因?

FatFs    CubeMX 5.0生成的代码。MDK最新版编译环境


我只是想问问这种报错,有没有遇到过的,我头一次遇到这种,工程可以运行,想一起讨论这是那些可能的原因造成。
所以我并不想解决这个错误在我的工程里面是怎么来的,想弄明白这个warnning 的可能原因,仅此而已!  


已解决!

收藏 评论14 发布时间:2018-12-28 20:20

举报

14个回答
watershade 回答时间:2018-12-29 11:58:43
本帖最后由 watershade 于 2018-12-29 12:06 编辑

直接翻译的话是说:你有符号free定义在非代码执行段。
你的这个警告编号应该是:L6171W (Code symbol <symname> defined in non executable section <secname>)
你的原文是:Code symbol free defined in non executable section main.o(.data)
所以free是symname, secname 是main.o(.data)
这个警告是armlink发现的。应该发生在链接阶段。你先找一下free这个变量你是怎么定义的。
(怎么会有人敢用free来做变量名?)

可以查看这里这里
很奇怪,我没有找到关于这一条警告的详细文档。你应该还用的Arm Compiler 5的版本的keil吧。我再Arm Compiler6里面没有查到。你试着打开你的keil上面的help文档,查找一下这里:
keil.jpg

评分

参与人数 2ST金币 +1 蝴蝶豆 +2 收起 理由
xiaobaimaoyou + 1 很给力!,问题解决了
STMCU + 2

查看全部评分

TLLED 回答时间:2018-12-28 21:34:42
什么编译器,编译出来的结果,全部提示是什么
七哥 回答时间:2018-12-29 00:15:15
本帖最后由 toofree 于 2018-12-29 00:18 编辑

工程设置或代码问题,你没个工程,说这个有意义吗?
这个警告只是表象,说明生成main.o时可能有些东西不符合套路,真正的问题不在这。
STM1024 回答时间:2018-12-29 08:14:43
你是不是在startup里面加了点料?
tanic 回答时间:2018-12-29 10:42:04
RT:/
56.jpg
13.png
lebment 回答时间:2018-12-29 10:53:52
TLLED 发表于 2018-12-28 21:34
什么编译器,编译出来的结果,全部提示是什么

MDK,这就是全部提示。103RBT6,Fafts 加FreeRTOS 报错。
lebment 回答时间:2018-12-29 10:57:34
toofree 发表于 2018-12-29 00:15
工程设置或代码问题,你没个工程,说这个有意义吗?
这个警告只是表象,说明生成main.o时可能有些东西不符 ...

大佬可以告诉我表象之下更深层次的原因吗?展开分析一下,对以后社区同样问题的人也有帮助!
lebment 回答时间:2018-12-29 10:59:07

这是个warning ,我问的就i是warnning,好比我问裤子破了个洞,讨论一下,这个洞怎么来的,可能的原因。
lebment 回答时间:2018-12-29 11:02:41
stm1024 发表于 2018-12-29 08:14
你是不是在startup里面加了点料?

没有吧,改了stack heap而已啊。
lebment 回答时间:2018-12-29 22:54:25
watershade 发表于 2018-12-29 11:58
直接翻译的话是说:你有符号free定义在非代码执行段。
你的这个警告编号应该是:L6171W (Code symbol  defi ...

大佬正解,小弟佩服,free是我移植原子SPI接口 SD卡,查询剩余容量的变量。果然社区是有高人的!
watershade 回答时间:2018-12-30 11:31:53
lebment 发表于 2018-12-29 22:54
大佬正解,小弟佩服,free是我移植原子SPI接口 SD卡,查询剩余容量的变量。果然社区是有高人的! ...

我可不是什么高人。解决了就好
ChenStarZi 回答时间:2019-5-1 10:45:35
watershade 发表于 2018-12-29 11:58
直接翻译的话是说:你有符号free定义在非代码执行段。
你的这个警告编号应该是:L6171W (Code symbol  defi ...

和你的头像人物一样聪明
edmundlee 回答时间:2019-5-1 13:00:56
c11的编译器对格式及强制转换都加了很多限制, 拿个C99编译通过的用C11再编译一次都会一堆警告。
我猜楼主的这条警告是因为用了函数指针数组的原因吧, 只是猜
xiaobaimaoyou 回答时间:2019-12-30 10:34:47
感谢,解决问题,真有个变量叫 free

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版