云计算百科
云计算领域专业知识百科平台

【初识ARM】ARM相关基础概念

文章目录

    • 一、计算机指令集分类
    • 二、ARM内核版本
    • 三、ARM体系架构初了解
    • 四、存储器架构
    • 五、总线结构
    • 六、典型的计算机主板
    • 七、处理器修炼历程
    • 八、SoC概念
    • 九、汇编
    • 十、开发ARM程序常用的集成开发环境
    • 十一、面向应用的ARM最小系统
    • 十二、RAM与ROM
    • 十三、ARM体系架构
      • 处理器工作模式
      • ARM 寄存器
      • 程序状态寄存器
      • 程序指针PC
    • 十四、异常处理

请添加图片描述

一、计算机指令集分类

CISC:Complex Instruction Set Computer 复杂指令集(X86) 特点:指令功能多、芯片复杂、成本高、体积大、功耗高

RISC:Reduced Instruction Set Computer 精简指令集 特点:指令功能少、芯片简单、成本低、体积小、功耗低

ARM:设计RISC精简指令集架构CPU(分版本) 授权——>半导体公司

stm32f103:st意法半导体生产 arm公司的CPU

二、ARM内核版本

早期:ARM+数字 ARM7 ARM9 ARM11

按领域加上前缀区分:

  • Cortex-A:Application 应用领域

    • Cortex-A7(IMX6ULL、STM32MP157)
    • Cortex-A5(早期智能机 摩托罗拉)
    • Cortex-A8(Samsung Gaxlay Note)
    • Cortex-A9(Samsung Exnoy 4412)
    • 。。。。。。
    • Cortex-A725(玄戒O1)
  • Cortex-R:Real-TIme 实时性领域(汽车电子)

  • Cortex-M:MCU 单片机领域

    • Cortex-M3(stm32f103)
    • Cortex-M4(stm32f407、STM32MP157)
  • 三、ARM体系架构初了解

    在这里插入图片描述

  • ALU:算数逻辑单元,完成算数运算

  • 通用寄存器(内核):存放数据 (没有地址)一共16个(R0-R15)。

  • PC:programmer counter 程序计数器,指向当前程序正在执行指令的下一条指令。 三级流水线结构:pc取指令->译码器翻译指令->CPU执行指令(三者并行)

  • LR:Linked register 链接寄存器 保存函数返回地址

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

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

  • SPSR:save programmer status ragister 保存/备份程序状态寄存器 保存当异常(中断)发生时cpsr寄存器中的值。

  • MMU:memory management unit 内存管理单元:将程序中的虚拟地址转换为物理地址。 在这里插入图片描述

  • 四、存储器架构

    存储器是用来存放程序和数据的部件,它是一个记忆装置,也是计算机能够实现“存储程序控制”的基础。

    冯诺依曼架构:数据和指令共享一块存储空间; 哈弗架构:数据和指令拥有独立的存储空间. 在这里插入图片描述 高速缓冲存储器(Cache):CPU可以直接访问,用来存放当前正在执 行的程序中的活跃部分,以便快速地向CPU提供指令和数据。 在这里插入图片描述

    在这里插入图片描述

    五、总线结构

    单总线:内核和外设之间通过一组线连接通信;

    双总线(多总线): 速度快的外设——>内核:AHB总线:Advanced High Bus 先进高速总线(USB、网卡、RAM) 速度慢的外设——>内核:APB总线:Advanced Peripheral Bus 先进外设总线(GPIO、UART、TIMER)

    六、典型的计算机主板

    在这里插入图片描述

    七、处理器修炼历程

    在这里插入图片描述

    八、SoC概念

    在这里插入图片描述

    九、汇编

    处理器的编码是一串数字,比较难记,因此开发出了助记符号来降低开发难度提高效率,因此产生了汇编语言,又由于汇编语言的结构不是很清晰,因此人们采用了汇编语言来产生较高层次的语言(如C语言)。

    编译的定义: 编译是从源代码(通常为高级语言)到能直接被计算机或虚拟机执行的目标代码(通常为低级语言或机器语言)的翻译过程。

    编译器:用于编译的软件为编译器。

    编译的四个步骤: 在这里插入图片描述 交叉编译:在一个平台编写编译程序,在另一个平台运行程序。 在这里插入图片描述

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

    在这里插入图片描述

    十一、面向应用的ARM最小系统

    最小系统:能系统能够正常工作的最少器件构成的系统。 在这里插入图片描述

    十二、RAM与ROM

    在这里插入图片描述 在这里插入图片描述

    十三、ARM体系架构

    处理器工作模式

    ARM有7个基本工作模式:

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

    Cortex-A特有模式:

    HYP模式:在线调试; 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长的寄存器 Cortex-A多出3个寄存器,Monitor模式r13_mon,r14_mon,spsr_mon当前处理器的模式决定着哪组寄存器可操作.任何模式都可以存取.

    程序状态寄存器

    在这里插入图片描述

    程序指针PC

    在这里插入图片描述

    十四、异常处理

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

    在这里插入图片描述

    tips: 1)说出ARM可以工作的模式名字。 2)ARM核有多少个寄存器? 3)什么寄存器用于存储PC和LR寄存器? 4)R13通常用来存储什么? 5)哪种模式使用的寄存器最少? 6)在Thumb指令集中,哪些寄存器处于Low group? 7)CPSR的哪一位反映了处理器的状态? 8)所有的Thumb指令采取什么对齐方式? 9)ARM有哪几个异常类型。 10)为什么FIQ的服务程序地址要位于0X1C? 11)在复位后,ARM处理器处于何种模式、何种状态?

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 【初识ARM】ARM相关基础概念
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!