【DAY30】ARM 架构核心技术详解

一、CPU内核

1.CISC

Complex Instraction Set Computer 复杂指令集 计算机

芯片面积大、成本高、复杂、体积大、功耗大

2.RISC

Reduce Instraction Set Computer 精简指令集 计算机

芯片面积小、成本低、简单、体积小、功耗小

3.ARM

|-----------|------------|-------|
| 处理器 | 内核 | 指令集版本 |
| imx6ull | Cortext A7 | armv7 |
| S3C2440 | ARM920T | armv4 |
| exnoy4412 | CortexA8 | armv8 |

ARM9(37个寄存器)

Cortex-A(40个寄存器)

|---|-------------|-----------|
| A | Applacation | 手机应用电子领域 |
| R | Realtime | 汽车电子;航空航天 |
| M | Micro | 单片机 |

在ARM中

1.ALU:

算数逻辑单元,搭配寄存器来使用

2.R0-R12:

通用寄存器(内核),用来存放数据

3.SP(R13):

栈指针寄存器(stack pointer), 管理栈区

4.LR(R4):

连接寄存器(linked regster)保存函数返回地址

5.PC(R15):

程序计数器(program counter),是一个指针,指向当前代码执行指令的下一条指令;指向哪,程序就执行到哪

6.CPSR:

当前程序状态寄存器(crrunt program status register),保存程序运行到某一步时的状态

7.SPSR:

保存/备份程序状态寄存器,异常发生,备份cpsr寄存器中程序状态

8.MMU:

内存管理单元(memory mannager unit),用于管理虚拟内存到物理内存映射,从而提高物理内存的利用率

9.Cache:

高速数据缓存,直接从cache访问数据,提高cpu访问数据效率

哈弗架构:

icache:指令缓存(instruction cache)

dcache:数据缓存(data cache)

二、总线

1.单总线通信

通过一根/一组线与外设通信,和某个外设通信时,其他外设无法接入

2.双总线通信

AHB总线:

先进高速总线(USB、网卡、RAM)连接通信速率快的外设

APB总线:

先进外设总线(GPIO、UART)连接通信速率慢的外设

三、编译

编译程序流程

1.预处理

展开头文件

替换宏定义代码

据条件编译增加或删除代码

2.编译

将C语言编译为汇编语言

3.汇编

将汇编语言转换为机器语言

4.链接

将代码与系统中的库连接成一个可执行程序

交叉编译:

在一个平台编写编译程序,能够在另外一个平台运行程序

四、Flash

ROM的一种类型

Flash 是一种可擦写的存储器,它结合了 ROM 和 RAM 的优点。它的数据可以被任意读取和写入,并且可以擦除和重新写入。Flash 的数据在断电后仍然能够保持

nor flash

每一个字节都可以被寻址,地址线和数据总线

nand flash

无法被寻址,以固定块大小写入或读取数据

五、处理器工作模式

1.User

非特权模式,大部分任务执行在该模式

2.FIQ

产生高优先级中断,进入该模式

3.IRQ

产生低优先级中断

4.Supervisor

复位或软中断执行执行时,进入该模式

5.Abort

存取异常,进入该模式

6.Undef

执行了未定义指令,进入该模式

7.System

和user模式使用相同寄存器集的特权模式

六、异常处理

一>异常向量表

数组,存放跳转到对应异常服务函数的指令

二>处理流程

产生异常:

1.拷贝CPSR到SPSR_<mode>

2.设置CPSR

  • 进入ARM状态
  • 改变处理器模式进入对应的异常模式
  • 设置中断禁止位

3.保存返回地址到LR_<mode>

4.设置PC为相应的异常向量

返回:

1.从SPSR_<mode>恢复CPSR

2.从LR_<mode>恢复PC

"只能在ARM态执行该操作"

相关推荐
学逆向的2 天前
汇编——寻址方式
开发语言·汇编·网络安全
我不是QI2 天前
Master PDF Editor 逆向复现
汇编·安全·pdf
Dlrb12112 天前
ARM---IMX6ULL定时器详解与应用:EPIT与GPT定时器,高精度延时函数
arm开发·gpt·arm·定时器·epit·高精度延时
Dlrb12113 天前
ARM -IMX6ULL的中断系统、GIC、CP15协处理器详细讲解
arm开发·arm·imx6ull·中断·gic·cp15·协处理器
Dlrb12113 天前
ARM---I.MX6ULL时钟系统详解、时钟树、系统时钟配置等
单片机·嵌入式硬件·arm·imx6ull·pll·时钟树·cortex-a7
m0_715646765 天前
20260720
linux·arm
Dlrb12115 天前
ARM--IMX6ULL的SDK学习,BSP开发工程管理,以及链接脚本与Makefile的编写
单片机·嵌入式硬件·arm·sdk·链接脚本·i.mx6ull·cortex-a7
凉、介6 天前
Virtio(三):Virtqueue 建立与 Buffer 提交
笔记·学习·嵌入式·arm·虚拟化·virtio
执迷不悟8238 天前
ARM--汇编指令
汇编·arm开发
秉承初心8 天前
CPU架构深度对比:x86 vs ARM 异同、优劣与全场景市场分析
arm·x86·cpu架构