编译工具链:匹配树莓派3B的架构选对版本
树莓派3B凭借低成本、高性能、丰富的外设资源,一直是嵌入式爱好者和开发者学习RTOS的热门平台,而RT-Thread作为国内生态最完善的开源实时操作系统,对树莓派3B有着完善的原生支持。但很多刚接触的开发者,往往卡在环境搭建这一步:不知道该选什么编译工具链、怎么配置内核、怎么烧录运行,折腾好几天都跑不起第一个示例程序。
本文整理了一套经过验证的高效搭建流程,从环境准备到编译下载,再到第一个程序运行,全程避开常见坑点,让开发者只需要1小时就能完成树莓派3B RT-Thread开发环境的搭建,把精力放在应用开发上,而非环境配置。
一、开发环境的选型:选对工具少走一半弯路
搭建树莓派3B的RT-Thread开发环境,首先需要确定几个核心组件的选型:PC端的开发环境、编译工具链、RT-Thread源码版本,选对版本能避开绝大多数兼容性问题。
1. 基础环境:Windows/macOS/Linux都支持,推荐Envrionment一键配置
RT-Thread官方提供了一站式的开发环境工具RT-Thread Envrionment,已经预配置好了编译工具链、menuconfig配置工具和各种依赖,不需要开发者一个个手动安装依赖,对新手非常友好。
对于大多数习惯用Windows的开发者来说,直接下载官方现成的RT-Thread Envrionment安装包即可,它是自带Cygwin环境的一键安装包,安装完成后直接打开就能用,不需要额外配置环境变量;如果是macOS或者Linux用户,只需要克隆官方的env仓库,安装几个基础依赖就能使用,流程也非常简单。
不推荐新手手动分散安装各个组件:手动安装arm工具链、menuconfig、git等工具,不仅需要配置一堆环境变量,还容易出现版本不兼容的问题,遇到问题很难排查,使用官方预配置的Envrionment是最高效的选择。
2. 编译工具链:匹配树莓派3B的架构选对版本
树莓派3B采用的是Broadcom BCM2837芯片,基于ARM Cortex-A53架构,支持32位ARM指令集,我们需要选择对应架构的交叉编译工具链:
编译32位RT-Thread系统,推荐使用arm-linux-gnueabihf工具链,RT-Thread Envrionment已经默认内置了这个工具链,不需要额外下载;
如果需要编译64位系统,可以选择aarch64-linux-gnu工具链,但目前RT-Thread对树莓派3B的64位支持还不如32位完善,新手推荐先从32位开始学习,踩坑更少。
这里需要注意一个常见坑:不要用树莓派本身自带的gcc本地编译,虽然树莓派运行Linux可以本地编译,但编译速度极慢,修改代码调试一次要等十几分钟,效率远低于PC端交叉编译,因此所有操作都推荐在PC端完成,编译完成后再把镜像烧录到SD卡运行。
3. RT-Thread源码版本:选主线主干版本更稳定
RT-Thread目前有两个大版本分支:RT-Thread 4.x和RT-Thread 5.x,两个版本都对树莓派3B有支持,推荐新手直接克隆最新的主线主干版本,官方对树莓派的BSP已经做好了默认配置,开箱即用,不需要修改内核底层代码。
克隆源码可以直接用官方的GitHub镜像或者国内Gitee镜像,国内开发者用Gitee速度更快,命令如下:
git clone https://gitee.com/rtthread/rt-thread.git
克隆完成后,树莓派3B的BSP路径在rt-thread/bsp/raspberry-pi/raspi3-32/,所有配置都已经提前做好,不需要修改底层代码,直接用就可以。
二、一步步搭建:从环境安装到第一次编译
1. 安装RT-Thread Envrionment
Windows用户的安装流程非常简单:
从RT-Thread官方下载站下载最新版的RT-Thread Envrionment安装包,官方下载地址是https://www.rt-thread.org/download.html,选择开发工具分类就能找到;
运行安装包,选择一个全英文路径安装(绝对不能包含中文和空格,否则会导致工具链找不到路径,编译失败,这是新手最容易踩的坑);
安装完成后,桌面会生成Env Console快捷方式,点击打开就能进入Envrionment命令行环境,所有后续操作都在这里完成。
安装完成后可以先测试工具链是否正常,输入arm-linux-gnueabihf-gcc -v,如果输出版本信息,说明工具链已经正常工作,没有报错就是配置成功。
2. 配置树莓派3B的RT-Thread内核
打开Env控制台后,进入刚才克隆好的rt-thread源码下的树莓派3B BSP目录:
cd rt-thread/bsp/raspberry-pi/raspi3-32/
进入目录后,首先执行menuconfig命令打开内核配置界面:
menuconfig
这个界面是RT-Thread的内核图形化配置界面,我们可以根据需求裁剪内核功能,对于树莓派3B来说,官方已经做好了默认配置,我们只需要确认几个核心选项:
确认CPU架构配置:Hardware Drivers -> BCM2837 Platform Support已经默认选中,不需要修改;
如果需要开启以太网驱动,确认Device Drivers -> Network Device Support -> BCM2835 Ethernet GMAC Driver已经选中,默认是开启的,需要网络功能不用改;
如果需要开启USB支持,确认Device Drivers -> USB Support已经选中,默认开启,接U盘、键盘都需要这个功能;
如果需要开启文件系统,RT-Thread Kernel -> Device Virtual File System默认已经开启,不需要修改。
配置完成后,按ESC退出,选择保存配置,就完成了内核配置。整个过程不需要修改太多选项,官方默认配置已经适配好树莓派3B的所有硬件,新手直接用默认配置即可,后续开发需要什么功能再自行添加。
3. 编译生成镜像
配置完成后,直接执行make命令开始编译:
make -j8
-j8表示开启8线程编译,根据自己PC的CPU核心数调整,能大幅提升编译速度,普通PC只需要几十秒就能完成整个编译过程。
编译完成后,会在当前目录下生成三个核心文件:
kernel.img:RT-Thread内核镜像文件,是我们编译出来的核心;
kernel7.img:树莓派3B需要的重命名镜像文件,脚本会自动生成;
rpi3-32.bin:二进制内核文件。
这一步如果编译出错,最常见的两个问题:一是安装路径有中文,导致工具链找不到文件,卸载重新安装到全英文路径即可解决;二是git克隆源码的时候没拉取完整子模块,执行git submodule update --init --recursive拉取完整子模块再重新编译即可。
三、烧录启动:把RT-Thread烧录到SD卡运行
编译完成得到内核镜像后,我们需要把镜像烧录到SD卡,插入树莓派3B就能启动运行。整个过程分为SD卡分区和文件拷贝两步,非常简单:
1. SD卡准备:分区格式要正确
树莓派启动需要FAT32格式的启动分区,我们准备一张不超过32G的SD卡(树莓派3B默认不支持大于32G的SD卡直接启动,如果需要更大容量需要额外配置引导,新手推荐用8G或者16G的FAT32格式SD卡就足够):
把SD卡插入PC,格式化SD卡为FAT32格式,分配单元大小选择4096字节,卷标可以设置为BOOT;
格式化完成后,我们只需要一个FAT32分区就可以启动RT-Thread,不需要额外分区,比Linux系统烧录更简单。
需要注意的是,如果使用Windows10/11自带的格式化工具,大于32G的SD卡默认不会提供FAT32选项,可以用第三方工具比如DiskGenius完成格式化,或者直接用小容量SD卡避开这个问题。
2. 拷贝启动文件:三个文件就能启动
RT-Thread树莓派BSP已经提供了树莓派启动需要的所有基础文件,编译完成后只需要把几个文件拷贝到SD卡根目录即可:
首先把BSP目录下的bootcode.bin和start.elf拷贝到SD卡根目录,这两个是树莓派GPU需要的启动固件,官方已经放在BSP目录里,直接拷贝就好;
把编译生成的kernel7.img拷贝到SD卡根目录,这就是我们编译好的RT-Thread内核;
新建一个config.txt文件放在SD卡根目录,写入最简单的配置即可:
kernel=kernel7.img
gpu_mem=16
这个配置告诉树莓派GPU从kernel7.img加载内核,给GPU分配16M内存就足够,不需要更多。
所有文件拷贝完成后,SD卡根目录一共四个文件:bootcode.bin、start.elf、kernel7.img、config.txt,就已经准备好了,弹出SD卡插入树莓派3B,通电就能启动。
3. 查看启动输出:串口连接看日志
树莓派3B启动RT-Thread后,默认会通过串口输出日志,我们需要一根USB转TTL串口模块连接树莓派和PC,查看启动输出,连接方式如下:
树莓派3B的GPIO引脚:GND接USB转TTL的GND,GPIO14(TXD)接USB转TTL的RXD,GPIO15(RXD)接USB转TTL的TXD;
打开PC端的串口调试助手,波特率设置为115200,数据位8,停止位1,无校验,打开串口后给树莓派通电,就能看到RT-Thread的启动日志。
正常启动后会输出类似下面的日志:
\ | /
- RT - Thread Operating System
/ | \ 5.0.4 build Jun 10 2026
2006 - 2024 Copyright by RT-Thread team
Found BCM2837 chip!
I/O remap at 0xf0000000
Initialize bcm2835 system tick
Hello RPi3!
msh />
看到msh />命令行提示符,说明RT-Thread已经成功启动,环境搭建完成,我们已经可以在命令行里输入命令测试了。
如果启动没有输出,先检查三个常见问题:一是串口接线接反了TX和RX,交换过来就能解决;二是SD卡格式化不是FAT32,重新格式化即可;三是config.txt配置错误,检查文件名和内容是否正确。
四、开发调试优化:提升后续开发效率
环境搭建完成后,我们还可以做几个简单的优化,提升后续开发调试的效率:
1. 使用VS Code + RT-Thread插件开发
RT-Thread官方提供了VS Code的插件,支持代码补全、一键编译、下载调试,比纯命令行开发效率高很多。安装流程:
打开VS Code,插件市场搜索RT-Thread,安装官方插件;
用VS Code打开树莓派3B BSP目录,插件会自动识别RT-Thread项目,配置好Envrionment路径后,就能直接在VS Code里点击按钮完成menuconfig配置和编译,不需要手动敲命令。
2. 开启网络和文件系统快速做应用开发
默认配置已经开启了以太网驱动和LWIP网络协议栈,树莓派3B插上网线就能获取IP地址,ping通路由器,可以直接做网络应用开发;开启了DFS虚拟文件系统,插上U盘就能自动识别挂载,读写U盘文件,不需要额外配置,非常方便。
如果需要调试网络,启动后在msh命令行输入ifconfig就能看到网口的IP地址,输入ping 192.168.1.1就能测试网络连通性,非常简单。
3. 快速迭代开发:修改代码后不需要重新烧录SD卡
后续开发修改代码后,我们只需要重新执行make编译,然后把新生成的kernel7.img替换到SD卡根目录就可以,不需要重新格式化SD卡,也不需要拷贝其他文件,整个替换过程只需要十几秒,迭代非常快。如果PC支持SD卡热插拔,整个过程几秒钟就能完成,调试效率很高。
五、常见问题总结:避开新手最容易踩的坑
安装路径包含中文:RT-Thread Envrionment和源码绝对不能放在中文路径下,否则会导致工具链找不到文件,编译失败,一定要放在全英文路径。
SD卡不是FAT32格式:树莓派GPU只能识别FAT32格式的启动分区,用NTFS格式无法启动,一定要格式化对格式。
没拉取完整子模块:git克隆源码后,如果提示找不到某些头文件,执行git submodule update --init --recursive拉取完整子模块就能解决。
串口没输出:先检查接线是否接反TX/RX,再检查SD卡文件是否完整,config.txt配置是否正确,大部分问题都是接线错误导致。
编译工具链版本不兼容:使用Envrionment自带的工具链就不会有兼容性问题,不要自己随便换不兼容的工具链版本。
总结
按照这套流程,哪怕是第一次接触树莓派和RT-Thread的新手,也只需要不到1小时就能完成环境搭建,成功启动RT-Thread系统,避开了手动配置带来的各种坑。RT-Thread官方已经对树莓派3B做了非常完善的BSP支持,所有底层配置都已经做好,开发者只需要关注上层应用开发,不需要折腾内核移植。
树莓派3B本身硬件资源丰富,有以太网、USB、GPIO等外设,非常适合学习RT-Thread开发,从简单的GPIO驱动到网络应用、文件系统开发,都能轻松完成。搭建好环境后,就可以开始你的RT-Thread开发之旅了,如果遇到问题,可以直接到RT-Thread官方社区提问,社区里有很多树莓派开发的爱好者和开发者,能快速解决你的问题。 以上是根据你的要求生成的内容,如需修改可继续提出。





