运行RT-Thread
按照以下步骤,启动RT-Thread:
- 连接Linux和RTOS的调试串口,串口的波特率均设置为115,200。
- 将编译出来的u-boot-spl.bin.normal.out和visionfive2_fw_payload.img文件刷写到SPI NOR FLASH上。
- 上电启动:RT-Thread启动很快,并且运行rpmsg linux test的测试程序,RT-Thread在等待Linux端发送IPI中断,Linux端是Rpmsg的master,需要配置virtio queue的控制内存和共享内存。
- 启动Linux:启动linux过程中,
virtio_rpmsg_bus
驱动会注册,virtio_rpmsg_starfive
驱动也会被注册,注册完成后会发IPI中断给RT-Thread。 RT-Thread接受到IPI中断后,rpmsg_linux_test
会继续执行,这时RT-Thread的finsh shell也能正常使用。 - Linux端运行以下命令能看到
RT-Thread发给Linux的IPI中断:
cat /proc/interrupts
- 运行以下测试程序:
rpmsg_echo
提示: 该程序由创龙科技提供。RVspace上提供了已编译的应用程序和源代码。该应用程序向RPMsg的remote端发送一个字符串, RT-Thread接收到后会把收到字符串发回给Linux,测试结果如下面所示:IPI中断情况:cat /proc/interrupt IPI5: 12 0 0 AMP rpmsg interrupts