ARM体系架构

目录

1.基本概念

2.核心总结


1.基本概念

  • ARM概念:①ARM公司(负责设计内核)②ARM(Advanced RISC Machine )系列处理器内核
  • CPU内核
    • CISI: Complex Instruction Set Computer 复杂指令集计算机 (如x86架构CPU)
      • **优点:**功能完善
      • **缺点:**芯片面积大、加工成本高、实现复杂、体积大、功耗大(二八效应:80%情况下只用到了20%功能)
    • RISC: Reduced Instruction Set Computer 精简指令集计算机
      • **优点:**芯片面积小、加工成本低、实现简单、体积小、功耗小,大量使用寄存器(大多数数据操作都在寄存器中完成),指令执行速度更快;
      • **应用场景:**手机、平板、单片机、嵌入式设备
  • ARM系列处理器内核发展历程

|---------------|----------|-------------------------------------------------------------------|
| ARM | ------> | Cortex |
| ARM1 ~ ARM11 | ------> | A:Application 应用级-跑系统(安卓 / Linux) (如imx6ull 是Cortex-A7内核,32位) |
| ARM1 ~ ARM11 | ------> | R:real time 实时性领域- 汽车电子、航空航天 |
| ARM1 ~ ARM11 | ------> | M: Micro 微控制器-MCU 单片机领域(如STM32) |

  • **CortexA7(32位)**资源
  • ALU : Arithmetic Logical Unit,算术逻辑单元
  • PC寄存器:program counter ,程序计数器,本质上是一个指针,指向当前代码正在执行指令的下一条指令
  • 三级流水线结构 (同时做三件事,提速)
    • PC :取指令
    • 译码器:解释
    • kernel:执行指令
  • Lr寄存器 :Linked register,链接寄存器,保存函数返回地址(函数调用完跳回哪里)
  • sp寄存器:stack pointer,栈指针寄存器,管理栈区,永远指向栈顶
  • Cache:高速数据缓存,直接从Cache访问数据,提高CPU访问数据的效率
    • icache: instruction cache,指令缓存, 存指令(加速取代码)
    • dcache: data cache,数据缓存,存数据(加速读数据)
  • 计算机架构
    • 冯.诺依曼架构:数据和指令存放在同一片内存空间
    • 哈佛架构 :指令、数据分开存储(速度更快,ARM / 单片机常用)
  • 裸机开发黄金规则:必须要关闭MMU(裸机阶段使用物理内存,用不到虚拟内存),打开icache,关闭dcache

  • 总线通信 (芯片内部 "高速公路"):
    • 单总线通信:通过一根线/一组线和外设通信,同一时间只能和一个设备通信(排队)
    • 双总线通信:
      • AHB总线:advanced high bus,先进高速总线,连接高速外设(USB、网卡、RAM、北桥芯片)(跑得快)
      • APB总线:先进外设总线(GPIO、UART、蓝桥芯片)(慢但够用)
  • SATA:古老的硬盘接口
  • 启动相关
    • BIOS:引导Windows系统启动,把操作系统从flash搬运到内存
    • bootloder:引导Linux系统启动的程序
  • SOC概念:System on Chip,r简称Soc,也即片上系统。

  • 典型的SOC处理器

    • 8051
    • DSP:用于浮点运算
    • MIPS
    • PPC:上世纪90年代使用的
    • ARM:嵌入式用得最多(付费)
    • RISC-V:和ARM类似,但免费开源
  • 编译4流程:预处理(Pre-Processing),编译(Compliling),汇编(Assembling),链接(Linking)

  • 开发ARM程序常用的集成开发环境

    • 编译器
      • gcc 用于x86架构
      • arm-linux-gnueabihf-gcc 用于arm架构,交叉编译 ARM 程序 (uname -a 查看处理器架构)
    • keil4:用于仿真,学习内核(S3C2440仿真模拟ARM920T)
  • ARM最小系统

    • 概念:使系统能够正常工作的最少器件构成的系统
    • 图示
  • 三总线结构

  • ARM数据类型 (32 位架构标准)
    • ARM 约定:
      Byte : 8 bits
      Halfword :16 bits (2 byte)
      Word :32 bits (4 byte)
      Doubleword :64-bits(8byte)(Cortex-A处理器)
  • ARM指令类型
    • 大部分ARM core 提供:
      • ARM指令集(32-bit)
      • Thumb指令集(16-bit)(压缩指令,省空间)
    • Cortex-A处理器
      • 16位和32位Thumb-2指令集:混合 16/32 位(现代 ARM 用)
      • 16位和32位ThumbEE指令集
    • Jazelle cores 支持 Java bytecode
  • 处理器工作模式
    • ARM有7个基本 工作模式(特权 / 非特权)
      • User :非特权模式,++大部分任务执行在这种模式++(权限最低)
      • FIQ:当一个高优先级(fast)中断产生时将会进入这种模式
      • IRQ:当一个低优先级(normal)中断产生时将会进入这种模式
      • SupQervisor:管理员模式、默认模式,当复位或软中断指令执行时将会进入这种模式
      • Abort :当++存取异常++时将会进入这种模式()
      • Undef: 当执行++未定义指令时++会进入这种模式
      • System :特权模式、使用和User模式相同寄存器集的特权模式Cortex-A
      • Cortex-A特有模式: 用于调试------专用安全模式
      • Monitor:是为了安全而扩展出的用于执行安全监控代码的模式;也是一种特权模式------专用安全模式
  • 切换处理器工作模式
  • ARM寄存器个数
    • ARM有37个32-Bits长的寄存器:1 个用作PC( program counter)、1个用作CPSR(current program status register)、5个用作SPSR(saved program status registers)、30个通用寄存器)
    • Cortex体系结构下有40个32-Bits长的寄存器

2.核心总结

①复杂指令集与精简指令集

②ARM版本:ARM 经典 → Cortex-A/R/M

③16个通用寄存器,cpsr,spsr,MMU,cache缓存,

③裸机阶段:必须要关闭MMU,打开icache,关闭dcache

④单总线,多总线

⑤flash闪存,新一代非易失性存储器

nor flash:每个字节可寻址

еMMC nand fkash:以块为单位寻址

⑥ARM7种工作模式

⑦ARM寄存器个数------ARM有37个32-Bits长的寄存器、Cortex体系结构下有40个32-Bits长的寄存器

⑧异常处理流程

相关推荐
somi715 小时前
ARM-03-点亮led
arm开发
somi721 小时前
ARM-04-蜂鸣器
arm开发·单片机·嵌入式硬件
EnglishJun1 天前
ARM嵌入式学习(九)--- C语言应用:点亮led
c语言·arm开发·学习
程序员一点1 天前
第24章:openEuler 内核与模块管理
arm开发·openeuler
sayang_shao1 天前
ARM架构运行模式学习笔记
arm开发·学习·架构
坤坤藤椒牛肉面2 天前
arm基础IMX6ULL----点亮led
arm开发
Flamingˢ2 天前
基于ARM的裸机程序设计和开发(四):硬件编程原理与GPIO控制思路
arm开发
aseity2 天前
Debian10 ARM KVM 虚拟机安装记录
arm开发
li星野2 天前
RTOS面试完整模拟题(嵌入式系统方向)
arm开发·面试·职场和发展