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.

[参考译文] AM2434:如何从一个 PRU 片向另一个 PRU 片发送中断

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1592283/am2434-how-do-i-send-interrupt-from-one-pru-slice-to-another

器件型号: AM2434

您好、

向另一个 PRU 发送信号、

最好的策略是什么? 我可以参考一个示例吗?

 

谢谢

Rasty

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

    您好、Rasty、

    我现在正赶上感恩节假期。

    我们讨论的是哪种信号?

    可以从一个 PRU 内核向另一个 PRU 内核发送中断。 您可以在 Direct_Connect 软件支持包 (PSSP) 工程 PRU_PRU-ICSX 中查看相关示例 加分项是、这些项目还显示使用暂存区来回传递数据:
    https://git.ti.com/cgit/pru-software-support-package/pru-software-support-package/tree/examples/am64x/PRU_Direct_Connect 0 

    您可以在全新的 AM243x PRU Academy > Hardware > Scratch Pad (SPAD) 中找到有关暂存区的更多信息
    https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__AZ-U.nUh1aL8Xuu5ve8lzw__AM24X-ACADEMY__ZPSnq-h__LATEST 

    您还可以使用其他方法、例如轮询 PRU DMEM0、DMEM1 或 SMEM(单时钟周期访问)中将写入另一个内核的已知地址、或使用 PRU 子系统中的硬件旋转锁。

    此致、

    Nick

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

    您好、Nick、  

    很抱歉、回复延迟。 我一直在寻找将 SDFM 数据从一个 PRU 切片共享到另一个 PRU 切片的最佳方法以及通知数据已就绪的方法。

    但我认为我找到了解决方案 — 它要么通过中断控制器轮询共享 RAM、要么通过对 R31 进行轮询。

    我想提出两个相关问题:

    1.打开另一个线程(无回复)-我 通过 JTAG 下载应用 PRU (am243x EVB) 时收到验证错误。 这表明来自 PRU 的 JTAG *读取*内存不可靠。 更改 JTAG 频率没有任何帮助。  您在这里看到/看到了类似的东西吗?

    2、为什么在 SDFM 实施中将数据推送到 CPU TCM — 这是一条较长,确定性较差的路径。  为什么不简单地让 R5 从 PRU DRAM 读取结果?

    此致

    Rasty

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

    您好、Rasty、

    有关将应用程序下载到 PRU 的其他问题的线程的 URL 是什么?

    您提出的解决方案应该没有问题。 您也可以轮询 DMEM0 或 DMEM1、请记住切片 0 内核看到的 DMEM0 和 DMEM1 地址与 slice1 内核不同。

    我将把您的线程重新分配给电机控制 SDK 支持团队、以讨论有关 SDFM 实现的更多信息。 如果您指向您所指的确切代码、这可能会对团队有所帮助。

    此致、

    Nick

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

    Rasty

    [quote userid=“359686" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1592283/am2434-how-do-i-send-interrupt-from-one-pru-slice-to-another/6147775 为什么在 SDFM 实现中将数据推送到 CPU TCM — 这是一个较长且不太确定的路径。  为什么不简单地让 R5 读取 PRU DRAM 的结果?

    TCM 是 R5F 可以访问的最快存储器 — 因此示例中使用了该存储器。 可以将数据保留在 DMEM 中、但在接收到样本就绪 IRQ 后、与 R5F 的 TCM 相比、从 DMEM 获取数据需要更多时间。

    此致

    Dhaval

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    TCM 是 R5F 可以访问的最快内存、因此在示例中使用了该内存。

    想法是在使用 PRU 作为智能 DMA 复制后台低延迟存储器中数据的同时、减少控制代码 R5F 的失速周期。 从 R5F 到 DMEM 和 PRU 到 TCM 的访问延迟大致相同