基于ARM的嵌入式系统程序开发要点(五)——ARMThumb...
时间:2020-01-09
大小:195.56KB
阅读数:296
查看他发布的资源
资料介绍
基于ARM的嵌入式系统程序开发要点(五)——ARMThumb的交互工作产业技术与信息
INDUSTRY TECH&INFO
基于 ARM 的嵌入式系统程序开发要点(五)
― ―ARM/Thumb的交互工作
■ ARM 中国 费浙平
在前面的文章中提到过, 很多情况下应用程序需要 在 A R M 跟 T h u m b 状态之间相互切换, 这部分就讨论交 互工作的实现方法和一些注意问题。
存器中的最低位肯定被舍弃, 不起作用。 在 B X 指令的 执行过程中, 最低位正好被用作状态判断的标识, 不会 造成存储器访问不对齐的错误。 下面是一段直接进行状态切换的例程。
; 从 A R M 状态开始 CODE32 A D R R0, Into_Thumb+1 BX R0 ; 汇编关键字 ; 得到目标地址, 末位置1, ; 转向 Thumb ;执行 ;其它代码 CODE16 Into_Thumb … A D R R5, Back_to_ARM BX … CODE32 Back_to_ARM R5 ; 汇编关键字 ;Thumb代码段起始地址 ;Thumb 代码 ;得到目标地址, 末位缺 ; 省为 0, 转向 A R M ;执行 ;其它代码 ; 汇编关键字 ;A R M 代码段起始地址
1
需要交互的原因
前面提到过, T h u m b 指令在某些特殊情况下具有比
A R M 指令更为出色的表现, 主要是在代码长度和窄带 宽存储器系统性能两方面。 正是因为 T h u m b 指令在特 定环境下的优势, 它在很多方面得到了广泛应用。 但是 因为下面一些原因, T h u m b 又不可能独立地组成一个 应用系统。 ◇ T h u m b 指令集在功能上只是 A R M 指令集的一个子 集, 某些功能只能在 ARM 状态下执行,如 CPSR 和 协处理器的访问。 ◇进行异常响应时,……
版权说明:本资料由用户提供并上传,仅用于学习交流;若内容存在侵权,请进行举报,或
联系我们 删除。