rtthread lvgl基于ubuntu的qemu模拟器使用

使用演示

运行环境

系统:ubuntu20.04(wsl)
ide:vscode
硬件模拟:qemu

使用方法

部署环境

# 安装依赖的库
sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi scons libncurses5-dev qemu qemu-system-arm 

# 下载源码
cd ~/workspace
git clone https://gitee.com/sobergou/rt-thread.git

# 进入qemu工程目录
cd rt-thread/bsp/qemu-vexpress-a9/

# 安装env,初次调用scons --menuconfig指令会安装env环境,通过source ~/.env/env.sh临时使用
# 无需配置,直接退出,如果无图形界面,是shell窗口太小,窗口调大或者全屏
scons --menuconfig

# 配置env到环境变量中,后期不用通过source ~/.env/env.sh每次调用
vi ~/.bashrc

# 增加环境变量
export PATH=~/.env/tools/scripts:$PATH

# 重新加载环境变量
source ~/.bashrc

安装插件

vscode安装RT-Thread Studio在wsl ubuntu,此插件安装过程中会自动安装依赖的插件
image

安装交叉编译工具

# git拉取部署
git clone https://gitee.com/sobergou/ubuntu-compiler.git ~/.compiler

配置vscode工程

配置调试适配为QEMU,调试工具链gdb安装目录,目录为解压的目录/home/sober/.compiler/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gdb,sober为ubuntu用户名

配置工程根目录和交叉编译工具目录

同步c/c++配置,主要更新的是.vscode中的配置

配置lvgl为系统gui引擎

在Hardware Drivers Config->Onboard Peripheral Drivers选中Enable LVGL for LCD,如果kconfig界面出不来,终端窗口太小,将其调大重新操作加载kconfig界面

保存配置

退出

在~/workspace/rtthread/rt-thread/bsp/qemu-vexpress-a9/终端下通过pkgs --update更新配置的功能资源,资源是在线下载的。

如果缺少python依赖库手动安装

sudo pip3 install -i https://pypi.mirrors.ustc.edu.cn/simple/ psutil

代码修改

drivers/drv_clcd.h增加#include <drivers/classes/graphic.h>

applications/lvgl/lv_conf.h增加#define LV_DEMO_RTT_MUSIC_AUTO_PLAY_FOREVER 1

构建工程仿真调试

构建编译工程固件

image

image

下载固件到qemu仿真设备运行

如果虚拟文件sd.bin初次挂载需要格式化,第二次启动不需要。ctrl+c关闭qemu仿真设备启动的shell终端。

仿真调试,需要在构建工程固件下载到qemu仿真设备后使用,和真机的流程是一致的,构建下载启动的qemu仿真设备前,shell终端需要通过ctrl+c关闭掉后,通过仿真调试按钮仿真。

image

image