工具与软件:
说明:
IPC (在 a72和 mcu1_0之间) 添加端点失败。
SDK 版本:
10_00_00_27
错误:
代码修改方法:
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 (¶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_responserFxn、¶ms))
{
APP_printf ("IPC 响应者任务创建失败!!!");
}
#if!defined (BUILD_MPU1_0)&& defined (A72_Linux_OS)
/*响应进入 Endpt ENDPT_CHRDEV 的消息(用于测试 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_responserFxn、¶ms))
{
APP_printf ("IPC 响应者任务创建失败!!!");
}
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_responserFxnfct、¶ms))
{
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);