不用开发板也能跑的RT-Thread
简介
在物联网和嵌入式系统的开发中,RT-Thread操作系统凭借其小巧、高效和灵活的特点,受到了越来越多开发者的青睐。然而,对于很多刚刚接触RT-Thread的开发者来说,购买和使用开发板可能会成为一个门槛。本文将详细介绍如何在QEMU虚拟机的Vexpress-A9平台上运行RT-Thread,帮助开发者在没有实际硬件开发板的情况下,轻松体验和学习RT-Thread的强大功能。
1. 开发环境准备
**开发环境:**RT-Thrad源码 + env-windows工具 + VS Code
资源下载:Windows环境 使用VS Code开发RT-Thread
env-windwos使用教程: Env 用户手册 (rt-thread.org)
2. 编译
进入目标文件夹:rtthread/bsp/qemu-vexpress-a9
点击鼠标右键:点击ConEmu Here
打开env
如果工具栏中没有出现
ConEmu Here
说明没有按照Env用户手册的指定步骤配置哈
打开env之后执行scons -j16
命令进行编译
env-windows中已经帮我们配置好了工具链(默认arm-none-eabi-gcc)因此我们无需再额外下载其它的工具
路径:env-windows\tools\gnu_gcc\arm_gcc\mingw
scons 命令:执行当前文件夹下的SConscript脚本
-j16 参数:使用16个核心加速编译(不够16个核心的则用cpu已有的核心数进行编译)
出现如下的编译信息说明就是编译成功了
3. 运行
在env中执行命令qemu.bat
同样的env-windows中集成了qemu,因此我们可以直接在env命令行中直接使用qemu的命令
路径:env-windows\tools\qemu
我们的RT-Thread就成功运行起来啦!!!
可以尝试输入help查看能执行哪些命令
4. 调试
4.1 方式一(推荐)
更换调试器配置文件:qemu-vexpress-a9/.vscode/launch.json
将文件内容更换为:(也可能已经不用换了,如果大家发现文件内容不一样并且进不了调试就以这里配置信息的为准)
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug @ Windows",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}\\rtthread.elf",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceRoot}",
"environment": [],
"externalConsole": true,
"miDebuggerServerAddress": "localhost:1234",
"serverLaunchTimeout": 2000,
"targetArchitecture": "ARM",
"MIMode": "gdb",
"miDebuggerPath": "arm-none-eabi-gdb.exe",
"customLaunchSetupCommands": [],
"launchCompleteCommand": "exec-run",
},
]
}
更换完成后在env命令行中执行指令qemu-dbg.bat
执行后会出现如下界面:
然后我们进入到vscode中按下F5
即可进入调试模式啦!
结果如下图:
4.2 方式二
这种方式呢比较古老,使用起来没那么方便,但是上述配置实在走不通的时候,我们至少能有个对策。
同样的,我们先在env命令行执行qemu-dbg.bat
然后另外在当前工作文件夹下再开启一个env命令行,执行arm-none-eabi-gdb rtthread.elf
我们就进入到了gdb的调试状态中
再执行target remote:1234
我们就可以进入到第一条指令的断点处了
不过我并不清楚为什么第一条指令的地址会在0x60000000
处,我们多执行几条下一步指令就可以跳转到第一条指令啦
总结
好啦,这次的技术分享就介绍到这里,如果大家在学习过程中有疑问,或者对于这个教程的步骤说明有哪些建议或不满请积极在评论区指出,我也会积极对您进行回复并改正的。