运行RT-Thread

按照以下步骤,启动RT-Thread:

  1. 连接Linux和RTOS的调试串口,串口的波特率均设置为115,200。
  2. 将编译出来的u-boot-spl.bin.normal.outvisionfive2_fw_payload.img文件刷写到SPI NOR FLASH上。
  3. 上电启动:RT-Thread启动很快,并且运行rpmsg linux test的测试程序,RT-Thread在等待Linux端发送IPI中断,Linux端是Rpmsg的master,需要配置virtio queue的控制内存和共享内存。
    1. 上电启动
  4. 启动Linux:启动linux过程中,virtio_rpmsg_bus驱动会注册,virtio_rpmsg_starfive驱动也会被注册,注册完成后会发IPI中断给RT-Thread。
    2. 启动Linux
    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中断情况:
    cat /proc/interrupt
    IPI5: 12 0 0 AMP rpmsg interrupts