ARTICLE DETAIL

资讯详情

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

Zephyr RTOS 在 GigaDevice GD32F403Z-EVAL 开发板上的入门指南:构建、烧录与调试

Zephyr RTOS 在 GigaDevice GD32F403Z-EVAL 开发板上的入门指南:构建、烧录与调试 Zephyr RTOS 在 GigaDevice GD32F403Z-EVAL 开发板上的入门指南构建、烧录与调试【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr本指南以 Zephyr 仓库中 GD32F403Z-EVAL 板级文档 为主体系统讲解这款基于 GigaDevice GD32F403ZECortex-M4F高性价比评估板的硬件资源、启动模式与跳线配置、Zephyr 工程构建流程以及通过板载 GD-Link 和 ROM Bootloader 两种方式烧录与调试的完整实操步骤。读完本文你将能够在 Zephyr 环境下独立完成该开发板的hello_world样例编译、烧录、串口监听与 GDB 调试。开发板概述面向 GD32F403 高性能 MCU 的调试平台GD32F403Z-EVALboard.yml 中定义板名gd32f403z_eval、全称GD32F403Z-EVAL是 GigaDevice 官方评估板用于对 GD32F403 系列 Cortex-M4F 高性能 MCU 进行设计验证与调试。其核心器件 GD32F403ZE 具备以下特性单核 ARM Cortex-M4F处理器带硬件浮点单元FPU最高168 MHz主频Flash 访问零等待周期512 KiB片内 Flash、96 KiBSRAM112 个 GPIO引脚从板级配置 gd32f403z_eval.yaml 可以看到该板在 Zephyr 中被声明为arch: arm、ram: 96、flash: 512支持 counter、pwm、watchdog、dma、spi 等外设工具链支持zephyr与gnuarmemb。板载硬件资源清单按官方板级文档GD32F403Z-EVAL 板载资源如下USB 接口mini-USB 连接器4 个用户 LED与4 个用户按键、复位按键CAN 接口ADC连接至电位器2 路 DAC 通道GD25Q40 4 Mib SPI FlashHY27UF081G2A 1 GiB NAND FlashAT24C02C 2 KiB EEPROM3.2 英寸 TFT LCD320×240PCM1770 立体声 DAC带耳机放大器Micro-SDHC 卡接口GD-Link 板载调试器——基于 CMSIS-DAP SWD 接口、通过 USB HID 实现调试通信上述大部分外设在 Zephyr 设备树 gd32f403z_eval.dts 中均有对应节点或可扩展空间例如 4 个 LED 分别映射到 GPIOF0–GPIOF3led2~led54 个按键映射到 GPIOA0唤醒键、GPIOC13篡改键、GPIOF4/GPIOF5用户键 1/2并定义了led0 led2、sw0 user_key1、pwm-led0 pwm_led、watchdog0 fwdgt等别名供 Zephyr 应用通过标准设备树别名直接引用。串口默认控制台配置GD32F403Z-EVAL 共提供5 个串行通信端口其中默认端口为UART0即 USART0位于PIN-9 / PIN-10。从 gd32f403z_eval-pinctrl.dtsi 的引脚复用定义可以确认USART0_TX_PA9_NORMPTX 复用至 PA9USART0_RX_PA10_NORMPRX 复用至 PA10。在 gd32f403z_eval.dts 中chosen节点将控制台与 shell 串口均指向usart0zephyr,console usart0、zephyr,shell-uart usart0并配置current-speed 115200gd32f403z_eval_defconfig 中则启用了CONFIG_CONSOLEy、CONFIG_UART_CONSOLEy、CONFIG_SERIALy。因此在默认配置下hello_world等样例的输出会直接出现在 USART0 上串口参数固定为115200 波特率、8 数据位、无校验、1 停止位8N1。启动模式与跳线配置在烧录程序之前必须先配置好启动Boot设置与串口路由跳线。板级文档给出了两组关键的跳线表Boot-0 / Boot-1启动源选择Boot-0Boot-1功能1-21-2SRAM从 SRAM 启动1-22-3Bootloader从系统 ROM Bootloader 启动2-3任意Flash从主 Flash 启动正常运行模式开发板默认从Flash 启动Boot-0 2-3。当需要使用 GD32 内置 ROM Bootloader 进行 ISP 烧录时需将 Boot-0 跳线置于 1-2、Boot-1 置于 2-3详见后文“使用 ROM Bootloader”一节。JP-5 / JP-6串口路由选择JP-5JP-6功能1-21-2USART0 连接到串口座 J22-32-3USB VBUS/ID 信号路由openopen悬空Free默认情况下 USART0 通过JP-5/6 1-2/1-2路由到 J2 串口座配合 USB 转串口线Linux 下通常识别为/dev/ttyUSB0即可完成串口输出监听。构建 Zephyr 内核与 hello_world 样例在开始构建前请确认已按 Zephyr 官方流程完成环境安装与工具链配置west、CMake、Ninja 及对应的 ARM 交叉工具链。构建命令如下west build -b gd32f403z_eval samples/hello_world该命令会以gd32f403z_eval为目标板编译 samples/hello_world 样例。构建产物中会包含可烧录的固件镜像若需要以 OpenOCD 方式调试板级 support/openocd.cfg 中提供了配套的 OpenOCD 目标配置接口为cmsis-dap对应 GD-Link、传输方式swd、芯片名gd32f403ze、CPUTAPID 0x790007a3、FLASH_SIZE 0x80000512 KiB并复用了 stm32f1x 的目标脚本。使用板载 GD-Link 烧录与调试GD32F403Z-EVAL 板载了 GD-Link 编程/调试器可通过 USB 完成固件烧录与在线调试此外板上的 J1、J100 编程/调试排针也支持任何兼容 ARM 的工具如外部 J-Link、OpenOCD。从 board.cmake 可以看到该板同时注册了openocd与gd32isp两种 runner其中gd32isp指定器件型号--deviceGD32F403ZET6因此west flash的默认行为取决于环境中的可用工具。步骤 1构建固件west build -b gd32f403z_eval samples/hello_world步骤 2监听串口输出在 Linux 下GD-Link 虚拟串口通常为/dev/ttyUSB0。使用 minicom 监听$ minicom -D /dev/ttyUSB0 -o-o选项表示 minicom 不发送 modem 初始化字符串。连接参数必须配置为速度Speed115200数据位Data8 bits校验ParityNone停止位Stop bits1步骤 3烧录镜像west flash完整形式为west build -b gd32f403z_eval samples/hello_world后执行west flash。烧录完成后按复位键终端应输出Hello World! gd32f403z_eval步骤 4GDB 调试west debug该命令会通过 GD-Link 的 SWD 接口启动调试会话。在 Zephyr 默认配置下gd32f403z_eval_defconfig 还启用了CONFIG_ARM_MPUy与CONFIG_HW_STACK_PROTECTIONy即默认固件自带 MPU 硬件栈保护调试时可利用硬件断点gdb_breakpoint_override hard进行可靠的单步与断点调试。使用 ROM BootloaderGD32 ISP烧录GD32F403 内置 ROM Bootloader支持通过串口进行 ISP 编程无需额外调试器。用户需要先安装 GigaDevice 官方提供的GD32 ISP Console软件建议安装路径为$HOME/.local/bin具体安装方式请以 GigaDevice 官方发布包为准。步骤 1构建固件west build -b gd32f403z_eval samples/hello_world步骤 2进入 Bootloader 模式移除 boot-0 跳线即 Boot-0 由 2-3 拨到 1-2配合 Boot-1 的 2-3 进入 Bootloader 启动源按下复位按键使 MCU 从 ROM Bootloader 启动。步骤 3通过 gd32isp runner 烧录west flash -r gd32isp [--port/dev/ttyUSB0]其中-r gd32isp显式指定使用 GD32 ISP 烧录方式对应 board.cmake 中的gd32isprunner 与器件参数--deviceGD32F403ZET6--port用于指定串口设备Linux 下通常为/dev/ttyUSB0。步骤 4监听串口输出并复位与 GD-Link 方式相同监听串口$ minicom -D /dev/ttyUSB0 -o串口参数依旧为115200 / 8 / None / 1。烧录完成后按下复位按键使 MCU 从 Flash 启动运行新固件终端应输出Hello World! gd32f403z_eval小结GD32F403Z-EVAL 在 Zephyr 中提供了开箱即用的板级支持设备树 gd32f403z_eval.dts 完整定义了 LED、按键、串口、ADC、PWM 与看门狗引脚复用由 gd32f403z_eval-pinctrl.dtsi 统一管理烧录调试方面同时支持板载 GD-LinkOpenOCD/CMSIS-DAP SWD与 GD32 ROM Bootloadergd32isp两条路径。对于需要零等待 Flash 高性能执行、且预算敏感的 Cortex-M4F 应用场景这块开发板是快速验证 Zephyr 应用的实用起点。【免费下载链接】zephyrPrimary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.项目地址: https://gitcode.com/GitHub_Trending/ze/zephyr创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表