巴拉巴

 找回密码
 立即注册

站内搜索

搜索
热搜: 活动 交友 discuz
查看: 78|回复: 1

linux下搭建rtthread qemu环境

[复制链接]

4

主题

7

帖子

18

积分

新手上路

Rank: 1

积分
18
发表于 2023-6-15 20:55:16 | 显示全部楼层 |阅读模式
RT-Thread源码的获取方式有多种,可以是官网浏览器下载、云盘下载、git获取,强烈推荐git,因为使用git可以很方便的切换各种版本的rtthread,但是前提是要先安装git,linux下的安装方法不多叙述。这里不推荐拷贝windows系统里面的源码包,因为windows与linux的文件换行符等差异,会导致各种坑,所以还是老老实实的重新下载源码包吧。
git方式国内建议使用gitee。
在终端输入
即可获取rtthread最新版的源码包,但是由于兼容问题不太推荐最新的包,终端输入cd rt-thread 进入源码包后,使用git reset --hard + 某旧版本id可以快速切换到改旧版本的源码包,以4.1.1为例,在终端输入
版本的id号可以通过 git log查看,commit后面的就是该版本id
git loghttps://github.com/RT-Thread/env 可查看env工具相关信息,里面有几句信息:
对于中国大陆用户,请使用以下三行命令进行下载,第一行是下载,第二行修改权限,第三行安装
Prepare Env

PLAN A: Whenever start the ubuntu system, you need to type commandsource ~/.env/env.shto activate the environment variables.or PLAN B: open~/.bashrcfile, and attach the commandat the end of the file. It will be automatically executed when you log in the ubuntu, and you don't need to execute that command any more.意思就是有两种方法来配置env,推荐第二种,输入
再在文件最后一行输入source ~/.env/env.sh
除此之外,需安装编译工具gcc-arm-none-eabi、scons、gdb调试工具等,输入以下指令下载安装
通常编译器都自动安装到/usr/bin下了,安装好之后需进入rt-thread/bsp/qemu-vexpress-a9,打开rtconfig.py文件,37行左右会指定编译工具,设置为gcc,路径为/usr/bin
在windows下是运行qemu.bat,linux下则是qemu.sh。进入到rt-thread/bsp/qemu-vexpress-a9下,输入
即可启动虚拟的开发板。如果运行不了qemu.sh,则需要使用
为该文件增加“可执行”的属性。
如果还是运行不了,可能是没有生成rtthread.elf的文件,qemu.sh脚本里面就一句话,作用是使用qemu创建机器,运行rtthread.elf。
输入scons可编译工程生成rtthread.elf
运行效果如下图,已经进入了虚拟开发板的命令行界面。
运行qemu-vexpress-a9打开rt-thread/bsp/qemu-vexpress-a9/application下的main.c,可以看到如下内容,经典的hello world
尝试修改一下,printf("Hello RT-Thread this is a test \n");
保存后,再linux终端rt-thread/bsp/qemu-vexpress-a9/目录下,输入scons,工程便开始编译
scons生成rtthread.elf最终提示生成了rtthread.elf文件。运行./qemu.sh,可以看到启动后打印修改的内容
this is a test很多人不习惯使用vi编辑器、gedit编辑器修改文件,不习惯使用gdb进行调试(我就是),搭建VSCode是很有必要的,看代码很方便,调试界面也很友好。
VSCode的下载安装不多作介绍,简介就是宇宙最强万能写代码工具。
这里还要借助VSCode里面的插件: RT-Thread Studio
RT-Thread Studio 插件安装好之后,按照扩展设置,添加几个必要的路径:
1.rtthread源码包路径
2.gdb路径:/usr/bin/arm-none-eabi-gdb
3.Toolchain_Loacation工具链 gcc编译器的路径:/usr/bin
使用左侧的RT按钮,即可打开一个工程。鼠标悬停再工程上,可看到编译、调试等选项:
RT-Thread Studio如此,就很方便了。调试起来毫无压力。支持变量查看、单步执行、断点管理等
gdb调试界面到这里,基本的环境就已经搭建好了。但是需要使用更多的接口,还需要了解以下QEMU。
QEMU的本质是使用电脑的硬件,虚拟出一个开发板,也就是说这个开发板使用的接口实际上都是你的电脑的接口。
这一步,为QEMU增加网卡。根据RT-Thread文档中心的指引,在windows下使用qemu,添加网卡是首先安装一个虚拟网卡,然后将真实的可上网的网卡共享到虚拟网卡,然后再启动虚拟开发板的时候设置启动参数,将虚拟网卡作为启动项,当作虚拟开发板的网卡。
Linux中也是如此。大概的示意图如下图所示。
虚拟网卡示意图需要先安装网桥软件包

参照网上的例子改写了qemu.sh,如下。其中ens33和ens36为我电脑上的两个网卡,一个是以太网(VMware实体window和linux虚拟机NET模式),一个是WIFI(VMware桥接模式,linux和windows共用wifi)。
修改完之后,保存,运行qemu.sh,在rtthread终端ping一个网站即可ping通,到此就可以进行下一步学习了。B站上RTThread官方账号有网络课程专栏【7天入门网络编程】,搭配使用真香。若ping不通则有可能是你的linux系统本身就上不了网,所以网桥一定要连接到可以上网的网卡才能往下走。ping不通移步第6节 VMWare虚拟机网卡配置简介,参考一下我的配置。
ping 测试此时启动另一个终端,输入ifconfig,可以看到网卡的信息,里面有qemu.sh文件里新建的br0网桥、本机网卡ens33、ens36、lo回环、tap0虚拟网卡
ifconfig以下给出我的参考配置
在windows平台下使用VMware,windos下网络适配器为如下配置,其中WLAN就是可以上网的Wifi,虚拟网卡VMnet8用于NET模式进行windows和Ubuntu的文件共享、SSH等
网络适配器在虚拟机设置里面使用VMnet8和VMnet0,其中VMnet8设置为NAT模式,VMnet0设置为自定义桥接模式。在虚拟网络编辑器里设置VMnet0桥接目标为我的WIFI,即RZ608 Wi-Fi 6E 80MHz。
虚拟机设置
虚拟网络设置设置完成后,在Ubuntu中使用ifconfig就可以看到这两个网卡了,或者在图形界面中也可以设置,但是Ubuntu都认为这两个网卡都是有线网卡
Ubuntu设置网络这时在去ping一个网站就可以ping通了,如果ping不通可以尝试关闭再重新打开。
演示TCP客户端示例。
在windows下打开一个TCP服务器(咱也不知道为什么用windows,正好电脑上有,用着方便)
在RT-Thread命令行中输入tcp_client命令 + 服务器IP +服务器端口号
运行tcp客户端任务
客户端与服务器交互源码见文末尾,该源码包通过sons --menuconfig弹出裁剪配置界面,添加
RT-Thread online packages ---->

miscellaneous packages ---->

samples:kernel and components samples --->

a network_samples package for rt-thread ---->

[network] tcp client
即可获得,添加完成之后,在终端输入
自动下载TCP示例源代码,然后直接scons编译即可使用
更多信息可查看官方文档中心 https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/qemu-network/tcpclient/tcpclient

来源:http://www.yidianzixun.com/article/0p4l4awT
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

5

主题

9

帖子

21

积分

新手上路

Rank: 1

积分
21
发表于 2025-3-10 11:39:22 | 显示全部楼层
向楼主学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 返回顶部