文档简介
一个ARM程序包含3部分:RO,RW和ZI。RO是程序中的指令和常量;RW是已初始化变量;ZI是未初始化变量。ARM的映像文件就是可烧写到ROM/FLASH中的文件,包括bin和hex两种格式。在AXD中调试的.axf文件,是在bin文件中加了一个文件头和一些调试信息。映像文件一般由域组成,域最多由三个输出段组成(RO,RW,ZI)组成。所谓域,指的就是整个bin映像文件所处在的区域,它又分为加载域和运行域。加载域就是映像文件被静态存放的工作区域,一般来说flash里的整个bin文件所在的地址空间就是加载域,当然在程序一般都不会放在flash里执行,一般都会搬到RAM中运行(RW和ZI必须搬到RAM中运行)以加快速度,它们在被搬到RAM中所处的地址空间就是运行域。我们输入的代码,一般有代码部分和数据部分,这就是所谓的输入段,经过编译后就变成了bin文件中RO,RW,ZI,这就是输出段。对于加载域中的输出段,一般来说RO段后面紧跟着RW段,RW段后面紧跟着ZI段。在运行域中这些输出段并不连续,但RW和ZI一定是连着的。ZI段和RW段中的数据其实可以是RW属性。所以RO中的程序至少要将RO中的RW搬到RAM中,将ZI所在的RAM区域全部清零,RW和ZI都是变量,变量不能存在ROM中。
评论
加载更多
推荐下载
查看更多
精选文集
相关视频
推荐帖子