西安建设和住房保障局网站首页,阿里云服务器可以做彩票网站吗,wordpress apicloud,网站正在建设中页面 英文翻译请从官网下载 TD4VM 技术参考手册#xff0c;地址如下#xff1a;
TDA4VM 技术参考手册地址
概述
(Mailbox 的介绍在 TRM 的第7.1章节)
Mailbox 使用邮箱中断机制实现了 VM 芯片的核间通信。 Mailbox 是集成在 NAVSS0 域下的一个外设#xff08;NAVSS0 的说明可以查看地址如下
TDA4VM 技术参考手册地址
概述
(Mailbox 的介绍在 TRM 的第7.1章节)
Mailbox 使用邮箱中断机制实现了 VM 芯片的核间通信。 Mailbox 是集成在 NAVSS0 域下的一个外设NAVSS0 的说明可以查看TDA4VM/VH 芯片 NAVSS0。 芯片上的 Mailbox 存在一定数量的邮箱实体mailbox cluster整个mailbox 被称作 MAILBOX0.
功能
MAILBOX0 的功能可以使用下面的图概括 说明
共12个邮箱实体每一个邮箱实体的配置方法一致且可作为单独的邮箱外设使用每一个邮箱实体分配的中断号都不一致MAILBOX0 的每一个邮箱实体可产生4个中断号不一致的中断也就是说每一个邮箱实体可实现4个核之间的核间通信每一个邮箱实体存在16个队列每一个队列最多可保存4个message每一个message 宽度为 4字节每一个邮箱可单独产生队列接收新消息中断与队列未满中断每一个队列都可单独使能/失能中断
MAILBOX0 集成实现
MAILBOX0 并不直接作为某一个芯片域的外设而是集成在 NAVSS0 模块下 说明
MAILBOX0 的时钟与复位由 LPSC0 配置参考时钟为 MODSS_VBUS_D2_CLK, 来自 MAIN_SYSCLK0复位信号为 MODSS_RST由MOD_G_RST控制MAILBOX0 存在12个邮箱实体每一个邮箱实体可作为一个单独的邮箱外设产生4个不同的中断CLUSTER[0:11]_PEND_INTR[0:3];MAILBOX0 的12个邮箱产生的48个中断会被 INTR_ROUTER0[439:392] 接收处理器真正接收的中断是 INTR_ROUTER0 的输出中断OUTL_INTR[0:407];
注意INTR_ROUTER0 是 NAVSS0 的一个外设用于接收不同的中断信号并路由给不同的处理器核来处理。NAVSS0 与 INTR_ROUTER0 可以查看下面的文章 TDA4VM/VH 芯片 NAVSS0
邮箱功能描述
MAILBOX0 共实现了12个邮箱每一个邮箱都可以产生4个不同的中断所以每一个邮箱都可以为4个处理器提供核间通信。
中断使能置位 MAILBOX_IRQ_ENABLE_SET_[0:3] 寄存器对应的位 中断失能置位 MAILBOX_IRQ_ENABLE_CLR_[0:3]寄存器对应的位
注意上述寄存器只配置中断[0:3]的使能与失能并不设置中断与处理器之间的映射关系中断与处理器之间的映射关系通过 INTR_ROUTER0 来配置通过将邮箱产生的中断映射到 INTR_ROUTER0 的输出中断上实现指定的处理器核处理邮箱中断。
4个中断的状态可以通过 MAILBOX_IRQ_STATUS_RAW_[0:3] /MAILBOX_IRQ_STATUS_CLR_[0:3]来查看。
邮箱复位
邮箱可以通过 MAILBOX_SYSCONFIG[0].SOFTRESET 位来实现邮箱外设软复位。
邮箱的中断请求类型
每一个邮箱都实现了两类中断
队列接收消息中断队列未满中断
注意每一个邮箱拥有16个队列每一个队列可以单独使能或失能上述两类中断.
邮箱分配
接收建议中断方式如下
首先通过 MAILBOX_IRQ_ENABLE_SET_[0:3] 使能邮箱的队列接收消息中断然后通过 INTR_ROUTER0 将邮箱中断映射到指定的输出中断上实现指定的处理器来处理邮箱的接收中断接收的处理器可以读取 MAILBOX_MESSAGE_[0:15], 实现从邮箱的指定队列读取消息。
发送建议轮询方式如下
读 MAILBOX_FIFO_STATUS_[0:15] 与 MAIL_MSG_STATUS_[0:15] 检查指定队列的 FIFO 状态如果指定的队列 FIFO 未满则写新消息到 MAILBOX_MESSAGE_[0:15]。
邮箱通信示例 说明
User0 与 User1 使用邮箱0进行核间通信其中User0 的发送通道为队列0接收通道为队列1而User1 的发送通道为队列1接收通道为队列0User0使用邮箱0 的 CLUSTER0_PEND_INTR0 作为队列1消息接收中断, 置位MAILBOX_IRQ_ENABLE_SET_0 的 BIT2 。User1使用邮箱0的 CLUSTER0_PEND_INTR1 作为队列0消息接收中断, 置位 MAILBOX_IRQ_ENABLE_SET_1 的 BIT0 。User0 通过写 MAILBOX_MESSAGE_0 实现往队列0中写消息并触发 CLUSTER0_PEND_INTR1 中断给 User1;User0 通过写 MAILBOX_MESSAGE_1实现往队列1中写消息并触发 CLUSTER0_PEND_INTR0 中断给 User1;