硬汉嵌入式论坛

 找回密码
 立即注册
查看: 433|回复: 5
收起左侧

[IAR] 关于 iar for rl78 编译器禁止优化变量的问题

[复制链接]

73

主题

1199

回帖

1418

积分

至尊会员

积分
1418
发表于 2023-5-24 14:27:35 | 显示全部楼层 |阅读模式

尝试过__root keep,

__root const int UnusedData[10] = {1,2,3,4,5};

或者

const char copyright[] = "Copyright by me";
#pragma required=copyright

编译之后的hex文件大小没有变化,按照我的理解,应该这些变量在code区域,hex起码会增大啊

iar编译版本 3.10.1,优化等级medium

哪位大佬可以指点下


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106990
QQ
发表于 2023-5-24 16:04:18 | 显示全部楼层
建议生成看bin。

然后这种的定义方式,定义到RAM也是会存到Flash的,上电后加载到RAM里面。改成const存到Flash,同样。所以应该没什么区别
回复

使用道具 举报

73

主题

1199

回帖

1418

积分

至尊会员

积分
1418
 楼主| 发表于 2023-5-24 19:54:57 | 显示全部楼层
eric2013 发表于 2023-5-24 16:04
建议生成看bin。

然后这种的定义方式,定义到RAM也是会存到Flash的,上电后加载到RAM里面。改成const存 ...

可否举个例子啊。我这个单片机不一定可以用关键字flash
回复

使用道具 举报

73

主题

1199

回帖

1418

积分

至尊会员

积分
1418
 楼主| 发表于 2023-5-25 08:56:49 | 显示全部楼层
wdliming 发表于 2023-5-24 19:54
可否举个例子啊。我这个单片机不一定可以用关键字flash

我这边使用了这个编译器,没有任何变化,bin hex都是一样大小,添加了__root,照样被优化了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106990
QQ
发表于 2023-5-26 10:34:30 | 显示全部楼层
wdliming 发表于 2023-5-24 19:54
可否举个例子啊。我这个单片机不一定可以用关键字flash

你的const支持吧,这个就是存到Flash或ROM的
回复

使用道具 举报

73

主题

1199

回帖

1418

积分

至尊会员

积分
1418
 楼主| 发表于 2023-5-26 10:43:36 | 显示全部楼层
eric2013 发表于 2023-5-26 10:34
你的const支持吧,这个就是存到Flash或ROM的

我尝试过,但是根据你的意思,我看了bin文件,没啥变化的。。可能是这个rl78的 编译器的问题。iar arm的编译器就可以的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-13 10:25 , Processed in 0.161057 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表