| | |

arm thumb thumb-凯发app

文章来源:米尔科技 发布日期:2013.11.19 浏览次数:13152 次

 概念


thumb 指令

为以 thumb 状态运行的、基于 arm 体系结构的处理器的操作进行编码的一个半字或两个半字。 thumb 指令必须为半字对齐。


thumb 状态

执行 thumb 指令的处理器工作在 thumb 状态。 当直接通过 bx、blx 等指令完成时,处理器可切换到 arm 状态(以识别 arm 指令)。


thumb-2 指令

thumb-2 是 thumb 指令集的一项主要增强功能,并且由 armv6t2 和 armv7m体系结构定义。 thumb-2 提供了几乎与 arm 指令集完全一样的功能。 它兼有16 位和 32 位指令,并可检索与 arm 类似的性能,但其代码密度与 thumb 代码类似。

thumb-2ee 指令

thumb-2 执行环境 (thumb-2ee) 由 armv7 体系结构定义。 thumb-2ee 指令集基于 thumb-2,前者进行了一些更改和添加,使得动态生成的代码具有更好的目标,也就是说,就在执行之前或在执行过程中即可在该设备上编译代码。

thumbee 状态

执行 thumb-2ee 指令的处理器正在以 thumbee 状态运行。 在此状态下,该指令集几乎与 thumb 指令集相同。 不过,有些指令已经修改了行为,有些原有的指令已不再提供,另外还新添了一些指令。


 说明


  • 在arm体系结构中,arm指令集中的指令是32位的指令,其执行效率非常高。
  • 对于存储系统数据总线为16位的应用系统,arm体系提供了thumb指令集。
  • thumb指令集是对arm指令集的一个子集重新编码得到的,指令长度为16位。
  • 通常在处理器执行arm程式时,称处理器处于arm状态;当处理器执行thumb程式时,称处理器处于thumb状态。
  • thumb指令集并没有改动arm体系地层的程式设计模型,只是在该模型上加上了一些限制条件。
  • thumb指令集中的数据处理指令的操作数仍然为32位,指令寻址地址也是32位的。


 使用


通常,thumb程式比arm程式更加紧凑,而且对于内存为8位或16位的系统,使用thumb程式效率更高。不过,在下面一些场合下,程式必须运行在arm状态,这时就需要混合使用arm和thumb程式。

(1)强调速度的场合,应该使用arm程式;
(2)有些功能只能由arm程式完成。如:使用或禁止异常中断;
(3)当处理器进入异常中断处理程式时,程式状态转换到arm状态,即在异常中断处理程式入口的一些指令是arm指令,然后根据需要程式能转换到thumb状态,在异常中断程式返回前,程式再转换到arm状态。
(4)arm处理器总是从arm状态开始执行。因而,如果要在调试器中运行thumb程式,必须为该thumb程式添加一个arm程式头,然后再转换到thumb状态,执行thumb程式。



本文来自凯发app-凯发k8官网科技,原文地址: http://www.myir-tech.com/resource/504.asp,转载请注明出处。

比较和选型

手册教程

应用笔记

好书推荐

凯发k8官网的技术支持服务指南

常见问题解答

网站地图