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.

[参考译文] TDA4VH-Q1:A72和远程内核之间的 IPC 实现

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1519488/tda4vh-q1-ipc-implementation-between-a72-and-remote-cores

器件型号:TDA4VH-Q1

工具/软件:

大家好!

SDK:9.2.0.5

我想将 CAN 信号从 MCU1_0/MCU2_0发送到 A72。 我目前正在使用 app_utils->IPC 库来实现这一点、但由于 tiovx 也使用了这个库、因此我想实现一个单独的库。

 我需要 遵循哪些步骤、是否有相关文档?  

谢谢。此致、

Lalit

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

    你好 Lalit、

    我们有 PDK IPC LLD 和基于 MCAL 的 CDD IPC 与 A72通信。 我想知道您在 MCU1_0/2_0以及 A72上使用的是什么操作系统。

    此致

    Tarun Mukesh

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

    尊敬的 Tarun:

    我们使用 Linux (A72)+ RTOS (远程内核)。

    参考此链接:

    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/06_02_00_21/exports/docs/psdk_rtos_auto/docs/user_guide/developer_notes_ipc.html

    我想遵循与 APP_UTILS IPC 相同的实现方式。 我正在执行它、没有什么疑问吗?

    1.使用的 Vring 缓冲区在 app_init.c 中定义 我是否需要创建一个与当前 IPC 相同的单独类似缓冲区并在 app_init.c 中初始化相关内容?

    2.我认为我不需要下面所示的 tiovx 参数用于新实现、它们仅用于 tiovx IPC。 我的理解是否正确?

    3.新的单独实施是否会  以任何方式影响当前的 IPC ? 如果是、在哪种情况下?  

    谢谢。此致、

    Lalit

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引述 userid="564444" url="~/support/processors-group/processors/f/processors-forum/1519488/tda4vh-q1-ipc-implementation-between-a72-and-remote-cores/5842389 #5842389"]

    我们使用 Linux (A72)+ RTOS (远程内核)。

    参考此链接:

    https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/06_02_00_21/exports/docs/psdk_rtos_auto/docs/user_guide/developer_notes_ipc.html

    我想遵循与 APP_UTILS IPC 相同的实现方式。 我正在执行它、没有什么疑问吗?

    1.使用的 Vring 缓冲区在 app_init.c 中定义 我是否需要创建一个与当前 IPC 相同的单独类似缓冲区并在 app_init.c 中初始化相关内容?

    2.我认为我不需要下面所示的 tiovx 参数用于新实现、它们仅用于 tiovx IPC。 我的理解是否正确?

    [/报价]

    对于运行的 A72和 RTOS、我们有 IPC LLD 驱动程序以及示例。 您可以参阅 PDK IPC 中的 packages/ti/drv/ipc/examples/linux/ipc_echo_test.c 示例。

    如果您使用应用程序 utils/PDK IPC/CDD IPC、但最后使用的内存部分中保留的本地和远程内核之间的 VRING 是相同的。 如果你打算单独做,你需要编写一整套新的驱动程序和应用程序。

    此致

    Tarun Mukesh

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

    尊敬的 Tarun:

    如果您打算单独操作、则需要编写一套全新的驱动程序和应用程序。

    我不 知道为什么我还需要写驱动程序。 我浏览了上述示例、发现 app_utils->IPC lib 和该示例都 以类似的方式实现、并使用相同的 API。

    当前在 DDR 中创建了用于 Vring 的段 。此段用于当前 IPC。 (SS 低于)

    我可以为其他 vring 创建一个新的部分并在我的新库中使用它吗? 如果是、则 应该 使用当前存储器映射的哪个地址范围?

    谢谢。此致、

    Lalit

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

    您好:

    在驱动程序中、将采用现有的 VRING_MEM_ADDR、并使用邮箱队列对。 由于您的想法是创建一个新的 VRING、并并行执行操作、那么内核之间的现有邮箱呢? 您将如何管理邮箱?

    如果您使用相同的邮箱,APP utils 使用相同的邮箱,而您的新应用程序使用相同的邮箱,那么您将如何区分要查看的 Vring ?

    此致

    Tarun Mukesh

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

    尊敬的 Tarun:

    我现在看到了。 我们的硬件邮箱数量有限。 我不知道这一点、我想我们可以为新的实施分配单独的分配。

    那么、我还能如何实现这一点呢? 我的主要目标是保持当前的 APP_UTILS IPC 代码不变。 目前、我必须对其进行修改(添加应用程序的函数调用)才能在应用程序中获取信号。 有没有方法不打扰这个库,并将我的应用程序代码与此分开? 我知道 IPC Notify 处理程序已注册 tiovx、因此我无法注册自己的并覆盖它。

    谢谢。此致、

    Lalit

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

    你好 Lalit、

    可能的方法是在应用程序实用程序和您的另一个应用程序中使用不同的端点。

    例如:端点13在应用程序实用程序中使用,然后在应用程序中使用不同的服务名称的端点14。 它使用基本相同的 VRING 和相同的邮箱、但如果 只有相应的服务名称和端点匹配、则相应的应用程序将处理详细信息、否则不会处理。

    此致

    Tarun Mukesh