您的位置 首页 国产IC

ARM学习笔记

ARM微处理器支持7种运行模式,分别为:1.用户模式(usr):ARM处理器正常的程序执行状态;2.快速中断模式(fiq):用于高速数据传输或通道…

ARM微处理器支撑7种运转形式,分别为:

1.用户形式(usr):ARM处理器正常的程序碑文状况;
2.快速间断形式(fiq):用于高速数据传输或通道办理;
3.外部间断形式(irq):用于通用的间断处理;
4.办理形式(svc):操作体系运用的保护形式;
5.数据拜访停止形式(abt):当数据或指令预取停止时进入该形式,用于虚拟存储及存储保护;
6.体系形式(sys):运转具有特权的操作体系使命;
7.未定义指令间断形式(und):当未定义指令碑文时进入该形式,可用于支撑硬件协处理器的软件仿真

ARM体系结构的存储器格局有如下两种:
大端格局:字数据的高字节存储在低地址中,字数据的低字节寄存在高地址中;
小端格局:与大端存储格局相反,高地址寄存数据的高字节,低地址寄存数据的低字节

ARM寄存器总结:
ARM有16个32位的寄存器(r0到r15)。
r15充任程序寄存器PC,r14(link register)存储子程序的回来地址,r13存储的是仓库地址。
ARM有一个当时程序状况寄存器:CPSR。
一些寄存器(r13,r14)在反常发生时会发生新的instances,比方IRQ处理器形式,这时处理器运用r13_irq和r14_irq
ARM的子程序调用是很快的,我们子程序的回来地址不需求寄存在仓库中。
1、 ARM处理器共有37个寄存器,其间包含:

i. 31个通用寄存器,包含程序计数器(PC)在内。都是32位寄存器

ii. 6个状况寄存器,都是32位寄存器,但现在只运用了其间12位

2、 ARM处理器有7种不同的处理器形式,在每一种处理器形式中有一组相应的寄存器组

。恣意时间(也便是恣意的处理器形式下),可见的寄存器包含15个通用寄存器(R0~

R14)、一个或两个状况寄存器及程序计数器(PC)。在所有的寄存器中,有些是各形式

共用的同一个物理寄存器,有些是各形式自己具有的独立的物理寄存器。

3、通用寄存器能够分为3类:未备份寄存器(R0~R7)、备份寄存器(R8~R14)和程序

计数器PC(R15)。关于每一个未备份寄存器来说,在所有的处理器形式下指的都是同一

个物理寄存器。对应备份寄存器R8~R12来说,每个寄存器对应两个不同的物理寄存器,

这使得间断处理十分简略。例如,只是运用R8~R14寄存器时,FIQ处理程序能够不用碑文

保存和康复间断现场的指令,从而使间断处理进程十分敏捷。关于备份寄存器R13和R14

来说,每个寄存器对应6个不同的物理寄存器,其间的一个是用户形式和体系形式共用的

,别的的5个对应于其他5种处理器形式。

4、每一种反常形式具有自己的物理的R13。应用程序初始化该R13,使其指向该反常模

式专用的栈地址。当进入反常形式时,能够将需求运用的寄存器保存在R13所指的栈中;

当退出反常处理程序时,将保存在R13所指的栈中的寄存器值弹出。这样就使反常处理程

序不会损坏被其间断程序的运转现场。

5、 寄存器R14又被称为衔接寄存器(Link Register,LR),在ARM体系中具有下面两种

特别的效果:

i. 每一种处理器形式自己的物理R14中寄存当时子程序的回来地址。当经过BL或BLX指令

调用子程序时,R14被设置成该子程序的回来地址。在子程序中,当把R14的值复制到程

序计数器PC中时,子程序即回来。

ii. 当反常间断发生时,该反常形式特定的物理R14被设置成该反常形式酿制回来的地址

,关于有些反常形式,R14的值可能与将回来的地址有一个常数的偏移量。详细的回来方

式与子程序回来方法根本相同。

6、 我们ARM采用了流水线机制,当正确读取了PC的值时,该值为当时指令地址值加8个

字节。也便是说,关于ARM指令集来说,PC指向当时指令的下两条指令的地址,我们ARM

指令是字节对齐的,PC值得第0位和第1位总为0。

7、 关于ARM版别3以及更低的版别,写入R15的地址值的bits[1:0]被疏忽,关于ARM版别

4以及更高的版别,程序有必要确保写入R15寄存器的地址值的bits[1:0]为0b00;否则会产

生不行预知的成果。关于Thumb指令集来说,指令是半字对齐的。处理器将疏忽bit[0]。

还有一些指令关于R15的用法有一些特别的要求。比方,指令BX使用bit[0]来确定是ARM

指令,仍是Thumb指令。

8、 指令mov pc, pc将程序跳转到当时指令下面第2条指令处碑文。相似的指令还有

add pc, pc, #0

9、每一种处理器形式下都有一个专用的物理状况寄存器,称为SPSR(备份程序状况寄

存器)。当特定的反常间断发生时,这个寄存器用于寄存当时程序状况寄存器的内容。

在反常间断程序退出时,能够用SPSR中保存的值来康复CPSR。

10、我们用户形式和体系形式不是反常间断形式,所以它们没有SPSR。当在用户形式或

体系形式中 拜访SPSR,将会发生不行预知的成果。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/ic/264455.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部