操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载本篇技术指南围绕 RT-Thread 开源仓库中面向 STM32H7 系列的 BSP 模板bsp/stm32/libraries/templates/stm32h7xx/README.md展开系统讲解该模板所对应的开发板资源、外设支持现状、MDK/IAR/GCC 多环境下的快速上手流程以及基于 ENV 工具与 menuconfig 的进阶配置方法。读者学完后既能在一小时内把 RT-Thread 跑上 STM32H7 开发板并看到 LED 闪烁与 msh 终端输出也能掌握 BSP 外设使能的完整工程链路为后续移植与驱动开发打下基础。模板文档定位什么是 STM32H7 的 BSP README 模板在 RT-Thread 仓库中bsp/stm32/libraries/templates/stm32h7xx/ 目录存放的是面向 STM32H7 系列芯片的 BSPBoard Support Package板级支持包标准模板。该目录下的 README.md 是一份模板说明文档它既是 STM32H743 系列开发板 BSP 的完整使用说明也为后续基于同一芯片系列新建开发板 BSP 提供了可直接套用的文档骨架。模板文档的主体结构清晰分为三大模块开发板介绍梳理板载资源MCU、外部存储、常用外设、接口与调试方式外设支持以表格形式逐项列出板载外设与片上外设的驱动支持状态使用说明拆分为快速上手与进阶使用两个章节分别面向初次接触 RT-Thread 的新手和需要驱动更多板载资源的中高级开发者。从仓库目录结构看该模板并非孤立存在同目录下还包含applications/main.c用户主程序、board/board.c时钟与板级初始化、board/board.h内存布局与堆区定义、board/Kconfig片上外设菜单配置、project.uvprojxMDK5 工程以及project.ewp/project.ewwIAR 工程等配套文件模板文档中的每个操作步骤都能在这些源码与工程文件中找到对应实现。开发板资源介绍以 STM32H743 为核心的板载配置模板文档以一款典型的 STM32H7 开发板为例展开介绍其核心参数如下MCUSTM32H743主频 400MHz2MB FLASH1MB RAM外部 SDRAMW9825G6KH32MB外部 NAND FLASHH27U4G8F2512MB外部 FLASHW25Q25632MB常用外设LED 2 个DS0 红色接 PB1DS1 绿色接 PB0按键 4 个KEY_UP 兼具唤醒功能接 PA0K0 接 PH3K1 接 PH2K2 接 PC13常用接口USB 转串口、SD 卡接口、以太网接口、LCD 接口等调试接口标准 JTAG/SWD。开发板外观如下上述资源描述与模板工程中的源码相互印证。例如 applications/main.c 中通过#define LED0_PIN GET_PIN(B, 1)定义 LED0 引脚与文档所述DS0 红色 LED 接 PB1完全一致rtconfig.h 中的#define SOC_STM32H743II则对应 STM32H743II 型号II 后缀表示 176 引脚、2MB Flash 的封装。模板文档要求维护者在开发板介绍一节补全自己开发板的具体照片与资源清单最终产出的文档即为该 BSP 面向用户的使用手册。外设支持状态模板 BSP 的默认驱动边界模板文档用一张双分区表格明确标注了外设的支持现状这是评估 BSP 成熟度、决定后续配置方向的关键依据板载外设支持情况备注USB 转串口支持QSPI Flash暂不支持以太网暂不支持SD 卡暂不支持CAN暂不支持SDRAM暂不支持MPU9250 六轴传感器暂不支持片上外设支持情况备注GPIO支持PA0, PA1... PK15 --- PIN: 0, 1...176UART支持SPI暂不支持I2C暂不支持SDIO暂不支持即将支持RTC暂不支持即将支持PWM暂不支持即将支持USB Device暂不支持即将支持USB Host暂不支持即将支持IWG暂不支持即将支持这张表在源码中有直接的对应关系查看 board/Kconfig 可以发现默认使能的片上外设仅有 GPIO 与 UARTBSP_USING_GPIO、BSP_USING_UART、BSP_USING_UART1均为默认开启其余外设对应的驱动配置项虽已通过source $(BSP_DIR)/../libraries/HAL_Drivers/drivers/Kconfig引入菜单体系但默认处于关闭状态这正与暂不支持的表格标注吻合。GPIO 引脚编号说明PA0, PA1...PK15 对应 PIN: 0, 1...176则揭示了 RT-Thread PIN 设备框架的编号规则片上引脚被顺序映射为统一的逻辑编号供rt_pin_write、rt_pin_read等统一 API 使用。快速上手MDK5 环境下把 RT-Thread 跑起来快速上手章节面向刚接触 RT-Thread 的新手模板 BSP 同时提供 MDK4、MDK5、IAR 工程并支持 GCC 开发环境下面以 MDK5 为例介绍完整流程。硬件连接使用数据线将开发板连接至 PC并打开电源开关。编译下载双击 project.uvprojx 打开 MDK5 工程编译并下载程序到开发板。工程默认配置使用 ST_LINK 仿真器下载程序在通过 ST_LINK 连接开发板的基础上点击下载按钮即可将程序下载到开发板。运行结果与验证下载程序成功后系统会自动运行板载 LED 开始闪烁。这一现象背后的实现位于 applications/main.c#include rtthread.h #include rtdevice.h #include board.h /* defined the LED0 pin: PB1 */ #define LED0_PIN GET_PIN(B, 1) int main(void) { int count 1; /* set LED0 pin mode to output */ rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT); while (count) { rt_pin_write(LED0_PIN, PIN_HIGH); rt_thread_mdelay(500); rt_pin_write(LED0_PIN, PIN_LOW); rt_thread_mdelay(500); } return RT_EOK; }可以看到程序先通过rt_pin_mode将 PB1 配置为输出模式随后在主循环中交替置高/置低该引脚每次状态翻转间调用rt_thread_mdelay(500)延时 500ms——这正是 LED 以 1 秒为周期闪烁的原因。rt_thread_mdelay会主动让出 CPU体现 RTOS 下延时即让出调度的典型写法而非裸机式的忙等待。接着连接开发板对应串口到 PC在终端工具中打开相应串口参数 115200-8-1-N复位设备后即可看到 RT-Thread 的启动输出信息\ | / - RT - Thread Operating System / | \ 4.0.1 build Mar 5 2019 2006 - 2019 Copyright by rt-thread team msh 出现msh 提示符即代表系统内核、串口驱动与 FinSH 组件均已正常启动。这里的mshModule Shell是 RT-Thread 提供的命令行交互环境可用于执行系统命令与调试操作串口号 uart1 的默认配置可在 rtconfig.h 中看到#define RT_CONSOLE_DEVICE_NAME uart1将控制台绑定到串口 1。模板 BSP 默认开启了 GPIO、UART 与 FinSH/msh见 rtconfig.h 中RT_USING_MSH、FINSH_USING_MSH、RT_USING_SERIAL、RT_USING_PIN等宏定义因此这一开箱即用的效果是模板工程默认配置的直接体现。进阶使用用 ENV 工具开启更多板载资源模板 BSP 默认只开启了 GPIO 和串口 1 的功能。如果需要使用 SD 卡、Flash 等更多高级功能需要利用 ENV 工具对 BSP 进行配置。ENV 是 RT-Thread 官方的开发辅助工具仓库 tools/ 目录下的 sconsui.py、building.py、package.py 等脚本即为工程构建与软件包管理的底层实现其核心工作流如下进入 BSP 目录打开 ENV 工具在 bsp 目录下打开 env 工具其命令行入口已切换到当前 BSP 根目录。执行menuconfig配置工程输入menuconfig命令进入图形化配置界面按需开启外设与组件配置完成后保存退出。该命令读取 Kconfig 定义的菜单树顶层文件通过source $(RTT_DIR)/Kconfig引入内核配置、osource $PKGS_DIR/Kconfig引入软件包配置、rsource ../libraries/Kconfig引入 STM32 系列公共库配置而片上外设的开关则集中在 board/Kconfig 的 On-chip Peripheral Drivers 菜单中。开发者只需在菜单中勾选目标外设例如开启 SPI、SDIO、RTC 等即可获得对应的BSP_USING_XXX宏。执行pkgs --update更新软件包STM32 HAL/CMSIS 驱动由软件包提供首次从模板创建 BSP 或修改配置后需要先执行该命令下载依赖如果没有拉取到软件包请先执行pkgs --upgrade更新软件包索引再重新执行pkgs --update。这一点可在 rtconfig.h 中印证默认配置已声明PKG_USING_STM32H7_HAL_DRIVER与PKG_USING_STM32H7_CMSIS_DRIVER即 STM32H7 的 HAL 库与 CMSIS 驱动均以软件包形式管理必须通过网络拉取后才能完成编译。执行scons --targetmdk4/mdk5/iar重新生成工程配置变更后需重新生成 MDK/IAR 工程文件使新使能的外设驱动源码被纳入构建。若使用 GCC 工具链直接执行scons即可编译整个工程。menuconfig生成的配置会写回 rtconfig.h该文件是整个 BSP 编译期的配置中枢内核选项RT_TICK_PER_SECOND、RT_NAME_MAX等、组件选项RT_USING_MSH、RT_USING_SERIAL等以及外设选项BSP_USING_GPIO、BSP_USING_UART1全部以宏定义形式集中于此SConscript 则通过env.Append(CPPDEFINES [STM32H743xx])为编译过程注入芯片型号宏保证 HAL 库与驱动代码按 STM32H743 的寄存器定义展开。关于各类外设驱动的更详细使用教程如具体外设驱动的使能方法、API 调用示例、常见问题排查请参考 STM32 系列 BSP 外设驱动使用教程该文档位于 bsp/stm32/docs 目录是 STM32 全系列 BSP 外设开发的核心参考。从模板到源码BSP 底层的板级初始化链路进阶配置之外理解模板 BSP 的底层初始化逻辑有助于开发者从零开始裁剪或新建自己的 STM32H7 板级支持包。模板 BSP 的板级初始化主要分布在 board/board.c 与 board/board.h 中。时钟配置SystemClock_Config()完成系统时钟树的初始化——启用 HSE 外部高速晶振作为 PLL 输入源通过 PLLM5、PLLN160、PLLP2 的分频倍频组合得到系统时钟并将 SYSCLK、HCLK、APB1/APB2/APB3/APB4 各总线时钟域配置为对应分频最后为 USART1 选择 D2PCLK2 作为外设时钟源。这套配置直接支撑了 400MHz 主频目标下的稳定运行也是串口能够以 115200 波特率正常输出的前提。内存布局与堆区由于 RT-Thread 的堆内存管理需要知道可用 RAM 的边界board/board.h 中定义了#define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000) #define STM32_FLASH_SIZE (2048 * 1024) #define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS STM32_FLASH_SIZE)) #define STM32_SRAM_SIZE (512) #define STM32_SRAM_END (0x24000000 STM32_SRAM_SIZE * 1024) #if defined(__ARMCC_VERSION) extern int Image$$RW_IRAM1$$ZI$$Limit; #define HEAP_BEGIN (Image$$RW_IRAM1$$ZI$$Limit) #elif __ICCARM__ #pragma sectionCSTACK #define HEAP_BEGIN (__segment_end(CSTACK)) #else extern int __bss_end; #define HEAP_BEGIN (__bss_end) #endif #define HEAP_END STM32_SRAM_END其中HEAP_BEGIN根据编译工具链的不同而不同MDKARMCC下取自链接器生成的Image$$RW_IRAM1$$ZI$$LimitIAR 下取自 CSTACK 段末尾GCC 下取自__bss_endHEAP_END指向 0x24000000 起始的 512KB SRAM 末尾。这种编译器无关的写法正是模板 BSP 能同时支持 MDK、IAR、GCC 三种开发环境的关键设计之一。注意事项与模板填写约定模板文档末尾预留了注意事项与联系人信息两节作为 BSP 维护者完善文档的固定占位注意事项用于记录已知问题、硬件勘误或特殊使用限制联系人信息则填写 BSP 维护人姓名、主页与邮箱便于使用者反馈问题。此外模板中xxx占位符与开发板照片、资源清单等内容都需要维护者按实际硬件替换——这也是模板这一目录定位的体现它同时服务于最终用户的 BSP 使用手册与新 BSP 开发者的文档起点两个角色。总结一份文档贯通的上手链路综合来看这份 STM32H7 系列 BSP 模板 README 虽篇幅精简却完整覆盖了 BSP 使用的三条主线资源认知开发板硬件与外设支持矩阵、快速验证MDK5 编译下载 → LED 闪烁 → 串口 msh 输出、能力扩展ENV 工具 menuconfig 软件包更新 scons 重新生成工程。配合 board/Kconfig、board/board.c、applications/main.c 等源码开发者可以清晰地看到配置宏 → 驱动编译 → 设备注册 → 用户程序调用的完整链路。对于需要驱动 SD 卡、Flash、网络等更多资源的场景直接进入 STM32 系列 BSP 外设驱动使用教程 按需查阅即可。赞分享操作系统嵌入式物联网嵌入式OSRTOS【免费下载链接】rt-threadRT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/项目地址https://gitcode.com/gh_mirrors/rt/rt-thread点击查看免费下载相关推荐如何用 Colibrì 跑质量基准MMLU、HellaSwag、ARC-C评估 int4 容器的量化损失如何用 Colibrì 跑质量基准MMLU、HellaSwag、ARC C评估 int4 容器的量化损失 你手里有一个已经量化成 int4 的模型容器想操作系统嵌入式物联网嵌入式OSRTOSRT-Thread i.MX RT1050 系列 BSP 模板指南README 规范、快速上手与 ENV 进阶配置RT Thread i.MX RT1050 系列 BSP 模板指南README 规范、快速上手与 ENV 进阶配置 导读 RT Thread 在 bsp/nx操作系统嵌入式物联网嵌入式OSRTOSLifeOS 安装后如何验证 hooks 生效、身份 imports 解析与启动命令已接入LifeOS 安装后如何验证 hooks 生效、身份 imports 解析与启动命令已接入 LifeOS 装完不等于装好 —— 至少要通过 Workflows/操作系统嵌入式物联网嵌入式OSRTOS上一篇OpenDesign kami紙/纸设计系统实战指南从包契约到打印级排版的完整落地下一篇MOSS-Audio-8B-Thinking环境配置指南从零开始搭建完整音频AI开发环境创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
AI 长篇写小说怎么做?AI_NovelGenerator 本地实操完整指南 AI 长篇写小说怎么做?AI_NovelGenerator 本地实操完整指南 【免费下载链接】AI_NovelGenerator 使用ai生成多章节的长篇小说,自动衔接上下文、伏笔 项目地址: https://gitcode.com/GitHub_Trending/ai/AI_NovelGenerator
AI_NovelGenerator 是一套… · 2026/9/26 2:21:32
大模型API报错Invalid prompt排查指南:从请求结构到内容审核的完整链路 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 3:00:41
拒绝付费捆绑!三款干净解压软件分享 有没有很烦现在的解压工具,打开就要付费,装软件顺带装一堆乱七八糟的捆绑程序,体验特别差。 给大家分享三款干净无广告的解压缩软件:WinRAR、7‑Zip、Bandizip,全都没有捆绑。 重点说下 WinRAR,我日常主… · 2026/9/26 3:00:41
这是我的第一篇博客 我会在这里发表一些个人见解与讨论,很高兴记录自己的学习历程。我的目标不仅是升学上取得成果,还有完成自己儿时的梦想。我将会总结学习成果与一些技术上的问题。不仅可以对自己的学习总结提炼,还可以帮助到一些和我一样的小白。当然… · 2026/9/26 3:00:35
Codex Router macOS桌面体验:菜单栏托盘、灵动岛与控制中心完整使用指南 Codex Router macOS桌面体验:菜单栏托盘、灵动岛与控制中心完整使用指南 【免费下载链接】codex-router External-model router for Codex with guided Kimi OAuth/API, DeepSeek, safe migration, and rollback. 项目地址: https://gitcode.com/gh_mirrors/co/co… · 2026/9/26 3:00:35
企业新媒体公众号内容生产流程优化:从Word文档到AI排版发布 企业公众号内容生产可以看作一条数据处理流程:输入是Word、Markdown、纯文本与图片素材;中间步骤是结构识别、排版、人工修订;输出是面向具体账号的待发布文章。流程效率不取决于单个按钮有多快,而取决于每一步的输入能否成为下一… · 2026/9/26 3:00:29
MySQL数据库课程设计:员工考勤管理系统表结构设计与SQL实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 3:00:17
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46