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

32Kbytes Flash,6Kbytes SRAM,可以运行多大的hex ?

[复制链接]
myfocus-2048857 提问时间:2016-11-5 16:46 /
见附图
MCU为 STM32F042C6T6,32Kbytes Flash,6Kbytes SRAM。

请问,使用MDK5.20生成 10Kbytes 的hex,可以 在该MCU上 正常运行吗 ?

谢谢 !

附图
111.png

收藏 1 评论16 发布时间:2016-11-5 16:46

举报

16个回答
小丁 最优答案 回答时间:2016-11-6 15:10:22

在Keil中编译工程成功后,在下面的Bulid Ouput窗口中会输出下面这样一段信息:
Program Size: Code=6320  RO-data=4864  RW-data=44  ZI-data=1636  

代表的意思:
Code :是程序中代码所占字节大小
RO-data :程序中所定义的指令和常量大小 (个人理解 :Read Only)
RW-data :程序中已初始化的变量大小 (个人理解”:Read/Write)
ZI-Data :程序中未初始化的变量大小 (个人理解 :Zero Initialize)





ROM(Flash) size = Code+RO-data+RW-data;

RAM size = RW-data+ZI-data

可以通过.map查看占用的flash和ram大小

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

任风吹吹 最优答案 回答时间:2016-11-7 12:06:57
本帖最后由 任风吹吹 于 2016-11-7 12:08 编辑

ROM:read only memory,也就是楼上众多人所说的code+RO data,这部分是占着FLASH的,但RW-DATA,与ZI-data可是使用的RAM,RW-Data,可读写数据,放在FLASH中可能么?实际上它指的是一些静态数据,比如,全局变量,局部静态变量。而ZI是指未初始化数据,也是在RAM中,在程序运行时才会分配RAM空间给它,至于局部变量,那是放在栈内,在S文件中就定义了栈大小和堆大小,在编译器编译时就决定了其地址范围。

MAP文件在IAR中和KEIL中都有,指的就是后缀为.map的文件,KEIL默认在输出目录下,使用记事本就可以打开,它详细定义了各个函数,变量在编译后所对应的地址以及所占空间大小。


拿走不谢!

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

zhangxu56726 回答时间:2016-11-5 17:02:29
yes, the hex can be runed.
sodafordeath 回答时间:2016-11-5 18:44:01
运行需求不是这么看的....你在编译链接完后可以看到程序占用的空间.
"rogram Size: Code=8606 RO-data=1746 RW-data=56 ZI-data=1632  "
笑鸟007 回答时间:2016-11-5 21:10:41
牛人解答
myfocus-2048857 回答时间:2016-11-5 22:07:53
本帖最后由 myfocus-2048857 于 2016-11-6 13:21 编辑
sodafordeath 发表于 2016-11-5 18:44
运行需求不是这么看的....你在编译链接完后可以看到程序占用的空间.
"Program Size: Code=8606 RO-data=1 ...

谢谢大侠指点 !

见附图,为uVision V5.20.0.0的编译信息:
Program Size: Code=3336 RO-data=224 RW-data=24 ZI-data=1088  

我的理解如下:
3336 + 224 + 24 + 1088 = 4,672 bytes
也就是说:程序对flash的需求是 4,672bytes( STM32F042C6T6 的flash为32Kbytes),因此,flash够用。
(不知我的理解是否正确,还请大侠 轻拍、指点!)

请教:
如何知道SRAM 是否 够用呢 ?

附图
112.png

peter001 回答时间:2016-11-6 00:14:07
window 资源管理器看到的文件大小 与 实际在 芯片中代码大小是不同的,这个要注意哈,要看编译器给出的尺寸大小
assssdz 回答时间:2016-11-6 04:23:03
:)
没事逛荡 回答时间:2016-11-6 12:06:48
myfocus-2048857 发表于 2016-11-5 22:07
谢谢大侠指点 !

见附图,为uVision V5.20.0.0的编译信息:

肯定可以的,你查下code、RO、RW、ZI占的空间,就清楚了。
或者看下Map文件,里面各个变量都有详细的分布。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

没事逛荡 回答时间:2016-11-6 12:07:58
myfocus-2048857 发表于 2016-11-5 22:07
谢谢大侠指点 !

见附图,为uVision V5.20.0.0的编译信息:

还有,Flash 的理解是不对滴....
pener 回答时间:2016-11-7 09:03:27
转为BIN文件就知道占多少空间了
myfocus-2048857 回答时间:2016-11-7 09:04:20
小丁 发表于 2016-11-6 15:10
在Keil中编译工程成功后,在下面的Bulid Ouput窗口中会输出下面这样一段信息:
Program Size: Code=6320   ...

谢谢大侠!明白了
原田夜舞love 回答时间:2016-11-7 09:33:55
学习了!
五哥1 回答时间:2016-11-7 11:43:31
如何打开MAP?
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版