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.

[参考译文] TDA4AL-Q1:[TDA4] IPC 实现问题

Guru**** 2457760 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1482703/tda4al-q1-tda4-ipc-implement-question

器件型号:TDA4AL-Q1

工具与软件:

您好:

   我需要 A72和 MCU 域的 R5F 通过 IPC 通信。 在 A72中、它运行 Linux 操作系统。 在 R5F 中、它将运行 FreeRTOS。

   在 Linux 操作系统中、同时运行三个应用程序。 这三个应用程序将使用 IPC 与 MCU 域的 R5F 通信。

   请参阅网站:  3.5.适用于 J721S2的 IPC—适用于 J721s2的 Processor SDK Linux 文档。 这三个应用程序将使用 ti-rpmsg-char 库为 R5F 创建 IPC

   在  ti-rpmsg-char 库中、提供以下 API 来创建 IPC 链接。 这三个应用程序是否可以使用 rpmsg_char_open()打开同一个 rpmsg 设备节点?

   在  rpmsg_char_open()中、有参数 rproc_id、 local_Endpt 和 remote_Endpt 。  rproc_id 表示要 IPC 的处理器。 local_Endpt 和 remote_Endpt 如何? 它是否喜欢连接? 我可以在如下所示的三个应用中设置这些参数吗? 如果需要、我需要 MCU 方面的东西吗? 我还需要设置支持端点4、5和6接收和发送到1、2、3端点吗?  
   应用 A:
       rproc_id = 0
       Local_Endpt = 1
       Remote_Endpt = 4
   应用 B:
       rproc_id = 0
      Local_Endpt = 2
       Remote_Endpt = 5
   应用 C:
       rproc_id = 0
      Local_Endpt = 3
       Remote_Endpt = 6

rpmsg_char_init ()

此函数检查所需的内核驱动程序(remoteproc.rpmsg, virtio)是否已安装并可从用户空间访问。 此外、它还会检查 SoC 器件是否支持请求的远程处理器。

rpmsg_char_exit()

此函数对库中的所有取消初始化和任何清理执行完毕并执行。 这是在应用程序清理过程中完成所有用法后需要调用的最后一个函数。 这只需要在应用程序中调用一次、没有引用计数。 还需要在任何应用的信号处理程序中调用该函数、对过时的 rpmsg 端点器件进行必要的清理。

rpmsg_char_open()

用于为给定 rpmsg 设备创建和访问 rpmsg 端点设备的函数。

rpmsg_char_close()

关闭和删除之前创建的本地端点的函数