TDA4VM/VH 芯片硬件 mailbox

news2024/11/28 0:40:38

请从官网下载 TD4VM 技术参考手册,地址如下:

TDA4VM 技术参考手册地址

概述

(Mailbox 的介绍在 TRM 的第7.1章节)

Mailbox 使用邮箱中断机制实现了 VM 芯片的核间通信。
Mailbox 是集成在 NAVSS0 域下的一个外设(NAVSS0 的说明可以查看:TDA4VM/VH 芯片 NAVSS0)。
芯片上的 Mailbox 存在一定数量的邮箱实体(mailbox cluster),整个mailbox 被称作 MAILBOX0.

功能

MAILBOX0 的功能可以使用下面的图概括:
在这里插入图片描述
说明

  1. 12个邮箱实体,每一个邮箱实体的配置方法一致,且可作为单独的邮箱外设使用(每一个邮箱实体分配的中断号都不一致);
  2. MAILBOX0 的每一个邮箱实体可产生4个中断号不一致的中断,也就是说,每一个邮箱实体可实现4个核之间的核间通信
  3. 每一个邮箱实体存在16个队列,每一个队列最多可保存4个message,每一个message 宽度为 4字节
  4. 每一个邮箱可单独产生队列接收新消息中断,与队列未满中断,每一个队列都可单独使能/失能中断;

MAILBOX0 集成实现

MAILBOX0 并不直接作为某一个芯片域的外设,而是集成在 NAVSS0 模块下:
在这里插入图片描述
说明:

  1. MAILBOX0 的时钟与复位由 LPSC0 配置,参考时钟为 MODSS_VBUS_D2_CLK, 来自 MAIN_SYSCLK0;复位信号为 MODSS_RST,由MOD_G_RST控制;
  2. MAILBOX0 存在12个邮箱实体,每一个邮箱实体可作为一个单独的邮箱外设,产生4个不同的中断:CLUSTER[0:11]_PEND_INTR[0:3];
  3. MAILBOX0 的12个邮箱产生的48个中断,会被 INTR_ROUTER0[439:392] 接收,处理器真正接收的中断是 INTR_ROUTER0 的输出中断:OUTL_INTR[0:407];

注意INTR_ROUTER0NAVSS0 的一个外设,用于接收不同的中断信号,并路由给不同的处理器核来处理。NAVSS0INTR_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 位来实现邮箱外设软复位。

邮箱的中断请求类型

每一个邮箱都实现了两类中断:

  1. 队列接收消息中断;
  2. 队列未满中断;

注意:每一个邮箱拥有16个队列,每一个队列可以单独使能或失能上述两类中断.

邮箱分配

接收(建议中断方式,如下):

  1. 首先通过 MAILBOX_IRQ_ENABLE_SET_[0:3] 使能邮箱的队列接收消息中断,然后通过 INTR_ROUTER0 将邮箱中断映射到指定的输出中断上,实现指定的处理器来处理邮箱的接收中断;
  2. 接收的处理器可以读取 MAILBOX_MESSAGE_[0:15], 实现从邮箱的指定队列读取消息。

发送(建议轮询方式,如下):

  1. MAILBOX_FIFO_STATUS_[0:15]MAIL_MSG_STATUS_[0:15] 检查指定队列的 FIFO 状态;
  2. 如果指定的队列 FIFO 未满,则写新消息到 MAILBOX_MESSAGE_[0:15]

邮箱通信示例

在这里插入图片描述
说明:

  • User0User1 使用邮箱0进行核间通信,其中,User0 的发送通道为队列0,接收通道为队列1,而User1 的发送通道为队列1,接收通道为队列0;
  • User0使用邮箱0 的 CLUSTER0_PEND_INTR0 作为队列1消息接收中断, 置位MAILBOX_IRQ_ENABLE_SET_0BIT2
  • User1使用邮箱0的 CLUSTER0_PEND_INTR1 作为队列0消息接收中断, 置位 MAILBOX_IRQ_ENABLE_SET_1BIT0
  • User0 通过写 MAILBOX_MESSAGE_0 ,实现往队列0中写消息,并触发 CLUSTER0_PEND_INTR1 中断给 User1;
  • User0 通过写 MAILBOX_MESSAGE_1,实现往队列1中写消息,并触发 CLUSTER0_PEND_INTR0 中断给 User1;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/471033.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(六)ArcCatalog应用基础——目录内容浏览

(二)ArcCatalog应用基础——目录内容浏览 目录 (二)ArcCatalog应用基础——目录内容浏览1.目录内容浏览2.地理数据浏览3.表格数据浏览3.1调整、冻结、排列3.2修改属性3.3表格数据统计3.4查询3.5数据字段的增删 1.目录内容浏览 Ca…

职责链设计模式解读

目录 问题引进 传统方案解决 OA 系统审批,传统的设计方案(类图) 传统方案解决 OA 系统审批问题分析 职责链模式基本介绍 基本介绍 职责链模式的原理类图 对原理类图的说明 职责链模式解决 OA 系统采购审批 应用实例要求 思路分析和图解(类图) 代码落地 …

局域网远程桌面工具推荐

有多种软件选项适用于局域网 (LAN) 中的远程桌面,包括 微软远程桌面、Splashtop、Teamviewer 等。 以下是根据性能、安全性、价格、品牌历史和其他因素对这些软件选项进行的详细比较和分析。 微软远程桌面: 微软远程桌面是专为 Windows 设备设计的远程…

题解,超星进程

A - Geometric Progression 思路&#xff1a;矩阵快速幂 构造[1,c]*[f(n-1)] [0,c] [c^(n-2)] ​ #include<bits/stdc.h> #include<iostream> using namespace std; typedef long long ll; ll a, x, MOD; struct matrix {ll a1, a2, b1, b2;matrix(ll a1, …

Day957.重构“烂代码” -遗留系统现代化实战

重构“烂代码” Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于重构“烂代码”的内容。 一、基于坏味道的重构 在重构时&#xff0c;要尽量先去识别《重构》中总结的二十几种坏味道&#xff0c;再用书中对应的重构手法去重构。可能会质疑&#xff0c;要不要这么教条…

powershell搞定烦人的Windows Defender

0x00 Windows Defender真烦 最近装了不少虚拟机&#xff0c;发现目前较新版本的windows Defender是真的烦&#xff0c;关了一段时间后&#xff0c;自己又打开。特别是装了域控后的winserver 2016&#xff0c;半都关不掉&#xff0c;做个实验是真烦。 顺手去查了下如何使用pow…

如何查看自己是否使用了国产SSL证书?“套牌”SSL证书?

最近有用户提到国产SSL证书&#xff0c;有没有符合历史及现在浏览器信任的99%的国产SSL证书&#xff0c;目前看到一些网站正在使用国产SSL证书&#xff0c;而且价格很便宜&#xff0c;大概两千多&#xff0c;而且还符合99%是真的吗&#xff1f;他们属于国产SSL证书吗&#xff1…

No.050<软考>《(高项)备考大全》【冲刺4】《软考之 119个工具 (2)》

《软考之 119个工具 &#xff08;2&#xff09;》 21.检查:22.偏差分析:23.滚动式规划:24.紧前关系绘图法(PDM):25.确定依赖关系:26.时间提前量与滞后量:28.发布的估算数据:29.自下而上估算:30.项目管理软件:31.储备分析:32.类比估算:33.参数估算:34.三点估算:35.进度网络分析:…

多线程~~

文章目录 什么是线程、多线程多线程的创建方式一&#xff1a;继承Thread类方式二&#xff1a;实现Runnable接口匿名内部类方式实现Runnable接口 方式三: JDK5.0新增&#xff1a;实现Callable接口 Thread的常用方法Thread构造器Thread获取和设置线程名称获取正在运行的线程Threa…

abbyy是什么软件

ABBYY&#xff0c;一款强大的OCR文字识别软件&#xff01; 在日常的工作中&#xff0c;我们常常需要提取PDF或图片上的大段文字&#xff0c;如果字数少的话&#xff0c;我们可以直接手打&#xff0c;但如果出现大篇幅的文字&#xff0c;那就有点头疼了。今天&#xff0c;我就向…

蓝牙 - 什么是Bluetooth Adapter或Dongle,以及Microsoft Bluetooth Enumerator

一般笔记本是都有蓝牙模块的&#xff0c;台式机可能会没有&#xff0c;这时就需要一个蓝牙Dongle&#xff0c;或者叫做蓝牙Adapter&#xff0c;下面统称为蓝牙适配器。这是一种基于USB的设备&#xff0c;可发射和接收蓝牙无线信号。它插入USB端口&#xff0c;然后就可以使用蓝牙…

linux进程控制(上)

linux进程 1.冯诺依曼体系 截至目前&#xff0c;我们所认识的计算机&#xff0c;都是有一个个的硬件组件组成 输入单元&#xff1a;包括键盘, 鼠标&#xff0c;扫描仪, 写板等 中央处理器(CPU)&#xff1a;含有运算器和控制器等 输出单元&#xff1a;显示器&#xff0c;打印…

【FATE联邦学习】FATE联邦学习使用GPU、指定cuda下标

问题 FATE框架1.x支持GPU训练吗&#xff1f; 寻找 先看了官网&#xff0c;搜官网&#xff0c;发现还是有的。 打开第一个后&#xff0c;里面可以用training param指定各个client的训练GPU&#xff0c;但是好像都是在large language model的。 而在文档中搜寻到的gpu&#xf…

( 哈希表) 594. 最长和谐子序列 ——【Leetcode每日一题】

❓594. 最长和谐子序列 难度&#xff1a;简单 和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。 现在&#xff0c;给你一个整数数组 nums &#xff0c;请你在所有可能的子序列中找到最长的和谐子序列的长度。 数组的子序列是一个由数组派生出来的序列&am…

怎么释放C盘空间?清理C盘空间的4大方法分享!

案例&#xff1a;怎么释放c盘空间 【朋友们&#xff0c;最近我的c盘空间内存严重不足了&#xff0c;想释放一下c盘的空间&#xff0c;大家有什么好的方法吗&#xff1f;】 在使用电脑的过程中&#xff0c;经常会遇到C盘空间不足的问题&#xff0c;这时候就需要释放C盘的空间。…

光波导相控阵技术

在简述电光效应和热光效应的基础上综述了国内外光波导相控阵技术研究进展&#xff0c;包括一维和二维光波导相控阵的技术途径、结构特点和性能指标&#xff0c;给出了光波导相控阵的优势以及在激光雷达、成像等领域的应用前景。结果表明&#xff0c;光波导相控阵技术正向着大扫…

特斯拉、毫末、华为……第一梯队拥抱“重感知”

上海、深圳、重庆、杭州等16个城市进行泛化测试&#xff0c;2023年第四季度落地45城&#xff0c;2023年底覆盖50座城市&#xff0c;2023年底前完成100个城市的落地推送……这个春天&#xff0c;忽如一夜春风来&#xff0c;城市NOA的星星之火突然开始呈现燎原之势。特斯拉后&…

windows安装python

1.安装 打开官网下载页面 Download Python | Python.org 选择最新的 security 版本3.9。现在是2023年4月&#xff0c;3.7版本在6月马上就停止支持了&#xff0c;所以不要选择。而太新的3.11有会有软件包不支持的情况。 点击 download -> windows 找到3.9右键复制链接&…

前后端分离的人力资源管理系统,采用SpringBoot+Vue开发

一、开源项目简介 一个前后端分离的人力资源管理系统&#xff0c;项目采用 SpringBootVue/ElementUI 开发&#xff0c;项目加入常见的企业级应用所涉及到的技术点&#xff0c;例如Spring Security、MyBatis、Redis、RabbitMQ、WebSocket等。 二、功能概述 包含员工资料、人事…

高效工具-内网穿透实现windowA连接linux服务器C

需求 个人需求是有一台连接局域网的电脑B&#xff0c;该电脑B可以访问局域网内的其他服务器&#xff0c;且可以访问公网&#xff0c;本人在另一个局域网内有一台电脑A&#xff0c;想要直接远程桌面访问B&#xff0c;通过B操作局域网内的其他服务器。经过调研发现通过“远程桌面…