打印
[其他ST产品]

请问stm32程序编译后rom和ram出奇的大是为什么?

[复制链接]
299|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cr315|  楼主 | 2024-1-4 09:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
STM32f103系列,使用里malloc函数,导致编译后,.map文件显示的ram和rom容量增加,超过所有的stmf103系列,如图
但是程序下载进去后,执行正常。

使用特权

评论回复
沙发
捧一束彼岸花| | 2024-1-13 15:47 | 只看该作者
能运行就行,这个不是问题

使用特权

评论回复
板凳
西洲| | 2024-1-13 18:00 | 只看该作者
一般是代码没有优化,或者是代码变量定义的太多了

使用特权

评论回复
地板
风凉| | 2024-1-13 20:00 | 只看该作者
在程序中存在未使用的代码和数据,但编译器没有进行优化,将其从最终生成的可执行文件中删除。这些未使用的代码和数据会占用ROM和RAM的空间,导致大小增大。

使用特权

评论回复
5
白马过平川| | 2024-1-13 22:00 | 只看该作者
程序可能依赖于一些额外的库和依赖项,这些库和依赖项的代码和数据会被包含在最终的可执行文件中,导致ROM和RAM的大小增大。

使用特权

评论回复
6
故意相遇| | 2024-1-14 01:00 | 只看该作者
程序中的数据结构和变量可能比预期的要大,导致RAM的使用量增加。

使用特权

评论回复
7
温室雏菊| | 2024-1-14 03:00 | 只看该作者
可能是由于数据类型选择不当、对齐问题或者编译器的默认设置等原因引起的。

使用特权

评论回复
8
春日负喧| | 2024-1-14 05:00 | 只看该作者
编译器可能默认包含调试信息和符号表,用于调试和符号解析。这些信息会增加可执行文件的大小。

使用特权

评论回复
9
将爱藏于深海| | 2024-1-14 07:00 | 只看该作者
还是你优化的问题,看看你的编译器优化等级

使用特权

评论回复
10
她已醉| | 2024-1-14 11:00 | 只看该作者
删除未使用的代码就好了,也许编译出来的固件就不是这样了

使用特权

评论回复
11
失物招領| | 2024-1-14 15:00 | 只看该作者
感觉还是代码优化的问题,有可能是编译器优化开的不对,或者是代码写的有点乱了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1291

主题

3631

帖子

0

粉丝