Cortex-M 系列和 Cortex-R 系列的真正区别是什么?

电器工程 微控制器 手臂 皮质-m
2022-01-22 17:34:20

这真有趣!我搜索了find a clear article,但我找不到明确的文章。我还找到了这个链接:ARM Cortex-R和这个链接:Cortex-R 系列,但它们并不完全清楚。在维基页面中写道:

这些内核旨在用于强大的实时使用

并在 Cortex-R 的页面中写道:

ARM Cortex®-R 实时处理器为需要可靠性、高可用性、容错性、可维护性和实时响应的嵌入式系统提供高性能计算解决方案。

还有这些:

  1. 高性能:快速处理与高时钟频率相结合
  2. 实时:处理在所有场合都满足严格的实时限制
  3. 安全:可靠、可靠的系统,具有高抗错能力
  4. 成本效益:性能、功率和面积最佳的特性

第一个:例如对于 Cortex-M,最近 NXP 制造了具有 200Mhz 时钟速率的 NXP_LPC4XXX 系列,对于 Cortex-R,您可以看到:TMS570LS ARM Cortex™-R4 Microcontrollers,这很有趣,因为它有 180Mhz时钟频率。

第二点:很清楚。

第三点:不清楚!这句话是什么意思?意味着 Cortex-M 不安全/可靠吗?

第五点:嗯,我认为这只是一个索赔!

谁有这个系列(Cortex-R)工作的经验?你对此有何看法?Cortex-M 系列和 Cortex-R 系列之间的深刻而确切的区别是什么?

3个回答

有趣的是,我在工作中同时使用这两种方法:)

Cortex-M3(我们使用 STM32s)是一款通用 MCU,速度快、容量大(闪存),足以满足大多数复杂的嵌入式应用。

然而,R4 完全不同——至少是我使用的德州仪器版本:RM42,类似于 TMS570。RM42 是一个 Cortex-R4,两个内核以“锁步”方式运行以实现冗余,这意味着一个内核领先另一个内核 2 条指令,用于一些错误检查和纠正。此外,其中一个核心(物理上)被镜像/翻转并旋转 90 度以提高辐射/噪声弹性:)

RM42 以比 STM32 更高的时钟速度运行(100MHz 与 72MHz),并且指令集略有不同,并且执行某些指令的速度比 M3 快(例如,除法指令在 R4 上以一个周期执行,不确定它们是否在M3)。

与 Cortex-M3 相比,硬件计时器非常精确。通常我们需要一个静态偏移来校正 M3 上的漂移 - R4 不是这样 :)

我将 Cortex-M3 称为通用 MCU,而将 Cortex-R4 称为复杂的实时/安全 MCU。如果我没记错的话,RM42 符合 SIL3...

即使您不打算实际使用实时/安全功能,IMO R4 的复杂性也是一大步。

复杂性差异的一个非常好的例子:STM32 上的 SPI 外设有 9 个控制和状态寄存器,而 RM42 有 42 个。所有外设都是这样 :)

编辑:

就其价值而言,在我的用例中,在执行完全相同的任务时,Cortex-R4 @ 100MHz 通常比 Cortex-M3 @ 72MHz 快 50-100%。也许是因为 R4 有数据和指令缓存?

另一个比较,几 1000 行 C 和 ASM 代码在使用我当前使用的安全功能的子集调用之前在复位时执行main():D 而不是外围设备初始化或任何东西,只是启动和自检(CPU、RAM、闪存 ECC 等)。

此页面有更多详细信息

ARM Cortex-R 系列 (v7-R)

  • 实时应用程序的卓越性能。
  • 处理器专为深度嵌入式实时应用而开发,在这些应用中,对低功耗和良好中断行为的需求与卓越的性能和与现有平台的强大兼容性相平衡。
  • ARM Cortex®-R 实时处理器为需要可靠性、高可用性、容错性、可维护性和实时响应的嵌入式系统提供高性能计算解决方案。

ARM Cortex-M 系列 (v7-M)

  • 用于确定性微控制器应用的成本敏感型解决方案。
  • 主要为微控制器领域开发,在这些领域需要快速、高度确定的中断管理,同时需要极低的门数和尽可能低的功耗。
  • ARM Cortex™ -M 处理器系列是向上兼容的一系列节能、易于使用的处理器,旨在帮助开发人员满足未来嵌入式应用的需求。这些需求包括以更低的成本提供更多功能、增加连接性、更好的代码重用和提高能源效率。

有一篇关于这里的好文章。

Cortex-R 和 Cortex-M 系列针对不同的需求和不同的应用。了解将它们分开的参数和特性很重要,因为可能存在两者都可以适应的应用程序。本文针对这种情况并帮助设计人员进行选择。最终目标是帮助设计人员或开发人员了解 ARM 的体系结构。