ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

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

GD32450Z-EVAL 开发板 RT-Thread 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/gd32/arm/gd32450z-eval 的 BSP 说明文档为核心系统介绍基于兆易创新 GD32F4xx 系列评估板 GD32450Z-EVAL 的 RT-Thread 移植方案从板载资源与外设支持现状到 MDK5 环境下的快速编译下载再到使用 ENV 工具通过menuconfig深度配置片上外设UART、SPI、ADC、CAN、RTC 等的完整流程。读完本文你将能够在 10 分钟内让 RT-Thread 在 GD32450Z-EVAL 上运行起来并具备按需裁剪与扩展外设驱动的实战能力。开发板与核心芯片简介GD32450Z-EVAL 是兆易创新推出的 GD32F4xx 系列评估板板载GD32F450ZKT6主控芯片。该开发板板载资源丰富可以充分发挥 GD32F450ZKT6 的芯片性能。GD32F450 系列基于 ARM Cortex-M4 内核带 FPU 与 DSP 指令集主频最高可达 200MHzBSP 说明文档“简介”一节描述为 168M而“板载资源”一节标注为 200MHz实际芯片最高主频以 GD32F450 数据手册为准片上集成 3072KB FLASH 与 256KB RAM。该 BSP 对应的工程配置位于bsp/gd32/arm/gd32450z-eval/rtconfig.py其中通过DEVICE -mcpucortex-m4 -mthumb -mfpufpv4-sp-d16 -mfloat-abihard -DGD32F450指定了 Cortex-M4 内核、单精度 VFPv4 FPU 硬件浮点以及GD32F450器件宏与芯片型号一一对应。板载资源一览开发板常用板载资源如下主控GD32F450ZKT6主频 200MHz3072KB FLASH256KB RAM常用外设LED3 个LED1PD4、LED2PD5、LED3PG3按键3 个K1PA0、K2PC13、K3PB14定时器General TM × 10、Advanced TM × 2、Basic TM × 2系统时钟 × 1看门狗 × 2RTC × 1USART × 4、UART × 4I2C × 3、I2S × 2SPI × 6CAN2.0B × 2USB2.0 OTG × 2以太网 × 1TFT-LCDEXMC/SDRAM × 1ADC × 3DAC × 2最多支持 114 个 GPIO常用接口USB 接口调试接口GD-LINK其中 LED1 的引脚定义PD4可以在 bsp/gd32/arm/gd32450z-eval/applications/main.c 中直接看到#define LED1_PIN GET_PIN(D, 4)这与文档描述完全一致。外设支持情况本 BSP 目前对外设的支持情况如下表片上外设支持情况备注GPIO支持PA0, PA1... --- PIN: 0, 1...113UART支持UART0 - UART7I2C支持I2C1SPI支持SPI0 - SPI2SPI FLASH支持ADC支持ADC0 - ADC2扩展模块支持情况备注暂无暂不支持暂不支持从 bsp/gd32/arm/gd32450z-eval/board/Kconfig 的源码结构看该 BSP 的外设驱动能力是通过板级 Kconfig 与公共驱动库bsp/gd32/arm/libraries/gd32_drivers协同实现的板级 Kconfig 负责外设开关与引脚选择公共驱动库则提供drv_gpio、drv_usart、drv_spi、drv_adc、drv_can、drv_rtc、drv_wdt、drv_sdio、drv_usbd、drv_usbh等底层实现。需要说明的是默认工程bsp/gd32/arm/gd32450z-eval/rtconfig.h只使能了 GPIO 与 UART0串口 V1 框架其余外设需要按“进阶使用”章节的步骤手动开启。快速上手使用说明分为两个章节快速上手面向刚接触 RT-Thread 的新手按简单步骤即可把系统跑起来与进阶使用面向需要调用更多板载资源的开发者通过 ENV 工具配置 BSP 开启更多功能。本 BSP 为开发者提供MDK4、MDK5 和 IAR 工程同时支持GCC 开发环境也可使用RT-Thread Studio开发。下面以 MDK5 开发环境为例介绍如何将系统运行起来。硬件连接使用数据线连接开发板到 PC使用 USB 转 232 连接 USART0打开电源开关。编译下载双击project.uvprojx文件打开 MDK5 工程编译并下载程序到开发板。工程默认配置使用GD-Link仿真器下载程序在通过 GD-Link 连接开发板的基础上点击下载按钮即可下载程序到开发板。该 BSP 根目录下同时提供了project.uvprojMDK4、project.uvprojxMDK5、project.ewp/project.ewwIAR以及对应的template.*模板工程开发者可依据工具链选择打开。运行结果下载程序成功之后系统会自动运行LED 闪烁。连接开发板对应串口到 PC在终端工具里打开相应的串口115200-8-1-N即波特率 115200、8 位数据位、1 位停止位、无校验复位设备后可以看到 RT-Thread 的输出信息\ | / - RT - Thread Operating System / | \ 4.0.4 build Jan 9 2021 2006 - 2021 Copyright by rt-thread team msh LED 闪烁的代码实现在 bsp/gd32/arm/gd32450z-eval/applications/main.cmain线程首先通过rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT)将 PD4 配置为输出模式随后在死循环中交替执行rt_pin_write输出高/低电平并延时 500ms形成 1Hz 闪烁节奏。控制台串口的配置则位于 bsp/gd32/arm/gd32450z-eval/rtconfig.hRT_CONSOLE_DEVICE_NAME uart0即系统默认把uart0作为调试控制台设备。说明上文串口 Banner 中显示的 “4.0.4 build Jan 9 2021” 为 BSP 文档记录时点的构建版本当前仓库 bsp/gd32/arm/gd32450z-eval/rtconfig.h 中RT_VER_NUM已更新为0x50300对应 5.3.0 版本实际编译输出的版本号以本地构建为准。进阶使用用 ENV 开启更多外设此 BSP 默认只开启了 GPIO 和 UART0 的功能如果需使用高级功能需要利用ENV 工具对 BSP 进行配置步骤如下在bsp/gd32/arm/gd32450z-eval目录下打开 ENV 工具Windows 下右键“Env 命令行”或在终端中进入该目录。输入menuconfig命令配置工程配置好之后保存退出。输入pkgs --update命令更新软件包。输入scons --targetmdk4/mdk5/iar命令重新生成工程按使用的 IDE 选择mdk4、mdk5或iar。执行上述第 4 步后ENV 会根据最新配置重新生成 MDK/IAR 工程文件然后再回到 IDE 中编译下载即可。板级 Kconfig 结构解读menuconfig的配置界面由 bsp/gd32/arm/gd32450z-eval/board/Kconfig 定义其菜单层级为Hardware Drivers Config硬件驱动配置Onboard Peripheral Drivers板载外设驱动当前为空菜单On-chip Peripheral Drivers片上外设驱动Board extended module Drivers扩展模块驱动当前为空菜单其中 “On-chip Peripheral Drivers” 菜单下可配置的外设及默认值如下表配置项功能默认值关联 RT-Thread 框架BSP_USING_GPIOGPIO 引脚驱动开启RT_USING_PINBSP_USING_UARTUART 串口开启RT_USING_SERIAL/RT_USING_SERIAL_V2BSP_USING_SPISPI 总线关闭RT_USING_SPIBSP_USING_ADCADC关闭RT_USING_ADCBSP_USING_TIM通用定时器关闭RT_USING_CLOCK_TIMEBSP_USING_ONCHIP_RTCRTC关闭RT_USING_RTC/RT_USING_ALARMBSP_USING_WDT看门狗关闭RT_USING_WDTBSP_USING_SDIOSDIO关闭RT_USING_SDIORT_USING_DFSBSP_USING_USBDUSB Device关闭RT_USING_USB_DEVICEBSP_USING_USBHUSB Host关闭RT_USING_USB_HOSTBSP_USING_CANCAN 总线关闭RT_USING_CANRT_USING_DEVICE_IPC这些开关在保存menuconfig配置后会被写入生成的rtconfig.h并与bsp/gd32/arm/libraries/gd32_drivers公共驱动库中的drv_*.c文件通过 SConscript 的if GetDepend(...)机制联动实现驱动的条件编译。UART 串口的精细化配置在BSP_USING_UART菜单下Kconfig 提供了两套串口框架的选择BSP_USING_SERIAL_V1使用 Serial V1 框架默认对应drv_usart.c与RT_USING_SERIALBSP_USING_SERIAL_V2使用 Serial V2 框架对应drv_usart_v2.c与RT_USING_SERIAL_V2并额外支持 RX/TX DMA 配置。板级代码 bsp/gd32/arm/gd32450z-eval/board/board.c 通过#ifdef RT_USING_SERIAL_V2分支分别引入drv_usart_v2.h或drv_usart.h实现两套框架的自动适配。以默认的 UART0 为例其可配置项包括配置项含义默认值BSP_UART0_TX_PINUART0 TX 引脚名PA9BSP_UART0_RX_PINUART0 RX 引脚名PA10BSP_UART0_AFIO复用功能号AF1若选择 Serial V2 框架还会出现以下 DMA 与缓冲区配置配置项含义取值范围默认值BSP_UART0_RX_USING_DMA使能 RX DMA开/关关BSP_UART0_TX_USING_DMA使能 TX DMA开/关关BSP_UART0_DMA_PING_BUFSIZERX DMA 乒乓缓冲大小16 ~ 6553564BSP_UART0_RX_BUFSIZERX 缓冲大小64 ~ 65535128BSP_UART0_TX_BUFSIZETX 缓冲大小0 ~ 65535128UART1 至 UART3 的配置项结构与 UART0 一致只是默认引脚不同如 UART1 默认 PA2/PA3、AF7UART3 默认 PC10/PC11、AF8按需使能即可。其他外设的引脚选择CAN使能BSP_USING_CAN后可分别开启 CAN0 / CAN1。CAN0 的 TX 引脚可在 PA12、PB9、PD1、PH13 中选择默认 PD1RX 引脚可在 PA11、PB8、PD0、PI9 中选择默认 PD0CAN1 的 TX 可在 PB6、PB13 中选择默认 PB6RX 可在 PB5、PI12 中选择默认 PB5。ADC可分别开启 ADC0、ADC1、ADC2。定时器可分别开启 TIM10、TIM11、TIM12。RTC开启后可进一步使能 RTC 闹钟并选择 Alarm0 或 Alarm1。USB Host开启后可启用 Udisk 驱动并可通过UDISK_MOUNTPOINT配置挂载目录默认/。源码级视角系统启动与内存布局从源码角度理解该 BSP 的启动流程有助于后续调试与裁剪系统时钟bsp/gd32/arm/gd32450z-eval/board/board.c 中的SystemClock_Config()完成SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND)与中断优先级设置RT_TICK_PER_SECOND在rtconfig.h中默认为 1000即系统节拍 1ms。SysTick 中断SysTick_Handler()依次调用rt_interrupt_enter()与rt_tick_increase()驱动 RT-Thread 内核时钟。板级初始化rt_hw_board_init()完成向量表重定位SCB-VTORFLASH 模式定位到 0x08000000、时钟配置、串口初始化rt_hw_usart_init、堆初始化与控制台设备绑定。内存堆bsp/gd32/arm/gd32450z-eval/board/board.h 定义了内部 SRAM 堆HEAP_BEGIN到GD32_SRAM_ENDSRAM 大小为 256KB以及外部 SDRAM 区间EXT_SDRAM_BEGIN0xC0000000 起 32MB。当通过 Kconfig 使能BSP_USING_SDRAM后rt_hw_board_init会把堆切换到外部 SDRAM见 board.c。注意事项与维护信息当前 BSP 的“注意事项”章节标注为“暂无”即无已知的额外使用限制。该 BSP 的维护人信息见 bsp/gd32/arm/gd32450z-eval/README.md 末尾社区开发者可参考 bsp/gd32/arm/README.md 与bsp/gd32/arm/libraries/gd32_drivers驱动库进一步了解 GD32 系列 BSP 的公共约定。总结GD32450Z-EVAL BSP 是 RT-Thread 在 GD32F4xx 平台上的典型参考实现默认工程开箱即用GPIO UART0通过 ENVmenuconfig即可按需点亮 SPI、ADC、CAN、RTC、SDIO、USB 等片上外设。建议读者先按“快速上手”跑通最小系统再结合 board/Kconfig 与libraries/gd32_drivers驱动源码逐项实验外设开关从而快速建立“配置驱动代码生成”的完整认知。赞分享操作系统嵌入式物联网嵌入式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 实战指南GD32103C-EVAL 开发板GD32F103VCT6快速上手与进阶配置RT Thread BSP 实战指南GD32103C EVAL 开发板GD32F103VCT6快速上手与进阶配置 本指南以 RT Thread 仓库中 b操作系统嵌入式物联网嵌入式OSRTOSRT-Thread BSP 开发指南GD32207I-EVAL 评估板GD32F20x 系列快速上手与进阶配置RT Thread BSP 开发指南GD32207I EVAL 评估板GD32F20x 系列快速上手与进阶配置 GD32207I EVAL 是兆易创新G操作系统嵌入式物联网嵌入式OSRTOSGD32H759I-START 开发板 RT-Thread BSP 快速上手与进阶配置指南GD32H759I START 开发板 RT Thread BSP 快速上手与进阶配置指南 GD32H759I START 是兆易创新推出的 GD32H7 系列操作系统嵌入式物联网嵌入式OSRTOS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表