myfocus-2048857 发表于 2016-11-5 16:46:08

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

见附图
MCU为 STM32F042C6T6,32Kbytes Flash,6Kbytes SRAM。

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

谢谢 !

附图


小丁 发表于 2016-11-6 15:10:22


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

任风吹吹 发表于 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默认在输出目录下,使用记事本就可以打开,它详细定义了各个函数,变量在编译后所对应的地址以及所占空间大小。


拿走不谢!:lol

zhangxu56726 发表于 2016-11-5 17:02:29

yes, the hex can be runed.

sodafordeath 发表于 2016-11-5 18:44:01

:L运行需求不是这么看的....你在编译链接完后可以看到程序占用的空间.
"Program 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 是否 够用呢 ?

附图


peter001 发表于 2016-11-6 00:14:07

window 资源管理器看到的文件大小 与 实际在 芯片中代码大小是不同的,这个要注意哈,要看编译器给出的尺寸大小

asssdz-382474 发表于 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文件,里面各个变量都有详细的分布。

没事逛荡 发表于 2016-11-6 12:07:58

myfocus-2048857 发表于 2016-11-5 22:07
谢谢大侠指点 !

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


还有,Flash 的理解是不对滴....
页: [1] 2
查看完整版本: 32Kbytes Flash,6Kbytes SRAM,可以运行多大的hex ?