在 Linux 中使用 RT-Thread Env 工具的简明指南

Env 是 RT-Thread 对源码进行配置和裁剪、生成工程的工具,然而文档中的配置过程主要针对 Windows 系统,并没有对 Linux 系统的配置进行详细的介绍,这里简要介绍其在 Linux 下的配置与使用方法。

下载

Env 工具本质上是一组 Python 脚本,它的 Windows 版本中包含运行脚本的全套的工具和环境,而 Linux 版则只包含脚本本身,在使用 Env 工具前,我们需要先自行安装相关的工具。

若您使用的是 Ubuntu 系统,可参考官方仓库中的配置流程使用脚本进行配置,若您使用的是其他发行版,则根据自己的需要安装工具。

想要正常运行 Env 工具和编译工程,您至少需要在系统中安装 python3, scons, gcc, git, ncurses,以及编译您的目标平台的 bsp 所需的交叉编译工具链。请使用包管理器或其他方法自行安装这些软件。

安装完毕这些软件后,前往您想编译的目标平台所对应的 bsp 目录(这里我使用的 bsp 是 rt-thread/bsp/qemu-virt64-riscv), 运行 scons --menuconfig, 则会自动的下载 Env 工具,并进入 RT-Thread 的配置界面,这里我们可以暂时不进行配置,退出即可。

运行完毕后,Env 工具会被安装在当前用户的 ~/.env 目录中。

使用

Env 工具在下载时,会在~/.env 目录下生成 env.sh 文件。若您使用 bash 或者其他支持 bash 语法的 shell(如 zsh),则您可通过运行 source ~/.env/env.sh 来引入 Env 的环境变量。若您使用 fish,则 Env 在安装过程中还会生成一个 env.fish 文件。由于 fish 并不支持 ‘bash’ 设置环境变量的语法,当使用 fish 时,需要运行 source ~/.env/env.fish 引入环境变量。

在 Env 中,我们可直接运行的命令的只有 menuconfigpkgs,它们都是对 env.py 的调用。menuconfig 命令可打开 RT-Thread 配置页面,效果与直接运行 scons --menuconfig 相同。pkgs 命令可用于管理在线包,使用方法参见其他教程,不再赘述。

编译工程

在 bsp 目标平台目录下,运行 menuconfig,进行我们需要的配置,配置完毕后选择 <Save> 保存为 .config 文件。最后即可使用 scons 编译工程。

直接运行 scons 时,可能会产生找不到编译器、编译失败等错误。可以使用环境变量和 scons 的参数指定编译器的路径和前缀,下面将演示使用环境变量和使用参数指定编译器的方式。(也可选择将环境变量直接添加在安装时生成的 env.shenv.fish 中,这样添加后可以直接运行 scons 而不产生报错。)类似于 make, scons 也能使用 -j线程数 的参数开启多线程编译,加快编译速度。scons 的更多参数,可在 rt-thread/tools/options.py 文件中查看。

编译得到目标文件后,即可烧录到目标平台中。


在 Linux 中使用 RT-Thread Env 工具的简明指南
https://irr.ink/2023/1RZ0D9A/
作者
iR
发布于
2023年9月25日
许可协议