A72跑的是linux,申请了一段共享内存写入指定数据,通过IPC 把地址和长度发送给R核.R核收到地址使用 CacheP_Inv(addr,len)函数同步cache,以上方法对MCU2_0和mcu2_1可以实现数据同步,但是对于MCU1_0不好用,A核申请内存的时候使用了 mmap(NULL, size, PROT_READ | PROT_WRITE | O_SYNC , MAP_SHARED, fd, 0) ,有什么好的解决方案吗?
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.
您好,这个问题目前在SDK中的确存在,,建议您可以先搜寻论坛中的相关帖子,应该会对您有所帮助.
那为什么IPC通信对1-0没有问题呢,还有我看对应的ResourceTable更新也是使用的CacheP_Inv(addr,len)这个函数也没有问题呢。uint8_t Ipc_isRemoteReady(uint16_t procId)
{
uint8_t retVal = TRUE;
Ipc_ResourceTable *rsc = NULL;
if(TRUE == Virtio_isRemoteLinux(procId))
{
rsc = (Ipc_ResourceTable*)rscTable;
CacheP_Inv(rsc, sizeof(Ipc_ResourceTable));
if(rsc->rpmsg_vdev.status != 0x7U)
{
retVal = FALSE;
}
}
return retVal;
}
您好,您可以参考下之前的一些讨论以及已发布的external JIRA 。
MCU1_0 是特殊的,其引导方式与其他主 R5F 内核非常不同。 MCU1_0 是一个boot processor,同时还提供了一个中央器件管理功能。