Tool/software:
Discription:
IPC (between a72 and mcu1_0) add endpoint failed.
SDK vertion:
10_00_00_27
Error:
The method of code modification:
Mcu1_0 Core(See the blue text)
#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_TestParams service_ping = { ENDPT_PING, SERVICE_PING };
Ipc_TestParams service_chrdev = { ENDPT_CHRDEV, SERVICE_CHRDEV };
Ipc_TestParams service_fct = { ENDPT_FCT, SERVICE_FCT }; //add fct endpoint
/* Step 3: Initialize RPMessage */
RPMessage_Params cntrlParam;
//App_printf("Required Local memory for RPMessage Object = %d\n",
// RPMessage_getObjMemRequired());
/* Initialize the param */
RPMessageParams_init(&cntrlParam);
/* Set memory for HeapMemory for control task */
cntrlParam.buf = pCntrlBuf;
cntrlParam.bufSize = rpmsgDataSize;
cntrlParam.stackBuffer = &pTaskBuf[index++ * IPC_TASK_STACKSIZE];
cntrlParam.stackSize = IPC_TASK_STACKSIZE;
RPMessage_init(&cntrlParam);
/* Respond to messages coming in to endPt ENDPT_PING */
TaskP_Params_init(¶ms);
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_responderFxn, ¶ms))
{
App_printf("IPC Responder task creation failed!!!");
}
#if !defined(BUILD_MPU1_0) && defined(A72_LINUX_OS)
/* Respond to messages coming in to endPt ENDPT_CHRDEV (for testing rpmsg_chrdev) */
TaskP_Params_init(¶ms);
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_responderFxn, ¶ms))
{
App_printf("IPC Responder task creation failed!!!");
}
TaskP_Params_init(¶ms);
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_responderFxnfct, ¶ms))
{
App_printf("IPC Responder task creation failed!!!");
}
#endif
A72 Core(See the blue text):
参数dev_name:"rpmsg_fct"
参数remote_endpt:15
status = rpmsg_char_ping(rproc_id, dev_name, local_endpt, remote_endpt, num_msgs);