Duo 大小核间能否共享一段内存,用mailbox来传递地址尺寸呢?

Duo 大核与小核间通信是通过 mailbox 机制实现,但是仅有8个字节的内容可传输,根本满足不了实用,能否设置一部分内存是大小核都能访问的,在大核部分linux看到的是一块挂载到目录树里的内存文件系统,而小核部分则是固定地址区。
8个字节可以分为32bit地址与32bit长度描述的一个结构定义,这样就可以传输任何数据内容,只要两边编译同样的结构定义头文件。
否则小核功能再做的优秀,也无法实用。

1 Like

Hi, 可以通过 reserved-memory 留取一部分内存,然后通过 ion 分配这块内存专用。
小核上的系统可以使用这块内存。 之间可以通过 cmdq 传递内存的物理地址,见: duo-buildroot-sdk/middleware/v2/sample/audio/cvi_sample_audio_rtos.c at 2ded0da8222eb2420bbf5c9d6a3d363a323f3c28 · milkv-duo/duo-buildroot-sdk · GitHub

1 Like

s32Ret = CVI_SYS_IonAlloc(&u64PhyAddr, &pVirAddr, “audiortos_unittest”, 4*1024);
是用这个内核驱动的物理内存分配,然后用cmdq传递内存地址吗?
这是个方法,可以解决大小核心内存数据的传输需求。
多谢!

1 Like

大佬请问现在有解决这个问题吗,可以提供一下思路吗,最近也在尝试大小核传递大数据,奈何资料太少无从下手 :face_holding_back_tears: