【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态执行该操作"

相关推荐
2601_9622965121 小时前
C/C++:编译全过程——预处理、编译、汇编、链接(包含预处理指令:宏定义,文件包括、条件编译)
汇编·预处理·链接·c/c++·编译过程
Freak嵌入式2 天前
Pico PIO 汇编语法深度详解:标识符、指令、伪指令全解析
汇编·stm32·单片机·嵌入式硬件·fpga开发·硬件架构
kyle~7 天前
x86 汇编LOCK前缀 --- 硬件架构向软件提供的核心同步原语
汇编·c++·性能优化·硬件架构·实时系统
典典分享指南8 天前
飞书 + 企业微信 + 微信文档多端协同实践指南
汇编·flask·intellij-idea·fastapi
zhangzhangkeji9 天前
笔记 34 - 7 :网卡 DM9000AE; uboot 网络协议栈,里的函数调用流程
arm
zhangzhangkeji12 天前
笔记 30 - 4 :rootfs 配置文件定制,etc / profile,与挂载测试
arm
极客互动API13 天前
企业微信 iPad 协议服务搭建与 AI 回调实战
网络·汇编·人工智能·微信·企业微信·ipad
zhangzhangkeji13 天前
笔记 34 - 3 :网卡 DM9000AE;16 位下的引脚功能,引脚映射到 SROMC,到 GPIO
arm
深念Y16 天前
订阅管理及节点过滤实践(技术笔记)
linux·网络·arm·优化·日志·工具·soc
zhangzhangkeji17 天前
笔记 28 : linux 里 Kconfig 语法详解
arm