V853使用RPBUF让LINUX和MELIS的程序通信,MELIS收发数据都是0x00
-
使用的SDK是韦东山的V853的AI开发板,LINUX的程序使用了rpbuf_sample_sunxi.c作为驱动,E907运行MELIS的程序,使用rpbuf_demo.c作为驱动。
LINUX先创建一个1156大小的buffer后,MELIS的程序调用MSH命令也创建同名的buffer, 然后linux的调用echo >data进行数据发送(比如12345),melis程序能收到消息,获取到正确的数据长度,但是数据全为0x00,melis的程序调用rpbuf_test进行数据发送(比如abcdef),linux的程序能获取到正确的数据长度,但是数据为12345。 看起来就是linux的驱动是则正常的,但是melis的驱动则有问题,其获取不到正确的buffer地址。(这是LINUX的打印信息)
(这是MELIS的打印信息)
MELIS看到RPBUF的虚拟地址就是0x00,试过在LINUX创建了RPBUF后,MELIS把VA写死成一样的地址,或VA的地址取成PA的地址,都不行(收发数据就进入异常)。
还有一个疑问是,RPBUF的ROLE里面,MASTER和SLAVE是不是分别对应大核和小核?我现在通过启动MELIS的程序来创建RPBUF的SERVICE,然后先在KERNEL创建RPBUFFER,然后再到MELIS上创建同名的RPBUFFER,这个流程是否有问题?
尝试过修改给va赋值的函数,仍未能解决问题。
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号