×
单片机 > 单片机程序设计 > 详情

快速学Arm(9)--处理器的状态,模式以及概括了解内部寄存器

发布时间:2022-08-30 发布时间:
|

快速学习总是要颠三倒四的来学习内容.最终将所知道的东西联系起来就形成了一种能力.


我了先了解一下处理器状态,模式以及一些芯片内部的寄存器.


芯片内部的寄存器一般要使用汇编语言进行控制,写C语言的程序时,大部分情况下不用去关心这些寄存器是如何工作的,除非你要进行底层的程序设计,这些内容可以在以后随着Arm学习的深而入进行再看也不迟,目前大概的扫几眼也就可以了.


Arm2400一般有两种两种指令形式,即ARM指令和Thumb指令两种状态条.ARM是32位的指令而Thumb形式则是16位指令模式.如果大家学过8068汇编和80386汇编,大家是看成PC上的8086和和80386自己的指令关心.

Arm处理器除了有两种状态以往,还可以运行在不同的模式下,数了一下有7种,分别是:

1.用户模式(usr):程序正常工作的模式,不能直接切换到其他的模式.

2.快中断模式(fiq):支持数据高速传输及通道处理,FIR异常响应时进入此模块.

3.中断模式(irq):用于通用中断处理,IRQ异常响应时进入此模式.

4.管理模式(svc):操作系统保护代码,系统复位和软件中断时进入此模式.

5.中止模式(abt):用于支持虚拟内存和/或存储保护.在ARM7TDMI(-S)没有大用处.

6.未定义模式(und):支持硬件协处理器的软件仿真.未定义指令异常响应时进入此模式.

8.系统模式(sys):用于支持操作系统的特权任务,与用户模式类似,具有可以直接切换到其他模式等特权.


除用户模式外,其他都是特权模式,特权模式可以转换为用户模式,相反方向则无法转换.模式可以通过程序代码来切换,也可以由异常来进行切换


至于系统模式,与用户模式一样,不能由异常进入,且使用与用户模式完全相同的寄存器.然而它是特权模式,不受用户模式的限制.有这个模式,操作系统要访问用户模式的寄存器就比较方便.同时,操作系统的一些特权任务可以使用这个模式,以访问一些受控的资源而不必担心异常出现时的任务状态变得不可靠.

ARM模式下内部寄存器:

.31个通用寄存器:R0~R15,R13_svc,R14_svc,R13_abt,R14_abt,R13_unt,R14_unt,R13_abt_irq,R14_irq,R8_frq~R14_frq.

.6个状态寄存器:CPSR,SPSR_svc,SPSR_abt,SPSR_unt,SPSR_irq,SPSR_fiq.

THUMB模式下内部寄存器:

.8个通用寄存器:R0~R7

.PC

.堆栈指针:SP

.连接寄存器:LR

.CPSR(有条件的访问)



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
浅谈AVR中定时器几种工作模式