嵌入式硬件第五弹——ARM(1)

1. 概念

1. 1 计算机CPU内核

1.1.1 CISC

Complex Instruction Set Comupter 复杂指令集计算机 :x86 芯片面积大、加工成本高、复杂、体积大、功耗大

1.1.2 RISC

Reduced Instruction Set Comupter 精简指令集计算机 :芯片面积小、加工成本低、功耗低、体积小(便携式设备)

1.2 Cortex

  • A: Application 应用,手机、应用电子领域
  • R:real time 实时性,汽车电子,航空航天
  • M:Micro 微控制器 MCU 单片机领域

1.2.1 CortexA7 32位

  • R0 - R12 :通用寄存器(内核) ,存放数据
  • pc寄存器:program counter, 程序计数器,本质上是一个指针 指向当前代码正在执行指令的 下一条指令
  • lr寄存器:linked register, 链接寄存器,保存函数返回地址
  • sp寄存器:stack pointer, 栈指针寄存器,用来管理栈区
  • cpsr寄存器:current program status register,当前程序状态 寄存器,保存程序运行到某一步 时的状态
  • ALU:算术逻辑单元
  • spsr:save program status register ,保存/备份程序状态寄存器 ,异常发生时,保存cpsr寄存器中程序状态
  • MMU:Mermory Manager Unit,内存管理单元 用于管理虚拟内存到物理内存映射,从而 提高物理内存的利用率。 裸机必须要关闭MMU,打开icache,关闭dcache。
  • Cache:高速数据缓存,直接从Cache访问数据,提高CPU访问数据的效率
    icache:instruction cache,指令缓存,用于指令
    dcache:data cache,数据缓存,用于数据

1.3 两类总线通信

1.3.1 单总线通信

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

1.3.2 双总线通信

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

APB总线:先进外设总线(GPIO、UART),连接通信速率慢的外设

1.4 RAM&ROM

1.4.1 RAM

掉电数据丢失 易失性存储器

1.4.2 ROM

掉电数据不丢失 非易失性存储器

flash:

  • nor flash: 每一个字节可以被寻址,地址总线和数据总线
  • nand flash:无法被寻址,以固定块大小写入或读取数据 512byte

1.5 ARM的7种基本工作模式

  • User:非特权模式,大部分任务执行在这种模式
  • FIQ:当一个高优先级(fast)中断产生时将会进入这种模式
  • IRQ:当一个低优先级(normal)中断产生时将会进入这种模式
  • Supervisor:当复位或软中断指令执行时将会进入这种模式
  • Abort:当存取异常时将会进入这种模式
  • Undef:当执行未定义指令时会进入这种模式
  • System:使用和User模式相同寄存器集的特权模式

1.6 异常处理

当ARM处理器产生异常时:

将当前程序状态寄存器CPSR拷贝到对应异常模式SPSR_<mode>中;

然后切换到ARM态和对应异常模式,必要时关闭中断;

保存返回地址到LR中;

跳转到异常向量表执行异常处理。

返回时:

从SPSR恢复CPSR;

从LR恢复PC。

异常向量表

相关推荐
玩转单片机与嵌入式7 小时前
不会 Python、不会深度学习,也能在STM32上跑AI模型吗?
人工智能·单片机·嵌入式硬件·嵌入式ai
jghhh018 小时前
基于STM32的桌面Mini时钟设计
stm32·单片机·嵌入式硬件
电化学仪器白超9 小时前
小乌龟Git全程图形化操作指南:嵌入式本地版本管理与Gitee私有云备份实战
git·python·单片机·嵌入式硬件·物联网·gitee·自动化
yong999011 小时前
基于STM32 Nucleo板的彩色LED照明灯设计(纯CubeMX开发)
stm32·单片机·嵌入式硬件
独小乐11 小时前
019.ADC转换和子中断|千篇笔记实现嵌入式全栈/裸机篇
linux·c语言·驱动开发·笔记·嵌入式硬件·mcu·arm
lingzhilab11 小时前
零知派——STM32驱动INA219电流功率监测计实现高精度电源管理
stm32·单片机·嵌入式硬件
QH1392923188014 小时前
KEYSIGHT N9030B PXA信号/频谱分析仪
科技·嵌入式硬件·集成测试
Shang1809893572614 小时前
T31ZX 君正/INGENIC智能视频处理器T31ZX可提供软硬件资料T31Z采用先进的低功耗设计
嵌入式硬件·fpga开发·音视频·t31zx智能视频处理器
ahccqw15 小时前
CAN总线通信入门及实例代码(stm32f4系列)
stm32·单片机·嵌入式硬件
云栖梦泽16 小时前
Linux内核与驱动:13.从设备树到Platform平台总线
linux·运维·c++·嵌入式硬件