历史上的今天
返回首页

历史上的今天

今天是:2024年10月25日(星期五)

正在发生

2021年10月25日 | ARM架构—— Cortex-M3与Cortex-M4特点概述

2021-10-25 来源:eefocus

一、处理器和微控制器差别

微控制器包含处理器,处理器只是其中一小部分,具体包含存储器、时钟生成、分配逻辑、系统总线以及外设(I/O接口单元、通信接口、定时器、ADC、DAC等等),如图1-1所示:

图 1一1微控制架构


即使处理器相同,但是不同芯片厂商根据不同的应用场景选择不同的特性模块就能设计出不同特性的微控制器。


二、Cortex-M3与Cortex-M4特点

Cortex-M3与Cortex-M4处理器均使用32位架构,寄存器组中的内部寄存器、数据通路以及总线接口都是32位。Cortex-M处理器使用的指令集架构(ISA)为Thumb ISA,基于Thumb-2技术并同时支持16位和32位指令。


异同点:


相同点:


基于ARM-v7-M架构。

三级流水线设计。

哈佛总线架构,统一的存储器空间:指令和地址总线使用相同的地址空间。

32位寻址,支持4GB 存储空间。

基于ARM AMBA(高级微控制器总线架构)技术的片上接口,支持高吞吐量的流水线总线操作。

NVIC(嵌套向量中断控制器),最多支持240个中断请求和8~256个中断优先级(理论上支持,实际需芯片厂商设计)

具有支持多种OS(操作系统)特性,例如:节拍定时器和影子栈指针等。

支持休眠模式和多种低功耗模式。

支持可选MPU(存储器保护单元),具有存储器保护特性:可编程存储器或访问权限控制等。

可通过位段特性支持两个特定存储器区域中的位数据访问。

可选择使用单个或多个处理器。

具有多种指令:

普通数据处理,包括硬件除法指令。

存储器访问指令(8位,16位,32位)

位域处理指令

乘累加(MAC)以及饱和指令

跳转,条件跳转以及函数调用指令

系统控制、支持OS指令

不同点:


Cortex-M4在DSP方面应用具有更高的性能。

Cortex-M4支持浮点运算(单精度)。

Cortex-M4支持单指令多数据(SIMD)操作。

Cortex-M4支持快速MAC和乘法指令。

Cortex-M4支持饱和运算指令。

优势:


低功耗:都低于200uA/MHz。

高性能:3 CoreMark/MHz

高能耗效率:功耗低,性能高所以具有高能耗效率。

良好的代码密度:Thumb ISA指令架构,在完成相同任务时,所需程序代码更少。

中断多数量,多优先级,实时性好:240个向量中断,8~256中断优先级,中断等待12个周期(中断嵌套由硬件自动处理)。

易于使用:具有简单、线性的存储器。

可扩展性强:低端处理器,到200MHz高端处理器。

调试特性丰富:标准调试特性(单步,暂停等),捕获程序流、数据变动以及概况信息等跟踪数据。还可以多Cortex-M处理器共享调试连接。

多种OS支持,超过30余种。

多种系统特性,例如:可位寻址存储器区域(位段特性)和MPU(存储器保护单元)。

软件可移植性、可重用性:C友好架构,CMSIS。


三、开发流程

图3-1开发流程

3.1软件编译流程


在常用的keil MDK-ARM中采用基于GNUD的gcc工具链编译程序,编译过程如图3-2所示:

图3-2编译流程


3.2软件运行模式

1.轮询


在大多数应用开发过程中,微控制器要接受多个接口的控制,需要支持处理多个任务,所以处理器等待接口数据准备好后进行处理,处理完毕后再进行下一个任务的处理。如图3-3所示:

图3-3轮询处理多个任务


轮询只适合简单的应用,当任务繁多复杂时,轮询设计维护将非常困难,且不能定义任务优先级,导致任务执行缓慢,能耗效率较差。


2.中断执行


中断执行有两种方式:


第一种外设任务放在中断服务程序中进行处理,当外设任务需要处理时,触发处理器中断,处理器执行相关任务,此方式可以设定不同中断优先级,可以进行中断嵌套快速响应高优先级中断任务。处理流程如图3-4所示:

图3-4中断服务程序处理


第二种将外设任务执行过程分为两部分,第一部分为需要快速处理的部分,第二部分不着急处理部分。当外设中断到来时在中断服务程序中处理需要快速处理的部分并设置相关标志位或状态,在轮询流程中根据标志位或状态进行相关处理。处理流程如图3-5所示:

图3-5中断轮询方式


3.多任务系统


在复杂的多任务嵌入式系统中,多任务同步等操作,以上几种方式均无法满足要求,所以此时需要嵌入实时操作系统(RTOS)将处理器时间分为多个时间片再将时间片按照优先级分配给进程,实现多个进程同时执行。RTOS中是以定时器记录时间片,根据定时器产生中断,触发任务调度器进行调度,从而进程间将会发生上下文切换。处理流程如图3-6所示:

图3-6 RTOS多任务处理


3.3 Cortex微控制器软件接口标准(CMSIS)

  CMSIS目标:


提高软件重用性。

提高软件兼容性。使用统一的软件架构。

易于学习。允许使用C语言访问内核特性。

独立于工具链。负荷CMSIS设备驱动可用多种编译工具编译。

开放性。源码开源。

目前有5种CMSIS:


CMSIS-Core(访问Cortex-M处理器特性的API,便于应用程序的开发)。

CMSIS-DSP(常见DSP运算如FFT和滤波器等)。

CMSIS-RTOS(用于Cortex-M微控制器上嵌入式OS的API)。

CMSIS-DAP(调试接口适配器的参考设计,支持USB到JTAG/串行协议的转换)。

CMSIS-SVD(CMSIS系统视图描述,基于XML语言格式,用于描述微控制产品的外设集)。

CMSIS标准:


处理器外设标准化定义。

访问处理器特性标准化函数。

操作特殊指令标准化函数。

系统异常处理标准化命名。

系统初始化标准函数。

描述时钟频率标准化变量。

CMSIS层次结构:


内核外设访问层

设备外设访问层

外设访问函数层

图3-7 CMSIS-Core结构


四、技术要点

4.1指令集

ARM Cortex-M 是32位RISC(精简指令集)处理器,具有:


32位寄存器

32位内部数据通路

32位总线接口

但是还是可以高效的运行8位和16位数据,都具有三级流水线(取指,译码和执行),它们都基于哈佛总线结构,取指令和数据访问可以同时执行。


Cortex-M 处理器基于一种加载-存储结构,数据需要从存储器中加载和处理后,使用多个单独的指令写回存储器。


ARM架构一般指两个方面:


架构。指令集架构(ISA),编程模型以及调试方法。

微架构。接口信号,指令执行时序以及流水线阶段等。

ARM7TDMI等经典ARM处理器两种操作状态:


32位的ARM状态,32位指令,内核能以很高的性能执行所有指令。

16位的Thumd状态,16位指令,可以得到很好的代码密度,不具有

ARM指令的所有功能。

图4-1 ARM7TDMI等经典ARM处理器

Thumd-2技术的Cortex-M 处理器无需在16位和32位指令间切换。

图4-2 Cortex-M 处理器与ARM7TDMI等经典ARM处理器指令集比较

图4-3 Cortex-M3/4处理器框图


4.2 存储器保护单元


MPU位监控总线传输的可编程设备,须通过软件配置。MPU开启时,应用程序可以将存储器空间分为多个部分,并为每个部分定义访问权限。当违反规则时,产生错误异常。例如保护OS内核,其他特权任务使用的数据,隔离不同用户存储器,防止意外擦除SRAM,覆盖指令代码。


4.3中断处理

嵌套向量中断控制器(NVIC)特性:


最多240个中断输入,不可屏蔽中断(NMI)输入和系统异常。

中断和系统异常具有可编程优先级。

嵌套中断/异常按照优先级先后处理。

向量中断/异常,处理器自动取出无需软件确认。

向量表可重定位在存储器多个区域(默认0x0)。

低中断等待。具有零等待状态存储系统,中断等待仅为12个周期。

中断和异常可用软件触发。

具有屏蔽中断和异常功能(NMI除外),也可将屏蔽为某个优先级之下。

多个优化用于降低不同异常上下文切换时的中断处理开销。

4.4 OS支持和系统特性


三个系统特性:


具有一个内置系统节拍定时器SysTick,为OS提供周期性定时中断。

具有两个栈指针:OS内核和中断用的主栈指针(MSP)和任务用的进程栈指针(PSP),分隔用户栈和内核栈,提高可靠性同时优化栈空间。

具有特权和非特权模式,处理启动后默认在特权模式,OS使用时可以将应用任务运行在非特权模式中,防止破坏OS任务和其他数据。

推荐阅读

史海拾趣

振华(CEC)公司的发展小趣事

中国振华电子集团有限公司(简称振华)自成立之初,就致力于电子产品的研发与生产。初期,公司面临着技术落后、资金短缺等诸多困难,但创始人及团队凭借坚定的信念和不懈的努力,成功开发出了一系列具有市场竞争力的电子产品。随着产品质量的提升和市场份额的扩大,振华逐渐在电子行业中崭露头角。

AVX公司的发展小趣事

随着业务的不断发展,AVX开始在美国本土进行大规模扩张。它在多个州设立了生产基地和销售网络,进一步提升了公司的产能和市场覆盖率。同时,AVX还积极开拓国际市场,与全球各地的客户建立了紧密的合作关系。这种全球化布局使AVX能够更好地满足客户需求,提升公司的竞争力。

EREM公司的发展小趣事

随着全球市场的不断融合,EREM公司开始寻求国际合作机会。通过与国外知名企业的合作,EREM不仅将产品销售到了全球各地,还学到了许多先进的管理经验和技术。同时,EREM也积极参与国际展览和交流活动,提升了品牌知名度和影响力。这些努力使得EREM在国际市场上逐渐崭露头角。

Crane Co.公司的发展小趣事

Crane Co.的创立可以追溯到1855年,当时R. T. 克瑞黄铜与铸钟厂在芝加哥正式成立。公司起初主要生产阀门、配件和特种铸件,这些产品为当时的工业发展提供了关键支持。随着美国工业的蓬勃发展,Crane Co.凭借其精湛的铸造技术和优质的产品质量,逐渐在阀门制造领域崭露头角。

绿索超容(GreenSource)公司的发展小趣事

随着公司业务的蓬勃发展,Crane Co.在1880年代经营着四家制造工厂,员工人数超过1500名。公司的业务足迹也逐渐延伸到美国西部地区。为了进一步提升产品质量和技术水平,Crane Co.在1890年代成立了旗下第一家冶金实验室,专注于材料研究和开发。这一举措为公司在电子行业的后续发展提供了强大的技术支持。

ADPOW公司的发展小趣事

ADPOW公司成立于XXXX年,初期是一个小型电子技术研发团队。创始人凭借对电子技术的深刻理解和市场需求的敏锐洞察,带领团队专注于电源管理技术的研发。经过数年的不懈努力,团队成功开发出一款高效、稳定的电源管理芯片,这一技术突破为ADPOW公司后续的发展奠定了坚实的基础。

问答坊 | AI 解惑

matlab命令大全!

这个是内容提要! 具体出处! …

查看全部问答>

EEWORLD 8月优秀版主出炉!

评选优秀版主真是不简单啊,整理统计数据,还要计算,可真是忙坏了。不过想到各位版主们也是为坛子尽心尽力,评选这点工作又算得了什么呢?呵呵,好了,废话不多说,获奖版主们登场喽! 优秀版主:jxb01033016   总分 :    ...…

查看全部问答>

EBOOT下载BIN校验和出错?

YL2440的板子,通过其EBOOT下载内核,可是总是校验和出错,如下所示: EthDown::TFTPD_OPEN::boot.bin -EbootSendBootmeAndWaitForTftp Download BIN file information: ----------------------------------------------------- [0]: Base Add ...…

查看全部问答>

protel画元件封装时设置参考点

大家好: protel99画元件封装时设置参考点?谢谢咯!…

查看全部问答>

显示图片居然花了700ms时间,请帮我看看是怎么回事?

用如下的代码显示一个800 x 454 24bit的图片时,居然花了700ms时间(CPU主频600M)?请帮忙看看问题在哪里?                     case WM_PAINT:       &n ...…

查看全部问答>

求问 EVC 的编译问题

一个应用程序 需要包含en.lib 这个lib是汇编和c编译的 举个头文件的例子:a.h #include \"mode.h\" #include \"frame.h\" #ifdef __cplusplus extern \"C\" { #endif int Str2mode(const char* str, enum Mode    *mode); int M ...…

查看全部问答>

有用stm32做电表的朋友吗?

有没有做三相电表的,交个朋友。xzm0662#hotmail.com…

查看全部问答>

哪里能买到stm8L仿真器

请问各位老大, 哪里能买到 stm8L 仿真器?…

查看全部问答>

3合1(STM32,STM8,STLINK)板中STM32原理图,样例程序,使用说明

补充一下STM32最小系统的原理图,样例程序和使用说明。 相关链接:https://bbs.eeworld.com.cn/upfiles/img/20095/2009511162619365.pdf…

查看全部问答>

ccs里面的real-tme mode是干吗用的

ccs里面的real-tme mode是干吗用的呢?我刚刚看到ccs3.3里面又才出现了一个rude real-time mode,是什么意思呐…

查看全部问答>