这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【gd32f527移植Zephyr】1、ZephyrRTOS移植到GD32F52

共2条 1/1 1 跳转至

【gd32f527移植Zephyr】1、ZephyrRTOS移植到GD32F527EVAL开发板计划

高工
2026-02-16 21:35:12     打赏

1. 项目概述

1.1 目标硬件

- 开发板: GD32F527 EVAL

- MCU: GD32F527

- 内核: ARM Cortex-M33

- 主频: 200MHz

- Flash: 具体型号决定

- RAM: 具体型号决定

1.2 现有 HAL 支持情况

Zephyr 中已有以下 GD32 系列支持:

- gd32a50x  - GD32A50x 系列 (Cortex-M23)

- gd32e10x  - GD32E10x 系列 (Cortex-M3)

- gd32e50x  - GD32E50x 系列 (Cortex-M4)

- gd32f3x0  - GD32F3x0 系列 (Cortex-M4)

- gd32f4xx  - GD32F4xx 系列 (Cortex-M4)

- gd32l23x  - GD32L23x 系列 (Cortex-M23)

- gd32vf103 - GD32VF103 系列 (RISC-V)

注意: 目前 Zephyr 暂未原生支持 GD32F5xx 系列,需要额外添加 SoC 支持层。


1.3 移植目标

在 GD32F527 EVAL 开发板上完整移植 Zephyr RTOS,支持以下功能:

- 基础系统启动与时钟

- GPIO 控制

- 串口调试 (UART)

- 定时器 (SysTick / TIMER)

- 看门狗 (WDG)

- SPI/I2C 等外设

2. 环境准备

我手上已经有zephyr的开发环境,略过。


3. 移植步骤

3.1 第一阶段:添加 GD32F5xx 系列 HAL 支持

3.1.1 创建 HAL 目录

在 modules/hal/gigadevice/ 目录下创建 GD32F5xx 支持:

modules/hal/gigadevice/gd32f5xx/

├── cmsis/

│   └── gd/

│       └── gd32f5xx/

│           ├── include/

│           │   ├── gd32f5xx.h

│           │   ├── system_gd32f5xx.h

│           │   ├── core_cm33.h

│           │   └── cmsis_armclang.h

│           └── source/

│               └── system_gd32f5xx.c

├── standard_peripheral/

│   ├── include/

│   │   ├── gd32f5xx_rcu.h

│   │   ├── gd32f5xx_gpio.h

│   │   ├── gd32f5xx_usart.h

│   │   └── ... (其他外设头文件)

│   └── source/

│       └── (外设源文件)

└── zephyr/

    └── Kconfig.gigadevice.gd32f5xx


3.1.2 系统初始化文件 (system_gd32f5xx.c)

3.2 第二阶段:创建板级支持包 (BSP)

3.2.1 创建板级目录结构

按照 Zephyr 标准,板级文件应放在 zephyr/boards/gd/ 目录下:

zephyr/boards/gd/gd32f527_eval/

├── board.yml                    # 板型元数据 (新格式)

├── Kconfig.gd32f527_eval        # 板型 Kconfig

├── gd32f527_eval.yaml           # 板型定义 (旧格式,兼容)

├── gd32f527_eval_defconfig     # 默认配置

├── gd32f527_eval.dts           # 设备树源文件

├── gd32f527_eval-pinctrl.dtsi  # 引脚复用配置

├── board.cmake                 # 烧录配置

├── prj.conf                    # 项目配置 (可选)

└── support/                    # 调试配置

    ├── flash.ld                # 链接脚本

    ├── openocd.cfg            # OpenOCD 配置

    └── JLinkDevices.xml       # J-Link 设备描述

3.2.2 板型元数据 (board.yml)

3.2.3 板型定义 (gd32f527_eval.yaml)

3.2.4 Kconfig 文件 (Kconfig.gd32f527_eval)

3.2.5 默认配置文件 (gd32f527_eval_defconfig)

3.2.6 设备树文件 (gd32f527_eval.dts)

3.2.7 引脚复用配置 (gd32f527_eval-pinctrl.dtsi)

3.3 第三阶段:SoC 支持层

3.3.1 创建 SoC 目录结构

zephyr/soc/arm/gd32f5xx/

├── Kconfig.soc

└── gd32f527/

    ├── Kconfig

    ├── linker.ld

    └── cmsis.c

3.3.2 SoC Kconfig (Kconfig.soc)

3.3.3 SoC 链接脚本 (linker.ld)

3.4 第四阶段:设备驱动

3.5 第五阶段:调试配置

4. 参考开发板结构

4.1 现有 GD32 开发板参考

zephyr/boards/gd/

├── gd32a503v_eval/     # GD32A503 Cortex-M23

├── gd32e103v_eval/     # GD32E103 Cortex-M3

├── gd32e507v_start/    # GD32E507 Cortex-M4

├── gd32e507z_eval/     # GD32E507 Cortex-M4

├── gd32f350r_eval/     # GD32F350 Cortex-M4

├── gd32f403z_eval/     # GD32F403 Cortex-M4

├── gd32f407v_start/    # GD32F407 Cortex-M4

├── gd32f450i_eval/     # GD32F450 Cortex-M4

├── gd32f450v_start/    # GD32F450 Cortex-M4

├── gd32f450z_eval/     # GD32F450 Cortex-M4

├── gd32f470i_eval/     # GD32F470 Cortex-M4

├── gd32l233r_eval/     # GD32L233 Cortex-M23

├── gd32vf103c_starter/ # GD32VF103 RISC-V

└── gd32vf103v_eval/    # GD32VF103 RISC-V

4.2 参考文件

建议参考以下开发板的实现:

- gd32f450i_eval - Cortex-M4,高 Flash/RAM

- gd32f470i_eval - Cortex-M4,功能完整

5. 编译与测试

6. 资源与参考

6.1 官方文档

- Zephyr Project Documentation: https://docs.zephyrproject.org/

- Zephyr Porting Guide: https://docs.zephyrproject.org/latest/guides/porting/

- Zephyr Board Porting: https://docs.zephyrproject.org/latest/guides/porting/board_porting.html


6.2 相关资料

- GD32F527 数据手册

- GD32F5xx 参考手册

- ARM Cortex-M33 技术参考手册

- CMSIS 文档


6.3 Zephyr 代码参考

- 现有 GD32 开发板: zephyr/boards/gd/

- GD32 HAL 层: modules/hal/gigadevice/

- GD32 驱动: drivers/







关键词: gd32f527     Zephyr     计划    

高工
2026-02-17 09:15:44     打赏
2楼

感觉可能要从其他家的M33核去魔改过来,比如NXP家的。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]