- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
技术纵横1TECHNOLOGYREVIEW
ARM的位置无关程序设计
在Bootloader中的应用 ‘
.华东师范大学 黄振 华 李 外 云 刘锦高
ARM处理器支持位里无关的程序设计,这种程序加载到存储器的任意地址空间都可以正食运行,其设
计方法在嵌入式应用系统开发 中具有重要的作用。本文首先介绍位1无关代码的轰本概击和实现原理,
14X6MiE- T AKM 7C1eMJEXkIKit.it计方法和 买现过程 ,旅后 以嵌入式 Bootloader程序设计为
例,介绍位里无关程序设计在Bootloader程序设计中的作用。
关键词 ARM 位里无关程序设计 Bootloader
文件,在链接时,要对所有 目标文件进行重定位(reloca-
引 言
tion),建立符号引用规则,同时为变量、函数等分配运行
基于位置无关代码PIC(Position-IndependentCode) 地址。当程序执行时,系统必须把代码加载到链接时所指
的程序设计在嵌人式应用系统开发中具有重要的作用,尤 定的地址空间,以保证程序在执行过程中对变量、函数等
其在裸机状态下开发Bootloader程序及进行内核初始化 符号的正确引用,使程序正常运行。在具有操作系统的系
设计;利用位置无关的程序设计方法还可以在具体应用中 统中,重定位过程由操作系统 自动完成。
用于构建高效率动态链接库,因而深入理解和熟练掌握位 在设计Bootloader程序时,必须在裸机环境中进行,
置无关的程序设计方法,有助于开发人员设计出结构简 这时Bootloader映像文件的运行地址必须由程序员设定。
单、清晰的应用程序。本文首先介绍位置无关代码的基本 通常情况下,将Bootloader程序下载到ROM的0x0地址
概念和实现原理,然后阐述基于ARM汇编位置无关的程 进行启动,而在大多数应用系统中,为了快速启动,首先将
序设计方法和实现过程,最后以Bootloader程序设计为 Bootloader程序拷贝到SDRAM中再运行。一般情况下,
例,介绍了位置无关程序设计在Bootloader程序设计中 这两者的地址并不相同,程序在SDRAM中的地址重定位
的作用。 过程必须由程序员完成。实际上,由于Bootloader是系统
上电后要执行的第一段程序,Bootloader程序的拷贝和在
1 位置无关代码及程序设计方法
这之前的所有工作都必须由其自身来完成,而这些指令都
1.1 基本概念与实现原理 是在ROM中执行的。也就是说,这些代码即使不在链接
应用程序必须经过编译、汇编和链接后才变成可执行 时所指定的运行时地址空间,也可以正确执行。这就是位
置无关代码,它是一段加载到任意地址空间都能正常执行
‘基金项目:上海市科委AM基金资助((0512), 的特殊代码。
除,也在一定程度上延长了NandFlash的寿命。旅 Semiconductor/Flash/NAND/256Mbit/K9K2GO8UOW K9K2GO8
参考文献 -U0M htm,
[1〕黄文增,陈彦胜,陈俊达,等.高可靠度和低成本效益快闪记 [4]IntelDatasheet[OL].http,刀elcom/degign/
文档评论(0)