核间通信方式

两核通信使用标准的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