This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好!
是否有任何 CCS 项目解释了从一个处理器到另一个处理器的中断生成。
我们有一个定制的四核处理器板、这些处理器通过板载 SRIO 开关进行连接。 通过 SRIO、我们尝试在处理器之间进行数据传输。
修改 CCS 示例项目(SRIO_LoopbackDioIsrexampleproject)、我们能够执行从一个 DSP1到另一个 DSP2的数据传输。
我们尝试从 DSP1生成门铃中断到 DSP2 (通过更改 ftype 和 ttype)、但在 DSP2上未生成中断(未调用 ISR Rx)
下面的链接与我们所面临的链接类似、但无法获得在另一个 DSP 上生成中断的任何解决方案。
生成门铃中断的指南。
您好!
我们在较早的 MCSDK 中提供了具有门铃中断的 SRIO 板对板示例。 由于某种原因、代码未转发到后续的 Processor SDK RTOS 中。 我找不到下载链接、因此我在此处附加了该软件包的一部分、它来自 pdk_C6678_1_2_6\packages/ti\transport。
此致、Eric
您好!
也可在此处找到用户指南 :http://processors.wiki.ti.com/index.php/BIOS_MCSDK_2.0_User_Guide、请查看主题 SRIO_IPC_Transport。
此致、Eric
该封装没有任何门铃中断配置或注册 ISR。
您能告诉我以下函数 API 的定义以及如何使用它吗?
这些 API 在 SRIO 示例项目中用于中断配置、下面是 SRIO_LoopbackDioIsrexampleproject 中的代码。
1.主机中断编号定义为8.我在数据表中找不到有关此内容的任何信息,以及此8指的是什么,以及为什么它映射到 INDST0
我无法找到 与在 EventCombiner_dispatchPlug 函数中传递的 CpIntc_dispatch 相关的任何内容。 如何在此函数中使用传递参数8的函数。是否可以将"0"等任何参数传递给此函数。 它是否会影响功能。
CpIntc_dispchPlug (CSL_INTC0_INTST0、(CpIntc_Functr) myDioTxCompetitionIsr、(UArg)hSrioDrv、true); /*配置用于 CPINTC0。 我们将系统中断112映射到主机中断8。 * CpIntc_mapSysIntToHostInt (0、CSL_INTC0_INTST0、8); /*启用主机中断。 * CpIntc_enableHostInt (0、8); /*启用系统中断*/ CpIntc_enableSysInt (0、CSL_INTC0_INTST0); /*获取与主机中断关联的事件 ID。 * EventID = CpIntc_getEventId (8); /*插入 CPINTC 调度程序。 * EventCombiner_dispatchPlug (EventID、CpIntc_dispatch、8、true);
请帮助我们更好地了解这些中断配置以生成门铃。
您好!
有一个很好的 Wiki 来解释 C66x 中断架构: http://processors.wiki.ti.com/index.php/Configuring_Interrupts_on_Keystone_Devices。 这些 API 是 SYSBIOS API。 您可以在 BIOS_6_xx_xx_xx\packages/ti\SysBIOS\family 下搜索 C66x 或 C64p。
"8"是主机中断、不是任意数字、它表示 CICx_OUT8。 您可以参阅 C6679数据表、 图7-32 TMS320C6678系统事件输入- C66x CorePac 主中断(表1、共4个)、其有效。
此致、Eric
我需要有关门铃中断的更多信息、以确保我们的配置正确。
在我们的代码中、我们将通过测试
CSL_SRIO_SetLSUReg5 (handle、0、0、10、0、0x0001)
在这里、我们将门铃信息传递为0001。
您好!
我们在 SRIO 方面的专业知识有限。 我看到了驱动程序使用的代码:
CSL_SRIO_SetLSUReg5 (gSRIODriverMCB.SRIO_GLOBAL_Handle、PTR_srioSocket ->映射索引、
PTR_DioAddrInfo->ttype、
PTR_DioAddrInfo->ftype、
ptr_srioSocket -> DoorbellTransfer.hopCount、
DoorbellInfo);
其中 DoorbellInfo = CSL_FMKR (3、0、DoorbellBit)| CSL_FMKR (6、5、DoorbellReg);
此致、Eric
您好!
在我们的开发中、DSP 将从其他 DSP 接收多个中断。 我们需要对中断进行解码(如谁生成了中断 DSP1或3)并 相应地执行任务,
但从代码片段中可以看出门铃信息 由 DoorbellBit (0-15)和 DoorbellReg (0-3)构成。
因此、我生成了门铃中断、门铃信息为从 DSP1到 DSP2的0001 、即门铃 REG 0和门铃位1。
如何在其他 DSP 中解码该门铃中断信息。 它是否反映在任何状态寄存器中。 ?
您好!
如 有帮助、请阅读 SRIO 用户指南2.3.5门铃操作。 此外、虽然出站可以在 Doorbell Info 字段上发送任何值、但传入的 Doorbell 具有一些用于 TI IP 的保留位。
DoorBell_Info [3:0]位用于确定将在 Doorbell 寄存器中设置哪个 Doorbell 位
Doorbell Info [4]保留
Doorbell Info [6:5]确定将使用哪个 Doorbell 寄存器
Doorbell Info [15:7]也是保留位。
这就是我们的代码设置 LSUReg5 Doorbellinfo 字段及其解码方式。
此致、Eric
尊敬的 Eric:
我了解 LSUReg5中的门铃配置。
正如我先前所讲的、当我将门铃信息值设置为0001时、会生成门铃。 我能够看到在其他 DSP 中调用 ISR。
我的问题是 DSP 如何知道中断源(生成中断的人)。 与门铃的距离。 当我读取中断状态寄存器时、它为零。
在我们的设计中、我们有4个 DSP。 一个 DSP 可以从其他 DSP 获取门铃中断、了解如何区分从一个 DSP 和其他 DSP 接收到的中断。