1.1 本文的目的和背景

嵌入式软件开发离不开开发板,在没有物理开发板的情况下,可以使用QEMU等类似的虚拟机来模拟开发板。QEMU是一个支持跨平台虚拟化的虚拟机,它可以虚拟很多开发板。为了方便大家在没有开发板的情况下体验RT-Thread,RT-Thread使用QEMU模拟了ARM vexpress A9开发板,并提供了相关的板级支持包(BSP)。本文主要介绍在windows平台和linux平台使用RT-Thread提供的qemu-vexpress-a9 BSP。

1.2 本文的结构

本文首先介绍qemu-vexpress-a9 BSP在windows平台的使用明细,其次介绍在linux平台的使用明细。

2 在windows平台使用qemu-vexpress-a9 BSP

2.1 准备工作

2.1 准备工作

  • RT-Thread源码,https://github.com/RT-Thread/rt-thread

  • RT-Thread env工具,https://www.rt-thread.org/page/download.html

env是RT-Thread推出的图形界面辅助工具,用来配置基于RT-Thread操作系统开发的项目工程。env自带有编译器和QEMU,因此在windows平台可以不用下载编译器和QEMU。请点击下面链接获取env详细信息及env运行环境要求:https://www.rt-thread.org/document/site/zh/5chapters/01-chapter_env_manual/

解压RT-Thread源码,在BSP目录下找到qemu-vexpress-a9文件夹,RT-Thread qemu-vexpresss-a9 BSP实现了LCD、键盘、鼠标、SD卡、以太网卡、串口等相关驱动。

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

2.2 运行qemu-vexpress-a9 BSP工程

1、打开env文件夹,双击env.exe文件打开env控制台:

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

2、在命令行模式下使用cd D:\repository\rt-thread\bsp\qemu-vexpress-a9命令切换到RT-Thread源码文件夹下的qemu-vexpress-a9 BSP根目录,目录根据自己的RT-Thread源代码目录输入,然后输入scons命令编译工程:

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

3、编译完成后输入qemu.bat启动虚拟机及BSP工程,qemu.bat是windows批处理文件,此文件位于BSP文件夹下,主要包括QEMU的执行指令,第一次运行工程会在BSP文件夹下创建一份空白的sd.bin文件,这是虚拟的sd卡,大小为64M。env命令行界面显示RT-Thread系统启动过程中打印的初始化信息及版本号信息等,如下图所示:

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

4、若电脑安装有360安全卫士会有警告,点击允许程序运行,这时qemu虚拟机就运行起来了。

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

5、RT-Thread支持finsh,用户可以在命令行模式操作,输入help或按tab键可以查看所有支持的命令,输入list_device可以查看所有设备。这里可以看到设备里包括了我们前面提到的虚拟的sd卡“sd0”,接下来我们可以使用mkfs sd0命令格式化sd卡,执行该命令会将sd卡格式化成FatFS文件系统。FatFs是专为小型嵌入式设备开发的一个兼容微软fat的文件系统,采用ANSI C编写,采用抽象的硬件I/O层以及提供持续的维护,因此具有良好的硬件无关性以及可移植性。

了解FatFS详细信息请点击链接:http://elm-chan.org/fsw/ff/00index_e.html

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

6、第一次格式化sd卡后文件系统不会马上装载上,第二次启动才会被正确装载。我们退出虚拟机,然后在env命令行界面输入qemu.bat重新启动虚拟机及工程,输入ls命令可以看到新增了Directory目录,文件系统已经装载上,然后可以使用RT-Thread提供的其他命令体验文件系统

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

2.3 运行RT-Thread GUI示例

1、关掉QEMU虚拟机,回到ENV控制台,输入menuconfig命令进入配置界面:

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

2、进入“RT-Thread oneline packages” → “system packages” → “RT-Thread GUI Engine”子菜单,选中“Enable GUI Engine”和“Enable the example of GUI Engine”:

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

3、按‘→’键选中“save”保存配置,并按“Exit”键退出配置界面,回到命令行界面,输入pkgs --update下载GUI软件包及示例代码:

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

4、软件包下载完成后输入scons重新编译工程:

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

5、编译完成后输入qemu.bat命令启动QEMU虚拟机及工程,可以看到QEMU虚拟的显示屏上显示了示例代码展示的图片、文字和图形信息:

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

2.4 用eclipse调试qemu-vexpress-a9 BSP工程

1、首先在eclipse的Eclipse Marketplace里下载并安装支持QEMU的调试工具:

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

2、首次调试工程需要配置调试参数,如下面图片所示,打开调试配置界面及配置调试参数:

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

3、调试相关参数配置好后就可以开始调试了,回到env命令行界面输入qemu-dbg.bat开启调试模式:

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

这时候启动的QEMU虚拟机处于暂停状态,等待连接调试:

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

4、点击eclipse调试配置界面的“Debug”按钮,或者点击调试项目名称,开启eclipse调试界面,这时就可以对工程进行调试了:

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

QEMU让你无需开发板即可玩溜RT-Thread~-LMLPHP

05-18 14:57