RT-Thread Env 工具介绍(学习笔记)
Env 是 RT-Thread 推出的开发辅助工具,针对基于 RT-Thread 操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。
Env 简介
Env 是 RT-Thread 推出的开发辅助工具,针对基于 RT-Thread 操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。
其内置的 menuconfig 提供了简单易用的配置剪裁工具,可对内核、组件和软件包进行自由裁剪,使系统以搭积木的方式进行构建。——原文
下载 Env
Env 工具包含了 RT-Thread 源代码开发编译环境和软件包管理系统。下载地址:https://www.rt-thread.org/page/download.html
【注意】
- Env 的软件包管理功能需要 Git 的支持,Git 下载地址:https://git-scm.com/downloads,同时还需将 Git 添加到环境变量中。
- 在工具环境中的路径名中,不能出现中文字符或空格。
Env 的启动
有两种方法启动 Env,一种是直接打开 env.exe
,打开失败可以尝试使用 env.bat
(这时的工作路径在 Env 软件所在目录);另一种是通过右键菜单打开,但需要先将 Env 添加到右键菜单中,具体的操作可以参考下图:
使用 Env 编译 BSP
scons 是 RT-Thread 使用的编译构建工具,可以使用 scons 相关命令来编译 RT-Thread 。
随便进入一个 RT-Thread BSP 工程,输入 scons
命令,这时 Env 将使用默认的 ARM_GCC 工具链编译 bsp:
编译成功,编译的最后一步是使用 arm-none-eabi-bojcopy 将 .elf 文件转换为 .bin 文件(二进制可执行文件)。
如果是使用 mdk/iar 项目,可以使用以下命令进行编译。
scons --target=iar
scons --target=mdk4
scons --target=mdk5
下图是使用 scons --target=mdk5
编译的结果,工程链接完成后,使用了 fromeelf 将 .elf 文件转换成了 .bin 文件。
而 fromelf 正是 Keil 软件所用的格式转换工具:
使用 Env 配置 BSP
menuconfig 是一种图形化配置工具,RT-Thread 使用其对整个系统进行配置、裁剪。
在 bsp 根目录(需要有 Kconfig 文件)输入 menuconfig
命令即可打开图像化配置工具:
该图像菜单支持的功能包括:RT-Thread 内核配置(修改 rtconfig.h)、RT-Thread 组件管理、RT-Thread 在线软件包、硬件驱动配置及外部库。
内核配置
一个 RT-Thread 工程的所有内核配置都放在 rtconfig.h
中,通过修改 RT-Thread Kernel
的配置,就能实现修改 rtconfig.h
的目的。
组件管理
RT-Thread 有很多可裁剪的组件,比如命令行(msh)、网络、设备驱动。
软件包管理
RT-Thread 提供一个软件包管理平台,这里存放了官方提供或开发者提供的软件包。该平台为开发者提供了众多可重用软件包的选择,这也是 RT-Thread 生态的重要组成部分。
软件包 Git 仓库:https://github.com/RT-Thread-packages,当前(写文章时)该仓库有 128 个软件包。
可以在 Env 命令行输入 pkgs
管理软件包的更新(menuconfig 中修改的软件包配置,还需要在 Env 输入 pkgs --update
来同步到工程中)。
如果长期不对本地的软件包进行更新,可能会出现本地软件包与服务器不同步的情况。这时我们可以通过在 Env 命令行输入 pkgs --upgrade
来解决这个问题。而且它还能对 Env 进行升级。
驱动配置
在这里可以管理 bsp 相关驱动的开启与关闭,
下面是片上外设驱动中的选项:
外部库
外部库里可以选择是否使用某些工程目录下的某些库,下面这几个是正点原子潘多拉开发板 bsp 中的外部库。
Env 工具配置
新版本的 Env 工具中加入了自动更新软件包和自动生成 mdk/iar 工程的选项,默认是不开启的。可以使用 menuconfig -s/–setting 命令来进行配置。
下面是默认配置:
这里介绍一下第二个功能——自动创建 mdk/iar 工程
当修改 menuconfig 配置后 ,必须输入 scons --target=xxx 来重新生成工程。开启此功能,就会在退出 menuconfig 时,自动重新生成工程,无需再手动输入 scons 命令来重新生成工程。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)