ARM基础概念

1. ARM的含义

ARM是Advanced RISC Machines的简写,有三个含义:

a: 一个生产高级RISC(精简指令集)处理器的公司
b: 一种高级RISC的技术
c: 一类采用高级RISC的处理器

2. 体系结构

ARM采用哈佛结构:数据和地址分开存储,有并发性
特点:分开存储、独立编址、两倍带宽、执行效率更高。
哈佛结构

与之相对的是冯·诺依曼结构,其数据和指令一起存储
特点是:单一存储、统一编址、分时复用。
冯·诺依曼结构

3. 流水线

ARM 一般采用三级流水线,在一些高级的指令系统中采用五级流水线(更高级的有十三级流水线)
流水线解析

4. RISC

在半导体芯片领域,指令集是一切软硬件生态的起点。
指令为引导硬件的工作方式,集为集合。常用的指令集主要分为两类:

复杂指令集(CISC:Complex Instruction Set Computing)
CISC指令集丰富,对常用功能还是特殊功能都有特定的指令集,但是每个指令位数都较长。执行效率以及处理数据效率较低,但对特殊功能还是常用功能都较容易编写。

精简指令集(RISC:Reduced Instruction Set Computer)
RISC指令集中的指令相对较少,多数为常用的指令,他们具有简单高效的特点。对不常用的功能,常通过组合指令来完成,因此,在RISC机器上实现特殊功能时,效率可能较低,但可以用流水技术和超标量技术加以改进和弥补。
精简指令集的基本思想为:尽量简化指令功能,只保留那些功能简单、能够在一个节拍内执行完成的指令。

5. ARM的寄存器

ARM的寄存器

5.1 ARM 处理器一般共有 37 个寄存器,其中包括:

(1) 31 个通用寄存器,包括 PC(程序计数器),都是 32 位的寄存器。
(2) 6 个状态寄存器,都是 32 位的寄存器。

ARM 处理器共有 7 种不同的处理器模式:
用户模式(User)
快速中断模式(FIQ)
普通中断模式(IRQ)
管理模式(Svc)
数据访问中止模式(Abort)
未定义指令中止模式(Und)
系统模式(Sys)

在每一种处理器模式中有一组相应的寄存器。在任意一种处理器模式下,可见的寄存器包括 15 个通用寄存器(R0~R14)、一个或者二个状态寄存器以及程序计数器(PC)。在所有的寄存器中,有些是各模式共用同一个物理寄存器,有些寄存器是各个模式自己拥有独立的物理寄存器

其中 :
r0-r3 主要用于子程序间传递参数, r4-r11 主要用于保存局部变量,但在 Thumb 程序中,通常只能使用 r4~r7 来保存局部变量; r12 用作子程序间scratch 寄存器,即 ip 寄存器; r13 通常用做栈指针,即 sp; r14 寄存器又被称为连接寄存器(lr),用于保存子程序以及中断的返回地址; r15 用作程序计数器(pc),由于 ARM 采用了流水线机制,当正确读取了 PC 的值后,该值为当前指令地址加 8 个字节,即 PC 指向当前指令的下两条指令地址。

CPSR和SPSR都是程序状态寄存器,其中SPSR是用来保存中断前的CPSR中的值,以便在中断返回之后恢复处理器程序状态。

5.2 R0-R15寄存器 根据“ARM-thumb 过程调用标准”:

R0-R3 用作传入函数参数,传出函数返回值。 在子程序调用之间,可以将 r0-r3 用于任何用途。
被调用函数在返回之前不必恢复 r0-r3。 如果调用函数需要再次使用 r0-r3 的内容,则它必须保留这些内容。
R4-R11 被用来存放函数的局部变量。 如果被调用函数使用了这些寄存器,它在返回之前必须恢复这些寄存器的值。
R12 是内部调用暂时寄存器 ip。 它在过程链接胶合代码(例如,交互操作胶合代码)中用于此角色。
在过程调用之间,可以将它用于任何用途。 被调用函数在返回之前不必恢复 r12。
R13 是栈指针 sp。 它不能用于任何其它用途。sp 中存放的值在退出被调用函数时必须与进入时的值相同。
R14 是链接寄存器 lr。 如果您保存了返回地址,则可以在调用之间将 r14 用于其它用途,程序返回时要恢复
R15 是程序计数器 PC。 它不能用于任何其它用途。
注意:在中断程序中,所有的寄存器都必须保护,编译器会自动保护R4~R11

详见:

https://www.cnblogs.com/zjy0806/p/11956959.html
https://blog.csdn.net/Z_H_Z_0/article/details/106574292

6. 分类

A系列(应用程序型):
具有MMU,多媒体加速处理单元等特性,适用于高端消费电子设
备、网络设备、移动Internet设备和企业市场。

R系列(实时型) :
具有MPU,该系列适用于高性能实时控制系统,如Cortex -R4用于硬盘驱动器和汽车系统的电子控制单元。

M系列(微控制器型) :
该系列可快速进行中断处理,适用于需要高度确定的行为和最少门数的成本敏感型设备。主要用于嵌入式和工业控制。

在这里插入图片描述
在这里插入图片描述

7. 其他(Cortex-M3为例)

Cortex M3 (CM3) 采用哈佛结构,拥有独立的32位指令总线和数据总线,寄存器和存储器也是32位。
与内核紧密耦合的NVIC (Nested Vectored Interrupt Controller,即嵌套向量中断控制器)多种中断机制,可提高中断响应速度和效率。符合CMSIS(Cortex微处理器软件接口标准)。全面支持32位Thumb-2(子集)和16位Thumb指令集。
在这里插入图片描述

NVIC详见链接:

https://www.cnblogs.com/Rane/p/13603323.html
https://blog.csdn.net/DLUTXIE/article/details/7059184?locationNum=4&fps=1

CMSIS详见:

https://mp.weixin.qq.com/s/n5_Ml8uOHcVKXJ8L-rOW-g
https://blog.csdn.net/Zhang_ChuanCong/article/details/97000949
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值