美文网首页
ARM体系结构

ARM体系结构

作者: Eugene_iOS | 来源:发表于2023-04-03 17:34 被阅读0次

嵌入式学习 - ARM体系结构
嵌入式学习 - STM32存储器映射
嵌入式学习 - STM32F4启动分析

1、ARM含义

第一:ARM是个公司,它不生产CUP,只做CPU架构设计。
第二:ARM架构,就是通常说的Cortex-A、Cortex-R、Cortex-M等CPU架构。


2、裸机编程

一般是指操作系统运行之前的一段代码,可以是汇编语言实现,也可以是C语言代码实现;bootloader是一个裸机程序,在Ubuntu上运行的程序不是裸机程序,因为Ubuntu是一个操作系统,在Ubuntu上运行的程序是依赖操作系统才能运行的。


3、ARM内核的发展

ARM产品在指令架构集ARMv4、ARMv7、ARMv8等。

在ARMv7之前所对应的CUP核心名称是ARM7、ARM8、ARM9这种命名方式。

在ARMv7的时候,对CPU核心名称进行了调整,改用Cortex-A、Cortex-R、Cortex-M进行命名;A系列主要运行操作系统,性能较好;M系列相较于A系列没有A系列性能那么高,通常用于单片机开发;R系列主要用于实时控制系统方面。
ARMv8系列支持了64bit的指令集。

处理器架构:体系结构定义指令集和基于这一体系结构下处理器的编程模型(基本数据类型、工作模型、寄存器组)。基于同种体系结构可以有多种处理器、每个处理器的性能不同,面向的应用领域也不同。

ARM处理器家族

早先经典处理器
包括ARM7、ARM9、ARM11家族
Cortex-A系列
针对开放式操作系统的高性能处理器;应用于智能手机,数字电视,服务器等高端运用。
Cortex-R系列
针对实时系统、满足实时性、高可靠性控制需求;应于汽车制动系统,动力系统,移动通信基带控制器等。
Cortex-M系列
为单片机驱动的系统提供的低成本优化方案;应用于传统的微控制器市场,智能传感器,汽车周边部件等。


指令集、CPU核心、CPU、SoC的区别

指令集:处理器能够识别并执行的指令集合;每一条指令可处理一个简单或复杂操作(加、加乘…);每一条指令对应一条或几条汇编指令。通常ARMv7指令、ARMv8指令等这些指令集的架构,这部分定义了整体的架构,例如定义了ARM的工作模式、中断处理方式。

CPU核心:是指令集的具体实现,例如Cortex-A7就是根据ARMv7指令集来实现的CPU核心,而STM32MP157则是意法半导体公司根据Cortex-A7的CPU核心设计出来的一款SoC。

SoC(System on Chip): 指的是在单个芯片上集成一个完整的计算机系统,所谓完整的系统一般包括中央处理器(CPU)存储器、以及外围电路等。也就是说一个芯片内部除了有CPU之外,还集成了很多控制单元,例如LED、UART控制器单元等。

指令集常见分类

复杂指令集(CISC):包含处理复杂操作的特定指令,指令长度不固定执行需要多个周期。
精简指令集(RISC):指令简单而有效,格式和长度通常是固定的,大多数指令在一个周期内可以执行完毕,ARM的内核是基于RISC体系结构的。


Cortex-M家族简介

Cortex-M系列产品主要包括Cortex-M0、Cortex-M1、Cortex-M3、Cortex-M4、Cortex-M7等。

Cortex-M0:主打低功耗和混合信号的处理;
Cortex-M1:应用于FPGA的应用控制领域;
Cortex-M3和Cortex-M4:主要用来替代ARM7,重点侧重能耗与性能的平衡;
Cortex-M7:则重点放在高性能控制运算领域;

Cortex-M4特性和体系结构

ARM Cortex-M4处理器内核是在Cortex-M3内核基础上发展起来的,其性能比Cortex-M3提高了20%。新增加了浮点、DSP、并行计算等。

RISC处理器内核:高性能32位CPU;Thumb-2指令集,高效、高代码密度,高性能,使用ARMv7-M的体系架构支持DSP和SIMD; 中断数量可配置(1~240个),低中断切换时延,提供不可屏蔽中断(NM)输入保障高可靠性系统;

低功耗模式:集成的睡眠状态支持、多电源域、基于架构的软件控制;

支持多种嵌入式操作系统,也被多种开发组件支持,包括MDK(ARM Keil微控制器开发套件)RVDS(ARM RealView开发组件)IARC编译器等。

  • 体系结构

Cortex-M微处理器主要包括处理器内核嵌套向量中断控制器(NVIC)调试子系统内部总线系统构成。
Cortex-M微处理器通过精简的高性能总线(AHB-LITE)外部存储器及外设进行通信。

  • 工作模式

Cortex-M4有两种工作模式和两种工作状态
处理模式(Handler Mode)
当处理器发生了异常或者中断,则进入处理模式进行处理、处理完成后返回线程模式。在该模式下处理器具有特权访问等级,可以访问处理器中的所有资源。
线程模式(Thread Mode)
芯片复位后,即进入线程模式,执行普通用户程序;可以处于特权或非特权模式,访问等级由CONTROL寄存器控制切换。
Thumb状态
正常运行时处理器的状态。
调试状态
调试程序时处理器的状态,调试器可以访问或修改处理器中寄存器的值。

  • 寄存器组-通用寄存器

Cortex-M4处理器内核有13个通用寄存器以及多个特殊寄存器,具体介绍如下:
1、R0-R12: 通用寄存器。其中R0-R7为低端寄存器,可作为16位或32位指令操作数,R8-R12为高端寄存器,只能用作32位操作数。
2、R13: 堆栈指针SP, Cortex-M4在物理位置上存在两个栈指针,主栈指针MSP, 进程栈指针PSP。在处理模式下,只能使用主堆栈,在线程模式下,可以使用主堆栈也可以使用进程堆栈,这主要是由CONTROL寄存器控制完成。系统上电的默认栈指针是MSP。
3、R14: 连接寄存器(LR), 用于存储子程序或者函数调用的返回地址。
4、R15: 程序计数器(PC), 存储下一条将要执行的指令的地址。

  • 寄存器组-特殊寄存器

PSR:组合程序状态寄存器,该寄存器由三个程序状态寄存器组成。
1、应用PSR(APSR):包含前一条指令执行后的条件标志;
2、中断PSR(IPSR):包含当前SR的异常编号;
3、执行PSR(EPSR):包含Thumb状态位;
PRIMSK:中断屏蔽特殊寄存器。
CONTROL:控制寄存器。
1、[PRIV]:为0, 处理器处于线程模式的特权级,为1为非特权级;
2、[SPSEL]:为0时,线程模式使用MSP, 为1时使用PSP;
注意:处理器模式时,固定使用MSP。


写在最后

ARM 之十五 扫盲 ARM 架构、指令集、微架构、系统架构、ARM
四大主流芯片架构(X86、ARM、RISC-V和MIPS)
ARM 之五 发展史及各时期内核(ARM1 ~ ARM11 / Cortex)介绍

相关文章

  • ARM处理器体系架构详细说明

    ARM 体系结构是构建每个 ARM 处理器的基础。ARM 体系结构随着时间的推移不断发展,其中包含的体系结构功能可...

  • ARM体系结构与汇编指令

    ARM体系结构 ARMnTDMI ARM处理器状态 ARM状态:32位,处理器执行字方式的ARM指令,处理器在系统...

  • ARM学习路线01-ARM体系结构

    第一部分 ARM体系结构 ARM(Advanced RISC Machines)既可以认为是一个公司的名字,...

  • Linux内核源代码的目录结构

    arch 包含和硬件体系结构相关的代码,每种平台占一个相应的目录,如i386、arm、arm64、powerpc、...

  • ARM课程-(NO.6.寄存器)

    ARM ARM体系结构的数据存储方式 处理器用于存储数据的方式有:大端小端法 ARM9处理器微处理器支持字节(8字...

  • 12.27 嵌入式

    郭老师今天介绍了ARM Cotrex-M3体系结构,包括处理器核结构,内核为哈佛体系结构,处理器工作模式,寄存器,...

  • 12月27日

    郭老师今天讲的是ARM Cotrex-M3体系结构,主要是从这几方面讲的 1.处理器核结构,内核为哈佛体系结构 2...

  • 最系统的ARM嵌入式资料

    最系统的ARM嵌入式资料 最新整理史上最齐全嵌入式资料,嵌入式的ARM体系结构的学习,下面给大家分享嵌入式从入门到...

  • ARM体系结构与编程

    Keil5安装教程 Keil5添加STC芯片库 mdk5环境下下载三星芯片 官网 Keil创建ARM芯片程序工程 ...

  • ARM体系结构常用术语解释

    那么A系列的处理器,会有一个相关的术语,这些术语在这里会给大家做一个介绍,大概这些术语要给大家说一下,首先是流水线...

网友评论

      本文标题:ARM体系结构

      本文链接:https://www.haomeiwen.com/subject/rjqjddtx.html