- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM和嵌入式技术_培训课件_第6章
第6章 ARM-Thumb交互工作 6.1 交互工作原理 T版本的ARM体系结构支持ARM程序和THUMB程序混合编程,所谓交互工作就是程序执行过程中,可以根据需要进行ARM状态和THUMB状态的切换。 交互工作的必要性 为一个Thumb兼容的ARM处理器编写代码时,ARM指令的程 序和THUMB指令的程序各有自己的优势,对于8位和16位的存 储系统来说,Thumb指令可以提供更好的代码密度和性能,对 于32位的存储系统来说,ARM指令则占有速度和性能上的优 势。除此之外,在许多场合,也使得arm和thumb之间的切换 变得必要。例如: 6.1 交互工作原理 6.1 交互工作原理 交互工作的切换指令 6.1 交互工作原理 交互工作的切换指令 6.1 交互工作原理 交互工作的切换指令 6.1 交互工作原理 与状态切换有关的伪指令 6.2 交互程序 下例为一个从ARM代码段跳转到Thumb代码段,又回到ARM代码段的简单的交互程序设计的示例. 6.2 交互程序 ARM指令头的例子 6.2 交互程序 交互子程序调用 6.2 交互程序 从ARM状态调用Thumb子程序 6.2 交互程序 从Thumb状态调用ARM子程序 6.2 交互程序 Thumb代码段中的数据 6.3 ARM v5T扩展 ARM的体系结构大致可以分为5个主要的版本:ARM v1T、 ARM v2T 、 ARM v3T 、 ARM v4T 、 ARM v5T .前面介绍的ARM7TDMI-S处理器内核使用的是ARM v4T 版本. ARM v5T版本的ARM体系结构中增加了额外的对交互工作的支持,除BX指令外,增加了BLX指令,另外LDR,LDM及POP指令也可以进行程序状态的切换. 6.3 ARM v5T扩展 ARM的体系结构大致可以分为5个主要的版本:ARM v1T、 ARM v2T 、 ARM v3T 、 ARM v4T 、 ARM v5T .前面介绍的ARM7TDMI-S处理器内核使用的是ARM v4T 版本. ARM v5T版本的ARM体系结构中增加了额外的对交互工作的支持,除BX指令外,增加了BLX指令,另外LDR,LDM及POP指令也可以进行程序状态的切换. 6.4 交互子程序和Veneer 前面介绍的交互工作中,调用者程序和被调用程序 均在一个源程序中,如若两种状态下的程序位于不同的 文件中,能否进行交互工作呢? 答案是肯定的,只要程序编写过程中遵守ARM和 Thumb过程调用标准ATPCS(ARM and Thumb Proccdure Call Standards),程序间就可以进行交互工 作.此时需要设置相应的编译选项,使编译器按照 ATPCS规则编译程序,ARM连接器在检测到ARM和 Thumb混和编程的时候,会自动产生并插入一个称为 伪装(veneer)的小代码段,用来根据程序需要完成 ARM - Thumb状态的切换。 6.4 交互子程序和Veneer 交互编译选项 这个编译选项就是-apcs/interwork。通过使用-apcs/interwork 编译项,可以强制在子程序返回时使用BX LR指令而非MOV PC, LR指令。 例:两个处于不同状态的汇编程序间的交互工作。 6.4 交互子程序和Veneer 我们可以通过下面的操作完成两文件间的交互工作: armasm arm.s armasm thumb.s –apcs/interwork armlink arm.o thumb.o 通常在编译程序时,我们应尽量选用-apcs/interwork选项。-apcs/interwork编译器选项可以保证所有的ARM和Thumb 、C或C++编译器编译的模块能够在各种处理器状态间相互调用: tcc -apcs /interwork armcc -apcs /interwork tcpp -apcs /interwork armcpp -apcs /interwork 在interwork选项下编译的代码模块会比原Thumb或ARM代码模块大一些,例如对Thumb程序,典型的会增加约2%的容量。因此没有必要对所有的程序进行交互编译,只对那些包含交互子程序调用的程序进行交互编译即可。 6.4 交互子程序和Veneer Veneer 所谓Veneer是由连接器自动生成并插入到汇编程序的一小段代码。通 常在下面两种情况下,连接器会生成Veneer: (1)被调用程序包含状态切换; (2)被调用程序的地址超出了调用指令的寻址范围。 连接时,连接器先找到veneer,再连接需调用的程序。根据被调用程 序的状态,以及其与调用者间距离的远近,Veneer包含
您可能关注的文档
- 8第八章沉淀溶解平衡和沉淀测定法.ppt
- 9 应激和适应.doc
- 8图和网络分析.ppt
- 6_滑坡和泥石流灾害防治技术.ppt
- 8餐饮原料的采购和库存管理.ppt
- 9. 船舶柴油机试验测控系统和故障诊断系统开发平台 ... - 武汉理工大学.doc
- 9-包装中的文字和图形.ppt
- 9.3.2_实际问题和一元一次不等式组.ppt
- 9.三讲范本演练和通关.ppt
- 8对口支援工作的实践和思考 - wwwchaborgcn.ppt
- 温州乐成寄宿中学2023年高三第二次模拟考试语文试卷含解析.doc
- 湖南省浏阳市第二中学2022-2023学年高三第一次调研测试语文试卷含解析.doc
- 甘肃省张掖市高台县重点名校2024年中考一模英语试题含答案.doc
- 甘肃省会宁县第四中学2024届高三下学期第六次检测语文试卷含解析.doc
- 滁州市重点中学2024届高三第四次模拟考试语文试卷含解析.doc
- 福建省福州市仓山区福建师范大学附属中学2023届高考冲刺模拟英语试题含解析.doc
- 福建省平和县一中2022-2023学年高考压轴卷语文试卷含解析.doc
- 湖南省长沙市一中、湖南师大附中2023年高三英语第一学期期末学业质量监测模拟试题含解析.doc
- 监狱警察职业道德培训课件.pptx
- 福建省漳州市平和一中、南靖一中等五校2023年高三第六次模拟考试语文试卷含解析.doc
文档评论(0)