一、开发环境
本教程基于以下操作系统环境进行:
二、环境搭建步骤
-
更新软件源索引缓存
首先更新本地的软件包索引缓存(注意,此操作并非升级已安装的软件本身)。
sudo apt update

-
安装基础工具
安装后续步骤中必需的 git 和 wget 工具。
sudo apt install git wget

-
安装RT-Thread Env工具
RT-Thread Env是用于配置和构建工程的工具。我们将通过官方脚本进行安装。

-
下载安装脚本:
wget https://raw.githubusercontent.com/RT-Thread/env/v1.5.2/install_ubuntu.sh


-
脚本内容预览:
该脚本将自动安装Python、交叉编译工具链、SCons等必要的Linux开发环境和依赖。
#!/usr/bin/env bash
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get -qq install python3 python3-pip gcc git libncurses5-dev gcc-arm-none-eabi binutils-arm-none-eabi gdb-multiarch qemu qemu-system-arm -y
python3 -m pip install scons requests tqdm
python3 -m pip install -U pyocd
url=https://raw.githubusercontent.com/RT-Thread/env/v1.5.x/touch_env.sh
if [ $1 ] && [ $1 = --gitee ]; then
url=https://gitee.com/RT-Thread-Mirror/env/raw/v1.5.x/touch_env.sh
fi
wget $url -O touch_env.sh
chmod 777 touch_env.sh
./touch_env.sh $@
-
执行安装脚本:
为了在国内获得更快的下载速度,我们使用 --gitee 参数指定从镜像源下载。
./install_ubuntu.sh --gitee

脚本执行完毕后,继续运行以下命令完成Env工具的初始化:
./touch_env.sh --gitee

> 提示:如果脚本执行失败,可以尝试手动修改脚本中的版本号为其他稳定版本。
-
设置环境变量
安装完成后,需要激活Env工具的环境变量。有两种常用方案:
三、验证环境
环境变量设置完成后,可以输入 pkgs 或 menuconfig 等命令进行验证。如果看到相应的命令行交互界面,说明RT-Thread Env工具已正确安装。



四、获取RT-Thread源代码
-
查看可用版本
在克隆仓库前,可以先查看远程仓库的所有标签(版本)。
git ls-remote --tags https://gitee.com/rtthread/rt-thread.git

-
克隆指定版本代码
使用 --depth 1 参数可以只克隆最近一次提交,加快下载速度。这里以 v4.1.1 版本为例。
git clone --depth 1 -b v4.1.1 https://github.com/RT-Thread/rt-thread.git

-
验证本地版本
进入克隆的仓库目录,检查当前代码版本。
# 查看当前标签版本
git describe --tags
# 查看最新一次提交信息
git log --oneline -1


五、基于BSP创建与编译工程
-
进入目标BSP目录
RT-Thread为不同芯片厂商提供了丰富的BSP(板级支持包)。本例以STM32F407芯片的BSP为例。
cd rt-thread/bsp/stm32/stm32f407-atk-explorer
-
生成独立工程目录
使用scons --dist命令,可以将当前BSP目录及相关依赖打包成一个独立的工程目录,便于管理和分发。
source ~/.env/env.sh
scons --dist



-
配置工程环境变量
在独立的工程目录下,需要正确设置RT-Thread和BSP的根目录路径。
# 激活Env环境(如果未在.bashrc中设置)
source ~/.env/env.sh
# 设置RT-Thread根目录,假设当前在dist目录下
export RTT_ROOT=${PWD}/rt-thread
# 设置BSP根目录为当前目录
export BSP_ROOT=${PWD}

-
使用Menuconfig配置工程
运行 menuconfig 命令可以进行图形化配置,选择需要的软件包和硬件功能。
menuconfig
注意:初次运行可能会遇到Kconfig语法错误,提示‘endif’ in different file than ‘if‘等。这通常是因为某些Kconfig文件末尾缺少空行。
解决方法:根据错误提示的文件路径(例如/home/user/.env/packages/packages/system/rti/Kconfig),使用文本编辑器打开该文件,在文件末尾添加一个新行(空行)并保存即可。

配置完成后,可以开启一些示例功能(如Finsh控制台)进行测试。

-
更新软件包
如果在menuconfig中启用或更改了软件包,需要使用 pkgs --update 命令下载软件包源代码。
pkgs --update

-
编译工程及问题解决
六、下载与测试
将编译生成的二进制文件(通常为 .bin 或 .hex 文件)通过ST-Link、J-Link等调试器下载到STM32开发板中。上电后,通过串口工具连接开发板,若能正常输出RT-Thread的启动Logo和Finsh命令行,则说明环境搭建、工程编译与烧录全部成功。


参考资源
|