硬汉嵌入式论坛

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

[技术讨论] 请教一个问题,为什么图片数据,将const删除后,占用的rom变小了,程序正常

[复制链接]

4

主题

12

回帖

24

积分

新手上路

积分
24
发表于 2025-5-14 16:35:05 | 显示全部楼层 |阅读模式






回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115988
QQ
发表于 2025-5-15 07:16:14 | 显示全部楼层
const占用的flash空间,删掉后,占用ram空间
回复

使用道具 举报

42

主题

1024

回帖

1155

积分

至尊会员

积分
1155
发表于 2025-5-15 09:24:30 | 显示全部楼层
eric2013 发表于 2025-5-15 07:16
const占用的flash空间,删掉后,占用ram空间

我突然想到,虽然数据放到了ram中,但是其初始值也需要保存在rom中,并在__main中复制到ram中。这么看来,rom占用不应该减少才对。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115988
QQ
发表于 2025-5-15 09:37:11 | 显示全部楼层
ghslfgkkl88 发表于 2025-5-15 09:24
我突然想到,虽然数据放到了ram中,但是其初始值也需要保存在rom中,并在__main中复制到ram中。这么看来 ...

这个是的。这个有个加载域和执行域的问题。这个加载域要在flash里面,他这个减小,我估计是重新编译存储位置导致的
回复

使用道具 举报

3

主题

73

回帖

82

积分

初级会员

积分
82
发表于 2025-5-15 12:18:42 | 显示全部楼层
ram数据是会压缩的。编译器会把data段压缩,然后在main启动前解压到对应的data段。尤其是开了LTO后,数据减少更明显。
参考keil5
回复

使用道具 举报

42

主题

1024

回帖

1155

积分

至尊会员

积分
1155
发表于 2025-5-15 13:34:06 | 显示全部楼层
kingdjh 发表于 2025-5-15 12:18
ram数据是会压缩的。编译器会把data段压缩,然后在main启动前解压到对应的data段。尤其是开了LTO后,数据减 ...

原来是会压缩的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115988
QQ
发表于 2025-5-16 08:19:29 | 显示全部楼层
kingdjh 发表于 2025-5-15 12:18
ram数据是会压缩的。编译器会把data段压缩,然后在main启动前解压到对应的data段。尤其是开了LTO后,数据减 ...

谢谢分享
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-1 18:46 , Processed in 0.434913 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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