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态执行

相关推荐
Raas1001 小时前
企业AI网关哪个好?MAI Gateway(魔芋企业级AI网关)入选2026年企业AI网关推荐清单
网络·人工智能·gateway·企业·ai网关·mai gateway
芯盾时代1 小时前
《金融业网络安全管理办法(征求意见稿)》全条款深度拆解(一)
网络·安全·web安全
深蓝海拓1 小时前
基于QtPy (PySide6) 的PLC-HMI工程实战记录(五)为当前动作画面的信号连接变量
网络·笔记·python·学习·pyqt
啦啦啦啦啦zzzz2 小时前
时间轮定时器
linux·服务器·网络·c++·定时器
ITyunwei09872 小时前
从 ITIL 视角量化-第三集:工单系统如何成为 ITSM 治理抓手?架构+量化
运维·网络·企业微信
半桶水专家2 小时前
MQTT协议使用手册
网络
那年窗外下的雪.2 小时前
AIDC 学习日志|第 14 天|MAC Flapping 与 EVPN 多归属分层排障
网络·git·学习·macos·github·spine
2601_963282772 小时前
油田、工矿厂区 DMR 专网对讲系统:部署实施、干扰治理与防爆终端选型实战
网络·架构
随风而飘1863 小时前
Keithley美国吉时利 2016-P 6.5位音频分析数字多用表
网络·人工智能·功能测试
聚铭网络3 小时前
【一周安全资讯】《网络数据安全风险评估办法》正式实施;隐私加密通讯平台Threema遭DDoS攻击,服务大面积瘫痪
网络·安全·ddos