RT-Thread Env使用

Env用户手册

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

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

主要特性

  • menuconfig图形化配置界面,交互性好,操作逻辑强。
  • 丰富的文字帮助说明,配置无需查阅文档。
  • 使用灵活,自动处理依赖,功能开关彻底。
  • 自动生成rtconfig.h,无需手动修改。
  • 使用scons工具生成工程,提供编译环境,操作简单。
  • 提供多种软件包,模块化软件包耦合关联少,可维护性好。
  • 软件包可在线下载,软件包持续集成,包可靠性高。

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

Env的使用方法

RT-Thread的软件包环境主要以命令控制台为主,同时以字符型界面进行辅助,使得尽量减少修改配置文件的方式即可搭建RT-Thread开发环境的方式。打开Env控制台有两种方式:

编译BSP

scons是RT-Thread使用的编译构建工具,可以使用scons相关命令来编译RT-Thread。

打开控制台后,可以在命令模式下使用cd命令切换到想要配置的BSP根目录中。

Env中携带了Python&scons环境,只需运行scons命令即可使用默认的ARM_GCC工具链编译bsp。

如果使用mdk/iar来进行项目开发,可以直接使用BSP中的工程文件或者使用以下命令中的其中一种,重新生成工程,再进行编译下载。

scons --target=iar
scons --target=mdk4
scons --target=mdk5

BSP配置:menuconfig

menuconfig是一种图形化配置工具,RT-Thread使用其对整个系统进行配置、裁剪。

在这里插入图片描述

进入BSP根目录,输入menuconfig命令即可打开其界面。menuconfig常用快捷键如图所示:

  • ESC键退出
  • ?键帮助
  • /键打开搜索选项
  • 空格键选中获取取消选项
  • 回车键进入子菜单

修改配置

menuconfig有多种类型的配置项,修改方法也有所不同,常见类型如下:

  • 开关型:使用空格键来选中或者关闭
  • 数值、字符串型:按下回车键后会出现对话框,在对话框中对配置项进行修改

保存配置

选择好配置项之后按ESC键退出,**选择保存修改即可自动生成rtconfig.h文件。**此时再次使用scons命令就会根据新的rtconfig.h文件重新编译工程了。

软件包管理:package

RT-Thread提供一个软件包管理平台,这里存放了官方提供或开发者提供的软件包。该平台为开发者提供了众多可重用软件包的选择,这也是RT-Thread生态的重要组成部分。

package工具作为Env的组成部分,为开发者提供了软件包的下载、更新、删除等管理功能。

Env命令行输入pkgs可以看到命令简介:
在这里插入图片描述

下载、更新、删除软件包

在下载更新软件包前,需要现在menuconfig中开启想要操作的软件包,这些软件包位于RT-Thread online packages菜单下,进入菜单后,即可看到软件包分类:

在这里插入图片描述
找到需要的软件包然后选中开启,保存并退出menuconfig。
此时软件包已被标记选中,但是还没有下载到本地,所以还无法使用。

  • 下载:如果软件包在本地已被选中,但是未下载,此时输入:pkgs --update,该软件包自动下载。
  • 更新:如果选中的软件包在服务器端有更新,并且版本号选择的是latest。此时输入pkgs --update,该软件包将会在本地进行更新。
  • 删除:某个软件包如果无需使用,需要先在menuconfig中取消其的选中状态,然后再执行pakg --update,此时本地已下载但未被选中的软件包将会被删除。

升级本地软件包信息

随着package系统的不断壮大,会有越来越多的软件包加入进来,所以本地看到menuconfig中的软件包列表可能会与服务器不同步。使用pkgs --upgrade命令解决该问题。
这个命令不仅会对本地的包信息进行更新同步,还会对Env的功能脚本进行升级,建议定期使用。

Env工具配置

新版本的Env工具中加入了自动更新软件包和自动生成mdk/iar工程的选项,默认是不开启的。
可以使用menuconfig -s/–setting命令进行配置。
在这里插入图片描述

  • 软件包自动更新功能:在退出menuconfig功能下,会自动使用pkgs --update命令来下载并安装软件包,同时删除旧的软件包。
  • 当修改menuconfig配置后,必须输入scons --target=xxx来重新生成工程。开启此功能,就会在退出menuconfig时,自动重新生成工程,无需再手动输入scons命令来重新生成工程。

menuconfig中选项的修改方法

如果想在menuconfig的配置项中添加宏定义,则可以修改BSP下的Kconfig文件,修改方法可以在网络中搜索Kconfig语法关键字获得详细的说明文档,也可以参数RT-Thread中的Kconfig文件或者已经支持过menuconfig的BSP中的Kconfig文件。

新的项目添加menuconfig功能

这里的新项目,指的是还未生成.config和rtconfig.h的全新开发的项目。因为这两个文件,只有在menuconfig第一次保存时才会创建。具体流程如下:

  1. 将已经支持menuconfig功能的BSP里面的Kconfig文件拷贝到新的项目根目录中。
  2. 注意修改Kconfig中的RTT_ROOT值为RT_Thread所在目录,否则可能提示找不到RTT_ROOT。
  3. 使用menuconfig命令开始配置即可。

旧项目添加menuconfig功能

这里的旧项目指的是已经经过一段时间的开发,而且项目中存在已经修改过的rtconfig.h文件,但是没有使用过menuconfig来配置的项目。具体流程如下:

  1. 首先备份旧项目内的rtconfig,h文件。
  2. 使用scons --genconfig命令根据已有的rtconfig.h生成.config文件,这里生成的.config文件保存了旧项目中rtconfig.h文件对项目的配置参数。
  3. 将已经支持menuconfig功能的BSP里面的kconfig文件拷贝到要修改项目的根目录中。
  4. 注意修改Kconfig中的RTT_ROOT值为RT-Thread所在目录,否则可能提示找不到RTT_ROOT。
  5. 使用 menuconfig 命令来配置我们要修改的旧项目。menuconfig 会读取第二步生成的 .config 文件,并根据旧项目的配置参数生成新的 .config 文件和 rtconfig.h 文件 。
  6. 对比检查新旧两份 rtconfig.h 文件,如果有不一致的地方,可以使用 menuconfig 命令对配置项进行调整。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

运动耳机推荐,运动耳机哪个牌子好性价比高?哪个运动耳机好?

​无论你是喜欢户外跑步,还是喜欢室内健身,运动耳机都能为你提供强大的音乐动力,帮助你更好地享受运动的过程,边流汗边听歌太畅快了!因此。想了解哪个品牌的运动耳机更适合自己,就来看看我发布的这篇文章吧…

DevOps平台两种实现模式

我们需要一个DevOps平台 要讨论DevOps平台的实现模式,似乎就必须讨论它们的概念定义。然而,当大家要讨论它们的定义时,就像在讨论薛定谔的猫。 A公司认为它不过是自动化执行Shell脚本的平台,有些人认为它是一场运动,另…

4种最常用的LLM应用文本分块策略

在构建 LLM 应用程序时,分块(Chunking)是将大块文本分解成更小的片段的过程。 这是一项重要的技术,一旦我们使用LLM嵌入内容,它有助于优化我们从矢量数据库返回的内容的相关性。 在这篇博文中,我们将探讨它…

2023美团外卖商超药店月销量

数据包含:外卖商超、药店商品月销量、含商品skuid、规格spuid等内容 资源下载 ​​​​​​​https://download.csdn.net/download/WANJIAWEN1002/88444367?spm1001.2014.3001.5503

什么是网络中的服务质量 (QoS)?

什么是服务质量(QoS) 服务质量(QoS)是网络中用于管理质量并确定数据流量传输优先级的机制。它确保不同类型的数据流量,如语音、视频和数据,获得适当的服务水平。其主要目标是使网络和组织能够对流量进行优…

新发布的Java使用率均超Java8

Java 软件供应商 Azul 发布了首份年度 Java 现状调查报告,基于对全球 2062 名 Java 专业人士和基于 Java 的应用程序用户进行的调查。 Java 软件供应商 Azul 发布了首份年度 Java 现状调查报告,基于对全球 2062 名 Java 专业人士和基于 Java 的应用程序…

java命令行中文乱码原理和解决方式

今天发现用命令行javac编译文件时,若文件里有中文的话,可能会因为“源文件和javac编译使用的编码方式不同”导致乱码的产生,一般我的源文件用的是utf-8编码,但今天查资料发现javac默认使用系统的GBK编码方式,会出现乱码…

Error: “+“ and “-“ must be surrounded by whitespace in calculations.

加减之前一定要空格 改之前: 改之后: 然后就完美解决啦

Versal 自适应 SoC SelectMAP 启动检查表

Versal 自适应 SoC SelectMAP 启动检查表 本文档提供了有关 SelectMAP 启动设置的技巧和指南。在提交个案服务请求之前,应认真查看以下检查表。SelectMAP 启动模式的常规检查表: 是否已查看 SelectMAP 文档,了解连接和电源轨的用法&#…

vivado时序分析-3时序分析关键概念

1、时钟相移 时钟相移对应于延迟时钟波形 , 此波形与因时钟路径内的特殊硬件所导致的参考时钟相关。在 AMD FPGA 中 , 时钟相移通常是由 MMCM 或 PLL 原语引入的 , 前提是这些原语的输出时钟属性 CLKOUT*_PHASE 为非零值。 时序分析期间…

绝绝子神器!食品法规瞬间读懂,建议收藏上天在提醒你!

食品安全法律小助手 1、前言 从事食品相关工作,必须办理健康证,。现在粤省事app上可查看健康证,并且附带相关法律文件pdf,于是下载下来喂给GPT。让GPT学习,我不学习。 2、pdf转成txt文件 要使用Java将PDF文件转换为…

uniapp发行web页面在老版本浏览器打开一片空白

uniapp发行的web页面(菜单->发行->网站-PC Web或手机H5),对于一些老的浏览器(或内核),打开一片空白; 而在新版本的浏览器中打开却正常。这是因为那些版本较低的浏览器不支持ES6的语法和新…

个人前端编程技巧总结

目录 1. 让界面位于当前屏幕的中心(屏幕中心)css代码示例 2. 界面透明但是内部元素不透明(毛玻璃)css代码示例 3. 将当前界面的参数传递到跳转的目标页面(携参跳转)js代码 1. 让界面位于当前屏幕的中心&…

Azure 机器学习 - 使用 Jupyter Notebook 探索 Azure 机器学习

目录 一、前言二、创建跳转盒 (VM)为 VM 启用 Azure Bastion 三、创建工作区四、连接到 VM 桌面五、连接到机器学习工作室允许工作室访问存储 六、停止计算实例七、清理资源 本文介绍如何创建并连接到安全的 Azure 机器学习工作区。 本文中的步骤使用 Azure 机器学习托管虚拟网…

Linux进程状态

目录 书面上的进程状态 Linux系统中的进程状态 R状态 S状态 D状态 T状态 下面是kill命令的一些选项 t状态 X状态 Z状态 进程状态查看 书面上的进程状态 在课本上操作系统的进程状态分为三种 运行态,就绪态,阻塞态 运行态:占有CP…

Clickhouse学习笔记(3)—— Clickhouse表引擎

前言: 有关Clickhouse的前置知识详见: 1.ClickHouse的安装启动_clickhouse后台启动_THE WHY的博客-CSDN博客 2.ClickHouse目录结构_clickhouse 目录结构-CSDN博客 Cickhouse创建表时必须指定表引擎 表引擎(即表的类型)决定了&…

翻页产品宣传册怎么制作,这有模板一键套用制作!

对于一个新手来说,想要在短时间内制作出一本精美的翻页产品宣传册,在一定程度上难度是比较大的。一本出色的翻页产品宣传册,既可以打造直观、奋发向上的宣传,又能更进一步的提高名气。 那么,如何制作出精美的翻页产品宣…

【链表】数据查找和合并

获取链表中间位置的数据 #include <stdio.h> #include <stdlib.h>/* 定义链表的结构体 */ struct Node {int data;struct Node *next; };/* 获取链表中处于中间位置的元素并打印出来*/ void printMiddle(struct Node *head) {struct Node *slow_ptr head;struct …

合并两个链表 --- 递归回溯算法练习二

目录 1. 分析题意 2. 分析算法原理 2.1. 递归思路&#xff1a; 1. 挖掘子问题&#xff1a; 3. 编写代码 3.1. step one 3.2. step two 3.3. step three 3.1. 递归写法 4. 补充 --- 迭代写法 5. 总结 1. 分析题意 力扣上原题链接如下&#xff1a; 21. 合并两个有序链表…

密码学 - RSA签名算法

实验九 RSA签名算法- 一、实验目的 通过实验掌握GMP开源软件的用法&#xff0c;理解RSA数字签名算法&#xff0c;学会RSA数字签名算法程序设计&#xff0c;提高一般数字签名算法的设计能力。 二、实验要求 (1)基于GMP开源软件&#xff0c;实现RSA签名算法。 (2)要求有对应…