找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1531

积分

0

好友

225

主题
发表于 4 天前 | 查看: 16| 回复: 0

一、开发环境

本教程基于以下操作系统环境进行:

  • 操作系统:Ubuntu 22.04

二、环境搭建步骤

  1. 更新软件源索引缓存
    首先更新本地的软件包索引缓存(注意,此操作并非升级已安装的软件本身)。

    sudo apt update

    更新软件源索引

  2. 安装基础工具
    安装后续步骤中必需的 gitwget 工具。

    sudo apt install git wget

    安装git和wget

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

    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工具
      > 提示:如果脚本执行失败,可以尝试手动修改脚本中的版本号为其他稳定版本。

  4. 设置环境变量
    安装完成后,需要激活Env工具的环境变量。有两种常用方案:

    • 方案A(临时生效)
      每次打开新的终端窗口时,都需要手动执行以下命令:
      source ~/.env/env.sh
    • 方案B(永久生效,推荐)
      将激活命令添加到Shell配置文件中,使其在每次登录时自动执行。
      编辑 ~/.bashrc 文件,在末尾添加一行:
      echo ‘source ~/.env/env.sh’ >> ~/.bashrc

      之后执行 source ~/.bashrc 或重新打开终端即可生效。

三、验证环境

环境变量设置完成后,可以输入 pkgsmenuconfig 等命令进行验证。如果看到相应的命令行交互界面,说明RT-Thread Env工具已正确安装。

验证pkgs命令
验证menuconfig命令
menuconfig界面

四、获取RT-Thread源代码

  1. 查看可用版本
    在克隆仓库前,可以先查看远程仓库的所有标签(版本)。

    git ls-remote --tags https://gitee.com/rtthread/rt-thread.git

    查看远程标签

  2. 克隆指定版本代码
    使用 --depth 1 参数可以只克隆最近一次提交,加快下载速度。这里以 v4.1.1 版本为例。

    git clone --depth 1 -b v4.1.1 https://github.com/RT-Thread/rt-thread.git

    克隆代码

  3. 验证本地版本
    进入克隆的仓库目录,检查当前代码版本。

    # 查看当前标签版本
    git describe --tags
    # 查看最新一次提交信息
    git log --oneline -1

    查看版本信息
    查看提交信息

五、基于BSP创建与编译工程

  1. 进入目标BSP目录
    RT-Thread为不同芯片厂商提供了丰富的BSP(板级支持包)。本例以STM32F407芯片的BSP为例。

    cd rt-thread/bsp/stm32/stm32f407-atk-explorer
  2. 生成独立工程目录
    使用scons --dist命令,可以将当前BSP目录及相关依赖打包成一个独立的工程目录,便于管理和分发。

    source ~/.env/env.sh
    scons --dist

    执行scons --dist
    生成dist目录
    独立工程目录结构

  3. 配置工程环境变量
    在独立的工程目录下,需要正确设置RT-Thread和BSP的根目录路径。

    # 激活Env环境(如果未在.bashrc中设置)
    source ~/.env/env.sh
    # 设置RT-Thread根目录,假设当前在dist目录下
    export RTT_ROOT=${PWD}/rt-thread
    # 设置BSP根目录为当前目录
    export BSP_ROOT=${PWD}

    设置环境变量

  4. 使用Menuconfig配置工程
    运行 menuconfig 命令可以进行图形化配置,选择需要的软件包和硬件功能。

    menuconfig

    注意:初次运行可能会遇到Kconfig语法错误,提示‘endif’ in different file than ‘if‘等。这通常是因为某些Kconfig文件末尾缺少空行。
    解决方法:根据错误提示的文件路径(例如/home/user/.env/packages/packages/system/rti/Kconfig),使用文本编辑器打开该文件,在文件末尾添加一个新行(空行)并保存即可。
    修改Kconfig文件

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

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

    pkgs --update

    更新软件包

  6. 编译工程及问题解决

    • 首次编译
      执行 scons 命令开始编译。
      scons
    • 常见错误1 - 工具链路径错误
      编译时可能报错:Error: the toolchain path is not exist, please check ‘EXEC_PATH‘。这是因为系统未识别到交叉编译工具链路径。
      解决:首先查找工具链的安装位置。
      which arm-none-eabi-gcc

      查找工具链路径
      然后,编辑BSP目录下的 rtconfig.py 文件,修改 EXEC_PATH 变量为工具链的实际路径(例如 /usr/bin)。

      if CROSS_TOOL == ‘gcc‘:
          PLATFORM    = ‘gcc‘
          # 将路径修改为上一步查询到的实际路径
          EXEC_PATH   = r‘/usr/bin‘

      修改rtconfig.py

    • 重新编译
      修正路径后,再次执行 scons 命令。
    • 查看编译产物
      编译成功后,可以使用 file 命令查看生成的ELF文件信息,确认其架构为ARM。
      file rt-thread.elf

六、下载与测试

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

下载程序到开发板
串口输出RT-Thread信息

参考资源




上一篇:Python项目自动化构建:PyBuilder入门指南,告别手动打包与测试
下一篇:SQL CTE与递归CTE实战指南:简化查询与遍历树形数据
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 17:08 , Processed in 0.144126 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表