嵌入式硬件day4

一.ARM架构与内核分类

1.ARM内核系列:

Cortex-A系列:用于高性能应用,运行Linux/Android

Cortex-B系列:用于实时性要求高的场景

Cortex-M序列:用于低功耗嵌入式控制

2.指令集架构:

ARMv1~ARMv9 是ARM指令集架构版本;

Cortex-A7 基于 ARMv7-A 架构,32位;

3.RISC(精简指令集计算机)

ARM属于此类,指令固定长度、执行效率高

4.CISC(复杂指令集计算机)

x86属于此类,指令长度可变、功能复杂

二.计算机系统组成

硬件系统:运算器、控制器、存储器、输入设备、输出设备

CPU = 运算器 + 控制器 + 寄存器等

三.ARM内核中的器件:

1.ALU(算数逻辑单元)

执行整数运算和逻辑操作;

2.FPU(浮点单元)

处理浮点数运算;

3.缓存(Cache)

指令缓存(I-Cache) 与 数据缓存(D-Cache);

4.内存管理单元(MMU)

实现虚拟内存(Cortex-A系列),用于Linux等复杂OS;

内存保护单元(MPU)

内存区域保护(Cortex-M系列,用于实时系统);

5.寄存器组:

R13(sp):栈指针寄存器

R14(LR):链接寄存器,保存子程序返回地址

R15(PC):程序计数器,指向下一条指令地址

CPSR:当前程序状态寄存器(包含标志位、模式位等)

SPSR:备份程序状态寄存器(异常情况下保存CPSR)

6.流水线:三级流水线示例:

预取、译码、执行

四.存储器类型

1.RAM(随机存取存储器)

易失性、速度快、可直接寻址

2.ROM(只读存储器/闪存)

非易失性、速度较慢、存储固件/系统代码

五.常见处理器类型

  • MPU:微处理器,通用型,偏向处理。

  • MCU:微控制器,集成度高(CPU+内存+外设),偏向控制。

  • DSP:数字信号处理器,擅长数学运算。

  • SoC:片上系统,集成多个功能模块(CPU、GPU、DSP、外设等)

六、总线结构

AMBA总线:

AHB:高性能总线,连接CPU、内存、DMA等

APB:低速外设总线,连接UART、GPIO等外设

七.ARM内核处理器工作模式

1.User:非特权模式,大部分任务执行在这个模式

2.FIQ:当一个高优先级中断产生时将进入这种模式

3.IRQ:当一个低优先级中断产生时将进入这种模式

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

5.Abort:存取异常时会进入此模式

6.Udef:执行未定义指令时会进入此模式

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

Cortex-A特有的模式:

Monitor:执行安全监控代码的模式,也是一种特权模式

八.异常向量表

1.异常处理流程

当异常产生时, ARM core:

  • 保存现场 :拷贝 CPSR(当前程序状态寄存器)到 SPSR_<mode>(对应异常模式的备份状态寄存器)

  • 切换状态

    • 强制进入 ARM 指令集状态(从Thumb状态切换回来)

    • 切换到对应的异常模式(如IRQ模式、FIQ模式等)

    • 禁用中断(防止嵌套,如进入IRQ时自动禁用IRQ)

  • 保存返回地址 :将返回地址存入 LR_<mode>(对应异常模式的链接寄存器)

  • 跳转 :设置 PC 指向异常向量表中对应的地址

返回时软件需要

  • SPSR_<mode> 恢复 CPSR

  • LR_<mode> 恢复 PC

  • 注意:这些操作只能在ARM状态下执行

相关推荐
普中科技8 小时前
【普中STM32F1xx开发攻略--标准库版】-- 第 45 章 FSMC-外扩 SRAM 实验
stm32·单片机·嵌入式硬件·fsmc·普中科技·外扩sram·is62wv51216
xiaoyuchidayuma10 小时前
永磁同步发电机的线电压和直流母线电压的关系
嵌入式硬件
潜创微科技10 小时前
4K60 over IP 方案简介
网络·嵌入式硬件·网络协议·tcp/ip·音视频
rit843249910 小时前
基于C#的USB HID设备读取测试软件
嵌入式硬件
三佛科技-1873661339711 小时前
FT32F103C8AT7兼容GD32F103C8T632 位通用微控制器MCU,替代性分析
单片机·嵌入式硬件
iCxhust11 小时前
8086汇编 word ptr
汇编·单片机·嵌入式硬件·微机原理·8088单板机
嵌入式ZYXC11 小时前
第3篇:《面试题:I2C为什么要加上拉电阻?阻值怎么选?》
stm32·单片机·嵌入式硬件·面试·职场和发展
你疯了抱抱我12 小时前
【STM32】使用 STM32CubeMX 生成项目,LED测试;上位机:STM32F411CEU6
stm32·单片机·嵌入式硬件
今天的你比昨天进步了?14 小时前
单片机程序,keil可以正常编译,VScode编译报错处理
vscode·单片机·嵌入式硬件