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

基于STM32G030 RAM不够用经验分享

[复制链接]
攻城狮Melo 发布时间:2023-4-3 20:25
STM32G030C8T6 CUBEMX+FREERTO RAM不够用4 i# l) w: h0 V  |; c6 P2 {8 _& S
找到工程目录下…\MDK-ARM\stm32g030c8t6 下面会有一个.map文件打开。
: {7 i: Y, l" y% u( }% I% \找到 Image component sizes; S" Y" \: ^! }, D# M+ P0 A

+ B+ n2 N4 S. y1 g
10ab897927e94e679b81f5ba59dec7d0.png
6 \$ R# g  q. o3 P7 Y4 e4 p; [9 i& m2 [6 u3 x. o7 e

& h6 H2 d& x6 J9 i* }可以看到各个object name所占用的大小 ZI Date就是RAM占用大小。
9 C, Q$ m, i# y/ n3 c: W( k& A————————————————( c% x) n7 p0 C8 f0 Y' |
版权声明:xiaoqi976633690
! s8 Z: l' c% i; M3 \# i+ H如有侵权请联系删除
  J# l. n% S, o! U5 T
7 ~' h; Z& J) w& ?4 T# r
赞 收藏 评论1 发布时间:2023-4-3 20:25

举报

1个回答
watershade 回答时间:2023-11-10 14:20:25

很抱歉你的分享实际是错误的:

RO-data 代表只读数据(Read Only),程序中所定义的全局常量数据和字符串都位于此处。
Code 代表执行的代码,程序中所有的函数都位于此处。
RW-data 代表已初始化的读写数据(Read Write),程序中定义并且初始化的全局变量和静态变量位于此处。
ZI-data 代表未初始化的读写数据(Zero Initial),程序中定义了但没有初始化的全局变量和静态变量位于此处。
怎么计算ROM(Flash)和RAM占用的空间大小呐?
其实map文件中已经描述了:
Total RO Size(Code + RO data):xxx
Total RW Size(RW + ZI data): xxx
Total ROM Size(Code + RO Data + RW Data):xxx


其实RW部分的数据在RAM和ROM中都占空间,ZI占据了RAM空间(不需要初始化),CODE和RO都只占据Flash/ROM空间。

实际上RAM需要的空间不止上面那一些。你动态申请的空间在上面其实没有呈现。比如你定义了一个指针指向一片动态申请的内存就会占用额外空间。

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版