GD32H759I-START 开发板 RT-Thread BSP 快速上手与进阶配置指南
2026/9/23 10:39:34 网站建设 项目流程

GD32H759I-START 开发板 RT-Thread BSP 快速上手与进阶配置指南

【免费下载链接】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

GD32H759I-START 是兆易创新推出的 GD32H7 系列评估板,搭载主频高达 600MHz 的 GD32H759IM 芯片(ARM Cortex-M7 内核),配合 RT-Thread 开源物联网实时操作系统,可用于高性能边缘计算、工业控制与人机交互等场景。本文以 bsp/gd32/arm/gd32h759i-start/README.md 为骨架,结合仓库内该 BSP 的源码、Kconfig 配置与构建脚本,完整讲解开发板资源、从零上电到串口输出"RT-Thread 启动横幅"的快速上手流程,以及通过 ENV 工具开启 UART、RTC 等高级外设的进阶配置方法,读者学完即可独立完成该 BSP 的烧录、验证与裁剪扩展。

开发板与芯片概览

GD32H759I-START(README 中亦称 GDH759I-START)是兆易创新面向 GD32H7 系列推出的评估板,定位是让开发者充分发挥 GD32H759IM 芯片的完整性能。

核心芯片 GD32H759IMT6 的关键规格如下:

项目参数
CPU 内核ARM Cortex-M7
最高主频600MHz
FLASH3840KB(约 3.75MB)
RAM1024KB(1MB)
调试接口GD-LINK(板载)

开发板常用板载资源:

  • 用户 LED:4 个,LED1(PC9)、LED2(PC10)、LED3(PC11)、LED4(PC12)
  • 电源指示灯:1 个红色 LED
  • 按键:2 个,User Key(PD15)与复位键 Reset(NRST)
  • 调试接口:GD-LINK(支持下载与仿真)

从源码侧可以进一步印证芯片的内存布局。在 bsp/gd32/arm/gd32h759i-start/board/board.h 中,BSP 将内部 SRAM 大小配置为 512KB(GD32_SRAM_SIZE 512,起始地址0x24000000),并预留了外部 SDRAM 区间定义(EXT_SDRAM_BEGIN 0xC0000000,大小 32MB),说明该评估板具备扩展 SDRAM 的硬件条件,后续如需大内存场景可在此基础上接入 SDRAM 驱动。

外设支持情况

该 BSP 当前对外设的支持情况如下:

类别外设支持情况备注
片上外设GPIO支持PA0, PA1... ---> PIN: 0, 1...121
片上外设UART支持UART0 - UART3
扩展模块暂无暂不支持暂不支持

其中 GPIO 的 PIN 编号规则为:从 PA0 开始按引脚序映射为 PIN 0,直到 PA0...PIN 121,对应 GD32H759 的引脚集合。该映射由 bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.c 与drv_gpio.h中的 PIN 索引表实现,应用层通过 RT-Thread 的 PIN 设备框架(rt_pin_mode/rt_pin_write)操作时即使用这套编号。

需要说明的是,"外设支持表"仅代表该 BSP默认开启并验证的能力。从 bsp/gd32/arm/libraries/gd32_drivers 目录结构可以看到,GD32 驱动库还提供了 ADC、CAN、硬件 I2C、PWM、RTC、SDIO、SDRAM、SPI、Timer、WDT 等更多驱动源文件(如drv_adc.cdrv_can.cdrv_rtc.cdrv_sdram.cdrv_timer.cdrv_wdt.c等),配合 ENV 工具裁剪配置后即可启用。

快速上手

快速上手章节面向刚接触 RT-Thread 的新手,只需遵循以下步骤即可让 RT-Thread 在开发板上运行起来并看到实验效果。本 BSP 同时提供 MDK5 工程(Keil MDK5)、GCC 开发环境支持,也可直接使用 RT-Thread Studio 开发。下面以 MDK5 开发环境为例。

硬件连接

  1. 使用数据线连接开发板的GD-LINK USB 口到 PC(用于下载与调试)。
  2. 使用另一根数据线连接开发板的USART(0) USB 口到 PC(用于串口通信与供电)。
  3. 开发板通过 USB 供电即可运行。

若串口无输出,请确认驱动安装完成,并在设备管理器中识别到对应的 COM 口。

编译下载

  1. 双击打开 BSP 根目录下的project.uvprojx(路径:bsp/gd32/arm/gd32h759i-start/project.uvprojx),进入 MDK5 工程。
  2. 点击Build(编译)按钮编译工程。
  3. 点击Download(下载)按钮将程序下载到开发板。

工程默认配置使用 GD-Link 仿真器下载程序,在通过 GD-Link 连接开发板的基础上,直接点击下载按钮即可烧录,无需额外配置调试器。

运行结果

下载成功后系统自动运行,表现为LED 闪烁——对应 bsp/gd32/arm/gd32h759i-start/applications/main.c 中的示例逻辑:main函数将 LED1(PC9)配置为推挽输出后,每 500ms 翻转一次电平,循环闪烁。

/* defined the LED1 pin: PC9 */ #define LED1_PIN GET_PIN(C, 9) int main(void) { int count = 1; /* set LED1 pin mode to output */ rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT); while (count++) { rt_pin_write(LED1_PIN, PIN_HIGH); rt_thread_mdelay(500); rt_pin_write(LED1_PIN, PIN_LOW); rt_thread_mdelay(500); } return RT_EOK; }

随后连接开发板对应串口到 PC,在终端工具(如 MobaXterm、SecureCRT、PuTTY)中打开相应串口,串口参数为115200-8-1-N(波特率 115200,数据位 8,停止位 1,无校验)。复位设备后可以看到 RT-Thread 的启动输出信息:

\ | / - RT - Thread Operating System / | \ 5.0.0 build Mar 3 2023 00:43:44 2006 - 2022 Copyright by RT-Thread team msh />

出现msh />提示符即代表系统启动成功,可以在此输入 RT-Thread 的 MSH 命令(如list_threadlist_device等)与系统交互。

从源码角度,这段启动流程由 bsp/gd32/arm/gd32h759i-start/board/board.c 中的rt_hw_board_init()驱动:设置中断向量表 VTOR 到 Flash 起始地址、使能 I-Cache 与 D-Cache、配置系统时钟(SystemClock_Config,内部将 SysTick 配置为RT_TICK_PER_SECOND频率)、初始化串口(rt_hw_usart_init)、完成板级组件初始化,并将控制台设备绑定为uart0rt_console_set_device(RT_CONSOLE_DEVICE_NAME))。注意 BSP 当前默认控制台设备为uart0(对应引脚 PF4/PF5),而非字面上的"串口1",这一点在阅读 README 中"默认只开启了 GPIO 和串口1"的表述时需结合 rtconfig.h 理解。

进阶使用

此 BSP 默认仅开启了 GPIO 与 UART0(控制台),如需使用更多板载资源与高级功能,需要利用ENV 工具对 BSP 进行配置。ENV 是 RT-Thread 提供的命令行配置工具(内嵌 menuconfig 图形化配置界面),操作步骤如下:

  1. 在 BSP 目录(bsp/gd32/arm/gd32h759i-start)下打开 ENV 工具。
  2. 输入menuconfig命令配置工程,按需勾选外设后保存并退出
  3. 输入pkgs --update命令更新软件包(拉取 GD32 芯片支持包等依赖)。
  4. 输入scons --target=mdk4/mdk5/iar命令重新生成对应 IDE 的工程文件。

重新生成的工程即包含你勾选的外设驱动,编译下载即可使用。

关于依赖包,bsp/gd32/arm/gd32h759i-start/SConstruct 中内置了依赖检查逻辑bsp_pkg_check:构建前会检查packages/gd32-arm-cmsis-latestpackages/gd32-arm-series-latest两个目录是否存在,若缺失则提示先执行pkgs --update;若拉取不到包,则需先执行pkgs --upgradepkgs --update。也就是说,首次构建前必须完成软件包更新,这也是 README 进阶步骤强调pkgs --update的原因。

构建脚本还支持多工具链切换,见 rtconfig.py:通过环境变量RTT_CC可指定gcc/keil/iar,分别对应 GCC(默认arm-none-eabi-交叉编译器)、Keil MDK(armcc)与 IAR(iccarm)三套编译环境,链接脚本分别使用board/linker_scripts/link.ldlink.sctlink.icf。GCC 调试模式默认-O0 -gdwarf-2,并会在构建后自动生成rtthread.bin与 map 文件。

外设驱动配置详解

进阶配置的核心入口是 bsp/gd32/arm/gd32h759i-start/board/Kconfig,其中以菜单形式组织了芯片型号、片上外设与板载外设的开关。BSP 顶层 Kconfig 依次引入 RT-Thread 内核配置、软件包配置(PKGS_DIR/Kconfig)与共享驱动库配置(../libraries/Kconfig),并在非 Nano 模式下引入board/Kconfig

芯片型号与 GPIO

  • SOC_SERIES_GD32H7xx:默认开启,标识芯片系列。
  • SOC_GD32H759IM:默认开启,选择具体型号,同时自动选中RT_USING_COMPONENTS_INITRT_USING_USER_MAIN(启用组件自动初始化和用户 main 线程)。
  • BSP_USING_GPIO:默认开启,启用 PIN 设备框架(select RT_USING_PIN),对应drv_gpio.c驱动。

UART 串口配置

BSP_USING_UART默认开启,并提供一个Serial 框架版本选择BSP_USING_SERIAL_V1(串口 V1 框架,默认)或BSP_USING_SERIAL_V2(串口 V2 框架)。选择 V2 后,可进一步为每个串口开启 RX/TX DMA、配置 ping-pong 缓冲与收发缓冲大小。当前默认配置(rtconfig.h)使用的是 Serial V1 框架(RT_USING_SERIAL_V1)。

四个串口的默认引脚与复用功能(AFIO)如下表所示:

串口默认使能TX 引脚RX 引脚复用功能
UART0PF4PF5AF4
UART1PA2PA3AF7
UART2PB10PB11AF7
UART3PC10PC11AF8

在 menuconfig 中,每个串口都提供BSP_UARTx_TX_PINBSP_UARTx_RX_PINBSP_UARTx_AFIO三个可配置项,可自由改成其他引脚组合。若使用 Serial V2 框架,还可配置以下参数(以 UART0 为例):

配置项含义取值范围默认值
BSP_UART0_RX_USING_DMA使能 UART0 RX DMA依赖RT_SERIAL_USING_DMA
BSP_UART0_TX_USING_DMA使能 UART0 TX DMA依赖RT_SERIAL_USING_DMA
BSP_UART0_DMA_PING_BUFSIZERX DMA ping-pong 缓冲大小16~6553564
BSP_UART0_RX_BUFSIZERX 缓冲大小64~65535128
BSP_UART0_TX_BUFSIZETX 缓冲大小0~65535128

串口底层驱动由 bsp/gd32/arm/libraries/gd32_drivers/drv_usart.c(V1 框架)与drv_usart_v2.c(V2 框架)实现,两套驱动共用一个drv_usart.h头文件,并通过 Kconfig 中的框架选择编译进工程。

RTC 实时时钟

BSP_USING_ONCHIP_RTC默认关闭,开启后自动启用 RT-Thread RTC 设备(RT_USING_RTC),并可选开启闹钟功能(BSP_USING_ALARM,对应RT_USING_ALARM)。闹钟可在Alarm0 与 Alarm1两个 RTC 闹钟通道中选择其一,对应 bsp/gd32/arm/libraries/gd32_drivers/drv_rtc.c 中的底层实现。

其他可扩展外设

board/Kconfig末尾通过source "$(BSP_DIR)/../libraries/gd32_drivers/Kconfig"引入共享驱动库的完整配置菜单,其中包括 ADC、CAN、硬件 I2C、PWM、SDIO、SDRAM、SPI、Timer、看门狗等外设开关。开发者可按需在 menuconfig 中勾选,例如在需要大内存缓冲或图形界面时开启 SDRAM 驱动(drv_sdram.c),结合 board.h 中预留的EXT_SDRAM_BEGIN内存区间使用。

注意事项与维护信息

  • 本 BSP 默认工程配置使用 GD-Link 仿真器下载,请确保 GD-Link 正确连接后再点击下载按钮。
  • 首次构建前务必先执行pkgs --update拉取 GD32 芯片支持包,否则 SConstruct 的依赖检查会直接中止构建。
  • 串口参数固定为 115200-8-1-N,终端工具需与之一致才能看到启动信息。
  • 该 BSP 由维护人 Astrozen 维护(邮箱:git@wirano.me),如在使用中发现问题可向其反馈。

整体而言,GD32H759I-START 的 RT-Thread BSP 提供了"开箱即用"的 MDK5/GCC/IAR 多工具链工程,默认点亮 LED 并输出 MSH 控制台,配合 ENV 工具与共享 GD32 驱动库可快速扩展至 UART、RTC、ADC、SDRAM 等丰富外设,是评估 GD32H7 高性能内核与进行 RT-Thread 应用开发的便捷起点。

【免费下载链接】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

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询