你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
查看全部评分
sodafordeath 发表于 2016-11-5 18:44 运行需求不是这么看的....你在编译链接完后可以看到程序占用的空间. "Program Size: Code=8606 RO-data=1 ...
myfocus-2048857 发表于 2016-11-5 22:07 谢谢大侠指点 ! 见附图,为uVision V5.20.0.0的编译信息:
小丁 发表于 2016-11-6 15:10 在Keil中编译工程成功后,在下面的Bulid Ouput窗口中会输出下面这样一段信息: Program Size: Code=6320 ...
在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大小
评分
查看全部评分
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默认在输出目录下,使用记事本就可以打开,它详细定义了各个函数,变量在编译后所对应的地址以及所占空间大小。
拿走不谢!
评分
查看全部评分
"
谢谢大侠指点 !
见附图,为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 是否 够用呢 ?
附图
肯定可以的,你查下code、RO、RW、ZI占的空间,就清楚了。
或者看下Map文件,里面各个变量都有详细的分布。
评分
查看全部评分
还有,Flash 的理解是不对滴....
谢谢大侠!明白了