零基础吃透ARM体系架构与底层原理

ARM

1.计算机分类

CISC: Complex Instruction Set Computer 复杂指令集(x86)

特点:特点:指令功能多、芯片复杂、成本高、体积大、功耗大

RISC: Reduced Instruction Set Computer 精简指冷集

特点:特点:指令功能少、芯片简单、成本低、体积小、功耗低

2.ARM内核版本

ARM7 ARM9 ARM11

1.Cortex-A:Application 应用领域

复制代码
Cortex-A5(智能机 摩托罗拉)

Cortex-A7(IMX6ULL, STM32MP157)

Cortex-A8(Samsung Gaxlay Note)

Cortex-A9 (Samsung Exnoy 4412)

2.Cortex-R:Real-Time 实时性领域(汽车电子)

3.Cortex-M:IMCU 单片机领域(控制)

复制代码
Cortex-M3 (stm32f103)

Cortex-M4 (stm32f407, stm32mp157)

3.ARM体系架构

ALU :算术逻辑单元,完成算术运算

PC :programmer counter程序计数器,本质是一个指针,指向当前程序正在执行指令的下一条指令

LR : linked register 链接寄存器,保存函数的返回地址

SP :stack pointer 栈指针寄存器,管理栈区空间

CPSR : current programmer status register 当前程序状态寄存器

SPSR : save programmer status register 保存/备份程序状态寄存器,保存当异常发生时cpsr寄存器中的值

MMU :Memory Mangement Unit 内存管理单元,将程序中的虚拟地址转换为物理地址

(裸机:关掉MMU Linux驱动:打开MMU)

CACHE :高速缓存,CPU直接从CACHE中访问数据,提高CPU访问数据效率

D-CACHE:data cache 数据缓存(关闭dcache)

I-CACHE:instruction cache 指令缓存(打开icache)

冯·诺依曼架构 :数据和指令共享同一块存储空间

哈佛架构:数据和指令拥有独立的存储空间(计算机)

nor flash : 任何一个字节可以被寻址,带有地址总线和数据总线

nand flash:块设备数据,以512byte为一块进行读写数据

中断向量表 :本质是一个数组,数组中存放的是中断服务函数的入口地址

异常向量表:本质是一个数组,数组中存放的跳转到异常服务函数的指令

逻辑右移(LSR) :最高位补0,不考虑数值的符号位(无符号数)

1011 0010 >>(LSR) 1: 0101 1001

算术右移(ASR) :最高位补符号位,考虑数值的符号位(有符号数)

1011 0010 >>(ASR) 1:1101 1001

循环右移(ROR) :循环将每次移出的最低位补到最高位

1011 0010 >>(ROR) 1 : 0101 1001 >>(ROR) 1:1010 1100

imx6ull -> Cortex-A7(内核版本) -> armv7(汇编指令集版本)

s3c2440 -> ARM920T(内核版本) -> armv4(汇编指令集版本)

Exnoy 4412 -> Cortex-A8(内核版本) -> armv8(汇编指令集版本)

ARM处理器:小端存储(默认)

内存大小端存储:

内存大端:高地址存放低数据位、低地址存放高数据位

内存小端:高地址存放高数据位、低地址存放低数据位

相关推荐
2035去旅行2 天前
U-Boot DM(Driver Model)驱动框架
嵌入式·arm·soc
凉、介2 天前
深入理解 ARMv7-M | 异常/中断处理
笔记·学习·嵌入式·arm
凉、介2 天前
深入理解 ARMv7-M|处理器模式与寄存器
笔记·学习·嵌入式·arm
2035去旅行4 天前
U-Boot简介
嵌入式·arm·soc
zbyyd7 天前
Linux驱动:UART串口通信、GT9147触摸屏与IIO-ADC驱动开发
linux·驱动开发·arm
zbyyd7 天前
Linux驱动:SPI子系统与ADXL345三轴加速度传感器驱动开发
linux·驱动开发·arm
2035去旅行8 天前
SOC 里的 CPU 处理器 和 L1/L2 Cache
嵌入式·arm·soc
一直C8 天前
嵌入式 Linux 驱动开发学习笔记:设备树、pinctrl 与 GPIO 驱动开发
驱动开发·嵌入式·arm·dt
2035去旅行8 天前
两核 CPU:CPU1 和 CPU2 是如何协同工作的?
嵌入式·arm·soc
奔跑的架构师10 天前
[A-51]ARMv9/v8-SCMI系统架构
linux·arm开发·架构·系统架构·arm