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第一次保存时才会创建。具体流程如下:
- 将已经支持menuconfig功能的BSP里面的Kconfig文件拷贝到新的项目根目录中。
- 注意修改Kconfig中的RTT_ROOT值为RT_Thread所在目录,否则可能提示找不到RTT_ROOT。
- 使用menuconfig命令开始配置即可。
旧项目添加menuconfig功能
这里的旧项目指的是已经经过一段时间的开发,而且项目中存在已经修改过的rtconfig.h文件,但是没有使用过menuconfig来配置的项目。具体流程如下:
- 首先备份旧项目内的rtconfig,h文件。
- 使用scons --genconfig命令根据已有的rtconfig.h生成.config文件,这里生成的.config文件保存了旧项目中rtconfig.h文件对项目的配置参数。
- 将已经支持menuconfig功能的BSP里面的kconfig文件拷贝到要修改项目的根目录中。
- 注意修改Kconfig中的RTT_ROOT值为RT-Thread所在目录,否则可能提示找不到RTT_ROOT。
- 使用 menuconfig 命令来配置我们要修改的旧项目。menuconfig 会读取第二步生成的 .config 文件,并根据旧项目的配置参数生成新的 .config 文件和 rtconfig.h 文件 。
- 对比检查新旧两份 rtconfig.h 文件,如果有不一致的地方,可以使用 menuconfig 命令对配置项进行调整。