RPMsg

按照以下步骤,运行AMP镜像,并使用RPMsg组件测试:
  1. 连接Linux和RTOS的调试串口,串口的波特率均设置为115,200。
  2. 将编译出来的sdcard_amp.img刷写到SD卡上。
  3. 上电启动:RT-Thread启动很快,运行到main程序的时候,需要等Linux启动完成后发送IPI中断,Linux端是RPMsg的master,需要配置virtio queue的控制内存和共享内存。
    1. 上电启动
  4. 启动Linux:启动linux过程中,virtio_rpmsg_bus驱动会注册,starfive_rpsmg驱动也会被注册,注册完成后会发IPI中断给RT-Thread。
    2. 启动Linux
    提示: 图中注册了8个RPMsg设备节点, 可以支持多个应用程序进行数据交互通信。
    RT-Thread接受到IPI中断后,会初始化驱动和创建rpmsg_linux_test应用进程,这时RT-Thread的finsh shell也能正常使用。
    3. RT-Thread进程
  5. Linux端运行以下命令能看到 RT-Thread发给Linux的IPI中断:
    cat /proc/interrupts
    4. IPI中断
  6. 运行以下测试程序:
    rpmsg_echo
    提示: RVspace上提供了已编译的应用程序和源代码。该应用程序向RPMsg的remote端发送一个字符串, RT-Thread接收到后会把收到字符串发回给Linux,测试结果如下面所示:
    5. 测试结果
    IPI中断情况:
    6. IPI中断