Chinaunix首页 | 论坛 | 博客
  • 博客访问: 127933
  • 博文数量: 75
  • 博客积分: 1485
  • 博客等级: 上尉
  • 技术积分: 720
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-11 20:57
文章分类
文章存档

2011年(1)

2010年(15)

2009年(59)

我的朋友

分类: 嵌入式

2009-08-26 10:18:55

编译的一个ARM的程序,编译结果中的一句话

Program Size: Code=8044 RO-data=52 RW-data=56 ZI-data=5184

其中:

Code指存储到flash【Rom】中的程序代码,代码被系统添加了一部分初始化ZI的代码,编程者看不到这部分。

ZI英语是zero initial,就是程序中用到的,并且被系统初始化为0的变量的字节数,keil编译器默认是把你没有初始化的变量都赋值一个0,这些变量在程序运行时是保存在RAM中的。

RW是可读可写变量,就是初始化时候就已经赋值了的,RW + ZI就是你的程序总共使用的RAM字节数。

还有一个RO,这个是初始化的常量,但是这些值是被保存到Rom中的,就放在主程序后面,这样所写的程序占用的rom的字节总数就是Code + RO + RW。为什么Rom中还要存RW,还有ZI函数呢,因为掉电后RAM中所有数据都丢失了,每次上电RAM中的数据是被重新赋值的,每次这些固定的值就是存储在Rom中的。

阅读(600) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~