RT-Thread Env SCons 自定义文件添加与 ST-Link 一键下载配置教程
RT-Thread Env 是封装完成的 Python 虚拟环境在 Env 终端中执行scons编译指令本质是依托 Env 自带 Python 环境调用 Scons 构建工具、ARM GCC 交叉编译器完成项目交叉编译。下面详细介绍自定义工程文件添加和ST-Link 一键下载的完整配置方法。一、添加自定义工程文件适配 SCons 编译新增文件如图1. 配置原理无需修改顶层编译配置仅需在ibsp 同级目录的 SConscript 文件中添加自定义源文件、头文件路径即可让 scons 指令识别并编译新增的自定义驱动文件。2. 完整配置代码打开对应目录下的 SConscript 文件替换/追加以下完整代码包含自定义驱动源文件、多级头文件路径配置同时保留原生子目录编译逻辑importosfrombuildingimport*cwdGetCurrentDir()# 自定义添加的源文件列表根据自身工程文件路径修改srcSplit( board.c CubeMX_Config/Src/stm32f4xx_hal_msp.c ibsp/dev/dev_led.c ibsp/drv/drv_led.c )# 配置全局头文件路径path[cwd]# CubeMX 配置头文件路径path[os.path.join(cwd,CubeMX_Config,Inc)]# 自定义设备层、驱动层头文件路径path[os.path.join(cwd,ibsp/dev)]path[os.path.join(cwd,ibsp/drv)]# 定义编译组关联源文件与头文件路径groupDefineGroup(Drivers,src,depend[],CPPPATHpath)# 遍历当前目录子文件夹自动加载子目录SConscript编译规则listos.listdir(cwd)foriteminlist:ifos.path.isfile(os.path.join(cwd,item,SConscript)):groupgroupSConscript(os.path.join(item,SConscript))Return(group)3. 生效方式保存文件后在 RT-Thread Env 终端的工程根目录执行scons指令即可自动编译上述添加的所有自定义文件新增驱动代码可正常参与工程编译链接。二、配置 ST-Link 一键下载功能scons download1. 配置原理基于 SCons 自定义指令调用 ST-LINK_CLI 官方命令行工具绑定工程编译产物实现一条指令完成编译下载复位无需手动打开 ST-Link 上位机。2. 前置准备确认本地已安装 ST-LINK Utility记录ST-LINK_CLI.exe 完整路径后续代码需对应修改为本地实际路径。3. 完整配置代码打开工程根目录可直接执行 scons 指令的目录的 SConstruct 文件在文件末尾追加以下代码importsubprocess# 自定义下载函数调用ST-LINK命令行工具烧录程序defdownload(target,source,env):# 【重要】修改为本地ST-LINK_CLI.exe完整安装路径clirE:\ST-Link\ST-LINK Utility\ST-LINK_CLI.exe# 烧录配置SWD下载模式、校验固件、下载完成自动复位运行# 默认烧录地址STM32片内Flash起始地址 0x08000000cmdf{cli}-c SWD UR -P rtthread.bin 0x08000000 -V -Rstprint(Execute download cmd:,cmd)# 执行烧录指令retsubprocess.call(cmd,shellTrue)# 打印返回码方便排查烧录异常print(ST-LINK download return code ,ret)returnret# 1. 绑定download指令与工程elf文件编译后自动触发下载download_aliasenv.Alias(download,rt-thread.elf,download)# 2. 标记指令始终执行不受文件更新依赖限制env.AlwaysBuild(download_alias)4. 关键注意事项路径修改必须将代码中ST-LINK_CLI.exe路径替换为自己电脑的实际安装路径路径含空格需保留双引号格式。文件位置执行指令目录为工程 BSP 根目录需保证编译生成的rtthread.bin文件在当前工作目录下否则会报文件找不到错误。硬件配置开发板需通过 ST-Link 连接电脑且已开启 SWD 下载模式。5. 功能使用配置完成保存文件后在 Env 终端执行以下指令仅编译工程scons编译 一键下载烧录scons download三、常见问题排查新增文件不编译检查 SConscript 中源文件路径、头文件路径是否准确保存文件后重新执行 scons。download 指令报错优先检查 ST-LINK_CLI 路径是否正确、ST-Link 硬件连接是否正常、开发板是否上电。烧录成功但程序不运行确认烧录地址0x08000000匹配当前芯片 Flash 起始地址开启下载后自动复位。注部分内容由 AI 生成