ARM基础

计算机CPU分类

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

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

RISC:Reduced Instruction Set Computer 精简指令集

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

ARM体系架构

IMX6ULL芯片所搭载的内核版本:Cortex-A7

Cortex-A7使用的汇编指令集版本:ARMv7-A

nor flash和nand flash区别:

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

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

面向应用的ARM最小系统

数据和指令类型

ARM 采用的是32位架构.

ARM 约定:

Byte : 8 bits

Halfword : 16 bits (2 byte)

Word : 32 bits (4 byte)

Doubleword 64-bits(8byte)(Cortex-A处理器)

大部分ARM core 提供:

ARM 指令集(32-bit)

Thumb 指令集(16-bit )

Cortex-A处理器

16位和32位Thumb-2指令集

16位和32位ThumbEE指令集

Jazelle cores 支持 Java bytecode

ARM处理器工作模式

User:非特权模式,大部分任务执行在这种模式。

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

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

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

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

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

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

Cortex-A特有模式:

Monitor:是为了安全而扩展出的用于执行安全监控代码的模式;也是一种特权模式。

寄存器组织概要

Cortex-A7内核有40个32-bits长的寄存器。

Cortex-A7内核有16个32-bits长的通用寄存器(R0~R15)。

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

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

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

CPSR: current programmer status register 当前程序状态寄存器,程序运行到某一步时相关的状态(溢出、借位、进位)特殊、异常状态。

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

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

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

冯·诺依曼架构和哈佛架构的区别

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

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

异常处理流程

当异常产生时, ARM core:

拷贝 CPSR 到 SPSR_<mode>

设置适当的 CPSR 位:

改变处理器状态进入 ARM 态

改变处理器模式进入相应的异常模式

设置中断禁止位禁止相应中断 (如果需要)

保存返回地址到 LR_<mode>

设置 PC 为相应的异常向量

返回时, 异常处理需要:

从 SPSR_<mode>恢复CPSR

从LR_<mode>恢复PC

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

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

相关推荐
dtq04243 分钟前
嵌入式5 - GPIO工作模式2
单片机·嵌入式硬件·学习
weixin_4043806342 分钟前
ESP-IDF v6.1:SoftAP 配网在干什么(手机连开发板热点)
单片机·嵌入式硬件·物联网
TechVoyager_824643 分钟前
IT66122FN 解析:并行视频输入的引脚映射与位宽适配
单片机·嵌入式硬件·音视频·引脚映射·位宽适配·并行接口
Sakura_j_h_1 小时前
STM32 采集 NTC 温度抖动:RC 硬件滤波与软件滑动平均怎么选
stm32·单片机·嵌入式硬件·滑动平均·传感器滤波·rc低通
糖糖单片机设计11 小时前
基于 STM32 与中移 OneNet 的智慧电梯监控平台系统
stm32·单片机·嵌入式硬件·51单片机·语音识别
创界工坊工作室14 小时前
55-基于STC89C52宠物智能饲喂控制系统设计
stm32·单片机·嵌入式硬件·51单片机·proteus·宠物
极客 - L U17 小时前
卡尔曼滤波从零到精通
c语言·数据结构·单片机·嵌入式硬件·mcu
码小文19 小时前
CAM350使用笔记(6)---Gerber文件铺铜间距检查
嵌入式硬件·cam350软件·cam350使用笔记
Yiran_G21 小时前
双频 Wi-Fi 6 + 蓝牙 5.4:无声讯通 WS8712 模组的开发与集成要点
网络·嵌入式硬件·物联网·智能家居
光子物联单片机21 小时前
ESP32传感器模块编程实践(一)DIY智能WIFI视频控制小车
嵌入式硬件·esp32·智能硬件·硬件