Chinaunix首页 | 论坛 | 博客
  • 博客访问: 17627
  • 博文数量: 2
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 22
  • 用 户 组: 普通用户
  • 注册时间: 2015-07-30 10:23
文章分类
文章存档

2015年(2)

我的朋友

分类: 嵌入式

2015-07-30 19:35:05

当我们在编译ARM程序时,最终编译器会报告程序的大小:RO,RW,ZI,那么这些都是什么意思呢?
    首先要知道的是程序(image)在ROM中就和文件在硬盘中一样的,由两部分组成,RO+RW,就是只读段和数据段,只读段又包含代码和常量,当系统启动,执行ROM中的代码,这时会将里面的数据(RW段)段搬运到RAM中,还有就是根据image文件中指定的ZI段(.bss段)中的起始地址和段大小,去清零RAM中的bss段。.bss段的起始地址和大小在程序连接阶段时就指定了。当这些工作完成后,才会去执行我们的代码的。全局变量的零初始化和未初始化都是放在bss段中的,这样的话就不会占用文件的大小了。
阅读(1834) | 评论(0) | 转发(0) |
0

上一篇:关于keilC51的printf函数的实用笔记

下一篇:没有了

给主人留下些什么吧!~~