尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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 生成
RELATED

相关推荐

基于Python的时间胶囊区块链:AES-GCM加密、链上存证与时间锁实践

基于Python的时间胶囊区块链:AES-GCM加密、链上存证与时间锁实践

简介:“区块链上的时间胶囊”项目源码与学习素材,适合具备 Python 编程基础、希望进一步接触区块链时间戳与智能合约开发的读者,可用于理解信息上链、加密保存及到期解锁等场景的基本实现思路,并体会分布式系统中透明性与隐私保护…

📅 2026/10/30 11:12:16
LogManager启动后在忙什么:三类后台线程撑起日志全生命周期

LogManager启动后在忙什么:三类后台线程撑起日志全生命周期

摘要:上一篇讲了 LogManager 是什么、Broker 启动时如何加载恢复日志。这篇接着追问:日志恢复完、Broker 对外服务之后,LogManager 还在做什么?答案藏在 startup() 方法里——它会拉起三类后台线程:一个单线程调度器、…

📅 2026/10/30 11:12:16
你的第一个开源 PR 指南:Null Motion 本地开发环境、good first issue 清单与 PR 规范

你的第一个开源 PR 指南:Null Motion 本地开发环境、good first issue 清单与 PR 规范

【免费下载链接】NullMotion Play a finished motion-graphics ad in sync with the rough drafts it grew from, and export the breakdown as MP4. 项目地址: https://gitcode.com/gh_mirrors/nu/NullMotion 点击查看 免费下载 Null Motion 是一个本地运行的动效…

📅 2026/10/30 11:12:16
MORE NEWS

更多资讯

📰

效率工具软件选型与自动化指南:从工具收集到流程自动化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

用户脚本自动填问卷:DOM事件模拟与受控组件赋值实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

全栈自造Status Deck:ESP32-S3与BLE技术栈选型实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

嵌入式I2C外设调试全攻略:从硬件波形到软件驱动的系统化排查方法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

导弹飞控为何禁用malloc:硬实时系统内存确定性设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Qt QWidget自研滚动选择器:无QML实现iOS风格Picker

简介:这是一份基于Qt框架实现的滚动数字选择器(类似手机闹钟时间设置控件)源码资源,面向Qt初学者与GUI开发进阶者,解决移动端风格交互控件在桌面/嵌入式场景下的复现难题。资源包共31个文件,含7个C源文件&a…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬