嵌入式学习硬件(一)ARM体系架构

目录

1.SOC

2.内核架构的分类

3.冯诺依曼架构和哈佛架构

4.kernel

5.指令集

6.ARM处理器产品分类

7.编译的四个步骤​编辑

8.RAM和ROM​编辑

9.ARM处理器工作模式

10.异常处理

11.CPSR程序状态寄存器


1.SOC

system on chip 片上系统,可以运行操作系统的一种高端的功能强大的芯片。

ps 图中arm指的是arm的kernel

2.内核架构的分类

(1)ARM公司的ARM架构(收费) 该公司不生产芯片,只设计芯片,卖给别人授权

(2)x86架构(收费) 主机电脑

(3)MIPS

(4)RISC V

3.冯诺依曼架构和哈佛架构

(1)冯诺依曼架构中将数据与指令存放在同一存储器中

(2)哈佛架构是将数据与指令存放在不同的存储器中。ARM采用的是哈佛架构

4.kernel

ALU:arithmetic logic unit算数逻辑单元。作用 算数。

R0-R15 通用寄存器 装那些计算需要用的数。

R13(SP) 栈指针寄存器 操作栈需要一个指针,该指针也存放在此寄存器中。

R14(LR) 链接寄存器 函数跳转时将将来要回来的地址装到LR中。

R15(PC) 程序计数器,指向当前执行的指令的下一个指令地址。

cache 高速缓存

i cache (instructinon cache) 指令cache

d cache (data cache) 数据cache

MMU:memory management unit 内存管理单元,把虚拟内存映射为RAM中的物理内存。从物理内存写回到虚拟内存时,还要把物理内存映射为虚拟内存。

CPSR current program status register 当前程序状态寄存器,存放当前的程序状态

SPSR saved program status register 是CPSR的备份,方便程序返回之前CPSR的状态

5.指令集CISC RISC

CISC:complex instruction set computer复杂指令集计算机;性能强大、功能丰富但成本高、不利于便携使用,如x86

RISC:reduced instruction set computer精简指令集计算机;体积小,成本低,如ARM

AHB:先进高速总线,连接高速设备,RAM,网口,USB

APB: 先进外设总线,连接低速设备,UART,GPIO,TIMER

ps Kernel与外设连线称为总线:

若只有一根称为单总线结构;

若有两根及以上称为多总线结构;

6.ARM处理器产品分类

ARM Cortex A(application)(应用于消费类电子产品)

R(realtime embeded)(应用于实时性方向,如军事,通信)

M(MCU&FPGA)(应用于微控制器MAU方向,如STM32)

7.编译的四个步骤

(1)预处理 文件包含,条件包含,宏定义那些操作

(2)编译 把c语言代码转换为助记符的写法

(3)汇编 助记符换为二进制机器指令

(4)链接 多个.c .o文件,确定彼此之间函数调用关系

8.RAM和ROM

nor flash 可被寻址 nand flash 不可寻址

9.ARM处理器工作模式

ARM有7个基本工作模式:

User:非特权模式,大部分任务执行在这种模式

FIQ:当一个高优先级(fast)中断产生时将会进入这种模式

IRQ:当一个低优先级(normal)中断产生时将会进入这种模式

Supervisor:当复位或软中断指令执行时将会进入这种模式

Abort:当存取异常时将会进入这种模式

Undef:当执行未定义指令时会进入这种模式

System:使用和User模式相同寄存器集的特权模式

10.异常处理

注意:

中断的本质也是一种异常;
**异常向量表:**用于存储不同类型异常发生时,处理器跳转到特定的异常处理程序的地址;------------用于存储不同类型异常发生时处理器跳转地址的特定内存区域,就是由操作系统初始化并设置基址寄存器指向的异常向量表(EVT)。这个表的每个条目都存储着对应异常处理程序的起始地址。

在同一种中断中,同一模式下的中断不能被再次被直接打断
FIQ中断

IRQ中断

(保留)

Data Abort(数据存储异常)------------对RAM的访问发生错误

Prefetch Abort(预取失败异常)------------指令预取阶段内存访问失败触发

Software Interrupt(软中断异常)------------软件中断(任务切换),多任务的并发靠底层的软中断实现

Undefined Instruction(未定义指令异常)

Reset(复位异常)

11.CPSR程序状态寄存器

1、N,V,C,Z位

注:汇编指令的s后缀,几乎所有的汇编指令都可以在指令后面加上s后缀,s后缀的含义是在指令执行过程中会更新cpsr寄存器的N,V,C,Z位

N:在结果是有符号的二进制补码情况下,如果结果为负数,则N=1;如果结果为非负数,则N=0

Z:如果结果为0,则Z=1;如果结果为非零,否则Z=0

C:是针对无符号数最高有效位向更高位进位时C=1;减法中运算结果的最高有效位从更高位借位时C=0

V:该位是针对有符号数的操作,会在下面两种情形变为1,两个最高有效位均为0的数相加,得到的结果最高有效位为1;两个最高有效位均为1的数相加,得到的结果最高有效位为0;除了这两种情况以外V位为0

相关推荐
传奇开心果编程3 分钟前
【Jetpack Compose基础语法学与练】第7课 if条件渲染 + 列表基础(LazyColumn)
学习·ui·kotlin·android jetpack
Rabitebla24 分钟前
【Linux系统编程】 指令(二):一条路径是怎么定位到文件的
linux·c++·笔记·学习·算法
小贺儿开发43 分钟前
Unity 结合百度AI开放平台 手写文字识别
人工智能·科技·学习·unity·云服务·文字识别·手写文字
传奇开心果编程1 小时前
【SwiftUI入门练中学】第1课 从零开始
学习·ui·ios·swiftui·swift
是隼人1 小时前
buuctf-pwn ciscn_2019_sw_1(32位只有一次格式化机会)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
斑马1391 小时前
ARM学习笔记(二)——ARM汇编基础
汇编·arm开发·arm
传奇开心果编程1 小时前
【Jetpack Compose基础语法学与练】第9课 SideEffect副作用 + LaunchedEffect,处理异步任务和生命周期
android·学习·ui·kotlin·android jetpack
传奇开心果编程1 小时前
【ArkUI 练中学】第14课:应用性能优化实战
学习·ui·华为·harmonyos
PNP Robotics2 小时前
【PNP具身解读】GPT6 Astra:具身智能新范式,大模型 + Franka机器人快速落地验证一、GPT6 Astra 背后的布局、数据与具身方向
人工智能·学习·机器学习·机器人
掘金泥石流2 小时前
从 Palantir AI FDE 到我们的实践:企业交付如何变成产品?
人工智能·架构·agent