前提即要
在系统服务框架-子系统samgr_lite介绍中有:
由于平台资源有限,且硬件平台多样,因此需要屏蔽不同硬件架构和平台资源的不同、以及运行形态的不同,提供统一化的系统服务开发框架。根据RISC-V、Cortex-M、Cortex-A不同硬件平台,分为两种硬件平台,以下简称M核、A核。
- M核:处理器架构为Cortex-M或同等处理能力的硬件平台,系统内存一般低于512KB,无文件系统或者仅提供一个可有限使用的轻量级文件系统,遵循CMSIS接口规范。
- A核:处理器架构为Cortex-A或同等处理能力的硬件平台,内存资源大于512KB,文件系统完善,可存储大量数据,遵循POSIX接口规范。
系统服务框架基于面向服务的架构,提供了服务开发、服务的子功能开发、对外接口的开发、以及多服务共进程、进程间服务调用等开发能力。其中:
- M核:包含服务开发、服务的子功能开发、对外接口的开发以及多服务共进程的开发框架。
- A核:在M核能力基础之上,包含了进程间服务调用、进程间服务调用权限控制、进程间服务接口的开发等能力。
因此,本篇来讲解一下Cortex内核。
简介
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系列。
Cortex-A
Cortex-A面向基于虚拟内存的操作系统和用户应用,支撑大量交互任务,主要用于运行各种嵌入式操作系统的消费娱乐和无线产品.
例子:
Cortex-M
Cortex-M主要面向微控制器领域,用于对成本和功耗敏感的终端设备,如智能仪器仪表、汽车和工业控制系统、家用电器等。
主要面向微控制器领域,成本极低,面积很小和能效比很高、流水线很短,时钟频率低(400Mhz以内),易于开发使用,被广泛用于穿戴产品/运动控制器/通讯模组/传感器模块的开发。
Cortex-M核心特点:
- 低成本、低功耗、易用,外设接口资源极其丰富;
- 嵌套向量中断控制器(NVIC)进行中断响应管理,避免了使用软件判断哪一个中断需要响应处理,同时,中断响应速度是确定性的,低延迟的。
Cortex-R
该系列主要用于具有严格的实时响应限制的深层嵌入式实时系统。
Cortex-R系列,衍生产品中体积最小的ARM处理器,流水线长,主频极高。针对高性能实时应用,如5G模块,硬盘控制器(或固态驱动控制器)、网络设备和打印机、例如蓝光播放器和媒体播放器、以及汽车应用(例如安全气囊、制动系统和发动机管理)。
总结
一种CPU的体系结构定义了其支持的指令集和基于该体系结构下的处理器编程模型;一般商业术语中直接以指令集版本代指体系结构版,目前工发展了Armv1~v8共8个体系结构版本。
相同的体系结构下,由于所面向的应用不同,对性能的要求不同,会有多种CPU内核,如Arm7,Arm11,Cortex-A5;
相同的CPU内核版本,各公司可采用不同的加工工艺生产、配置不同的缓存容量、不同核数,形成不同CPU型号产品,如同样是利用Cortex-A9内核,台湾出品了威盛WM8980,日本出品了东芝Vsconti 3。