每日关注!linux下搭建rtthread qemu环境

来源: 哔哩哔哩 时间:2023-06-15 13:08:34

1.获取RT-Thread以及env工具

1.1 源码包获取

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

1.2  env工具

https://github.com/RT-Thread/env 可查看env工具相关信息,里面有几句信息:

对于中国大陆用户,请使用以下三行命令进行下载,第一行是下载,第二行修改权限,第三行安装

Prepare Env

PLAN A: Whenever start the ubuntu system, you need to type command source ~/.env/env.shto activate the environment variables.

or PLAN B: open ~/.bashrcfile, and attach the command source ~/.env/env.shat 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

1.3 编译调试所需工具

除此之外,需安装编译工具gcc-arm-none-eabi、scons、gdb调试工具等,输入以下指令下载安装

通常编译器都自动安装到/usr/bin下了,安装好之后需进入rt-thread/bsp/qemu-vexpress-a9,打开rtconfig.py文件,37行左右会指定编译工具,设置为gcc,路径为/usr/bin

2.运行QEMU看看效果

在windows下是运行qemu.bat,linux下则是qemu.sh。进入到rt-thread/bsp/qemu-vexpress-a9下,输入

即可启动虚拟的开发板。如果运行不了qemu.sh,则需要使用

为该文件增加“可执行”的属性。

如果还是运行不了,可能是没有生成rtthread.elf的文件,qemu.sh脚本里面就一句话,作用是使用qemu创建机器,运行rtthread.elf。

输入scons可编译工程生成rtthread.elf

运行效果如下图,已经进入了虚拟开发板的命令行界面。

3.修改main.c并编译运行

打开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,工程便开始编译

最终提示生成了rtthread.elf文件。运行./qemu.sh,可以看到启动后打印修改的内容

4.搭建VSCode,开发更方便

很多人不习惯使用vi编辑器、gedit编辑器修改文件,不习惯使用gdb进行调试(我就是),搭建VSCode是很有必要的,看代码很方便,调试界面也很友好。

VSCode的下载安装不多作介绍,简介就是宇宙最强万能写代码工具。

这里还要借助VSCode里面的插件: RT-Thread Studio

安装好之后,按照扩展设置,添加几个必要的路径:

1.rtthread源码包路径

2.gdb路径:/usr/bin/arm-none-eabi-gdb

3.Toolchain_Loacation工具链 gcc编译器的路径:/usr/bin

使用左侧的RT按钮,即可打开一个工程。鼠标悬停再工程上,可看到编译、调试等选项:

如此,就很方便了。调试起来毫无压力。支持变量查看、单步执行、断点管理等

5.为QEMU增加网卡

到这里,基本的环境就已经搭建好了。但是需要使用更多的接口,还需要了解以下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虚拟机网卡配置简介,参考一下我的配置。

此时启动另一个终端,输入ifconfig,可以看到网卡的信息,里面有qemu.sh文件里新建的br0网桥、本机网卡ens33、ens36、lo回环、tap0虚拟网卡

6.VMWare虚拟机网卡配置简介

以下给出我的参考配置

在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都认为这两个网卡都是有线网卡

这时在去ping一个网站就可以ping通了,如果ping不通可以尝试关闭再重新打开。

7.TCP客户端示例

演示TCP客户端示例。

在windows下打开一个TCP服务器(咱也不知道为什么用windows,正好电脑上有,用着方便)

在RT-Thread命令行中输入tcp_client命令 + 服务器IP +服务器端口号

源码见文末尾,该源码包通过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

X 关闭

热门推荐

北京6月27日启动高考志愿填报

2023-06-15   北京商报官方账号

当前观察:宏观政策要合力扩需求

2023-06-15   环球网资讯

2023国考国家税务总局广西壮族自治区税务局拟录用公告(第三批) 当前观察

2023-06-15   中央机关及其直属机构2023年度考试录用公务员专题

今日热搜:恭候大驾_恭候

2023-06-15   互联网

“数智”赋能渝昆高铁建设 每日快报

2023-06-15   中国产业经济信息网

丰台商业航天产业规模将达500亿元

2023-06-15   北京青年报官网

南瓜和什么一起吃最佳

2023-06-15   南方养生网

前5月新疆铁路疆煤外运量同比增长21.69% 今亮点

2023-06-14   石榴云/新疆日报原创

什么是wap_wap的意思介绍

2023-06-14   万能网

微动态丨夜盘开盘 沪镍主力合约涨超2%

2023-06-14   东方财富研究中心

焦点热讯:黄永玉先生逝世

2023-06-14   海峡都市报

激荡起数字经济的澎湃动力

2023-06-14   宁夏日报

环球快资讯:花街狂奔

2023-06-14   互联网

光伏供应链价格持续下跌(2023.6.14)

2023-06-14   集邦新能源网

农发行绵阳市安州支行“贷”动水利润农田

2023-06-14   河北网络广播电视台

AVAST官网_avast注册号

2023-06-14   互联网

星火成炬 | 此去繁花似锦

2023-06-14   央视网

科创浪潮奔涌大湾区

2023-06-14   文汇网

生物电磁学_关于生物电磁学介绍

2023-06-14   十分生活网

“浙里田园”APP杭州上线|世界微速讯

2023-06-14   中国食品报网

Copyright   2015-2022 中国行业信息网版权所有 关于我们 备案号:   联系邮箱:29 59 11 57 8@qq.com