ARM基本知识

目录

计算机的指令集就是用指令对计算机实现控制和计算的指令集合

计算机系统的硬件组成:输入设备、输出设备、存储器

高速缓存存储器(Cache)

总线通信

flash

寄存器

ARM有37个32比特长的寄存器

Cortex体系结构下有40个32比特长的寄存器

[i.MX6ULL 处理器内核:单核 ARM Cortex-A7 指令集版本:ARMv7-A 架构(32 位)](#i.MX6ULL 处理器内核:单核 ARM Cortex-A7 指令集版本:ARMv7-A 架构(32 位))

处理器工作模式:ARM有7个基本的工作模式

​编辑

异常处理

[当异常产生时,ARM core:](#当异常产生时,ARM core:)

返回时,异常处理需要:


计算机的指令集就是用指令对计算机实现控制和计算的指令集合

复杂指令集:RISC(reduced instruction set computer)

芯片面积大,加工成本高,复杂,体积大,功耗大
精简指令集:CISC(complex instruction set computer)

芯片面积小,加工成本低,简单,体积小,功耗小

计算机系统的硬件组成:输入设备、输出设备、存储器

高速缓存存储器(Cache)

Cache在内核里,CPU直接从Cache中读取数据,提高了CPU访问数据的效率

其中,Cache又分为了:

Icache(instruction cache)指令缓存,专门用来存储指令

dcache(data cache)数据缓存,专门用来存放数据

总线通信

单总线通信:通过一根线/一组线和外设通信,和某个外设通信时,其他外设接不进来

双总线通信

  • AHB总线:先进高速总线(USB、网卡、RAM),连接通信速率快的外设
  • APB总线:先进外设总线(GPIO、UART),连接通信速率慢的外设

flash

nor flash : 每个字节可以被寻址,地址总线和数据总线

nand flash : 无法被寻址,以固定块大小写入或读取数据512byte

寄存器

R0 ~R12:内核中的通用寄存器,存放数据,但本身没地址,搭配ALU(算术运算单元)来使用

(R13)SP寄存器:stack(栈) pointer 栈指针寄存器,先进后出,用来管理栈区,且永远指向栈顶

(R14)LR寄存器:link register 链接寄存器,保存函数返回地址

(R15)PC寄存器:program counter 程序计数器,相当于一个指针,指向当前代码正在执行的下一条指令

CPSR寄存器:current program status register 当前程序状态寄存器,保存程序运行到某一步时的状态

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

MMU:mermory manager unit 内存管理单元,主要针对于虚拟内存,由于管理虚拟内存到物理内存的映射,从而提高物理内存的利用率,在裸机阶段必须关闭MMU

ARM有37个32比特长的寄存器

  1. 一个用作PC
  2. 一个用作CPSR
  3. 5个用作SPSR
  4. 30个通用寄存器

Cortex体系结构下有40个32比特长的寄存器

Cortex-A多出3个寄存器,Monitor模式 r13_mon , r14_mon , spsr_mon

i.MX6ULL 处理器内核:单核 ARM Cortex-A7 指令集版本:ARMv7-A 架构(32 位)

处理器工作模式:ARM有7个基本的工作模式

USER : 非特权模式,大部份任务执行在这种模式,且时用到的寄存器最少

FIQ:当一个高优先级(fast)中断产生时将会进入这种模式

IRQ:当一个低优先级(normal)中断产生时将会进入这种模式

Supervisor:当复位或软中断指令(SVC)执行时将会进入这种模式

Abort:当存取异常时将会进入这种模式

Undef:当执行未定义指令时将会进入这种模式

System:使用和User模式相同的寄存器集的特权模式

Cortex-A特有模式:Monitor是为了安全而扩展出的用于执行安全监控代码的模式,也是一种特权模式

异常处理

当异常产生时,ARM core:

拷贝CPSR到SPSR_<mode>

设置适当的CPSR位:

  • 改变处理器状态进入ARM态
  • 改变处理器模式进入相应的异常模式
  • 设置中断禁止位禁止相应中断(如果需要)

保存返回地址到LR_<mode>

设置PC为相应的异常向量

返回时,异常处理需要:

从SPSR_<mode>恢复CPSR

从LR_<mode>恢复PC

Note : 这些操作只能在ARM态执行

相关推荐
W.A委员会19 分钟前
常见网络攻击
网络·http·网络安全
zmj32032420 分钟前
CAN数据帧详解
网络·can·canfd·数据帧
无心水44 分钟前
OpenClaw技术文档/代码评审/测试用例生成深度实战
网络·后端·架构·测试用例·openclaw·养龙虾
深蓝海拓1 小时前
基于QtPy (PySide6) 的PLC-HMI工程项目(十)框架初成的阶段总结
网络·笔记·python·学习·ui·plc
白羊by2 小时前
Softmax 激活函数详解:从数学原理到应用场景
网络·人工智能·深度学习·算法·损失函数
VBsemi-专注于MOSFET研发定制2 小时前
高端牧光互补储能电站功率链路设计实战:效率、可靠性与系统集成的平衡之道
网络·人工智能
深念Y3 小时前
赛米尼M02/海纳斯HiNAS系统-WiFi驱动安装教程
运维·服务器·网络·docker·nas·机顶盒·hinas
Gofarlic_OMS3 小时前
应对MathWorks合规审查的专项准备工作
大数据·服务器·网络·数据库·人工智能
云空3 小时前
《Hermes Agent 部署与使用中的安全漏洞分析及解决办法》
网络·人工智能·安全
M158227690553 小时前
三格电子 HART 转 Modbus 网关产品介绍
网络