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.

[参考译文] TDA4VM:为 CTRLMMR_IPC_SET6中断编程中断路由器

Guru**** 1952220 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1449044/tda4vm-program-interrupt-router-for-ctrlmmr_ipc_set6-interrupt

器件型号:TDA4VM

工具与软件:

尊敬的 TI:

我想使用 CTRLMMR_IPC_SET6寄存器在 C66_0上触发中断。 遗憾的是、由于 防火墙处于活动状态、相应的中断路由器(C66SS0_INTROUTER0、地址0xAC'0000)无法由 C66_0本身进行配置(请参阅 https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j721e/firewalls.html 防火墙 ID 64)。 因此、我尝试了使用 Sciclient 调用 Sciclient_rmIrqSet 来配置中断。 但很遗憾、这个 intterupt 不是由 Sciclient API 管理(请参阅 https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j721e/interrupt_cfg.html#c66ss0-introuter0-interrupt-router-input-sources IR 输入索引309)。

为该特定的中断输入配置中断路由的正确方法是什么?

此致、

Felix

PS:通过 Memory Browser 手动配置 C66SS0_INTROUTER0中的相应寄存器有效、并且在将0x1写入 CTRLMMR_IPC_SET6时还能够接收中断。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

    您能给我们更详细地介绍一下这个用例以及您要尝试做什么的背景吗? 此外、请指定此处使用的 TI SDK。  

    我们必须在内部进行检查并返回您的查询。 由于这是假日季、您可能会延迟回复、因此感谢您的耐心。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Praveen、您好!  

    感谢您的快速回复。 该用例是通过中断通知 C66_0发生了"事情"。  由于我们未使用 TI 的 IPC 解决方案、因此这些寄存器未使用 ATM。  第 5.1.3.3.1.4章处理器间通信寄存器(在 TRM、SPRUIL1B 中)提到这些类型的寄存器用于此目的。

    我目前使用 SDK RTOS v09.01。

    总结问题:我只需将 外设中断(CTRL_MMR0_IPC_SET6_IPC_SET_IPCFG_0)路由到 C66SS0_INTR_IN_x 因此、我必须向寄存器 C66SS0_INTR0_MUXCNTL_n 写入正确的值。 我根本不允许通过 C66_0执行该操作、因为防火墙以及通过 Sciclient API 的"官方"方式不支持路由该特定中断。

    再次感谢、此致、

    Felix

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Fleix、

    感谢您的参与。  您能告诉我们为什么不使用 TI IPC 解决方案并定制工作吗? 您能否参考 IPC 代码以了解它们如何设置中断? 理想情况下、您必须调用 SciClient API 来进行设置、因为 DM 或 TIFS 将处理所有配置。

    由于防火墙和 Sciclient API 的"官方"方式不支持路由该特定中断、我根本不能从 C66_0执行该操作。

    您能否共享您使用 SciCllient API 但无法运行的代码片段? 您是否已访问过 https://software-dl.ti.com/tisci/esd/latest/2_tisci_msgs/rm/rm_irq.html。 请告诉我们。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Praveen、您好!

    TI 的 IPC 解决方案未满足我们的延迟要求、因此我们使用定制解决方案。 但我们不要偏离主题。

    我不确定 TI 的 IPC 解决方案是否实际使用了此中断。 由于命名原因、我刚才假设了这一点。 如果您能指导我在 IPC 代码中设置中断、这将会很有帮助。

    我指的是 TISCI 文档中的以下声明(我在我的第一篇文章中已经链接了这些声明)

    (请勿忽略、上面插入了图像)

    由于我没有 src_index、因此我无法使用 Sciclient_rmIrqSet、因为信息不够。

    此致、

    Felix

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    但是我们不要偏离主题。

    我们并非如此;我们只是想了解您为什么要重新发明车轮!

    TI 的 IPC 解决方案实际上使用的是此中断。 由于命名原因、我刚才假设了这一点。 如果您能指导我在 IPC 代码中设置中断、这将很有帮助。

    TI PSDK RTOS 有一个完整的源代码、已经发布以供参考。 IPC 实现位于 SDK 路径 PDK_中 /packages/ti/drv/ipc src。

    [报价 userid="463380" url="~/support/processors-group/processors/f/processors-forum/1449044/tda4vm-program-interrupt-router-for-ctrlmmr_ipc_set6-interrupt/5561819 #5561819"]

    我指的是 TISCI 文档中的以下声明(我在我的第一篇文章中已经链接了这些声明)

    (请勿忽略、上面插入了图像)

    [报价]

    好的、我们将与专家进行核实、然后再回来。

    谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Praveen、您好!

    我找到了以下函数(在 ti/drv/ipcsoc/V1ipc_soc.c 中) ipc_configC66xIntrRouter。 此函数尝试通过使用 RAT 访问中断路由器来为另一个中断源(与邮箱相关)设置中断路由。 不过、由于我在开始部分提到的原因、在这里不能对中断路由器寄存器进行写入:0xAC'0000设置了防火墙、只能由 DMSC (Cortex M3)、MCU1_0或调试器写入、而不能由 C66_0写入。

    IMHO、我要使用的中断(寄存器 CTRLMMR_IPC_SET6)在 PSDK RTOS v09.01中完全不使用。

    好的、我们将与专家核实并取回。

    谢谢。

    此致、

    Felix

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您关注 IPC 代码。

    [报价 userid="463380" url="~/support/processors-group/processors/f/processors-forum/1449044/tda4vm-program-interrupt-router-for-ctrlmmr_ipc_set6-interrupt/5563910 #5563910"]但是、由于我在开始部分提到的同样原因、此处不能对中断路由器寄存器进行写入:0xAC'0000设置了防火墙、并且只能由 DMSC (Cortex M3)、MCU1_0或调试器写入、而不能由 C66_0写入。

    我们不理解这一说法。 谁在此处写入以中断路由器寄存器? 如果您是从 C66_0执行该操作、则不建议这样做。  

    我们正在等待我们的专家在此发表评论。 然而,他是商务旅行,将有几天的延迟(直到12月15日)。

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Praveen、您好!

    谁在此处写入中断路由器寄存器?

    我是从 C66_0执行此操作的、因为我提到的函数明确表示要从 C66_0/1中使用。 如果仔细查看上述文件、会发现函数 IPC_configC66xIntrRouter 采用#if defined (BUILD_C66X)进行封装、从而使其只能从 C66_0/1中执行。

    [报价 userid="108768" url="~/support/processors-group/processors/f/processors-forum/1449044/tda4vm-program-interrupt-router-for-ctrlmmr_ipc_set6-interrupt/5564129 #5564129"]如果您是从 C66_0执行此操作、不建议这样做。  [报价]

    我有点困惑。 另外还应如何执行此函数? 我知道官方方式是使用 Sciclient API、但正如您所知、这是核心问题、因为 ITT 不支持我的特定中断

    我们正在等待我们的专家在此发表评论。 然而,他是商务旅行,并将有几天的延迟(直到12月15日)。[/报价]

    谢谢、期待收到他的回复。

    此致、

    Felix

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    该问题会被解决。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Felix:

    TI SDK 本身不支持 CTRL_MMR IPC 方案。  中断路由器编程全部属于中断源和路由的 RM 管理的一部分、因此 C66x INT 路由器(以及其他 INTLR)实际上会被防火墙设置防火墙、并主要由 MCU1_0固件进行管理。  CTRL_MMR IPC 没有 TI-SCI 器件 ID、因此不受 TI-SCI API 本身的管理。

    您只需要在 C66x 上注册中断才能在线路上接收中断、因此我建议您在启动期间将必要的 C66x INTR 在 SBL 内进行编程、或将 MCU1_0应用作为一次性编程。  

    此致

    Suman

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Suman:

    感谢您的解释。

    此致、

    Felix

x 出现错误。请重试或与管理员联系。