新闻详情

新闻详情

首页 / 资讯中心 / 详情

RT-Thread STM32H747I-DISCO BSP 上手指南:从零跑通双核 Cortex-M7 开发板

发布时间:2026/9/28 2:58:13来源:尧图网络
RT-Thread STM32H747I-DISCO BSP 上手指南:从零跑通双核 Cortex-M7 开发板
操作系统嵌入式物联网嵌入式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 为 ST 官方 STM32H747I-DISCO 开发板提供了完整 BSP板级支持包本文以该 BSP 为核心系统讲解开发板资源、外设支持现状、MDK5/IAR/GCC 三种开发环境下的快速上手流程以及基于 ENV 工具的进阶配置方法并结合 BSP 源码剖析 LED 驱动、时钟树与依赖包机制。阅读完本文你将能够独立完成固件编译下载、串口观察系统启动并通过 menuconfig 扩展更多外设功能。开发板与 BSP 概览STM32H747I-DISCO又称 STM32H747-ST-DISCOVERY是 ST 推出的基于 ARM Cortex-M7 内核的评估开发板最高主频 480MHz。该 BSP 由 SummerGift 提供文档主体位于 bsp/stm32/stm32h747-st-discovery/README_zh.mdBSP 目录中同时提供 MDK5、IAR 工程文件以及 GCC 构建环境支持。开发板常用板载资源如下MCUSTM32H747主频 480MHz2MB FLASH1MB RAM常用接口USB 转串口、以太网接口、arduino 接口等调试接口标准 JTAG/SWD从 BSP 的board.h可以看到堆内存相关定义STM32_FLASH_START_ADRESS为0x8000000FLASH 大小为 2MB2048 * 1024SRAM 堆起始地址根据工具链分别取自链接器符号MDK 的Image$$RW_IRAM1$$ZI$$Limit、IAR 的CSTACK段结尾、GCC 的__bss_end堆结束地址为0x20000000 128KB详见 board/board.h。双核架构说明从 BSP 的构建配置可以确认这是一个典型的双核工程顶层 SConscript 中通过env.Append(CPPDEFINES [STM32H747xx, CORE_CM7])为整包编译定义了CORE_CM7宏指示本工程面向 Cortex-M7 内核编译同时board/CubeMX_Config/目录下并行存在 CM4 与 CM7 两套独立的 HAL 配置Inc/与Src/并有双核启动文件 system_stm32h7xx_dualcore_boot_cm4_cm7.c对应 MDK 工程的 CM4/CM7 两套启动文件与分散加载文件startup_stm32h747xx_CM4.s/startup_stm32h747xx_CM7.s体现了 STM32H747 双核协同运行的能力。外设支持情况本 BSP 目前对外设的支持情况如下表所示板载外设支持情况备注USB 转串口支持片上外设支持情况备注GPIO支持UART支持UART1对照 rtconfig.h 中BSP_USING_GPIO、BSP_USING_UART、BSP_USING_UART1三个宏均被定义说明默认配置即已开启 GPIO 与串口 1 功能其余片上外设需要按下文进阶使用章节通过 ENV 工具开启。快速上手本 BSP 为开发者提供 MDK5 和 IAR 工程并且支持 GCC 开发环境。下面以 MDK5 开发环境为例介绍如何将系统运行起来。请注意在执行编译工作前请先打开 ENV 执行以下指令该指令用于拉取必要的 HAL 库及 CMSIS 库否则无法通过编译pkgs --update这一步的必要性在 BSP 的构建脚本中有强制校验顶层 SConstruct 注册了bsp_pkg_check预构建动作在编译前检查packages/CMSIS-Core-latest、packages/stm32h7_cmsis_driver-latest、packages/stm32h7_hal_driver-latest三个目录是否存在任一缺失即中止构建并提示先执行pkgs --update若软件包未被拉取需先执行pkgs --upgrade再pkgs --update。对应地rtconfig.h 中也固化了PKG_USING_STM32H7_HAL_DRIVER、PKG_USING_STM32H7_CMSIS_DRIVER等软件包选项。硬件连接使用数据线连接开发板到 PC打开电源开关。编译下载双击 project.uvprojx 文件打开 MDK5MDK 需要 5.29 版本以上才支持 ST-LINK V3工程编译并下载程序到开发板。工程默认配置使用 ST_LINK 仿真器下载程序在通过 ST_LINK 连接开发板的基础上点击下载按钮即可下载程序到开发板。若使用 GCC 环境可在 rtconfig.py 中将CROSS_TOOL设为gcc并配置交叉编译器路径EXEC_PATH随后执行scons构建该文件同样支持keil与iar两种工具链的切换IAR 工程对应 project.ewpGCC 链接脚本为 board/linker_scripts/link.lds。构建完成后会自动生成rtthread.bin并输出镜像大小信息。运行结果下载程序成功之后系统会自动运行LED 闪烁。LED 闪烁逻辑实现在 applications/main.cmain函数中将 PI12 引脚GET_PIN(I, 12)即 GPIOI 的第 12 脚配置为输出模式随后循环执行rt_pin_write(LED0_PIN, PIN_HIGH)/rt_pin_write(LED0_PIN, PIN_LOW)并以rt_thread_mdelay(500)间隔 500ms 翻转形成 LED 以 1Hz 频率闪烁的视觉效果。这正是 BSP 默认开启 GPIO 功能的直接体现。连接开发板对应串口到 PC在终端工具里打开相应的串口115200-8-1-N复位设备后可以看到 RT-Thread 的输出信息\ | / - RT - Thread Operating System / | \ 4.0.3 build Feb 24 2020 2006 - 2020 Copyright by rt-thread team msh 出现msh 命令行提示符即代表系统启动成功。当前仓库 BSP 的 rtconfig.h 中RT_VER_NUM为0x50300控制台设备名为uart1RT_CONSOLE_DEVICE_NAME uart1终端以mshshellFINSH_USING_MSH交互可在此直接输入 RT-Thread 命令进行调试。系统时钟配置源码级BSP 的时钟树在 board/board.c 的SystemClock_Config中给出与 STM32H7 双核架构对应系统时钟源PLLHSE 外部晶振 25MHzSYSCLK400MHzCortex-M7 CPU 时钟HCLK200MHzCortex-M4 CPU 与总线矩阵时钟AHB 分频 2D1 APB3 / D2 APB1 / D2 APB2 / D3 APB4 均为 2 分频各 100MHzPLL 参数PLLM5、PLLN160、PLLP2、PLLQ4、PLLR2Flash 等待周期4FLASH_LATENCY_4供电配置为PWR_DIRECT_SMPS_SUPPLY且工作在电压等级 Scale1进阶使用此 BSP 默认只开启了 GPIO 和串口 1 的功能如果需使用更多高级功能需要利用 ENV 工具对 BSP 进行配置步骤如下在 bsp 下打开 env 工具。输入menuconfig命令配置工程配置好之后保存退出。输入pkgs --update命令更新软件包。输入scons --targetmdk4/mdk5/iar命令重新生成工程。本章节更多详细的介绍请参考 STM32 系列 BSP 外设驱动使用教程。menuconfig 配置项解读BSP 的菜单配置定义在根目录 Kconfig 与 board/Kconfig 中。前者声明了SOC_STM32H747XI芯片型号自动select SOC_SERIES_STM32H7并依次引入 RT-Thread 内核、软件包packages/Kconfig与 STM32 系列库../libraries/Kconfig的配置菜单。在Hardware Drivers Config → On-chip Peripheral Drivers菜单下开发者可精细控制串口 1 的行为主要配置项如下配置项含义默认值BSP_USING_GPIO启用 GPIO 驱动自动选中RT_USING_PINyBSP_USING_UART启用 UART 驱动框架自动选中RT_USING_SERIALyBSP_STM32_UART_V1_TX_TIMEOUTUART V1 框架发送超时时间ms6000BSP_USING_UART1启用 UART1yBSP_UART1_RX_USING_DMA启用 UART1 接收 DMA依赖RT_SERIAL_USING_DMAnBSP_UART1_TX_USING_DMA启用 UART1 发送 DMA依赖RT_SERIAL_USING_DMAnBSP_UART1_RX_BUFSIZEUART1 接收缓冲区大小Serial V2 框架范围 6465535256BSP_UART1_TX_BUFSIZEUART1 发送缓冲区大小Serial V2 框架范围 0655350BSP_UART1_DMA_PING_BUFSIZEUART1 RX DMA ping-pong 缓冲区大小范围 326553564配置保存后执行scons --targetmdk5或mdk4/iar重新生成工程文件即可将新增外设驱动纳入编译此后再次编译下载到开发板即可使用新功能。注意事项调试串口引脚映射BSP 的调试串口为串口 1引脚映射关系如下与 CubeMX 配置源文件 stm32h7xx_hal_msp.c 中GPIO_AF7_USART1复用配置一致PA9 ------ USART1_TX PA10 ------ USART1_RX串口参数为 115200-8-1-N波特率 115200、8 位数据位、1 位停止位、无校验这也是 rtconfig.h 中控制台设备指向uart1的对应实现。若更换板载串口连接或自行扩展串口需同步修改 CubeMX 工程的引脚分配并重新生成 HAL MSP 初始化代码。维护信息文档与 BSP 维护人SummerGiftBSP 首个版本于 2020-02-24 提交见 applications/main.c 变更记录。仓库中的中英文说明分别位于 README_zh.md 与 README.md。如需深入了解 STM32 系列 BSP 通用外设驱动的移植与使用方法可继续阅读 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点击查看免费下载相关推荐RT-Thread BSP 快速上手与进阶开发指南STM32F723E-DISCO 开发板Cortex-M7 216MHzRT Thread BSP 快速上手与进阶开发指南STM32F723E DISCO 开发板Cortex M7 216MHz 本指南以 STM32F72操作系统嵌入式物联网嵌入式OSRTOSRT-Thread 在 STM32H747I-DISCO 开发板上的 BSP 快速上手与进阶开发指南RT Thread 在 STM32H747I DISCO 开发板上的 BSP 快速上手与进阶开发指南 本篇技术指南围绕 RT Thread 开源仓库中为 STM操作系统嵌入式物联网嵌入式OSRTOSRT-Thread EK-RA8M1 BSP 实战指南在 Renesas RA8M1Cortex-M85 480MHz开发板上快速跑通 RT-ThreadRT Thread EK RA8M1 BSP 实战指南在 Renesas RA8M1Cortex M85 480MHz开发板上快速跑通 RT Thread操作系统嵌入式物联网嵌入式OSRTOS上一篇3分钟玩转Java串口通信jSerialComm零基础实战指南 下一篇5分钟快速上手elFinder开源文件管理器终极使用指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

检测报告管理程序全流程:从模板设计到签发放行的CNAS/CMA合规要点 2026/9/28 7:02:26

检测报告管理程序全流程:从模板设计到签发放行的CNAS/CMA合规要点

1. 报告管理程序为何值得单独成文:我在评审现场看到的连锁反应写实验室体系文件这些年,如果让我从几十份程序文件里挑一份最值得单独打磨的,我会选《检测报告管理程序》。原因不是它技术含量最高,而是它在CNAS/CMA实验室建设里最容…

阅读更多 →
PostgreSQL报错“An IO error occurred while sending to the backend”排查与解决 2026/9/28 7:02:26

PostgreSQL报错“An IO error occurred while sending to the backend”排查与解决

1. 先搞清楚这个报错到底在说什么1.1 一条报错背后的完整链路做PostgreSQL运维和开发的人,大概率都见过这么一条报错:An IO error occurred while sending to the backend。我第一次见到它是在凌晨两点,线上应用突然报错,一堆告警…

阅读更多 →
化工安全体系管理平台:风险管控与隐患闭环的数字化实践 2026/9/28 7:02:26

化工安全体系管理平台:风险管控与隐患闭环的数字化实践

干安全的朋友都有体会,化工企业安全管理最怕的不是不会管,而是不知道现场到底发生了什么。制度写了一大摞,台账堆了一柜子,风险辨识靠经验、隐患治理靠催办、作业票证靠纸质流转,真到迎检复盘的时候,连最基…

阅读更多 →
化工安全体系管理平台落地:风险辨识、作业票与隐患闭环实战 2026/9/28 7:02:26

化工安全体系管理平台落地:风险辨识、作业票与隐患闭环实战

化工行业安全体系管理平台,听起来是个很大的词,落到企业里其实只解决一个问题:让安全管理从纸面走向闭环。我在化工企业做数字化落地有十多年,见过太多把平台做成电子表格的案例。这个平台如果只用来记账、存档,那它不…

阅读更多 →
AI CLI工具实战:Codex与Claude命令行高效编程指南 2026/9/28 7:02:26

AI CLI工具实战:Codex与Claude命令行高效编程指南

1. CLI正在迎来第二春:为什么说"万物皆可命令行"1.1 一个老工具的逆袭这几年有个很有意思的趋势:我们在图形界面里折腾了大几十年,结果发现效率的终点又绕回了终端。命令行界面(CLI)从来不是过气技术&#x…

阅读更多 →
TRAE+Cursor全栈实战:从配置兑换码到多端项目落地 2026/9/28 7:02:19

TRAE+Cursor全栈实战:从配置兑换码到多端项目落地

TRAE、Cursor、AI程序员、全栈实战……这些词近半年几乎把开发者社区刷屏了。我在一线写代码十几年,从命令行工具一路用到图形界面,再到现在的 AI 结对编程,最大的感受是:写代码的门槛正在肉眼可见地降低,但“会不会用…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉