找回密码
 注册
关于网站域名变更的通知
查看: 422|回复: 3
打印 上一主题 下一主题

ARM状态和THUMB状态

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-5-24 10:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
ARM处理器的工作状态
在ARM的体系结构中,可以工作在三种不同的状态,一是ARM状态,二是Thumb状态及Thumb-2状态,三是调试状态。
3 m& [% j. ?# B; p7 r3 e
嵌入式系统开发与应用教程(第2版)》上介绍说:有两种状态ARM状态和Thumb状态,当时初学甚为不解,现在一知半解时再看忽然想到了显示中的例子:
2 i" W9 R! P0 v8 a# I. \# Q
ARM核就好比一个高中学校,那种包含普通高中和职业高中的。普通高中就相当于ARM状态,职业高中就相当于Thumb状态,这样还不能理解的话:可以认为 泡泡卡丁车 中普通模式和加速模式,,卡丁车加速要等到集气管加满,然后“ctrl”一下,就切换到了加速模式,气放完了就又回来了,不管加速模式还是普通模式都是在跑,只是速度不一样而已。
5 @6 w$ V6 X1 [  C; ]4 y
而ARM状态和Thumb状态可以直接通过某些指令直接切换,都是在运行程序,只不过指令长度不一样而已。这个概念对初学者相当重要,因为当ARM Thumb是什么还没弄清楚,怎么能理解两种状态呢?

2 ^; v; Y1 ]2 m/ A! w% ]; o6 p
他们之间的关系清楚了,这样就可以深入了解ARM状态是什么,Thumb状态是什么了。

) ]% R: @; q- `7 J2 ~. ^
另外:ARM的M系列主要用Thumb指令,ARM9和A系列主要用ARM指令
4 z2 C3 h' n+ F  ~8 @. a- W8 R0 G
S3C2440.S启动代码中根本就没用Thumb指令。
ARM状态此时处理器执行32位的字对齐的ARM指令,Thumb状态此时处理器执行16位的,半字对齐的THUMB指令。 切换程序:从ARM到Thumb: LDR R0,=lable+1 BX R0 从ARM到Thumb: LDR R0,=lable BX R01,ARM状态
arm处理器工作于32位指令的状态,所有指令均为32位
2,thumb状态
arm执行16位指令的状态,即16位状态
3,thumb-2状态
这个状态是ARM7版本的ARM处理器所具有的新的状态,新的thumb-2内核技术兼有16位及32位指令,实现了更高的性能,更有效的功耗及更少地占用内存。总的来说,感觉这个状态除了兼有arm和thumb的优点外,还在这两种状态上有所提升,优化。
4,调试状态
处理器停机时进入调试状态。
5,arm与thumb间的切换  1,由arm状态切换到thumb
  状态将寄存器的最低位设置为1
      BX指令:R0[0]=1,则执行BX0 ~3 B5 c! w7 `) R& [* ^1 u
  R0指令将进入thumb状态
  2,由thumb状态切换到ARM状态
    寄存器最低位设置为0
    BX指令:R0[0]=0,则执行BX, S% V* u( P5 E$ J  Q" N) y7 K1 m' h0 T
    R0指令将进入arm状态
    Y- F# Z4 n8 f+ @) s
当处理器进行异常处理时,则从异常向量地址开始执行,将自动进入ARM状态。

6 d$ i3 Z6 {+ e& q注意:ARM处理器复位后开始执行代码时总是只处于ARM状态;
0 ?. d5 i% G% E
Cortex-M3只有Thumb-2状态和调试状态;
7 d, w: Z. a( B7 P2 v$ T7 V6 W" e
由于Thumb-2具有16位/32位指令功能,因此有了thumb-2就无需Thumb了。
/ c' ]/ B& j7 Y$ v$ v! c6 d
另外,具有Thumb-2技术的ARM处理器也无需再ARM状态和Thumb-2状态间进行切换了,因为thumb-2具有32位指令功能。

# N$ ]& {% x( G  h/ E8 e
总的说,arm状态与Thumb状态的本质区别就是指令的位数不同,arm是32位的指令状态,而thumb是16位 的指令状态,而thumb-2状态是arm状态和thumb状态的结合和优化。

4 ~. F5 M" g# w5 i2 O1 c
  • TA的每日心情
    开心
    2023-1-3 15:10
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2021-5-24 13:06 | 只看该作者
    一是ARM状态,二是Thumb状态及Thumb-2状态,三是调试状态
  • TA的每日心情
    开心
    2023-1-3 15:10
  • 签到天数: 2 天

    [LV.1]初来乍到

    3#
    发表于 2021-5-24 13:07 | 只看该作者
    arm执行16位指令的状态,即16位状态
  • TA的每日心情
    慵懒
    2022-12-26 15:28
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2021-5-24 15:30 | 只看该作者
    不错的分享
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 09:41 , Processed in 0.140625 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表