ARM Cortex-M7处理器体系结构简介

最新更新时间:2022-12-16来源: zhihu关键字:ARM  Cortex-M7  处理器  体系结构 手机看文章 扫描二维码
随时随地手机看文章

本文以ST公司的STM32F7为实例来介绍M7体系结构,主要涉及M7存储器模型以及缓冲机制、编程模型、异常模型、处理器两大工作模式以及特权级,对于核心寄存器、内核外设SysTick、MPU、FPU以及系统控制块SCB仅做简单介绍。适用于对MCU+RTOS感兴趣的读者;

参考手册:
  • STM32F7 Series Cortex®-M7 processor programming manual

  • ARM Cortex-M7 Processor Technical Reference Manual

  • ARM Cortex-M7 Devices Generic User Guide

一、指令集类型简单介绍:

在计算机处理器发展史上形成了CISC(复杂指令集计算机)和RISC(精简指令集计算机)两大指令集阵营;CISC以x86体系结构为主,它拥有复杂且庞大的运算和控制指令,可以为桌面计算机和服务器提供强悍的计算能力;RISC主要以ARM体系结构为主,它克服了x86指令集中的二八原则,复杂指令分解为基本指令来处理;由于ARM指令集宽度一致,它可以采用超长流水线技术提升执行速度;由于ARM指令集规模较小,电路规模自然没有x86庞大,因此具备低功耗特点;ARM体系结构还有很多不同于x86的特点,例如存储加载型访问,采用大量寄存器;本文所述M7也是采用了RISC技术;

二、存储器模型以及缓存机制:

存储器地址映射示意图

在M7上,将代码区,数据区,外设区,FSMC区和内核区统一组织在4GB的线性地址空间中。CPU只能通过LDR,STR等存储加载指令访问存储器,可以采用字节访问,半字访问和字访问三种访问类型;采用小端模式,即低字节存储在低地址;

指令缓存,数据缓存

CPU和存储器之间有4KB指令缓存和4KB数据缓存,缓存可以加速CPU对存储区的访问;在某些场合开发者需要注意缓存和存储区一致性问题,例如如果开发者使能了缓存,然后将某一个代码区扇区擦除(未存储代码),则此时已经擦除扇区数据和已经缓存数据便不一致,导致出错;

三、编程模型:

在CPU执行程序过程中,可以分为Thread模式和Handler模式;在Thread模式下执行应用代码,属于处理器正常工作过程;在Handler模式下执行异常代码,例如不可屏蔽异常服务程序,硬件错误异常服务程序等;

特权级:程序有特权级和非特权级之分;特权级程序运行在特权级别上,可以访问系统所有资源,非特权级程序运行在非特权级别上,它的访问有限制,例如不能访问系统内核寄存器;Handler模式运行在特权级别上,Thread模式可以运行在特权或者非特权级上;

堆栈指针:它有主堆栈指针MSP和线程堆栈指针PSP之分,Handler模式下只能使用MSP,Thread模式可以使用MSP或者PSP;

模式,特权级别和堆栈指针

核心寄存器:

M7包含R0~R12,SP(MSP,PSP),LR,PC,APSR,IPSR,EPSR,PRIMASK,FAULTMASK,BASEPRI和CONTROL;

R0~R12作为通用寄存器用于数据处理;

SP(R13)用于存放栈地址,它有MSP和PSP之分,具体使用取决于CONTROL.bit1;在Handler模式下强制CONTROL.bit1为0,即使用MSP;

LR(R14)用于存放子程序返回,异常返回数据,例如模式,堆栈,FPU使用等;

PC(R15)用于存放当前指令地址;

PSR程序状态寄存器包含APSR应用程序状态寄存器,IPSR中断程序状态寄存器,EPSR异常程序状态寄存器;APSR记录程序计算状态条件,IPSR用来记录当前中断服务程序的异常类型编号,EPSR用于THUMB状态位,IT位,ICT位等;

PRIMASK:用于屏蔽可配置的优先级;

FAULTMASK:用于屏蔽除了NMI以外的所有可配置的优先级

BASEPRI:屏蔽所有数值上不小于它的优先级;

CONTROL:用于设置特权级,选择堆栈指针以及FPU上下文切换;

四、异常模型:

M7异常向量表,包含异常编号,中断请求编号,存储器分布

M7处理器一共有255个异常,异常编号为1~255;其中1~15属于内核异常,大于15属于外设中断;在程序开发中,使用-14~-1表示内核中断(异常)请求编号,大于-1表示外设中断请求编号;

异常分为非活跃且非挂起状态,挂起状态,活跃状态,活跃且挂起状态;

M7每个异常有一个8位寄存器表示其优先级,即支持0~255优先级,但是在STM32F7内部只是实现其高4位,即支持0~15优先级;通过配置优先级分组后,高优先级可以抢占低优先级异常;

异常处理是保存现场和恢复现

保存现场:考虑一种简单的情况,异常帧中没有FPU保存时,这时硬件会将xPSR, PC, LR, R12, R3, R2, R1, R0全部保存在SP指向的栈区,在RTOS中R4~R11由程序员入栈;

执行中断服务程序:用于处理外部事件;

恢复现场:采用以下其中一条指令进行返回:

  1. An LDM or POP instruction that loads the PC.

  2. An LDR instruction with PC as the destination.

  3. A BX instruction using any register.

异常返回LR定义

例如采用BX LR返回,执行指令后处理器根据LR最低5bit获取返回模式,堆栈指针使用以及FPU使用等;然后硬件将R0, R1, R2, R3, R12, LR, PC, xPSR出栈,在RTOS中R4~R11由程序员出栈,并且开始执行被中断程序的下一条指令;为了降低中断延时,M7还采用了咬尾中断,晚到中断等机制;

五、SCB:系统控制块

系统控制块

系统控制块主要实现系统状态和系统控制功能,例如1~15号异常控制,优先级分组配置,重定位中断表位置等;

六、NVIC:嵌套向量中断控制器

主要用来管理IRQ0~IRQ239外设中断请求,并且CMSIS提供了一套函数用来访问NVIC寄存器;

七、SysTick:系统滴答定时器

SysTick操作函数接口

SysTick旨意提供MCU软件重用,用户在更换以M7为内核的其他MCU尤其在支持RTOS时,在移植内核时,可以不加修改地直接使用。

八、MPU:存储器保护单元

存储器保护单元寄存器

MPU将存储器空间划分为若干分区,定义每个分区的位置、大小、访问权限和属性等。



九、FPU:浮点数处理单元

浮点处理单元寄存器

FPU支持单精度和双精度加、减、乘、除、乘加以及平方根运算;支持定点数和浮点数之间的格式转换以及浮点常量指令;支持IEEE754标准;

十、总线访问控制

指令数据紧密耦合存储器控制

AHB主总线控制

AHB从总线控制

缓存控制

总线错误状态

十一、总结

内核寄存器映射和访问函数由CMSIS统一提供,提高了软件在以M7为内核的微控制器上的复用。使开发者在不同芯片厂商之间快速开发切换提供了可能。以上是对M7体系结构的简介,详介请参考手册;


关键字:ARM  Cortex-M7  处理器  体系结构 编辑:什么鱼 引用地址:ARM Cortex-M7处理器体系结构简介

上一篇:ARM和嵌入式Linux的入门建议
下一篇:友善之臂之mini22440开发环境搭建

推荐阅读

富士通推出搭載最新第13代Intel 处理器的笔记本电脑
富士通推出搭載最新第13代Intel 处理器的笔记本电脑,以提高生产力、便携性和可持续性 卓越便携性,切合混合工作模式 北京,中国 - Media OutReach - 2023年6月2日 - 富士通今天发布了其最新系列的LIFEBOOK商务笔记本电脑,采用了第13代Intel®Core™处理器的卓越性能和技术。这款日本制造的LIFEBOOK U9系列自重轻至898克,是一款专为商务专业人士设计的超移动高级商用笔记本电脑。这款新设备将为现代高管提供一流的移动性、强大的性能和先进的安全选项。 富士通LIFEBOOK U9系列 超轻型,仍强大 全新的日本制造LIFEBOOK U9系列超便携,重量不到1公斤,专为混合
发表于 2023-06-02
富士通推出搭載最新第13代Intel <font color='red'>处理器</font>的笔记本电脑
暴芯处理器被指“换壳”,宝德回应:联合英特尔定制,未申国家补贴
今年5月7月,宝德公司发布了基于x86架构的暴芯(Powerstar)处理器,型号为“PL PSTARP3-01105”,频率为3.7GHz。宝德称,该处理器年销售目标为150万片,同时打造暴芯芯片研发制造基地,涵盖制造封装测试、晶圆测试及打磨、产业应用发展等产业链环节,还将继续致力于电源、内存、SSD、显卡等产品的宝德化。 虽然未公布更多具体规格资料,但其外观和英特尔 LGA1200封装的10代酷睿完全一致引发网友争议,结合编号、频率看,有人猜测这款暴芯处理器就是i3-10105的复刻版:14nm,4核心8线程,主频3.7-4.4GHz,三级缓存6MB,核心UHD 630,热设计功耗65W。 左为暴芯PL PSTA
发表于 2023-06-01
暴芯<font color='red'>处理器</font>被指“换壳”,宝德回应:联合英特尔定制,未申国家补贴
Arm推出TCS23,都有哪些亮点?
近日,Arm宣布推出2023 全面计算解决方案(TCS23),TCS23提供一整套针对特定工作负载而设计与优化的最新 IP,其中包括最新的CPU IP Cortex-X4、Cortex-A720和Cortex-A520,最新的GPU Immortalis-G720、 Mali-G720和Mali-G620,以及在安全领域的重要更新。 Arm还强调了所有大小核均实现了向64位的迁移,Arm高级副总裁兼终端事业部总经理Chris Bergey说道:“Arm 在十年前就开始陆续将64位处理器推向市场,从32位向64位计算的过渡期是一个缓慢的过程,而我们相信只有64位才是正确的方向。仅支持64位不光保证了更高的性能,也进一步夯实了计算
发表于 2023-05-31
<font color='red'>Arm</font>推出TCS23,都有哪些亮点?
基于TMS320DM6437数字媒体处理器实现高级驾驶员辅助系统的设计
汽车已成为现代社会不可缺少的一部分,为全球货物及人员运输提供了一种低成本的交通方式。不幸的是,每天都会因车辆驾驶而出现大量的事故与伤亡事件。据世界卫生组织统计,1998年全球交通事故死亡人数高达120万;1990年交通事故是全球导致人类死亡的第九大原因,预计到2020年它将进一步上升为第三大致死原因。 鉴于上述原因,汽车原始设备制造商(OEM)及其供应商合作伙伴,以及全球政府机构一直在努力开发并推广主动安全与高级驾驶员辅助系统(ADAS),其设计旨在降低事故发生率并减少碰撞的严重程度。汽车产业界分析师认为,到2010年,ADAS将成为顶级新技术,其不仅可以帮助驾驶员提前意识到潜在的危险,而且还可通过车道偏离警告系统(LDWS)
发表于 2023-05-31
基于TMS320DM6437数字媒体<font color='red'>处理器</font>实现高级驾驶员辅助系统的设计
基于形式验证的高效 RISC-V 处理器验证方法
RISC-V的开放性允许定制和扩展基于 RISC-V 内核的架构和微架构,以满足特定需求。这种对设计自由的渴望也正在将验证部分的职责转移到不断壮大的开发人员社群 。然而,随着越来越多的企业和开发人员转型RISC-V,大家才发现处理器验证绝非易事。新标准由于其新颖和灵活性而带来的新功能会在无意中产生规范和设计漏洞,因此处理器验证是处理器开发过程中一项非常重要的环节。 在复杂性一般的RISC-V 处理器内核的开发过程中,会发现数百甚至数千个漏洞。当引入更多高级特性的时候,也会引入复杂程度各不相同的新漏洞。而某些类型的漏洞过于复杂,导致在仿真环节都无法找到它们。因此必须通过添加形式验证来赋能 RTL 验证方法。从极端漏洞到隐匿式漏洞
发表于 2023-05-31
基于形式验证的高效 RISC-V <font color='red'>处理器</font>验证方法
基于CP3000系列连通处理器实现低成本的汽车导航系统的设计
如果提供选择机会,我确信每个人均会选择在他们的车辆中安装 GPS 导航系统。它可以节省很多驾驶时间,并且可以大大缓解迷失方向时的沮丧,这些对于驾驶人员来说非常宝贵,他们无法拒绝。但是,遗憾的是,这种舒适水准对应的价格,大多数人均无法承受。即使是用于各种 PDA 平台的最新软件和 GPS 附加设备,仍然没有为大众带来高质量的导航帮助。因此,至少到目前为止,我们必须依靠我们的方向感、同车乘客手头的地图的支持,以及当地的道路标识来为我们导航,穿过陌生的道路。 图1,典型内置或配件市场GPS导航系统构成。 如果我们查看典型内置或配件市场 GPS 导航系统(图 1)的设计,我们可以发现功能块是由多个成本不菲的组件构成的。首先,存在一个处
发表于 2023-05-31
基于CP3000系列连通<font color='red'>处理器</font>实现低成本的汽车导航系统的设计
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved