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:无法使用 REMOTE_SERVICE 将消息从 R5F (MCU2_0)发送到 A72

Guru**** 2539500 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1116264/tda4vm-failed-to-send-message-from-r5f-mcu2_0-to-a72-using-remote_service

器件型号:TDA4VM

你(们)好

我们可以成功地将消息发送到  A72上的 R5F、但 无法  使用 REMOTE 服务将消息从 R5F 发送到 A72。

我的测试方法如下:

1) A72

我们在 A72上开发了两个应用程序、即发送应用程序和 rec 应用程序。

发送应用程序用于主动向在  R5F 上注册的名为 CSP_REMOTE 服务_NAME_A72_TO_R5F 的远程服务发送消息。

REC 应用程序用于    A72上注册名为 CSP_REMOTER_SERVICE_NAME_R5F_TO_A72的 REMALE_SERVICE、并接收由 R5F 发送的消息。

2) R5F

在 R5F 侧、名为 CSP_REMOTE 服务名称 A72_TO_R5F 的 REMOTE 服务已注册、可接收 A72发送的消息。

如果 R5F 通过  名为 CSP_REMOTE _ SERVICE_NAME_A72_TO_R5F 的 REMOTE 接收消息,请立即通过 名为 CSP_REMOTE _ SERVICE_NAME_R5F_TO_A72的 REMOTE _服务向 A72发送消息。

如果 Rec 应用程序通过 名为 CSP_REMOTE _ SERVICE_NAME_R5F_TO_A72的 REMOTE 服务接收到消息 ,则意味着 R5F 主动向 A72发送消息。 此远程通道可用。

但测试后,发送应用程序发送的消息可以在 R5F 上接收 ,但 R5F 发送的消息无法在 rec 应用程序上接收。

当 R5F 向 A72发送消息时、将提示以下消息:

[328.069853] virtio_rpmsg_bus virtio4:收到无收件人的 MSG

我已附上两个应用的源代码和在 R5F 添加的代码

请 TI 专家给我一些建议。 谢谢!

e2e.ti.com/.../ipc_2D00_test.zip

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

    您好!

    我认为 在 Linux 应用程序中禁用了远程服务、您能否尝试在 文件 ti-processor-sdk-rtos-j721e-evm-08_00_00_12\vision_apps\utils\remote_service\src\app_remote_service_linux.c 中启用宏 app_enable_remote_service_task?  

    此致、

    Brijesh

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

    你(们)好

    根据您的建议、我将在 rec 应用程序运行后提示以下错误消息:

    无法打开 Neptdev /dev/rpmsg18
    Remote_service:错误:计数未启动远程服务器

    内核日志:

    [416.612947] rpmsg_chrdev virtio3.rpmsg_chrdev.-1.21:IDR_alloc 失败:-28
    [416.619834] rpmsg rpmsg5:无法打开 rpmsg-char-2-1195
    [498.519605] rpmsg_chrdev virtio0.rpmsg_chrdev.-1.21:IDR_alloc 失败:-28
    [498.526494] rpmsg rpmsg18:无法打开 rpmsg-char-6-1206

    我在 sdk_roms\vision_apps\utils\remote_service\src\app_remote_service_linux.c 中找到了 msg 代码

    #ifdef APP_ENABLE_REMOTE_SERVICE_RECEIVE_TASK
        if(status==0)
        {
            uint32_t i;
    
            for(i=0; i<APP_IPC_CPU_MAX; i++)
            {
                if(appIpcIsCpuEnabled(i) && i != appIpcGetSelfCpuId())
                {
                    uint32_t host_port_id = prm->rpmsg_rx_endpt;
    
                    obj->rx_fds[i] = appIpcCreateTxCh(i, prm->rpmsg_rx_endpt, &host_port_id, &obj->rcdev[i]);
    
                    obj->rx_local_endpt[i] = host_port_id;
    
                    if (obj->rx_fds[i] < 0)
                    {
                        printf ("REMOTE_SERVICE: ERROR: Count not start Remote Server \n");
                        status = -1;
                        break;
                    }
    				printf ("[HIRAIN]REMOTE_SERVICE: Start Remote Server \n");
                }
            }
    
            if (status == 0)
            {
                status = appRemoteServiceCreateRpmsgRxTask(obj);
                if(status!=0)
                {
                    printf("REMOTE_SERVICE: ERROR: appRemoteServiceCreateRpmsgRxTask failed !!!\n");
                }
            }
            else
            {
                /* Server will not run, but it is ok */
                status = 0;
            }
        }
    #endif

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

    罗浩、您好!

    我正在向我们的团队核实为什么没有启用远程服务。 我怀疑其他模块可能已经启用了它、但让我检查并确认。

    此致、

    Brijesh

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

    你(们)好

    是否有更新?

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

    罗浩、您好!

     我们目前还没有计划实施这一新功能。 我建议使用 IPC 等其他机制从 R5F 与 A72进行通信。

    此致、

    Brijesh

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

    您好 、Brijesh Jadav、

    好的、那么 、请您提供更多参考资料或详细信息吗?

    谢谢

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

    罗浩、您好!

    另一种方法是使用 IPC。 您可以 从 A72发送虚拟消息到 R5F 以通知端口、然后 R5F 可以使用此端口发送消息。  但是、这也 是一个通知、它周围的发送完整消息的框架 不可用、因此需要实施。

    此致、

    Brijesh