ARMv6 ARMv7 架构 整体介绍
文章目录市场应用领域市占率常见产品架构编程模型运行状态指令集寄存器非特权级别(usr模式)下不建议访问的指令与寄存器ABI异常模型特权级异常种类内存模型VMSA&MMU内存顺序模型cache默认内存一致性模型debug模型External DebugSelf-hosted DebugTraceboot模型虚拟化模型安全模型开发工具gcc toolchain & gdbqemu常见开
·
文章目录
市场
应用领域
- 嵌入式
市占率
常见产品
架构
编程模型
运行状态
armv6/v7 有两种执行状态,arm和thumb。
//cpsr 的 T
// 0:arm
// 1:thumb
// 应该reset 是 arm 状态
// 异常时,cpsr 中的 T 被置位 0 , 也就是 进入arm state
指令集
寄存器
- R0-R7 R8-R12 R13-R15 及其BANK寄存器
- CPSR
- SPSR 及其BANK寄存器
- CP15寄存器
非特权级别(usr模式)下不建议访问的指令与寄存器
// 指令集
mcr/mrc
cdp/ldc/stc
mcrr/mrrc
// 寄存器
协处理器寄存器
ABI
异常模型
特权级
-
7种处理器模式(SVC/ABT/UND/IRQ/FIQ & USR/SYSTEM)
-
两种特权模式(usr模式非特权,其他6种模式特权)
异常种类
内存模型
VMSA&MMU
内存一致性
- memory order : 乱序和屏障1 : 总览 及 编译器内存屏障
- memory order : 乱序和屏障2 : UP单核需要处理的CPU乱序问题
- memory order : (二) 4.2 硬件 SMP-Consistency之内存顺序模型1
cache
debug模型
External Debug
- 通用知识 : JTAG的状态机&JTAG的TAP
- 通用知识 : JTAG状态机 的封装 : IR SCAN & DR SCAN
- 基于JTAG的 芯片DEBUG 文章整理
Self-hosted Debug
- BKPT指令及其异常处理
Trace
boot模型
虚拟化模型
安全模型
开发工具
gcc toolchain & gdb
qemu
常见开发环境(除qemu外)
软件开发
裸机(baremetal)
RTOS
Linux
arm32-linux镜像
- 各个镜像解读1&解读2
- 各个镜像执行结果
- uImage镜像或zImage被加载
- 一般不会直接加载 Image,如果想要直接加载Image,参考这里
arm32-linux boot 符号
debug
boot
boot时的内存管理
架构相关代码
通用知识:如何新增一个架构
- linux移植需要考虑什么
- 将 Linux 移植到新的处理器架构,第 1 部分:基础前言
- 将 Linux 移植到新的处理器架构,第 2 部分:早期代码
- 将 Linux 移植到新的处理器架构,第 3 部分:收尾
微架构
- 通用知识:cpu微架构解读
- arm32 下的 cortex-a7/cortex-a8/cortex-a9/cortex-a15/cortex-a17
- ARMv6架构下 各微架构的不同
更多推荐
已为社区贡献5条内容
所有评论(0)