Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
qemu-vexpress-a9
不用开发板都能跑的RT-Thread(保姆级教程)
发布于 2024-06-26 18:04:05 浏览:1588
订阅该版
[tocm] ## 简介 在物联网和嵌入式系统的开发中,RT-Thread操作系统凭借其小巧、高效和灵活的特点,受到了越来越多开发者的青睐。然而,对于很多刚刚接触RT-Thread的开发者来说,购买和使用开发板可能会成为一个门槛。本文将详细介绍如何在QEMU虚拟机的Vexpress-A9平台上运行RT-Thread,帮助开发者在没有实际硬件开发板的情况下,轻松体验和学习RT-Thread的强大功能。 ## 1. 开发环境准备 **开发环境:**RT-Thrad源码 + env-windows2.0工具 + VS Code **资源下载:**[Windows环境 使用VS Code开发RT-Thread](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/application-note/setup/qemu/vscode/an0021-qemu-vscode?id=使用-vs-code-开发-rt-thread) > env-windwos使用教程: [Env 用户手册 (rt-thread.org)](https://www.rt-thread.org/document/site/#/development-tools/env/env) > > 使用rt-thread主线代码的小伙伴记得要更新env-windows工具哈 -- 资源下载链接中就可以直接下载 ## 2. 编译 进入目标文件夹:`rtthread/bsp/qemu-vexpress-a9` 点击鼠标右键:点击`ConEmu Here`打开env > 如果工具栏中没有出现`ConEmu Here`说明没有按照Env用户手册的指定步骤配置哈 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240626/a798c7101de2c4161b6f03d184bdffbc.png.webp) 打开env之后执行`scons -j16`命令进行编译 > env-windows中已经帮我们配置好了工具链(默认arm-none-eabi-gcc)因此我们无需再额外下载其它的工具 > > 路径:env-windows\tools\gnu_gcc\arm_gcc\mingw > scons 命令:执行当前文件夹下的SConscript脚本 > > -j16 参数:使用16个核心加速编译(不够16个核心的则用cpu已有的核心数进行编译) 出现如下的编译信息说明就是编译成功了 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240626/61b9bbf35d5970284594e51efee49728.png) ## 3. 运行 在env中执行命令`qemu.bat` > 同样的env-windows中集成了qemu,因此我们可以直接在env命令行中直接使用qemu的命令 > > 路径:env-windows\tools\qemu ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240626/c479ec12becb65ae4b964b34c8369309.png) 我们的RT-Thread就成功运行起来啦!!! 可以尝试输入help指令查看能执行哪些命令 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240626/6b93ae5e613d21b76dd6eab56ee71cf8.png) ## 4. 调试 #### 4.1 方式一(推荐) 更换调试器配置文件:qemu-vexpress-a9/.vscode/launch.json 将文件内容更换为:(也可能已经不用换了,如果大家发现文件内容不一样并且进不了调试就以这里配置信息的为准) ```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` 执行后会出现如下界面: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240626/19e83be6b3a291bec84857ecb35a031e.png) 然后我们进入到vscode中按下`F5`即可进入调试模式啦! 结果如下图: ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240626/0219d049bce0e462800ee8a43a769ed5.png) #### 4.2 方式二 这种方式呢比较古老,使用起来没那么方便,但是上述配置实在走不通的时候,我们至少能有个对策。 同样的,我们先在env命令行执行`qemu-dbg.bat` 然后另外在当前工作文件夹下再开启一个env命令行,执行`arm-none-eabi-gdb rtthread.elf` 我们就进入到了gdb的调试状态中 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240626/bf0cc1187dc453b518b83b1e0fec80e9.png) 再执行`target remote:1234` 我们就可以进入到第一条指令的断点处了 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240626/34eaa48260a7c17c68604183c2739b3d.png) 不过我并不清楚为什么第一条指令的地址会在`0x60000000`处,我们多执行几条下一步指令就可以跳转到第一条指令啦 ![screenshot_image.png](https://oss-club.rt-thread.org/uploads/20240626/39ff2c973fecf1b08d94c318cdc35aa1.png) ## 总结 好啦,这次的技术分享就介绍到这里,如果大家在学习过程中有疑问,或者对于这个教程的步骤说明有哪些建议或不满,请积极在评论区指出,我也会积极对您进行回复并改正的。
10
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
比特饼干
这家伙很懒,什么也没写!
文章
10
回答
1
被采纳
0
关注TA
发私信
相关文章
1
qemu-vexpress-a9下,ping百度可以,本机IP不通(已解决)
2
studio QEMU-VEXPRESS-A9,TAP 网卡配置失败
3
qemu-vexpress-a9运行 qemu-dbg.sh 提示错误
4
使用Vscode+qemu调试RT-Thread,F5调试时报错
5
rt studio 使用qemu 调试报错【已解决】
6
qemu-vexpress-a9 上c++ 全局类的构造函数没有调用
7
onenet软件包onenet_mqtt_upload_bin接口使用问题?
8
qemu-vexpress-a9模拟环境下创建文件失败是什么原因
9
qemu-vexpress-a9bsp下的littvgl工程可以实现触屏操作吗?
10
studio qemuA9结束调试
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
线程
RT-Thread Nano
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
SFUD
msh
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1443
个答案
289
次被采纳
张世争
807
个答案
174
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
出出啊
1
篇文章
4
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
2
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部