看看MDK编译后显示:
Program Size: Code=9748 RO-data=392 RW-data=20 ZI-data=1228
1、Code、RO-data、RW-data、ZI-data这几个分别是什么?
Code:程序代码,存储在rom中; RO-data:只读数据,存储在rom中; RW-data:可读可写数据,既存储在ram中,也存储在rom中(RW-data已初始化的数据会存储在rom中,上电会从rom搬移至ram中); ZI-data:Zero Initialize,未初始化的数据,上电后在ram中划分一个区域统一存储,MDK会给默认赋值为0。
2、Code、RO-data、RW-data、ZI-data的关系是什么?
因此程序占用rom大小=Code+RO-data+RW-data =9748+392+20=10160=9.92K; 占用ram大小=RW-data+ZI-data =20+1228=1248 =1.22K。
3、map文件
从map文件中也可以看出:
通过以上可以看出,RAM除了heap、stack外,还有ZI-Data、RW-Data区域。