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.

[参考译文] PROCESSOR-SDK-J721E:a72和 mcu1_0之间的 IPC 添加端点失败

Guru**** 2393325 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1496879/processor-sdk-j721e-ipc-between-a72-and-mcu1_0-add-endpoint-failed

器件型号:PROCESSOR-SDK-J721E

工具与软件:

说明:

IPC (在 a72和 mcu1_0之间) 添加端点失败。

SDK 版本:

10_00_00_27

错误:

_rpmsg_char_find_ctrldev:找不到与 virtio3.rpmsg_FCT.-1.15匹配的 rpmsg_ctrldev 设备:无效的参数
Questions:
以下代码的修改方法是否正确、需要哪些附加设置?

代码修改方法:

Mcu1_0 Core(请参阅蓝色文本)

#define SERVICE_PING"ti.ipc4.ping-pong"   
#define ENDPT_ping    13u
#define SERVICE_CHRDEV "rpmsg_chrdev"
#define ENDPT_CHRDEV  14U
#define SERVICE_FCT "rpmsg_FCT"

Ipc_Test 44ams service_ping ={ ENDPT_ping, service_ping };
Ipc_Test 44ams service_chrdev ={ ENDPT_CHRDEV, SERVICE_CHRDEV };
Ipc_Test 4.04ams SERVICE_FCT ={ ENDPT_FCT、SERVICE_FCT }; //添加 FCT 端点

   /*第3步:初始化 RPMessage */
   Message_Params 40cntrlParam;

   //App_printf ("RPMessage 对象所需的本地内存=%d\n"、
   //  RPMessage_getObjMemRequired();

   /*初始化参数*/
   RPMessageParams_init (&cntrlParam);

   /*为 HeapMemory 设置内存以执行控制任务*/
   cntrlParam.buf        = pCntrlBuf;
   cntrlParam.bufSize    = rpmsgDataSize;
   cntrlParam.stackBuffer =&pTaskBuf[index++* IPC_task_STACKSIZE];
   cntrlParam.STACKSIZE  = IPC_TASK_STACKSIZE;
   RPMessage_init (&cntrlParam);

   /*响应进入 Endpt ENDPT_ping 的消息*/
   TaskP_PARAMS_INIT (&params);
   params.priority  = 3;
   params.stack     =&pTaskBuf[index++* IPC_task_STACKSIZE];
   params.stacksize = IPC_task_STACKSIZE;
   params.arg0      =(void *)&service_ping.Endpt;
   params.arg1      =(void *)& service_ping.name[0];
   if (NULL == TaskP_CREATE (&rpmsg_responserFxn、&params))
   {
       APP_printf ("IPC 响应者任务创建失败!!!");
   }

#if!defined (BUILD_MPU1_0)&& defined (A72_Linux_OS)
   /*响应进入 Endpt ENDPT_CHRDEV 的消息(用于测试 rpmsg_chrdev)*/
   TaskP_PARAMS_INIT (&params);
   params.priority  = IPC_Setup_task_PRI;
   params.stack     =&pTaskBuf[index++* IPC_task_STACKSIZE];
   params.stacksize = IPC_task_STACKSIZE;
   params.arg0      =(void *)&SERVICE_chrdev.Endpt;
   params.arg1      =(void *)& service_chrdev.name[0];
   if (NULL == TaskP_CREATE (&rpmsg_responserFxn、&params))
   {
       APP_printf ("IPC 响应者任务创建失败!!!");
   }
   
   TaskP_PARAMS_INIT (&params);
   params.priority  = IPC_Setup_task_PRI;
   params.stack     =&pTaskBuf[index++* IPC_task_STACKSIZE];
   params.stacksize = IPC_task_STACKSIZE;
   params.arg0      =(void *)&SERVICE_FCT.Endpt;
   params.arg1      =(void *)& service_fct.name[0];
   if (NULL == TaskP_CREATE (&rpmsg_responserFxnfct、&params))
   {
       APP_printf ("IPC 响应者任务创建失败!!!");
   }

#endif

A72内核(请参阅蓝色文本):

参数dev 名称:"rpmsg_FCT"

参数remote _Endpt:15.

   status = rpmsg_char_ping (rproc_id、dev_name、local_Endpt、remote_Endpt、num_msgs);

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

    您好!

    [报价 userid="648508" url="~/support/processors-group/processors/f/processors-forum/1496879/processor-sdk-j721e-ipc-between-a72-and-mcu1_0-add-endpoint-failed "]#define SERVICE_PING"ti.ipc4.ping-pong"   
    #define ENDPT_ping    13u
    #define SERVICE_CHRDEV "rpmsg_chrdev"
    #define ENDPT_CHRDEV  14U
    #define SERVICE_FCT "rpmsg_FCT"[/报价]

    你没有在这里提到新的终点。

    [quote userid="648508" url="~/support/processors-group/processors/f/processors-forum/1496879/processor-sdk-j721e-ipc-between-a72-and-mcu1_0-add-endpoint-failed Ipc_Test 44ams service_FCT ={ ENDPT_FCT、service_FCT }; //添加 FCT 端点

    什么是"ENDPT_FCT这个值保持?

    从您的日志"rpmsg_responserFxnfct"添加为任务、但我看不到这些更改。

    [quote userid="648508" url="~/support/processors-group/processors/f/processors-forum/1496879/processor-sdk-j721e-ipc-between-a72-and-mcu1_0-add-endpoint-failed 以下代码的修改方法是否正确、需要哪些附加设置?

    更改非常不正确、请遵循使用的13和14个终点的相同步骤。 您需要正确修改 MCU1_0上的应用程序才能接收消息

    您可以参阅有关如何添加终点的常见问题解答  

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1245326/faq-rpmsg-how-to-add-multiple-endpoints-to-a-remote-core-running-rtos

    此致

    Tarun Mukesh