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第一次保存时才会创建。
具体流程:
- 将已经支持menuconfig功能的BSP里面的kconfig文件拷贝到新的项目根目录中。
- 注意修改Kconfig中的RTT_ROOT值为RT-Thread所在目录,否则可能提示找不到RTT_ROOT。
- 使用menuconfig命令开始配置即可。
可以使用Env内置命令pkgs --upgrade来更新软件包列表和Env的功能代码,这样可以最大程度避免已经修复的问题。