RT-Thread 移植教程(基于 GD32F4XX)

硬件准备
  • GD32F4XX 开发板(如 GD32F450ZKT6)
  • J-Link/ST-Link 调试器
  • USB 转串口模块(可选,用于调试输出)
软件准备
  • RT-Thread Studio 或 Keil MDK/IAR 开发环境
  • RT-Thread 源码(从 GitHub 下载最新版本)
  • GD32F4xx 标准外设库(从官网获取)

移植步骤

创建基础工程

使用 RT-Thread Studio 新建 GD32F4XX 项目,或手动创建 Keil/IAR 工程,包含以下核心文件:

  • rtthread_startup.c(系统启动文件)
  • board.c(硬件初始化代码)
  • 链接脚本(如 gd32f4xx_flash.ld
配置系统时钟

修改 board.c 中的时钟初始化函数,适配 GD32F4XX 的时钟树:

void SystemClock_Config(void) {
    rcu_pll_config(RCU_PLLSRC_HXTAL, 25, 480); // 25MHz 晶振,PLL 输出 480MHz
    rcu_ck_sys_config(RCU_CKSYSSRC_PLLP);
    rcu_ahb_clock_config(RCU_AHB_CKSYS_DIV1); // AHB 时钟 = 480MHz
}
移植控制台输出

启用 UART 作为调试端口(如 USART0):

  1. rtconfig.h 中定义:
#define RT_USING_CONSOLE
#define BSP_USING_UART0
  1. 实现 rt_hw_console_output() 函数:
void rt_hw_console_output(const char *str) {
    while (*str) {
        usart_data_transmit(USART0, *str++);
        while (usart_flag_get(USART0, USART_FLAG_TBE) == RESET);
    }
}
配置定时器

使用 SysTick 作为系统时钟源:

  1. board.c 中初始化:
void Systick_Configuration(void) {
    systick_clock_source_config(SYSTICK_CLOCK_SOURCE_AHBCLK_DIV8);
    SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND);
}
  1. 实现 rt_tick_increase() 函数:
void SysTick_Handler(void) {
    rt_tick_increase();
}
添加 FinSH 组件

rtconfig.h 中启用 FinSH 并绑定串口:

#define RT_USING_FINSH
#define FINSH_USING_MSH
#define FINSH_USING_MSH_DEFAULT
#define FINSH_DEVICE_NAME "uart0"

验证与调试

编译与下载
  1. 编译工程,确保无错误。
  2. 通过调试器烧录程序至 GD32F4XX 开发板。
测试功能
  1. 串口终端显示 RT-Thread 启动 LOGO。
  2. 输入 list_device 命令验证驱动加载。
  3. 运行 malloc_test 测试动态内存。

扩展功能

添加以太网驱动
  1. 启用 LwIP 协议栈:
#define RT_USING_LWIP
#define RT_LWIP_USING_PING
  1. 实现 PHY 初始化(如 LAN8720)。
启用文件系统

挂载 SPI Flash 或 SD 卡:

#define RT_USING_DFS
#define RT_USING_DFS_ELMFAT

注意事项

  • 中断优先级需配置为符合 RT-Thread 要求(如 SysTick 为最高优先级)。
  • 确保堆栈大小充足(如 RT_MAIN_THREAD_STACK_SIZE 不少于 2KB)。
  • 若使用 RT-Thread Studio,可直接选择 GD32 芯片型号自动生成工程模板。

通过以上步骤,可完成 RT-Thread 在 GD32F4XX 上的基础移植,并进一步扩展外设功能。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐