ARM体系结构

嵌入式学习 - 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)介绍

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,458评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,454评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,171评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,062评论 0 207
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,440评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,661评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,906评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,609评论 0 200
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,379评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,600评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,085评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,409评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,072评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,088评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,860评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,704评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,608评论 2 270

推荐阅读更多精彩内容