[单片机芯片] 使用__attribute__((used)),MounRiver为什么还会优化?

[复制链接]
 楼主| yywyai 发表于 2021-8-10 09:56 | 显示全部楼层 |阅读模式
比如如下定义 const int eee __attribute__((used, section(".xxx"))) = 0; 程序中没有使用这个变量,会被MounRiver优化掉?是什么地方设置不对吗?
huquanz711 发表于 2021-8-10 18:27 来自手机 | 显示全部楼层
没有这样用过
qq172179 发表于 2021-8-10 19:43 | 显示全部楼层
被连接器去掉了,在ld文件中 .text段增加这个 keep(*(SORT_NONE(.xxx))),应该就可以了
 楼主| yywyai 发表于 2021-8-11 09:06 | 显示全部楼层
本帖最后由 yywyai 于 2021-8-11 09:07 编辑
qq172179 发表于 2021-8-10 19:43
被连接器去掉了,在ld文件中 .text段增加这个 keep(*(SORT_NONE(.xxx))),应该就可以了 ...

非常感谢,确实是连接器去掉了,在ld中增加       .xxx:
        {
                KEEP(*(SORT(.xxx)))
                . = ALIGN(4);
        } >FLASH AT>FLASH

就可以了
 楼主| yywyai 发表于 2021-8-11 17:27 | 显示全部楼层
发现在链接设置里面有一项 Remove unused sections,去掉勾选即可
tail066 发表于 2021-9-10 11:20 | 显示全部楼层
你们都是大神,讨论的问题都让我看不懂
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

55

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部

12

主题

55

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部