一旦远程固件启动并在远程处理器上运行,就可使用 rpmsg API 在主机与远程软件环境之间实现处理器间通信。当使用 rpmsg 时需要理解的关键抽象和概念如下:
• 从主机角度看,rpmsg 器件代表一个远程处理器。
• rpmsg 通道是主机与远程处理器(也称为 rpmsg 设备)之间的双向通信通道。
• rpmsg 端点是可出现在 rpmsg 通道任意一侧的逻辑抽象。
• 端点提供用于在主机与远程环境之间发送目标消息的基础架构。
• 当创建端点时,用户提供唯一的端点索引或允许 rpmsg 组件为端点分配一个索引。此外,用户提供应用定义的回调,并将其与正在创建的端点关联。
• 当收到针对给定端点索引的消息时,rpmsg 会参考所收到的数据负荷调用相关的接收回调。
• 用户可在 rpmsg 通道的任意一侧创建任意数量的端点。
• 没有明确指向目标端点索引的消息会到达与 rpmsg 通道相关联的默认端点。
• rpmsg 组件利用在初始化过程中注册的、用户提供的回调为用户应用通知通道创建和删除等事件。
图 4 – rpmsg 通道和端点抽象