核间通信方式
两核通信使用标准的virtio-base的RPMsg协议。RPMsg,全称为Remote Processor Messaging,它定义了异构多核处理系统(AMP,Asymmetric Multiprocessing)中核与核之间进行通信时所使用的标准二进制接口。
- Linux:在Linux内核代码中,RPMsg的代码主要位于drivers/rpmsg/下,相关的代码是:
driver/rpmsg/virtio_rpmsg_bus.c drivers/rpmsg/virtio_rpmsg_starfive.c
- RT-Thread:使用开源的
rpmsg-lite
代码,也是开源的virtio-base
的RPMsg代码,能够按照协议和Linux收发数据。核间的IPI中断和共享内存配合能实现异构核间的数据传输。RT-Thread代码路径为:bsp/starfive/jh7110/driver/rpmsg_lite