ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

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

GD32H759I-START 开发板 RT-Thread BSP 快速上手与进阶配置指南 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-threadGD32H759I-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-STARTREADME 中亦称 GDH759I-START是兆易创新面向 GD32H7 系列推出的评估板定位是让开发者充分发挥 GD32H759IM 芯片的完整性能。核心芯片 GD32H759IMT6 的关键规格如下项目参数CPU 内核ARM Cortex-M7最高主频600MHzFLASH3840KB约 3.75MBRAM1024KB1MB调试接口GD-LINK板载开发板常用板载资源用户 LED4 个LED1PC9、LED2PC10、LED3PC11、LED4PC12电源指示灯1 个红色 LED按键2 个User KeyPD15与复位键 ResetNRST调试接口GD-LINK支持下载与仿真从源码侧可以进一步印证芯片的内存布局。在 bsp/gd32/arm/gd32h759i-start/board/board.h 中BSP 将内部 SRAM 大小配置为 512KBGD32_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.c、drv_can.c、drv_rtc.c、drv_sdram.c、drv_timer.c、drv_wdt.c等配合 ENV 工具裁剪配置后即可启用。快速上手快速上手章节面向刚接触 RT-Thread 的新手只需遵循以下步骤即可让 RT-Thread 在开发板上运行起来并看到实验效果。本 BSP 同时提供 MDK5 工程Keil MDK5、GCC 开发环境支持也可直接使用 RT-Thread Studio 开发。下面以 MDK5 开发环境为例。硬件连接使用数据线连接开发板的GD-LINK USB 口到 PC用于下载与调试。使用另一根数据线连接开发板的USART(0) USB 口到 PC用于串口通信与供电。开发板通过 USB 供电即可运行。若串口无输出请确认驱动安装完成并在设备管理器中识别到对应的 COM 口。编译下载双击打开 BSP 根目录下的project.uvprojx路径bsp/gd32/arm/gd32h759i-start/project.uvprojx进入 MDK5 工程。点击Build编译按钮编译工程。点击Download下载按钮将程序下载到开发板。工程默认配置使用 GD-Link 仿真器下载程序在通过 GD-Link 连接开发板的基础上直接点击下载按钮即可烧录无需额外配置调试器。运行结果下载成功后系统自动运行表现为LED 闪烁——对应 bsp/gd32/arm/gd32h759i-start/applications/main.c 中的示例逻辑main函数将 LED1PC9配置为推挽输出后每 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_thread、list_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 图形化配置界面操作步骤如下在 BSP 目录bsp/gd32/arm/gd32h759i-start下打开 ENV 工具。输入menuconfig命令配置工程按需勾选外设后保存并退出。输入pkgs --update命令更新软件包拉取 GD32 芯片支持包等依赖。输入scons --targetmdk4/mdk5/iar命令重新生成对应 IDE 的工程文件。重新生成的工程即包含你勾选的外设驱动编译下载即可使用。关于依赖包bsp/gd32/arm/gd32h759i-start/SConstruct 中内置了依赖检查逻辑bsp_pkg_check构建前会检查packages/gd32-arm-cmsis-latest与packages/gd32-arm-series-latest两个目录是否存在若缺失则提示先执行pkgs --update若拉取不到包则需先执行pkgs --upgrade再pkgs --update。也就是说首次构建前必须完成软件包更新这也是 README 进阶步骤强调pkgs --update的原因。构建脚本还支持多工具链切换见 rtconfig.py通过环境变量RTT_CC可指定gcc/keil/iar分别对应 GCC默认arm-none-eabi-交叉编译器、Keil MDKarmcc与 IARiccarm三套编译环境链接脚本分别使用board/linker_scripts/link.ld、link.sct、link.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。芯片型号与 GPIOSOC_SERIES_GD32H7xx默认开启标识芯片系列。SOC_GD32H759IM默认开启选择具体型号同时自动选中RT_USING_COMPONENTS_INIT与RT_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 引脚复用功能UART0是PF4PF5AF4UART1是PA2PA3AF7UART2否PB10PB11AF7UART3否PC10PC11AF8在 menuconfig 中每个串口都提供BSP_UARTx_TX_PIN、BSP_UARTx_RX_PIN、BSP_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~6553564BSP_UART0_RX_BUFSIZERX 缓冲大小64~65535128BSP_UART0_TX_BUFSIZETX 缓冲大小0~65535128串口底层驱动由 bsp/gd32/arm/libraries/gd32_drivers/drv_usart.cV1 框架与drv_usart_v2.cV2 框架实现两套驱动共用一个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 维护邮箱gitwirano.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),仅供参考
返回列表