Cortex-M/R/A 芯片&内核&架构

      市场上的嵌入式芯片千千万万,那么对于我们初学的开发者,该怎么选择,怎么下手呢。
      其实我们只要理清楚思路,每一个芯片背后肯定包含一个内核以及他的架构和指令集。比如我们以前学习意法半导体的STM32 MCU 它是ST公司生产的芯片,内部是ARM Cortex-M3/M4内核,采用ARMv7架构(哈弗结构)。所以我们学完STM32,就其他类型的单片机就触类旁通了。(类似STM32的单片机有很多,比如NXP的 等等,但是这么多芯片,ARM公司却从来不生产芯片,他只转让内核的设计方案,所以这些芯片不过是在Cortex-M核的基本上增加片上外设)
      所以现在学习嵌入式Linux也是同样如此,我们选定一款学习板,不管哪个公司生产的芯片,哪个机构组合的开发板,只要理清楚芯片、内核、架构之间的关系,学会一种典型芯片的开发方法,那么再上手其他的芯片,就有相应的开发经验了。


芯片 内核 架构
S3C2440(三星 停产) ARM9 ARMv4
S3C6410 ARM11 ARMv7
S5PV210 ARM Cortex-A8 ARMv7

我手头有一块


Cortex-M/R/A 芯片&内核&架构_第1张图片
这是ARM设计内核的一个演变,从以前的ARM7 ARM9 ARM11到现在的Cortex系列。Cortex根据不同的应用又可以分为几个大类:

  • Cortex-M   Embedded Microcontroller Processors 小型微控制器的应用程序
  • Cortex-R    Embedded Real-time Applications Processors 用于实时性能要求较高的应用程序
  • Cortex-A    Application Processors 通常用于需要操作系统或高性能支持的应用程序

Cortex-M/R/A 芯片&内核&架构_第2张图片

     就Cortex-M处理器核心来讲,ARM已经拥有非常丰富的产品类型。Cortex-M0是同系列的首款处理器,设计初衷是利用其小体积低功耗的优势,满足深度嵌入、成本敏感的应用程序的要求,例如智能传感器节点。Cortex-M3处理器和Cortex-M4处理器则主要针对大众市场的微控制器。Cortex-M7处理器则是整个系列的最高端产品,性能更高,可以处理计算强度极高的工作负载,也包括信号处理。基于ARMv6-M和ARMv7-M架构的Cortex-M处理器,以简单易用的编程模型,通过搭载高度可配置核心,满足多种不同设备的应用。

     对多数嵌入式应用而言,尽管Cortex-M核心拥有简单易操作的强大优势,但仍有很多用例需要更丰富、更强大的环境。一方面,这些应用对效率和功耗依然十分敏感;但另一方面,诸如Linux或Android的操作平台依旧不可或缺。迁移至类似操作系统,应用程序即可利用规模更大、内容更丰富、设计更精致的软件生态系统。

     Cortex-M处理器关注的重点不是运行更高层次的操作系统,因此也不需要考虑运行负责操作系统的必备功能。例如,Cortex-M没有内存管理单元(MMU),不支持虚拟存储环境,因此也就不支持这类操作系统。如果应用程序需要更丰富的操作环境,通常第一个选择是“超高效率”的Cortex-A核心。这些核心可以为平台操作系统提供更高级的功能支持,同时保持对很高的功耗效率.

Cortex-M/R/A 芯片&内核&架构_第3张图片

得益于此,ARM Cortex-A处理器在深度嵌入式应用程序中得到广泛部署,尤其是在需要Linux或其他复杂操作系统的市场中,其采纳更为普遍。

Cortex-A32是ARMv8-A 架构中能效最高的CPU,是可穿戴设备、物联网及富嵌入式应用的理想选择,而且尤其适合需要使用Linux等平台操作系统的应用。

Cortex-A32是ARM架构中独一无二的产品,拥有重要地位。Cortex-A32基于ARMv8-A架构,却是针对32位设计的处理器。下图介绍了Cortex-A32与ARMv8-A架构的匹配程度,并与Cortex-A35进行了对比。


Cortex-M/R/A 芯片&内核&架构_第4张图片

Cortex-A32和ARMv8-A

Cortex-A35可以实现两种执行态,分别为32位AArch32及64位AArch64,从而充分发挥ARMv8-A架构的64位操作能力;相对比,Cortex-A32仅支持32位AArch32执行态,这一决定不仅进一步压缩产品面积,对于不需要64位操作能力的用例,还可以带来显著的功耗优化。无可否认,部分嵌入式应用可以从64位获益;但许多其他应用都是32位的,将来很长一段时间市场也会依旧如此,Cortex-A32则专为这些应用程序量身打造。

你可能感兴趣的:(嵌入式,与,操作系统)