一、开发环境
操作系统:Ubuntu 22.04
二、环境搭建
更新软件源索引缓存(非更新软件本身)
sudo apt update
![图片[1] - 手把手教 – 基于 Ubuntu 系统搭建 RT-Thread 开发环境 - 宋马](https://pic.songma.com/blogimg/20251228/aace8b0973a74ddcae36be90663832e8.png)
安装
git 、wget
sudo apt install git wget

安装
env

wget https://raw.githubusercontent.com/RT-Thread/env/v1.5.2/install_ubuntu.sh


脚本内容
#!/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 $@
脚本赋权限,执行脚本。
./install_ubuntu.sh --gitee

./touch_env.sh --gitee
![图片[2] - 手把手教 – 基于 Ubuntu 系统搭建 RT-Thread 开发环境 - 宋马](https://pic.songma.com/blogimg/20251228/d8b4a45e56644d09866f6e8055dc73aa.png)
如果失败,可将脚本中的版本号改为指定版本。
环境变量设置:
方案A:
每次启动Ubuntu系统时,都需要输入命令以激活环境变量。
source ~/.env/env.sh
方案B:
打开文件,并在文件末尾添加命令
~/.bashrc,这样当登录Ubuntu时它会自动执行,无需再手动输入该命令。
source ~/.env/env.sh
三、测试指令
查看
pkgs/menuconfig 等命令



四、代码拉取
查看远程仓库的标签(无需先克隆)
git ls-remote --tags https://gitee.com/rtthread/rt-thread.git

克隆指定的版本
# 只克隆最近一次提交的特定版本
git clone --depth 1 -b v4.1.1 https://github.com/RT-Thread/rt-thread.git

进入下载的仓库目录下,查看当前版本
# 查看当前检出的版本信息
git describe --tags # 输出当前标签(如 v4.1.1)
git log --oneline -1 # 查看最新提交哈希和信息
![图片[3] - 手把手教 – 基于 Ubuntu 系统搭建 RT-Thread 开发环境 - 宋马](https://pic.songma.com/blogimg/20251228/8cf9798ac422443683e03cc8b31c4b54.png)

五、工程 bsp 打包
进入 指定的bsp 目录,如 文件下。
rt-thread/bsp/stm32/stm32f407-atk-explorer
source ~/.env/env.sh
scons --dist

![图片[4] - 手把手教 – 基于 Ubuntu 系统搭建 RT-Thread 开发环境 - 宋马](https://pic.songma.com/blogimg/20251228/db50dbececf9430e8f99405e29c49d98.png)

指定相关路径
# export ENV_ROOT=${HOME}/.env
source ~/.env/env.sh
export RTT_ROOT=${PWD}/rt-thread
export BSP_ROOT=${PWD}

测试指令
menuconfig

报错
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
scons: `.' is up to date.
scons: done building targets.
/home/user/.env/packages/packages/system/rti/Kconfig:88: 'endif' in different file than 'if'
/home/user/.env/packages/packages/system/rti/Kconfig:9: location of the 'if'
/home/user/.env/packages/packages/system/Kconfig:61: 'endmenu' in different file than 'menu'
/home/user/.env/packages/packages/system/rti/Kconfig:9: location of the 'menu'
/home/user/.env/packages/packages/Kconfig:15: 'endmenu' in different file than 'menu'
/home/user/.env/packages/packages/system/rti/Kconfig:9: location of the 'menu'
修改此文件即可,末尾增加新行,改动如下:

测试,开启测试demo
![图片[5] - 手把手教 – 基于 Ubuntu 系统搭建 RT-Thread 开发环境 - 宋马](https://pic.songma.com/blogimg/20251228/6712a5f0d3ad4ec79529a3d4fcec2cfa.png)
更新下载相关文件
![图片[6] - 手把手教 – 基于 Ubuntu 系统搭建 RT-Thread 开发环境 - 宋马](https://pic.songma.com/blogimg/20251228/ca872886aa2a40d9b5ad4f46bbd27d06.png)
编译报错,提示如下:
scons: Reading SConscript files ...
Newlib version:unknown
Error: the toolchain path (C:UsersXXYYZZ) is not exist, please check 'EXEC_PATH' in path or rtconfig.py.
解决办法,查找使用的工具链位置。
which arm-none-eabi-gcc

修改 脚本文件,工具链的指定目录。
rtconfig.py
# cross_tool provides the cross compiler
# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR
if CROSS_TOOL == 'gcc':
PLATFORM = 'gcc'
# EXEC_PATH = r'C:Usersuser'
# 修改如下,根据实际修改
EXEC_PATH = r'/usr/bin'
elif CROSS_TOOL == 'keil':
PLATFORM = 'armcc'
EXEC_PATH = r'C:/Keil_v5'
elif CROSS_TOOL == 'iar':
PLATFORM = 'iccarm'
EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3'
重新编译,查看编译后的文件信息。
scons
file rt-thread.elf

六、下载测试
将代码下载到开发板,测试如下:


参考
Ubuntu 平台使用 QEMU 运行 RT-Thread qemu-vexpress-a9 BSP 工程
https://gitee.com/RT-Thread-Mirror/env
quick_start_qemu_linux
© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END















暂无评论内容