i.MX8M Plus 是由 Cortex-A53、Cortex-M7、多媒体加速器、片上互连和大量外设组成的异构 SoC。阅读框图时,先区分“芯片里有这个模块”“当前料号包含这个功能”“板上把接口引出来了”和“软件已经支持并配置好”;这四件事不能互相替代。
本文按 NXP RM Rev.3 与工业级数据手册 Rev.2.2 整理系统框图。数量与峰值属于相应芯片配置,实际功能集、工作频率和温度等级仍取决于订货料号及工作点。

1. 处理器、互连与观测模块
跳转到“1. 处理器、互连与观测模块”四核 Cortex-A53 负责通用操作系统和应用,每核具有 32 KiB 指令缓存与 32 KiB 数据缓存,共享 512 KiB L2。工业级数据手册列出的 A53 最高频率为 1.6 GHz。Cortex-M7 最高 800 MHz,具有各 32 KiB 的 I-cache/D-cache,以及合计 256 KiB 的 TCM,适合实时处理、低功耗任务和主核卸载。
| 模块 | 作用 | 阅读边界 |
|---|---|---|
| NoC/AXI 仲裁 | 把多个主控的访问送往目标并仲裁竞争 | 不是一根所有设备轮流占用的简单导线;不同路径仍可能争用 DDR |
| QoSC | 配置 AXI 事务优先级和限制 | 优先级不等于端到端硬实时保证,不能靠调高 GPU 优先级解决所有卡顿 |
| PERFMON | 观测 AXI 总线活动 | 可统计的事件、计数器数量和采样方法以具体模块为准,不默认每条通道都有完整延迟直方图 |
| DBGMON | 支持记录系统复位前的 AXI 事务 | 需配置触发、记录方式和读取路径,不能当作无需设置的永久故障录像 |
性能分析应先确认瓶颈是算力、内存访问、外设速率还是软件调度,再选择 CPU PMU、总线监测或跟踪工具。某个模块支持监测,并不意味着系统已保存了崩溃前的数据。
2. 时钟、复位与低功耗
跳转到“2. 时钟、复位与低功耗”CCM 提供集中式时钟生成和控制,多个 root 使用相近的 MUX、分频、门控编程模型。实际路径仍包含 PLL、固定分频、root PRE/POST 和模块内部时钟,不能把“简化时钟树”解释成所有时钟都只有 root/leaf 两层。
SRC 负责复位的产生和分发,GPC 管理电源域及握手,温度监测模块提供可编程阈值。降频、关断或告警如何响应,还取决于软件策略和板级供电设计。复位原因也要结合有效状态位与清除行为读取。
资源域可以让 M7 在 A53 进入特定低功耗状态后继续工作,但前提是所需时钟、存储器、电源域和外设均被保留。域门控并不会自动隔离共享 PLL 或 root 的修改。具体初始化见 SDK 启动说明。
3. 中断与三组 SDMA
跳转到“3. 中断与三组 SDMA”RM 概述列出 160 路共享外设中断,路由到 A53 GIC 与 M7 NVIC,以支持不同的软件分工。这不代表两边可以同时无协议地处理同一个外设:状态清除、缓冲区、寄存器和中断使能仍需明确所有者。
GIC 的 SPI 相对编号、GIC INTID、Linux 虚拟 IRQ 与 M7 IRQn 是不同编号空间。例如 PWM3 的 SPI 相对编号与 M7 IRQn 都为 83,但其 GIC INTID 为 115;应用不能只比较数字。
三组 SDMA 引擎的 IP 类似,SoC 集成时服务的外设不同:SDMA1 面向 UART、SPI 等通用低速外设;SDMA2/3 面向 SAI1/2/3/5/6/7、SPDIF、PDM 等音频接口。实际可连接的请求源、脚本和总线路径应查对应实例的表,不能把 I²C、CAN、PWM 或 ADC 一概列为可直接使用的 SDMA 请求。
SDMA 通过描述符、脚本与请求机制减少 CPU 搬运,但驱动仍要准备和回收缓冲区、处理错误和缓存一致性。采样率、I²S/TDM 格式由音频链路配置决定,不能说是 DMA 控制器本身“支持所有音频格式”。32 个虚拟通道也不等于 32 根独立物理中断线。
以 UART 115200 bit/s、8N1 为例,每字节在线路上至少占 10 bit,理想净速率约 11520 byte/s;DMA 改善的是 CPU 开销,不会提高 UART 线速。
4. 片上存储与外部存储
跳转到“4. 片上存储与外部存储”| 存储块 | 容量 | 主要用途与条件 |
|---|---|---|
| Boot ROM | 256 KiB | 固化启动代码;并非所有启动流程都先把完整镜像放进 DDR |
| OCRAM | 576 KiB | SUPERMIX 内片上 RAM,可用于启动及经分配的代码/数据;不是 TCM |
| OCRAM_A | 256 KiB | AUDIOMIX 内系统 RAM,访问依赖该域状态与权限 |
| OCRAM_S | 36 KiB | 用于状态保持;数据是否保留取决于具体低功耗模式和供电,不能概括为任何掉电都不丢 |
| M7 TCM | 128 KiB ITCM + 128 KiB DTCM | 紧耦合代码/数据存储;与上面的 868 KiB OCRAM 总量分开计算 |
外部 DDR 接口总宽度为 32 bit,支持 LPDDR4-4000 与 DDR4-3200。理想峰值分别为:
以及 12.8 GB/s。32 bit 已是总数据宽度,不能再乘一次“两通道”。这些是总线理论峰值,实际吞吐还受刷新、访问模式、仲裁和其他主控影响;地址空间容量也不等于板上已焊容量。
其他存储接口包括 8 bit NAND,支持 Raw SLC/MLC、最高 62 bit BCH ECC 和 ONFi3.2;数据手册列出的接口速率最高 200 MB/s,实际取决于器件与模式。eMMC 5.1 的两路接口为 uSDHC1 与 uSDHC3。三个 SPI 接口可连接 SPI NOR;FlexSPI 另外支持一颗 Octal SPI 或两颗相同 Quad SPI 的并行读取,并可为 M7 提供 XIP。
支持 XIP 不代表可以直接关闭 DDR:代码、栈、数据、中断向量和运行依赖都需放在仍可访问的存储器中。
5. 定时器与 PWM
跳转到“5. 定时器与 PWM”| 资源 | 数量 | 用途 |
|---|---|---|
| A53 generic timer | 每核一组 | 以系统计数器为基础的操作系统计时和定时事件 |
| Global system counter | 系统计数资源 | 向 A53 generic timer 提供共同时间基准 |
| M7 SysTick | 1 | 本核周期中断,频率由实际时钟与 reload 配置决定 |
| GPT | 6 | 32 位计数、输入捕获、输出比较等 |
| WDOG | 3 | 超时检测与复位策略,低功耗行为需逐项配置 |
| PWM | 4 | 16 位周期/采样值、12 位预分频器与四项 FIFO |
原文中的“SysTick 从 12 MHz 起”“GPT 可任意上下计数”“PWM 自带互补输出与死区”不能从这里的模块数量推导。i.MX8MP 的这组 PWM 应按其自身寄存器使用,不能套用电机控制 PWM IP 的能力。其基本频率公式为 ,详见 PWM 配置说明。
6. 图形、视频、摄像头与显示
跳转到“6. 图形、视频、摄像头与显示”| 模块 | RM/数据手册给出的能力 | 不应混淆的指标 |
|---|---|---|
| 2D GPU、3D GPU | 图形加速、合成;工业级数据手册列出 16 GFLOPS 单精度峰值 | API 版本还取决于 GPU 驱动/BSP,不保证所有应用达到峰值 |
| VPU 解码 | 1080p60 H.264、H.265、VP8、VP9,具体 profile 受各解码器约束 | HDMI 可显示 4K 不等于 VPU 可硬解 4K |
| VPU 编码 | 1080p60 H.264/H.265 | ISP 的 4Kp45 处理能力不是 4Kp45 编码能力 |
| NPU | 标称 2.3 TOP/s 神经网络运算能力 | 模型算子支持、精度、转换和内存开销决定实际推理速度 |
| 双 ISP | 总计 375 Mpixel/s,示例为单摄 12MP30/4K45 或双摄各 1080p80 | 这些模式有工作点、输入时序和并行资源约束 |
| ISI | 图像处理与总线主控搬运,服务最多两路摄像头 | 不能由名称推断为任意 BT.656/BT.1120 并行摄像头插口 |
显示侧有三个 LCDIF,分别连接 MIPI DSI、LVDS 和 HDMI,每个 LCDIF 在概述中按单图层描述;图层合成需求应结合 GPU/其他软件路径处理。输入像素深度包含 8/16/18/24/32 bit,但具体格式与输出接口要分别核对。
RM 列出的组合是:不超过两个 LCDIF 同时工作时,每个最高至 1920×1200p60;三路同时工作时,可采用两路 1080p60 加 HDMI 4Kp30。各接口自身还有限制,例如 LVDS 路径的最大模式须以其章节为准,不能把这条总述套到任意屏幕。
MIPI 部分有一路四 lane DSI、两路各四 lane CSI;LVDS 支持四 lane 或八 lane 配置。数据手册进一步区分 CSI1/CSI2、单摄/双摄和 nominal/overdrive 的像素时钟,选择传感器时还需算 lane 速率、位深、消隐和 ISP 处理需求。
HDMI 2.0a 发射端支持最高 3840×2160p30,像素时钟上限 297 MHz,并列出 32 通道音频输出和一路 SPDIF 音频 eARC 输入支持。芯片能力不等于连接的显示器、codec、驱动与内容格式均支持相同通道数;也不能把普通 SPDIF 收发模块直接当成完整 eARC 协议实现。
7. 音频数据通路
跳转到“7. 音频数据通路”音频部分包括最高 800 MHz 的 HiFi4 DSP、SPDIF、六组外部 SAI、最多八路 PDM 麦克风输入、ASRC 和 eARC/ARC 相关功能。六组 SAI 的 lane 数并不相同:分别有一组 8 TX/8 RX、一组 4 TX/4 RX、两组 2 TX/2 RX、两组 1 TX/1 RX。
SAI 覆盖 I²S、AC97、TDM、codec/DSP、DSD 等接口方式;数据手册列出 49.152 MHz BCLK 支持。ASRC 可处理最多 32 个音频通道、四组 context、8~384 kHz 采样率以及 1/16~8 倍转换比例。具体组合还需核对通道数、slot 位宽、时钟源、DMA 脚本与软件支持。
将低延迟处理放到 DSP/M7、缓冲放到 OCRAM_A,可以减轻特定 DDR 路径的压力;是否合适要看可用空间、电源域状态和实测时延,不能保证“完全不争用”。
8. 连接接口与板级条件
跳转到“8. 连接接口与板级条件”| 接口 | SoC 资源 | 板级及软件条件 |
|---|---|---|
| PCIe | Gen3 ×1,可作 RC 或 EP,集成 PHY、支持 L1 子状态 | 8 GT/s 经 128b/130b 编码后约 985 MB/s,再扣除协议开销;不是实测 1 GB/s |
| USB | 两路 USB 3.0 控制器,兼容 USB 2.0、集成 PHY | Type-C 的 CC/PD、电源、角色切换和高速布线需要板级实现,不能直接接母座就获得任意 PD 电压 |
| uSDHC | 三组,SD/SDIO 与 eMMC 能力依实例而定 | eMMC 5.1/HS400 看 uSDHC1、3;引脚、电压、器件和模式决定可用速率 |
| Ethernet | 两路千兆 MAC,可同时工作,其中一路支持 TSN;包含 EEE、AVB、IEEE1588 能力 | 仍需合适 PHY、磁性器件/接口与驱动;具体 TSN 子标准逐项确认 |
| FlexCAN | 两组,支持 CAN-FD | 仍需 CAN 收发器;线速、采样点和滤波资源不能仅由 CAN-FD 名称推导 |
| UART、I²C、eCSPI | 分别 4、6、3 组 | 逐实例核对模式、时钟和复用;eCSPI 不是 FlexSPI,不能套用八线/四线 DDR flash 能力 |
常见组合包括工业网关的 Ethernet/CAN、边缘设备的 PCIe 存储或扩展卡、USB 模组、SDIO 无线和低速传感器接口。能否同时使用,还受 pinmux、供电、时钟和驱动资源限制;框图不能替代原理图与 BSP 支持清单。
9. 安全模块的职责
跳转到“9. 安全模块的职责”| 模块 | 职责 | 需要明确的边界 |
|---|---|---|
| RDC | 主控域、外设与内存访问策略,支持四域及最多八个 DDR 区域 | 不是“每域八区”;域分配不等于策略已正确锁定 |
| TrustZone、OCRAM 保护 | 区分安全/非安全访问,为 TEE 与受保护存储提供基础 | 安全世界、外设配置和软件边界需要完整设计 |
| HAB | 启动镜像认证机制 | 实际认证链由镜像格式、签名、熔丝与启动状态决定,不是所有出厂板都已关闭未签名启动 |
| CAAM | 密码运算、RSA/ECC 公钥运算、RNG、制造保护等 | 算法能力不等于某项 DRM 或产品认证已具备 |
| RTIC | 内存完整性检查能力 | 检查范围、参考值、触发和故障响应需要配置 |
| SNVS | 安全状态及安全 RTC 等功能 | 保持与篡改响应依赖具体寄存器、供电和板级连接 |
| SJC | 控制调试访问策略 | 不能假定 JTAG 默认锁死,也不能随意套用固定“256 bit 解锁密钥” |
数据手册说明可支持 Widevine、PlayReady 等内容保护,但还需要相应软件、密钥配置、授权和认证。原文列出的算法位数、抗攻击效果、认证级别、密钥永久不可读等绝对结论,不能仅靠模块框图成立。实际设计应查看对应安全文档与器件配置,不把概述当作烧写熔丝的操作指南。
10. 多核通信、GPIO 与调试
跳转到“10. 多核通信、GPIO 与调试”RDC 处理访问策略,MU 传送短消息或事件,SEMA4 提供硬件互斥,共享内存承载较大的数据。普通 MU 每侧具有四个 32 bit 发送寄存器与四个接收寄存器;数据握手和中断要按协议配置,不承诺固定 1~2 μs 到达。
这里的通用 SEMA4 是双处理器、16 个 gate 的配置。加锁需要写入本处理器对应值,再读回确认取得锁;读取到“当前空闲”不是已经加锁。持有者释放、缓存维护和内存屏障各自解决不同问题。RDC 所用信号量与这个通用 SEMA4 的数量和职责也不能混用。
GPIO 模块提供方向、数据和中断功能;IOMUXC 选择 pad 的复用、输入 daisy 及电气属性。ALT 编号由具体 pad 决定:不能统一规定 ALT0 总是 GPIO、ALT1 总是 UART。开漏、上下拉、驱动强度等也要看 pad 控制寄存器和电压域,软件复用不能弥补板上接线冲突。
CoreSight 提供调试与跟踪基础,4 KiB ETF 用于缓冲 trace,CTI 支持跨模块触发,JTAG 提供调试接口。跟踪源、通路、sink、触发和读取都需配置;“有 ETF”不等于开机后自动保存所有核的完整执行历史,CTI 也不会默认让所有核同步暂停。
11. 启动与字节序
跳转到“11. 启动与字节序”RM 说明芯片首先从 A53 启动,M7 保持复位,直到 A53 侧加载固件并释放。NAND、SD/MMC、eMMC、SPI/FlexSPI 和 USB serial downloader 属于启动路径选择;M7 镜像如何被加载和认证,需要看具体 U-Boot/系统启动方案及安全状态。不能据此宣称任意 bootaux 或 remoteproc 加载都自动完成签名验证。
芯片采用 little-endian 模式。它规定多字节数值在内存中的字节顺序,不意味着网络数据或文件只能采用小端;协议约定为大端时应使用显式序列化/字节序转换,而不是对所有缓冲区一律翻转。
参考资料
跳转到“参考资料”- NXP《i.MX 8M Plus Applications Processor Reference Manual》,Rev.3,1.4 架构概述、4.3 MU、4.4 SEMA4 及对应外设章节。
- NXP 工业级数据手册 IMX8MPIEC,Rev.2.2,Table 1 与具体料号特性表。
- NXP MIMX8ML8 的 M7 设备寄存器定义