Arm系统中常用的段分类说明_第1页
Arm系统中常用的段分类说明_第2页
Arm系统中常用的段分类说明_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Arm系统中常⽤的段分类说明.textcode)。它通常是只读的。.datainitailizedglobal)和初始化了的静static)。它是可读可写的。.bssuninitailizedglobal)和未初始化的静态变量staticbssBlockStartedbySymbolbssdatabss段的变量的初值清零。.rodataconst)。它也是只读的。ARM的集成开发环境中,1Code.text段。2、只ROData.constdata段。ROReadOnlyROMFLASH等⾮易失性器件中。3、可读可RWDataReadWrite).data段。4ZIDataZeroInit.bssZI段。段,⽽在运⾏时,它必须重新装载到可读可RAM中。⼀可执⾏⽂件组成及内存映射在ADS下,可执⾏⽂件有两种,⼀种是.axf⽂件,带有调试信息,可供AXD调试⼯具使⽤.另⼀种是.bin⽂件,可执⾏的⼆进制代码⽂件。我们重点是讲描.bin⽂件的组成。我们把可执⾏⽂件分为两种情况:分别为存放态和运⾏态。1.存放态存放态是指可执⾏⽂件通过fromelf产⽣后,在存储介质(flash或磁盘)上的分布.此时可执⾏⽂件⼀般由两部分组成:分别是代码段和数据段。代码段⼜分为可执⾏代码段(.text)和只读数据段(.rodata),数据段⼜分为初始化数据段(.data)和未初始化数据段(.bss)。可执⾏⽂件的存放态如下:+-------------+-----------|.bss|+-------------+--数据段|.data|+-------------+-----------|.rodata||_____________|代码段|.text|+-------------+-----------2.运⾏态可执⾏⽂件通过装载过程,搬⼊到RAM中运⾏,这时候可执⾏⽂件就变成运⾏态。在ADS下对可执⾏代码各段有另⼀个名称:|...|+-------------+-----------|.bss|ZI段+-------------+--数据段|.data|RW段+-------------+-----------|.rodata||_____________|代码段(RO段)|.text|+-------------+-----------|...|装载前当可执⾏⽂件装载后,在RAM中的分布如下:|...|+-------------+--ZI段结束地址|ZI段|+-------------+--ZI段起始地址|保留区2|+-------------+--RW段结束地址|RW段|+-------------+--RW段起始地址|保留区1|+-------------+--RO段结束地址|RO段|+-------------+--RO段起始地址|...|装载后所以装载过程必须完成把执⾏⽂件的各个段从存储介质上搬到RAM指定的位置。⽽这个装载过程由谁来完成呢?由我们的启动程序来完成.⼆装载过程在ADS中,可以通过两种⽅式来指定可执⾏代码各段在RAM中的位置,⼀个是⽤armlink来指定,⼀种是⽤scatter⽂件来指定.RAM区的起始地址:0x30000000.1.armlink指定代码段地址我们通常的代码,只⽤指定两个段开始地址,RO段的起始地址和RW段的起始地址,ZI段紧接在RW段之后.⽰例见该部分的1.1.3.2.scatter指定代码段地址我们也可以通过scatter⽂件指定可执⾏⽂件各段的详细地址.Scatter⽂件如下:MYLOADER0x30000000;MYLOADER:为可执⾏⽂件的名称,可⾃定义;0x3000000:起始地址{RO0x30000000;RO只读代码段的名称;0x30000000:只读代码段的起始地址{init.o(Init,+First);Init代码段为可执⾏⽂件的第⼀部分.*(+RO);所有其它的代码段和只读数据段放在该部分}RW+0;RW:RW段的名称;+0:表⽰RW段紧接着RO段{*(+RW);所有RW段放在该部分}ZI+0;ZI:ZI段的名称;+0:表⽰ZI段紧接着RW段{*(+ZI);所有ZI段放在该部分}}3.ADS产⽣的各代码段宏|Image$$RO$$Base|/*RO代码段起始地址*/|Image$$RO$$Limit|/*RO代码段结束地址*/|Image$$RW$$Base|/*RW代码段起始地址*/|Image$$RW$$Limit|/*RW代码段结束地址*/|Image$$ZI$$Base|/*ZI代码段起始地址*/|Image$$ZI$$Limit|/*ZI代码段结束地址*/注意:在两个$$之间的名称,与scatter中指定的段的名称相同.4.装载过程说明当从NorFlash启动时,要把flash芯⽚的⾸地址映射到0x00000000位置,系统启动后,启动程序本⾝把⾃⼰从flash中搬到RAM中运⾏.搬移后的各段起始地址,由以上宏来确定.当从NandFlash启动时,S3C2410会⾃动把前NandFlash的前4k搬到S3C2410的内部RAM中,并把内部RAM的⾸地址设为0x00000000,CPU从0x00000000开始执⾏.所以,在nandFlash的前4k程序中,必须包含从NandFlash把BootLo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论