ADS交互工作讲述.ppt

ARM / Thumb 交互工作 议程 交互工作基础 交互子程序 ARM 5T 架构扩展 交互需求 Thumb的代码密度和在窄存储器上性能 ,使得它用在很多有大量C代码的系统上比较理想. 然而在很多应用中还是需要在 ARM/Thumb 两种状态之间切换: 在宽的存储器上 ARM 代码能提供很好的性能 在一个应用中,速度关键的部分用ARM代码实现是不错的 一些函数只能用 ARM 指令实现, e.g. 存取 CPSR (使能/禁止中断和状态的改变) 操作协处理器 异常处理 异常处理时自动进入 ARM 状态,但系统要求主程序用 Thumb 代码实现 独立的 Thumb 程序也需要一个ARM 的汇编程序头来切换,并调用Thumb 程序 交互指令 交互的实现采用跳转交换指令(BX) 在Thumb状态 BX Rn 在ARM状态 (支持Thumb的内核) BX条件 Rn 其中Rn可以是 (r0~r15)中的任何一个. 这将通过拷贝 Rn 到 PC 来实现在 4GB 空间内的一个绝对跳转. 其中Rn 的 Bit-0 表明切换到何种状态. 状态切换 分支交换示例 提纲 交互基础 交互子程序 ARM 5T 架构扩展 无交互子程序 实现一个通常的子程序调用需要如下两步: 保存返回地址到寄存器(LR) 跳转到对应的子程序地址 调用实现通常只需要一个指令: BL

文档评论(0)

1亿VIP精品文档

相关文档