相比于stm32mp1, stm32mp2在架构集成方式、内存与安全隔离机制、启动模式上都有明显的变化。

一、MP1 回顾:Cortex-A7 + Cortex-M4 架构

STM32MP1 的经典结构是:

+--------------------+

| Cortex-A7 (Dual)  | → 运行 Linux (主核)

| - User Apps     |

| - Kernel (Yocto)  |

+--------------------+

| Cortex-M4       | → 运行裸机或 FreeRTOS,处理实时控制

+---------------------+

| Shared peripherals |

| Shared memory    |

+---------------------+

关键特点:

  • Cortex-M4 独立运行 firmware(可通过 CubeIDE / CubeMP1 工具链加载)。

  • A7 与 M4 通过 OpenAMP / RPMsg / Mailbox / SHM 进行通信。

  • 两个核心的电源域和时钟域相对独立,可分别复位、调试。

  • Linux 主核通常先启动,再由 Linux 引导 M4 固件(remoteproc 机制)。


 二、MP2 架构演进:Cortex-A35 + Cortex-M33 + NPU

STM32MP2 延续了「异构多核 + 实时协处理」设计,但更现代化:

+--------------------------------+

| Cortex-A35 (Dual, 64-bit)    | → 主核:运行 Linux (AArch64)

| + GPU, NPU, TrustZone support | 

+---------------------------------+

| Cortex-M33 (with TrustZone)   | → 实时任务 / 控制逻辑

+----------------------------------+

| Secure System Services (TZ)    |

| Shared memory & interconnect   |

+----------------------------------+

变化点 1:Cortex-M33 取代 M4

  • M33 属于 ARMv8-M 架构,性能比 M4 更强。

  • 支持 ARM TrustZone-M,可在硬件层实现 secure / non-secure 分区。

  • 具备更强的指令集(DSP + FPU + optional MPU)。

  • 支持更多安全特性(SAU, MPU, Secure Boot)。

变化点 2:通信方式更规范化

  • A35 与 M33 之间的通信依旧通过 OpenAMP / RPMsg,但底层 interconnect 升级。

  • ST 官方提供的 STM32MP2 OpenAMP FW 包 已经标准化,与 MP1 相似但更安全高效。

  • Linux 内核的 remoteproc 驱动也更新支持 M33。

变化点 3:内存隔离 & 安全域更强

  • M33 有独立的 SRAM 区(通常称为 “SRAMx_A / SRAMx_B”),可运行独立 RTOS。

  • 可选是否允许 A35 访问 M33 区域内存。

  • M33 的 flash boot 可受 secure boot 控制,能在 A 核之前启动特定任务(例如安全初始化)。


三、启动与运行模式(MP2 相比 MP1 的演进)

项目 STM32MP1 STM32MP2
Cortex-M 启动 由 A7 上电后由 Linux/Bootloader 启动 M4 可由 BootROM、TF-A、Linux 或独立 secure 逻辑启动 M33
启动固件加载 通过 remoteproc 或 M4 binary 通过 TF-A 或 secure firmware image
同步机制 Mailbox / RPMsg Mailbox / RPMsg / TrustZone 共享区
实时任务 M4 裸机 / FreeRTOS M33 裸机 / FreeRTOS (secure/non-secure)
调试工具 STM32CubeIDE + OpenOCD STM32CubeIDE + STLink GDB + TrustZone aware debug

四、典型使用模式

在实际应用中,MP2 可以这样分工:

核心 功能 示例
Cortex-A35 运行 Linux, UI, Network, AI Qt GUI, Web Server, TensorFlow Lite
Cortex-M33 实时控制,安全操作 电机控制、传感采集、安全信任根、低功耗监控

五、兼容性与开发支持

  • 工具链: STM32CubeMP2 支持独立编译 M33 firmware。

  • FreeRTOS 支持: 官方 BSP 中已有 M33 用例。

  • Linux 驱动: 依然通过 OpenAMP / RPMsg 机制与 M33 通信(与 MP1 类似)。

  • 调试方式: 可独立调试 M33,或使用 combined debug。


总结对比表

特性 STM32MP1 STM32MP2
Cortex-M 内核 M4 M33
实时任务支持 ✅(增强,带 TrustZone)
RTOS / 裸机 支持 FreeRTOS / Bare-metal 支持 FreeRTOS / Bare-metal
Linux 通信 OpenAMP / RPMsg OpenAMP / RPMsg / Secure Mailbox
启动控制 通常由 A 核引导 可由 A 核或安全固件引导
安全域支持 ✅ TrustZone-A & TrustZone-M
性能 32-bit, ~200 MHz 32-bit ARMv8-M, ~400 MHz
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐