RT-Thread 学习-Env开发环境搭建(一)

 

Env是什么

Env 是 RT-Thread 推出的开发辅助工具,针对基于 RT-Thread 操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。

其内置的 menuconfig 提供了简单易用的配置剪裁工具,可对内核、组件和软件包进行自由裁剪,使系统以搭积木的方式进行构建。

主要特性

  • menuconfig 图形化配置界面,交互性好,操作逻辑强;

  • 丰富的文字帮助说明,配置无需查阅文档;

  • 使用灵活,自动处理依赖,功能开关彻底;

  • 自动生成 rtconfig.h,无需手动修改;

  • 使用 scons 工具生成工程,提供编译环境,操作简单;

  • 提供多种软件包,模块化软件包耦合关联少,可维护性好;

  • 软件包可在线下载,软件包持续集成,包可靠性高;

Env 工具包含了 RT-Thread 源代码开发编译环境和软件包管理系统。

安装 Env 工具包

下载 env 工具包

登陆 RT-Thread 网站,下载 Env 工具包。

网址为:https://www.rt-thread.org/page/download.html

也可以通过官网主页面跳转到下载页面

图片

这个页面为 RT-Thread 官方资源下载网址,有 RT-Thread 源代码下载、以及开发工具下载。

找到 “RT-Thread env 工具下载” 选择下载方式,开始下载

图片

安装配置

工具包下载之后,解压,解压后工具包存放的位置不能有中文路径。

图片

目录下有 env 的用户手册,以及 RT-Thread 软件包开发指导。

根据图片 “Add_Env_To_Right-click_Menu.png” 上的指示, 可以将 Env 工具添加到右键菜单。这样,就可以在任意目录下,通过右键菜单来启动 env 控制台。

添加右键菜单成功后,鼠标右击菜单会出现 “ConEmu Here”。

打开后的效果如下图:

图片

获取 RT-Thread 源码

还是在上面提到的官网资源下载页面,可以找到源码下载链接

网址为:下载 - RT-Thread物联网操作系统

资源下载页面有 RT-Thread 版本的介绍说明,可以根据自己的需求,选择合适的 RT-thread 版本进行开发/学习。

图片

RT-Thread 源代码下载有有四种方式(写这篇文章时,第一种已经不能使用),可以根据自身情况选择对应的下载方式。对 git 使用不熟练或者不会使用 git 的学习者,建议使用百度网盘方式下载。

图片

百度网盘里最新的两个源码版本分别是 3.1.3 和 4.0.2。看来要想下载最新的发布版本,得需要上 git 仓库下载了。

RT-Thread 标准版源码目录结构如下图

图片

配置源码目录到系统环境变量

将源码放到某个目录下,注意路径位置不能存在中文。

【本人电脑环境原因,表述有误。此步忽略】然后将源码目录添加到系统环境变量中,否则 Env 工具不能正常编译工程代码。

图片

测试开发环境

进入到源码目录 rt-thread\bsp\qemu-vexpress-a9,鼠标右击打开 env 工具。

输入指令 menuconfig,如果出现配置界面,说明开发环境初步搭建成功

图片

输入 scons 尝试编译工程代码。出现如下界面,说明编译成功。开发环境搭建成功。

图片

编译成功后,输入qemu.bat,运行

图片

至此,env 开发环境搭建完成。

最后

git 安装

在使用 env 进行学习或开发时,如果要用到官方提供的软件包,电脑上还需要安装 git。

在配置界面选中某个软件包时,env 工具会自动从远程仓库拉取到本地,这个过程需要有 git 支持。

git 的下载地址为:https://git-scm.com/downloads

根据向导正确安装 git,并将 git 添加到系统环境变量

QEMU 模拟器

在没有物理开发板的情况下,可以使用 QEMU 虚拟机来模拟开发板。QEMU 是一个支持跨平台虚拟化的虚拟机,它可以虚拟很多开发板。

为了方便大家在没有开发板的情况下体验 RT-Thread,RT-Thread 提供了 QEMU 模拟的 ARM vexpress A9 开发板的板级支持包 (BSP)。

详细介绍请参考官方文档资料(复制链接到浏览器打开):

https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/application-note/setup/qemu/windows/an0006-qemu-windows

Env 工具的使用

可以看一下工具包中的用户手册,了解 Env 的基础内容。

使用 env 创建 RT-Thread 项目工程,可以参考官方在线资料:

https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/application-note/setup/standard-project/an0017-standard-project

SCons

SCons 是一套由 Python 语言编写的开源构建系统,类似于 GNU Make。相关使用介绍,可看官方资料介绍,不做赘述:

https://www.rt-thread.org/document/site/#/development-tools/scons/scons

参考资料,来自于 RT-Thread 官方网站资料文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/5163.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea新建xml模板设置,例如:mybatis-config

在idea怎么新建mapper.xml文件&#xff0c;具体操作步骤和结果如下&#xff0c;其他文件也是可以自定义模板的流程和步骤一致&#xff01; 效果如下&#xff1a; 步骤如图&#xff1a; step1&#xff1a; step2&#xff1a; 文件内容&#xff1a; <?xml version"…

udp传输大数据的原理和相关问题注意事项

UDP协议本身不提供大数据传输的分片、重组、丢包重传等功能&#xff0c;因此需要对大数据传输进行特殊处理。以下是UDP传输大数据一些常见的处理方法。 &#xff08;1&#xff09;对大文件进行分块&#xff1a;将大文件划分为多个小块进行传输&#xff0c;每个小块都可以使用UD…

安装k8s-ubuntu补充

原文链接&#xff1a;k8s安装——ubuntu_ubuntu安装k8s_流夏_的博客-CSDN博客 kubeadm init 安装docker2 按照 kubeadm config images list的结果去拉取对应的镜像 国内仓库地址registry.cn-hangzhou.aliyuncs.com/google_containers/ rootzkys:/home/k8s_yaml_install# kube…

IntelliJ IDEA 2023.2 新版本即将发布,拥抱 AI

IntelliJ IDEA 近期连续发布多个EAP版本&#xff0c;官方在对用户体验不断优化的同时&#xff0c;也新增了一些不错的功能&#xff0c;尤其是人工智能助手补充&#xff0c;AI Assistant&#xff0c;相信在后续IDEA使用中&#xff0c;会对开发者工作效率带来不错的提升。 以下是…

【SpringBoot】@ConditionalOnProperty 条件注解

SpringBoot ConditionalOnProperty 注解 简介 ConditionalOnProperty&#xff1a;根据属性值来控制类或某个方法是否需要加载。它既可以放在类上也可以放在方法上。 ConditionalOnProperty属性 Retention(RetentionPolicy.RUNTIME) Target({ ElementType.TYPE, ElementType.MET…

GStreamer Playback tutorial 学习笔记(一)

playbin运用 多流处理&#xff1a;一个电影&#xff0c;对应一个视频和多个音频流&#xff08;立体声/5.1声道被视为一个单独的流&#xff09;&#xff0c;以适应不同的语言。在这种情况下&#xff0c;用户选择一个音频流&#xff0c;应用程序只播放选定的音频流&#xff0c;忽…

安卓:Fragment

目录 一、Fragment介绍 二、Fragment的使用方式 &#xff08;一&#xff09;、Fragment静态添加&#xff1a; 静态添加例子&#xff1a; FirstFragment &#xff1a; MainActivity: main_activity: fragment_first: 静态添加的总结&#xff1a; &#xff08;二&…

Android 中app内存回收优化(一):R版本

版本基于&#xff1a;Android R 0. 前言 Android Q 中新增了framework 端app 内存回收优化方案。当app 的 oom adj 发生特定变化时&#xff0c;framework 端会对应用的内存进行处理。随着版本的演变&#xff0c;这部分优化工作也一直在完善&#xff0c;笔者将针对 Android R 和…

Java-通过IP获取真实地址

文章目录 前言功能实现测试 前言 最近写了一个日志系统&#xff0c;需要通过访问的 IP 地址来获取真实的地址&#xff0c;并且存到数据库中&#xff0c;我也是在网上看了一些文章&#xff0c;遂即整理了一下供大家参考。 功能实现 这个是获取正确 IP 地址的方法&#xff0c;可…

脚本定制gitlab官方api获取项目组下的所有项目

脚本说明 通过gitlab官方api接口获取项目组下的所有项目的ssh_git连接并同步项目仓库 #!/bin/bash urlhttps://gitee.xxxxx.cn dir/usr/src/redmine/git-repo group_id69 token2dskWweijirdrrm9UERvcd ${dir}#获取所有项目ssh_url_to_repo curl -s "${url}/api/v4/group…

域内信息收集

将网络中多台计算机逻辑上组织到一起进行集中管理&#xff0c;这种区别于工作组的逻辑环境叫 做域。域是由域控制器(Domain Controller)和成员计算机组成&#xff0c;域控制器就是安装了活动 目录(Active Directory)的计算机。活动目录提供了存储网络上对象信息并使用网络使用该…

uniapp H5预览PDF文件

1&#xff0c;下载资源后hybrid文件存放在static静态文件里 (点击这里去下载文件) 2&#xff0c;pdf预览页面配置 <template><view style"width: 100vh;"><web-view :src"pdfUrl"></web-view></view> </template><…

全面深入理解MySQL自增锁

&#x1f497;推荐阅读文章&#x1f497; &#x1f338;JavaSE系列&#x1f338;&#x1f449;1️⃣《JavaSE系列教程》&#x1f33a;MySQL系列&#x1f33a;&#x1f449;2️⃣《MySQL系列教程》&#x1f340;JavaWeb系列&#x1f340;&#x1f449;3️⃣《JavaWeb系列教程》…

【HarmonyOS】元服务隐私协议开发指导样例

【关键字】 隐私、弹窗、元服务、协议 【介绍】 每个元服务必须提供隐私声明&#xff0c;否则将导致提交元服务发布上架时&#xff0c;审核无法通过。隐私声明的具体要求请参见隐私声明规范。用户使用元服务前&#xff0c;必须引导其了解隐私声明信息&#xff0c;获取用户授权…

【NLP】一项NER实体提取任务

一、说明 从文本中提取实体是一项主要的自然语言处理 (NLP) 任务。由于深度学习(DL)的最新进展使我们能够将它们用于NLP任务,并且与传统方法相比,在准确性上产生了巨大的差异。 我试图使用深度学习和传统方法从文章中提取信息。结果是惊人的,因为DL方法…

tcpdump 使用

Linux tcpdump抓包工具使用 tcpdump官网tcpdump使用tcpdump抓取http请求 tcpdump官网 官网 请参考官网参看具体参数信息 tcpdump使用 tcpdump抓取http请求 http请求抓取参考网址 //抓取HTTP GET (GET 0x47, 0x45, 0x54, 0x20) 请求,以ascii展示 tcpdump -i eth0 -A -s 0 …

C#被指定窗体的MdiParent的窗体不是MdiContainer

工作的时候遇到一个问题&#xff1a; 被指定窗体的MdiParent的窗体不是MdiContainer 这个问题的原因是父窗体的IsMdiContainer 属性设置为false导致的。将此属性设置为true&#xff0c;即可解决此问题。有两种方式设置窗体的IsMdiContainer 属性。 第一种&#xff0c;在父窗口…

Chrome远程调试webview

网址 谷歌远程调试解决方案 https://blog.csdn.net/m0_56516186/article/details/131260563Chrome远程调试webview https://blog.csdn.net/weixin_44801980/article/details/117755550

Editing Large Language Models: Problems, Methods, and Opportunities

本文是LLM相关的系列文章&#xff0c;针对《Editing Large Language Models: Problems, Methods, and Opportunities》的翻译。 编辑大语言模型&#xff1a;问题、方法和机遇 摘要1 引言2 问题定义3 当前方法3.1 保留LLM参数的方法3.2 修改LLM参数的方法 4 初步实验4.1 数据集…

python实现拼多多商品详情接口API

最近工作需要用到拼多多的一些接口&#xff0c;官方竟然没有提供&#xff0c;python的sdk&#xff0c;于是就自己简单的写了一个商品SKU接口的api。 1、代码 #!/usr/bin/python3# -*- coding: utf-8 -*-# Time : 2020/3/29 0021 下午 19:40# Author : xiaozhi&#xff01;…