当前位置: 首页 > article >正文

RT-Thread 配置工具

Env用户手册

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

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

主要特性

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

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

  • 从RTT官网下载Env工具。
  • 在电脑上装好git,软件包管理功能需要git的支持。
  • 注意在工作环境中,所有的路径都不可以有中文字符或者空格。

Env的使用方法

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

编译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键退出,选择保存修改即可自动生成rtconfig.h文件。此时再次使用scons命令就会根据新的rtconfig.h文件重新编译工程了。

软件包管理:package

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

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

Env命令行输入pkgs可以看到命令简介:

> pkgs
usage: env.py package [-h] [--update] [--list] [--wizard] [--upgrade]
                      [--printenv]

optional arguments:
  -h, --help  show this help message and exit
  --update    update packages, install or remove the packages as you set in
              menuconfig
  --list      list target packages
  --wizard    create a package with wizard
  --upgrade   update local packages list from git repo
  --printenv  print environmental variables to check

下载、更新、删除软件包

在下载、更新软件包前,需要先在menuconfig中开启想要操作的软件包。
这些软件包位于RT-Thread online packages菜单下,进入该菜单后,可以看到如下分类:
在这里插入图片描述
找到需要的软件包然后选中开启,保存并退出menuconfig。
此时软件包已经被标记选中,但是还没有下载到本地,所以无法使用。

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

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

Env工具配置

新版本的Env工具中加入了自动更新软件包和自动生成MDK/IAR工程的选项,默认是不开启的。可以使用menuconfig -s/–setting命令来进行配置。

使用menuconfig -s命令进入Env配置界面。
在这里插入图片描述
按下回车进入配置菜单,里面共有3个配置选项
在这里插入图片描述
3个选项分别为:

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

使用Env的要求

menuconfig是RTT 3.0以上版本的特性,目前 RT-Thread 还没有对所有的 BSP 做 menuconfig 的支持,也就是说有些 BSP 暂时还不能使用 menuconfig 来进行配置,但常用的 BSP 都已经支持。

menuconfig中选项的修改方法

如果想在menuconfig的配置项中添加宏定义,则可以修改BSP下的Kconfig文件,修改方法在网络中可以搜索Kconfig语法关键字获得详细的说明文档。

新的项目添加menuconfig功能

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

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

可以使用Env内置命令pkgs --upgrade来更新软件包列表和Env的功能代码,这样可以最大程度避免已经修复的问题。


http://www.kler.cn/a/388519.html

相关文章:

  • uni-app移动端与PC端兼容预览PDF文件
  • 随手记:简单实现纯前端文件导出(XLSX)
  • 数据结构与算法-前缀和数组
  • 机器学习——贝叶斯
  • C++初阶——list
  • qt QVideoWidget详解
  • 英国留学论文写作中复合句式基础知识讲解
  • 算法复杂度
  • 【SpringMVC】记录一次Bug——mvc:resources设置静态资源不过滤导致WEB-INF下的资源无法访问
  • W3C HTML 活动
  • springboot使用aop防御用户重复请求
  • Centos Linux 7 搭建邮件服务器(postfix + dovecot)
  • cv2.threshold利用OSTU方法分割图像的前景和背景
  • 从文本到图像:AIGC 如何改变内容生产的未来
  • 羲和数据集收集器1.0
  • Leetcode 3347. Maximum Frequency of an Element After Performing Operations II
  • 【k8s】ClusterIP能http访问,但是不能ping 的原因
  • 「C/C++」C/C++STL篇 之 数组赋值给std::vector多种方法
  • Ubuntu 的 ROS 2 操作系统安装与测试
  • 基于Diodes全新的140瓦PD3.1超高功率密度GaN充电器解决方案
  • 海量日志收集ELK实战(docker部署ELK)从日志中挖取宝贵数据
  • 云防护单节点2T抗攻击能力意味着什么?
  • 《深入浅出HTTPS​​​​​​​》读书笔记(7):安全的密码学Hash算法
  • 全局注册和局部注册
  • JSON-RPC-CXX深度解析:C++中的远程调用利器
  • 华为OD七日集训第1期 - 按算法分类,由易到难,循序渐进,玩转OD