ARM Cortex 架构简介

本文介绍了ARM公司的Cortex处理器系列,分为Cortex-A、Cortex-R和Cortex-M三个系列,分别针对高性能应用、实时系统和微控制器市场。文章详细说明了各个系列的特点及其应用场景。
ARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,旨在为各种不同的市场提供服务。
Cortex系列属于ARMv7架构,这是到2010年为止ARM公司最新的指令集架构。(2011年,ARMv8 架构在 TechCon 上推出)ARMv7架构定义了三大分工明确的系列:“A”系列面向尖端的基于虚拟内存的操作系统和用户应用;“R”系列针对实时系统;“M”系列对微控制器。
由于应用领域不同,基于v7架构的Cortex处理器系列所采用的技术也不相同,基于v7A的称为Cortex-A系列,基于v7R的称为Cortex-R系列,基于v7M的称为Cortex-M系列。

ARM Cortex™-A

ARM Cortex™-A 系列应用型处理器可向托管丰富 OS 平台和用户应用程序的设备提供全方位的解决方案,从超低成本手机、智能手机、移动计算平台、数字电视和机顶盒到企业网络、打印机和服务器解决方案。高性能的Cortex-A15、可伸缩的Cortex-A9、经过市场验证的Cortex-A8处理器和高效的Cortex-A7和Cortex-A5处理器均共享同一架构,因此具有完全的应用兼容性,支持传统的 ARM、Thumb指令集和新增的高性能紧凑型Thumb-2指令集。
Cortex-A15 和 Cortex-A7 都支持 ARMv7A 架构的扩展,从而为大型物理地址访问和硬件虚拟化以及处理 AMBA4 ACE 一致性提供支持。同时,这些都支持big.LITTLE 处理。[1]
ARM在Cortex-A系列处理器大体上可以排序为:Cortex-A57处理器、Cortex-A53处理器、Cortex-A15处理器、Cortex-A9处理器、Cortex-A8处理器、Cortex-A7处理器、Cortex-A5处理器、ARM11处理器、ARM9处理器、ARM7处理器,再往低的部分手机产品中基本已经不再使用,这里就不再介绍。[2] 需要指出的是,单从命名数字来看Cortex-A7似乎比A8和A9低端,但是从ARM的官方数据看,A7的架构和工艺都是仿照A15来做的,单个性能超过A8并且能耗控制很好。另外A57和A53属于ARMv8架构。[3]

ARM Cortex-R

ARM Cortex-R实时处理器为要求可靠性、高可用性、容错功能、可维护性和实时响应的嵌入式系统提供高性能计算解决方案。
Cortex-R 系列处理器通过已经在数以亿计的产品中得到验证的成熟技术提供极快的上市速度,并利用广泛的 ARM 生态系统、全球和本地语言以及全天候的支持服务,保证快速、低风险的产品开发。
许多应用都需要 Cortex-R 系列的关键特性,即:
高性能:与高时钟频率相结合的快速处理能力
实时:处理能力在所有场合都符合硬实时限制
安全:具有高容错能力的可靠且可信的系统
经济实惠:可实现最佳性能、功耗和面积的功能。
Cortex-R 系列处理器与Cortex-M和Cortex-A系列处理器都不相同。显而易见,Cortex-R 系列处理器提供的性能比 Cortex-M 系列提供的性能高得多,而 Cortex-A 系列专用于具有复杂软件操作系统(需使用虚拟内存管理)的面向用户的应用。[4]

ARM Cortex™-M

ARM Cortex™-M处理器系列是一系列可向上兼容的高能效、易于使用的处理器,这些处理器旨在帮助开发人员满足将来的嵌入式应用的需要。这些需要包括以更低的成本提供更多功能、不断增加连接、改善代码重用和提高能效。nbsp;Cortex-M 系列针对成本和功耗敏感的MCU和终端应用(如智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械)的混合信号设备进行过优化。[5] .
1总结
编辑

简单来说,Cortex就是ARM公司一个系列处理器的名称。比如英特尔旗下处理器有酷睿,奔腾,赛扬。ARM在最初的处理器型号都用数字命名,最后一个是ARM11系列,在应用ARMv7架构后,推出了Cortex这一系列,老式的则命名为Classic系列


### ARM Cortex-M架构的基本信息和特点 ARM Cortex-M架构是一种专为微控制器设计的处理器架构,其主要目标是提供低功耗、高性能以及成本效益的解决方案[^2]。该架构广泛应用于嵌入式系统中,包括消费电子、工业控制、医疗设备和汽车电子等领域。 #### 1. 基本信息 ARM Cortex-M架构是一个32位RISC(精简指令集计算)架构,旨在优化嵌入式应用中的性能与功耗平衡[^1]。它支持多种内核版本,例如Cortex-M0、Cortex-M3、Cortex-M4和Cortex-M7等,每种内核针对不同的应用场景进行了优化。 #### 2. 架构特点 以下是ARM Cortex-M架构的主要特点: - **低功耗设计**:通过高效的电源管理和动态频率调节技术,ARM Cortex-M架构能够在保持高性能的同时显著降低功耗[^2]。 - **高性能**:采用流水线技术和分支预测机制,提升指令执行效率。例如,Cortex-M4内核还集成了硬件乘法器、除法器以及单精度浮点运算单元(FPU),适用于复杂的数学运算和信号处理任务[^4]。 - **中断处理机制**:ARM Cortex-M架构配备了嵌套向量中断控制器(NVIC),能够实现快速响应和优先级管理的中断处理。此外,支持延迟极短的中断进入和退出操作,确保实时性要求得到满足[^5]。 - **寄存器配置**:Cortex-M架构包含一组通用寄存器(R0-R12)、堆栈指针(SP)、链接寄存器(LR)以及程序计数器(PC)。在某些版本中(如Cortex-M0+),SP进一步细分为MSP(主堆栈指针)和PSP(进程堆栈指针),以区分特权模式和用户模式下的堆栈使用[^5]。 - **调试支持**:提供了丰富的调试接口,便于开发人员进行代码分析、故障排查和性能优化[^2]。 - **紧耦合内存(TCM)**:部分内核支持紧耦合内存,用于存储关键数据或代码,从而减少访问外部存储器带来的延迟[^4]。 - **DSP扩展指令集**:在Cortex-M4和Cortex-M7内核中,引入了专门用于数字信号处理的指令集,增强了对音频、图像和其他多媒体处理的支持[^4]。 #### 示例代码 以下是一个简单的示例代码,展示如何初始化一个基于ARM Cortex-M架构的STM32单片机的GPIO引脚: ```c #include "stm32f4xx_hal.h" void GPIO_Init(void) { __HAL_RCC_GPIOA_CLK_ENABLE(); // 启用GPIOA时钟 GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_PIN_5; // 配置PA5引脚 GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // 设置为推挽输出模式 GPIO_InitStruct.Pull = GPIO_NOPULL; // 禁用上拉/下拉电阻 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; // 设置低速模式 HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); // 初始化GPIOA } int main(void) { HAL_Init(); // 初始化HAL库 GPIO_Init(); // 初始化GPIO while (1) { HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); // 切换PA5引脚状态 HAL_Delay(500); // 延时500ms } } ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值