MCU的香饽饽架构体系——ARM
首先我们来了解一下ARM相关的一些知识:
1.ARM公司:
- 成立于1990年11月
- 前身为 Acorn计算机公司
- 主要设计ARM系列RISC处理器内核
- 授权ARM内核给生产和销售半导体的合作伙伴
- ARM 公司不生产芯片
- 另外也提供基于ARM架构的开发设 计技术
- 软件工具, 评估板, 调试工具,应用 软件,总线架构, 外围设备单元,等
2.ARM:
- CPU IP CORE ,CPU 的硬件内核
ARM 就是一种CPU 内核的设计方式
接下来我们就对于这一款CPU内核展开学习一下:
ARM
1.CPU内核(kaenel)及其分类:
1.分类:
1.1.指令集:
- CPU的指令集其实就是用指令对计算机实现控制和计算的指令集合。
1.2.根据指令集不同分为:
- CISC:Complex Instruction Set Computer ,复杂指令集计算机,(x86 架构)
- RISC:Reducd Instruction Set Computer , 精简指令集计算机,(ARM,8051,dsp)
2.类比CISC与RISC
2.1.CISC:
- 芯片面积大
- 加工成本高
- 设计复杂
- 体积大,功耗大
- 拥有庞大的指令集
2.2.RISC:
- 芯片面积小
- 加工成本低
- 功耗低
- 体积小(适用于便携式设备)
- 去除了CISC 的多余指令集
2.ARM发展史:
ARM公司就是设计RISC这样的处理器内核的公司
司也根据不同的应用场景设计了不同型号的CPU内核:
ARM的不同版本也经历了如下的演变:
Cortex版本的不同型号也对应了不同的功能:
| 型号 | 优点 | 应用领域 |
|---|---|---|
| Cortex - A | A:applaction 应用型高 | 手机与应用电子领域 |
| Cortex - R | R:realtime 实时性高 | 汽车电子,航空航天与军工领域 |
| Cortex - M | M:Micro 微控制器 | 单片机领域 |
接下来正式对于ARM的内核结构进行了解:
3.ARM内核结构
用这款i.mx6ull 的开发板来展开学习:它使用了Crotex - A7 的内核,一次操作的寄存器是32bit大小
1.处理器组成:
处理器的功能就是为了操作数据,那么我们一个处理器应当具备的基本结构就是:
- ALU :Arithmetic Logical Unit 算数逻辑单元‘
- 寄存器:reg
- 状态指示寄存器:PSR
- 外部数据访问:BIU ,Bus Interface Unit 总线接口单元
2.寄存器:
2.1.R0 - R12 通用寄存器(在内核中进行操作)
- 作用:在内核中存放数据
- 不可位寻址,寄存器在硬件中直接存死,不可以通过软件操作
2.2.PC寄存器:Program Conter 程序计数器
- 本质上是一个指针,指向当前程序允许指令的下一条指令
- PC指向哪里,程序接下来就会去允许哪一条指令
程序允许的三级流水线结构
- 取指令,解释指令,执行指令,三者是同时向下运行的
2.3.LR寄存器:Linker Register 链接寄存器
- 保存程序返回的地址
操作
- 当PC发生带链接的跳转指令时,将PC的内容存入LR中
2.4.SP寄存器:Stack Point ,栈指针寄存器
- PC寄存器指向栈顶
- 这个栈是专门存放LR寄存器的内容的
当函数的调用或者PC的跳转发生嵌套时,仅仅依靠LR寄存器无法返回初始执的地方,我们需要将LR寄存器的地址
在第二次调用前,先将第一次的地址压入栈,在出栈时,拿出SP寄存器指向的地址赋给lr让程序返回上一级调用的j
结束位置
2.6.CPSR寄存器:Current Progrem Status Register ,当前程序状态寄存器
- 保存程序运行到某一步的状态

2.7.SPRC寄存器:Save Progrem Status Register ,保存/备份程序状态寄存器
- 当发生异常情况时,存在于异常状态的寄存器SPRC_会存储CPRC 中的当前程序状态
- 等到异常结束时,会将SPRC_ 中的程序状态赋给CPRC,恢复原始状态
2.8.MMU单元:Mermory Manager Unit , 内存管理单元
- 管理虚拟内存
- 用于管理虚拟内存到真实内存的映射,从而提高物理内存的利用率
- 可以将不同的虚拟地址,映射到一块连续的物理地址中
这里要注意,当我们在进行ARM下的逻辑操作时,应当关闭MMU,防止MMU进行内存映射后
本来应该操作的真实物理地址发生了改变,对硬件的操作就会失效

ARM架构的寄存器常态下一共有37个,cortax-a 的芯片多出两种模式,一共有40 个寄存器
4.计算机系统组成
计算机系统=硬件系统+软件系统
硬件是计算机系统的物质基础,软件是计算机系统的灵魂。硬件和软件是相辅相成的,两者是不可分割的整体
计算机系统硬件组成部分:
- 输入设备
- 输出设备
- 计算器
- 存储器
- 控制器
1.存储器:
来看一下计算机的三级存储结构:
存储器是用来存放程序和数据的部件,它是一个记忆装置,也是计算机能够实现“存储程序控制”的基础
- 主存储器
可由CPU直接访问,用来存放当前正在执行的程序和数据。 - 辅助存储器
设置在主机外部,CPU不能直接访问,用来存放暂时不参与运行的程序和数据,需要时再传送到主存。
辅助存储器也就是我们的外存,经过演变,现在我们常用的是FLASH(闪存)
分类:
-
nor flash 每个字节可以被寻址,有两根总线,一根数据总线,一根地址总线
-
nand flash 每个字节无法被寻址,必须以固定块的大小写入或者读取 一段数据(512byte)
例:OMMC :本质上是nand 是我们常用的SD卡,OMMC通常以芯片的形式出现 -
高速缓冲存储器(Cache)
CPU可以直接访问,用来存放当前正在执行的程序中的活跃部分,以便快速地向CPU提供指令和数据。
Cache:高速数据缓存
- 将数据存入Cache中后,可以让内核直接从Cache中访问数据,不同再让CPU每次都和内存进行数据交互
- 可以提高CPU访问数据的效率
Cache分类:
- ICache:instruction Cache ,指令集缓存,用于对指令进行存储
- dCache:data Cache , 数据缓存,用于对数据的存储
这种Cache的高速缓存将我们的指令与数据分开存储,优于经典的冯诺依曼数据与指令同时存储的方式,
可以防止程序运行时忽略掉我们的数据操作指令
5.计算机的总线结构
1.单总线通信:
- 通过一组数据线与外设进行数据交互,
缺点:
- 当与一台外设交互时,其他外设接不进来
2.双总线通信:
- 有两组负责通信的数据线
2.1. AHB总线:
- 先进高速总线(USB,网卡,RAM)
- 连接通信速度较快的总线
2.2. APB总线:
- 先进外设总线
- 用于连接通信速度较慢的外设
6.处理器的基本工作模式
1.基本工作模式:
- USER:非特权工作模式,大部分任务的执行都在这个模式
- FIQ :快速中断请求模式(高优先级的异常事件)
当一个高优先级(fast)的中断发生时,将会进入这种模式 - IRQ:低优先级(normal)中断时,将会进入这种模式
- supervisor:管理员SVC模式,板子上电复位或者发生软件中断时处于这种状态
- Abort:存取异常模式,读取或者写入数据异常时进入此模式
- Undef:执行未定义指令时进入这种模式,即从PC取出的指令经过译码器翻译出出错时进入
- system :使用与USER模式相同寄存器的特权模式
*2.Cortex - A 特有模式:
- cortex-A 特有模式
- monitor模式:为了安全而拓展出的用于执行安全监测代码的模式,也是一种特权模式
以上模式中除了USER模式之外,其余的均是特权模式
7.异常处理
当程序在运行时出现异常状态时,需要对应的进行异常处理,异常处理流程如下

异常向量表:
- 本质上是一个数组
- 存放的是跳转到异常服务函数的指令
ARM中的异常向量如下:
更多推荐


所有评论(0)