零基础吃透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处理器:小端存储(默认)

内存大小端存储:

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

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

相关推荐
剑指offer.2 天前
ARM裸机开发-SPI
arm开发·嵌入式硬件·嵌入式·arm
susplus5 天前
【ARM 裸机开发 (IMX6ULL-mini)】I2C协议详解
嵌入式·arm·i2c
今年下半年7 天前
【运维】windows虚拟机安装arm(aarch64)服务器
运维·windows·arm·虚拟机·aarch64
额额额对了7 天前
SPI通信
linux·c语言·汇编·单片机·嵌入式硬件·arm
一直C7 天前
【ARM嵌入式开发】LCD液晶屏显示原理、色彩模式与显存地址映射详解
lcd·嵌入式·arm·寄存器·cortex-a7
susplus8 天前
【ARM 裸机开发 (IMX6ULL-mini)】PWM 背光调节与 GT9147 多点触摸驱动
lcd·arm·多点触控·pwm背光调节
凉、介8 天前
深入理解 ARM SCP Firmware 的 Event 与 Notification 机制
学习·scp·嵌入式·arm
susplus8 天前
【ARM 裸机开发 (IMX6ULL-mini)】SPI 协议与ADXL345 三轴加速度传感器
arm·spi·adxl345加速度传感器
susplus9 天前
【ARM 裸机开发 (IMX6ULL-mini)】RGB-LCD 驱动与时序详解
arm·rgb_lcd
额额额对了9 天前
嵌入式 ADC 从入门到实战:基于 i.MX6ULL 的裸机驱动开发
驱动开发·嵌入式硬件·arm