STM32MP2相比STM32MP1在架构层面的重大升级
STM32MP2相比MP1在架构上有显著升级:采用Cortex-A35(64位)+Cortex-M33+NPU的组合,其中M33取代M4并支持TrustZone安全机制。通信依然通过OpenAMP/RPMsg,但安全性更高。启动模式更灵活,M33可由安全固件独立启动。内存隔离更强,M33拥有独立SRAM区,支持安全/非安全分区。开发工具链延续CubeIDE支持,但新增TrustZone调试功能。整
相比于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 |
更多推荐



所有评论(0)