news 2026/5/1 7:54:22

arm pl320 学习

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
arm pl320 学习

1. IPCM 模块简介(Introduction)

1.1 IPCM 是什么?

PL320 IPCM 是一个高度可配置的核间通信硬件模块,主要能力包括:

  • 向其他 CPU 核发送中断

  • 随中断携带少量数据(Mailbox Data)

  • 支持一对一 / 一对多的消息通信

  • 支持自动应答(Auto Acknowledge)

  • 支持邮箱链式发送(Auto Link)

IPCM 通过AMBAAHB接口被各个 CPU 核访问,常与:

  • Core Identification Module(PL321)

  • 中断控制器(如 VIC / GIC)

一起使用,构成完整的多核通信体系。

注意channel有两个含义,一个mbox内部的channel和硬件定义的channel id和cpu绑定的概念


2. 功能架构总览(Functional Overview)

2.1 模块整体结构

IPCM 主要由三部分组成:

  • AHB接口

    • 所有寄存器通过 AHB 访问

    • 支持多个 CPU 核同时访问

  • Mailbox 与控制逻辑

    • 1~32 个 Mailbox

    • 每个 Mailbox 具有独立的源、目的、中断、数据寄存器

  • 中断生成逻辑

    • 将 Mailbox 状态映射为最多 32 路中断输出(IPCMINT31:0)


2.2 IPCM 在多核系统中的位置

典型系统中:

  • 每个 CPU 核:

    • 有本地 AHB

    • 有自己的中断控制器

  • IPCM:

    • 挂在共享 AHB 上

    • 中断线连接到各个核的中断控制器

这样任何一个核都可以通过 IPCM 给其他核发消息。


3. IPCM 的基本通信模型

3.1 Channel ID 的概念

IPCM 用ChannelID来抽象“中断接收者”:

  • Channel ID 是one-hot 编码

  • 每一位对应一个 IPCMINTxxx 中断输出

  • 一个核可以有一个或多个ChannelID

例如:

Channel ID中断输出
0x1IPCMINT000
0x2IPCMINT111
0x4IPCMINT222

3.2 一个 Mailbox 包含什么

每个 Mailbox 内部包括:

  • Source Register

    • 表示当前 Mailbox 被哪个核“占用”

    • Channel id不是mbox的通道,而是通往某个cpu的cpu编号,0表示空闲,mailbox表示一个mbox channel

    • 这里表示src需要接收ack的中断

  • Destination Register

    • 指定消息要发送给哪些 Channel ID

  • Mask Register

    • 控制是否对某个 Channel ID 产生中断

  • Mode Register

    • Auto Acknowledge / Auto Link

  • Send Register

    • 触发发送 / 应答中断

  • Data Registers(0~7 个)

    • 存放消息数据

Mailbox 的设计目标很明确:中断 + 少量payload


4. IPCM 的工作流程(Functional Operation)

4.1 基本消息发送流程

一个最典型的流程如下:

  • 源核占用 Mailbox

    • 写 Source Register(one-hot Channel ID)

  • 设置目标核

    • 在 Destination Register 中 OR 多个 Channel ID

  • 配置中断 Mask

  • 写入数据寄存器

  • 写 Send Register bit0

    • 触发目的核中断

  • 目的核处理中断

  • 应答(Acknowledge)

    • 手动或自动返回给源核


4.2 Auto Acknowledge(自动应答)

Auto Acknowledge使能时:

  • 多个目标核都必须清除自己的中断

  • 当 Destination Register 变为 0:

    • 硬件自动向源核发送应答中断

  • 应答数据与原始数据相同


4.3 Auto Link(邮箱链式发送)

Auto Link 允许:

  • 将多个 Mailbox 串成一个“发送队列”

  • 前一个 Mailbox 被应答后:

    • 不打断源核

    • 自动触发下一个 Mailbox 发送

mbox0搞完就到了mbox1,其实是两个mbox的ch但是这里搞得好像是两个mbox


5. 可配置能力(Configuration)

IPCM 在综合时可配置三个参数:

参数范围
Mailbox 数量1 ~ 32
每个 Mailbox 的 Data 寄存器数0 ~ 7
中断输出数1 ~ 32

这些配置通过硬件引脚:

  • MBOXNUM

  • INTNUM

  • DATANUM

并反映在Configuration Status Register中,方便驱动自动识别能力。


6. 典型通信示例分析

6.1 Core0 → Core1 单次消息

关键步骤:

  • Core0 占用 Mailbox0

  • 设置 Core1 为 Destination

  • 写数据

  • Send bit0 → Core1 中断

  • Core1 读取数据

  • Core1 Send bit1 → Core0 应答

  • Core0 释放 Mailbox


6.2 背靠背消息(Back-to-Back)

  • 同一个 Mailbox

  • 多次 Send / Ack

  • Mailbox 不释放

  • 减少仲裁与配置开销


7. 设计特点与适用场景总结

7.1 IPCM 的优势

  • 硬件级同步,低延迟

  • 结构简单,软件易实现

  • 天然支持 SMP / AMP

  • 非常适合:

    • 核间控制消息

    • 电源管理

    • 固件与 OS 通信

    • Secure / Non-secure world 通信

7.2 IPCM 的局限

  • 数据量小(最多 7 × 32bit)

  • 更偏“信号 + 控制”,不是高速数据通道

  • 更适合作为:

    • kick / notify / command

而不是 bulk data 传输。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 3:05:10

GNSS与单北斗变形监测技术的应用现状分析与未来发展方向

本文旨在分析GNSS变形监测一体机与单北斗变形监测系统的当前应用现状及未来的发展趋势。从技术特点到市场需求,单北斗变形监测已在基础设施管理中扮演重要角色。重点探讨了单北斗的原理,包括它在桥梁、大坝和地质灾害监测中的应用,及其提供的…

作者头像 李华
网站建设 2026/5/1 3:04:22

【swiftUI】实现智能可收缩日历(单行/全月切换)

一、 核心特性 智能显示模式:收起状态--仅显示当前日期所在的整周(7天);展开状态--显示完整月份的日历网格;平滑的动画过渡效果 数据一致性:始终显示当前月份的数据;收起时自动定位到当前周&am…

作者头像 李华
网站建设 2026/5/1 1:33:04

MemOS开源框架实战:构建基于Graph的记忆图谱,让AI具备长期记忆能力

MemOS是一款基于Graph的记忆开源项目,通过TreeTextMemory实现结构化记忆存储与关联。本文详细介绍了如何在LangChain1.x框架中集成MemOS的记忆图谱能力,包括构建带记忆的ChatBot、体验记忆的自动重组功能,以及通过Middleware机制实现无侵入式…

作者头像 李华
网站建设 2026/5/1 4:04:10

windows QT项目

一、1、2、在纯linux环境下用QTCreator这个IDE去编项目;但是如果在windows上编写qt项目,VS这个IDE还是比QTCreator要强大很多,而且VS编写的QT项目,仍然可以移植到Linux等平台上,不影响跨平台特性!&#xff…

作者头像 李华
网站建设 2026/5/1 3:41:27

‌新闻事件分析:社交媒体数据验证测试案例

为什么社交媒体数据正在重塑测试边界‌在2026年,软件测试的战场已不再局限于API响应码、数据库事务一致性或UI布局像素偏差。‌社交媒体数据‌,作为全球最庞大、最动态、最不可控的非结构化输入源,正成为系统鲁棒性验证的“终极压力测试场”。…

作者头像 李华
网站建设 2026/5/1 4:01:59

vue2基础--实现下拉框选择筛选

下拉框筛选常用于搜索筛选出列表中的数据1.代码<el-selectv-model"type"clearableplaceholder"类型" ><el-optionv-for"item in typeOptions":key"item.value":label"item.label":value"item.value&quo…

作者头像 李华