跳转到主要内容

Thumb

ARM状态和THUMB状态

judy /

<strong>ARM处理器的工作状态</strong>

在ARM的体系结构中,可以工作在三种不同的状态,一是ARM状态,二是Thumb状态及Thumb-2状态,三是调试状态。

《嵌入式系统开发与应用教程(第2版)》上介绍说:有两种状态ARM状态和Thumb状态,当时初学甚为不解,现在一知半解时再看忽然想到了显示中的例子:

ARM核就好比一个高中学校,那种包含普通高中和职业高中的。普通高中就相当于ARM状态,职业高中就相当于Thumb状态,这样还不能理解的话:可以认为 泡泡卡丁车 中普通模式和加速模式,,卡丁车加速要等到集气管加满,然后“ctrl”一下,就切换到了加速模式,气放完了就又回来了,不管加速模式还是普通模式都是在跑,只是速度不一样而已。

而ARM状态和Thumb状态可以直接通过某些指令直接切换,都是在运行程序,只不过指令长度不一样而已。这个概念对初学者相当重要,因为当ARM Thumb是什么还没弄清楚,怎么能理解两种状态呢?

他们之间的关系清楚了,这样就可以深入了解ARM状态是什么,Thumb状态是什么了。

另外:ARM的M系列主要用Thumb指令,ARM9和A系列主要用ARM指令

S3C2440.S启动代码中根本就没用Thumb指令。

【下载】Thumb指令集

editor /

<strong>Thumb指令</strong>

Thumb指令集可以看作是ARM指令压缩形式的子集,它是为减小代码量而提出的,具有16位的代码密度。Thumb指令体系不完整,只支持通用功能。必要时仍需要使用ARM指令,如进入异常时。

说明:Thumb指令的格式与使用方式与ARM指令集类似,而且使用并不是很频繁,建议这部分内容选修。

<strong>简单的Thumb程序</strong>

<center><img src="http://mm32.eetrend.com/files/2016-07/wen_zhang_/100002100-6333-buhuo.j…; alt=""></center>