资讯动态

Zephyr 开发板实战:Realtek RTL87x2G Model A 评估板(rtl87x2g_evb_a)烧录、运行与调试指南

发布时间:2026/9/21 18:51:55 来源:尧图企业网站定制
操作系统嵌入式RTOS物联网【免费下载链接】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 仓库中 boards/realtek/rtl87x2g_evb_a/doc/index.rst 为骨架系统讲解 Realtek RTL87x2G Model A 评估板Zephyr 板级标识rtl87x2g_evb_a的硬件特性、支持的子板型号、烧录流程Realtek 固件 Zephyr 镜像、串口控制台使用以及 J-Link 调试方法。读完本文你将能独立完成该板从进入下载模式到在串口终端看到 Hello World再到断点调试的完整开发闭环。一、板卡概述RTL87x2G Model A 评估板RTL87x2G Model A 评估板RTL87x2G Model A Evaluation Board是 Realtek 官方评估板其核心设计理念是主板 可更换子板Daughter Board结构主板提供电源、显示、音频、LED、USB 转串口等通用外设子板承载具体的 RTL87x2G 系列 SoC。因此同一块主板可以适配多颗不同型号的 SoC方便开发者评估系列内不同芯片的差异。在 Zephyr 仓库中该板的元数据定义于 boards/realtek/rtl87x2g_evb_a/board.yml板名namertl87x2g_evb_a厂商vendorrealtek支持的 SoCsocsrtl8762gru、rtl8762grh、rtl8762gku、rtl8762gkh1.1 兼容的子板型号根据 boards/realtek/rtl87x2g_evb_a/doc/index.rst该评估板兼容以下子板子板对应 Zephyr 板级标识Board TargetRTL8762GRU/GKH Daughter Boardrtl87x2g_evb_a/rtl8762gru、rtl87x2g_evb_a/rtl8762grhRTL8762GKU/GKH Daughter Boardrtl87x2g_evb_a/rtl8762gku、rtl87x2g_evb_a/rtl8762gkhRTL8762GC Daughter Board当前不支持注意RTL8762GC 子板目前不支持在 Zephyr 中运行原因在于该芯片依赖外部 Flash导致 Flash 大小配置不固定variable flash size configuration无法被 Zephyr 的静态分区模型可靠描述。从 boards/realtek/rtl87x2g_evb_a/Kconfig.rtl87x2g_evb_a 可以看到板级 Kconfig 通过select SOC_RTL8762GKH/SOC_RTL8762GKU/SOC_RTL8762GRH/SOC_RTL8762GRU将板级配置与具体的 SoC 符号绑定config BOARD_RTL87X2G_EVB_A select SOC_RTL8762GKH if BOARD_RTL87X2G_EVB_A_RTL8762GKH select SOC_RTL8762GKU if BOARD_RTL87X2G_EVB_A_RTL8762GKU select SOC_RTL8762GRH if BOARD_RTL87X2G_EVB_A_RTL8762GRH select SOC_RTL8762GRU if BOARD_RTL87X2G_EVB_A_RTL8762GRU仓库为每个子板型号都提供了独立的设备树、YAML 描述与 defconfigrtl87x2g_evb_a_rtl8762gru.dts/.yaml/_defconfigrtl87x2g_evb_a_rtl8762grh.dts/.yaml/_defconfigrtl87x2g_evb_a_rtl8762gku.dts/.yaml/_defconfigrtl87x2g_evb_a_rtl8762gkh.dts/.yaml/_defconfig1.2 板级特性评估板硬件资源见 boards/realtek/rtl87x2g_evb_a/doc/index.rst5V 转 3.3V 与 1.8V 的 LDO 电源模块QSPIGroup1显示接口音频模块接口AMIC、DMIC红色 LED 与 RGB LED 模块板载 FT232RL USB 转 UART 转换器串口烧录与日志输出的关键通路在设备树 rtl87x2g_evb_a_common.dtsi 中可以看到 LED 与 RGB LED 的 GPIO 定义led5: led5 { gpios gpioa 8 GPIO_ACTIVE_LOW; label LED 5; }; led7: led7 { gpios gpioa 9 GPIO_ACTIVE_LOW; label LED 7; }; rgb_green: rgb_green { gpios gpioa 8 GPIO_ACTIVE_LOW; label RGB Green LED; }; rgb_red: rgb_red { gpios gpioa 9 GPIO_ACTIVE_LOW; label RGB Red LED; };aliases中led0 led5即 Zephyr LED API/zephyr/drivers/led默认操作的是led5。需要注意设备树中的特别注释P1_0GPIOA 8与 P1_1GPIOA 9在 RTL87x2G 上默认复用为 SWD 功能一旦通过 GPIO API 驱动这些引脚例如点亮上面这些 LEDSWD 调试连接将失效。这对调试与 LED 演示同时进行时的排障很有参考价值。二、RTL87x2G 系列 SoC 硬件特性RTL87x2G 系列含 RTL8762G 与 RTL877xG 家族详见官方 RTL87x2G Introduction 文档具备以下通用硬件特性见 boards/realtek/rtl87x2g_evb_a/doc/index.rst类别特性内核Realtek KM4 核兼容 Arm Cortex-M55主频 40MHz最高 125MHz向量计算M-profile Vector ExtensionMVE缓存 / SRAM32KB I-Cache、16KB D-Cache、384KB SRAMPSRAM部分型号part numbers内置 MCM 4MB PSRAM外设硬件 Keyscan / Quad Decode、Flash 即时解密On-The-Fly Decryption、嵌入式 IR TX/RX、ISO7816 接口存储 / 总线SPIC / SPI_m / SPI_s / SDIO / SDeMMC模拟低功耗比较器、8 通道 AUXADC、24-bit HD ADC通信CAN Bus、RMII以太网、USB 2.0 High-Speed音频I2S / DAC / AMIC / DMIC / PDM显示SPIC / RGB888 / SEGCOM 显示接口值得强调的是这颗芯片的定位是同时覆盖音频、显示、连接BLE/CAN/USB与低功耗的无线 SoC而 Zephyr 侧已经为其接入了 GPIO、UART、Bluetoothbee_bt_hci、I2C、PWM、SPI、ADC、DMA、Crypto 等驱动见下文的 Supported Features 小节。2.1 Zephyr 支持的功能Supported Features.. zephyr:board-supported-hw::指令由 Zephyr 文档构建系统自动生成具体能力可以从子板的 YAML 文件 rtl87x2g_evb_a_rtl8762gru.yaml 中核实supported: - pinctrl - gpio - uart - counter - watchdog - bluetooth - i2c - pwm - entropy - dma - spi - crypto - adc对应 YAML 中声明的资源ram 176KB、flash 316KB支持zephyr与gnuarmemb两条工具链。testing.ignore_tags中包含pm即 Zephyr 测试框架中电源管理相关测试不在该板上运行。2.2 系统时钟与串口系统时钟RTL87x2G 系列 SoC 配置为使用内部 32KHz 时钟作为系统时钟源见 boards/realtek/rtl87x2g_evb_a/doc/index.rst。在 rtl87x2g_evb_a_common.dtsi 中CPU 时钟频率被设置为 40MHzcpu { clock-frequency 40000000; };。串口RTL87x2G 系列共 6 个 UART。默认使用 UART2 作为控制台与日志输出口。设备树中chosen节点将其指定为控制台与 Shell 串口chosen { zephyr,sram tcm0; zephyr,flash flash; zephyr,flash-controller fmc; zephyr,code-partition app_partition; zephyr,itcm tcm1; zephyr,console uart2; zephyr,shell-uart uart2; zephyr,bt-hci bee_bt_hci; };UART2 在设备树中的完整配置为current-speed 115200; parity none; stop-bits 1;>board_runner_args(jlink --deviceRTL87X2G --speed4000) include(${ZEPHYR_BASE}/boards/common/mpcli.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) include(${ZEPHYR_BASE}/boards/common/rtkprog.board.cmake)其中 boards/common/mpcli.board.cmake 中board_set_flasher_ifnset(mpcli)的作用就是若用户没有显式指定 flasher则默认使用 mpcli。此外该板同时注册了jlink与rtkprog两个可选的烧录/调试 runner因此既可以用 mpcli 烧录也可以后续用 J-Link 调试。3.2 拉取 Realtek 必备镜像要在 RTL87x2G 板上成功运行 Zephyr除了 Zephyr 镜像本身还必须先向芯片烧写Realtek 提供的六份必备镜像bootloader、补丁等底层固件。获取这些镜像的方式是通过 west blob 机制拉取hal_realtek模块中匹配的 blobwest blobs fetch hal_realtek --allow-regex bee/rtl87x2g/.*该命令会从 modules/hal_realtek 模块中下载bee/rtl87x2g/路径下的全部 blob 文件。执行时请确保已配置好 Zephyr 的 west 工作区west update完成hal_realtek模块存在。四、烧录流程详解4.1 进入下载模式Download ModeRTL87x2G 评估板通过板载FT232RL USB 转 UART 转换器完成串口烧录。进入下载模式的完整步骤见 boards/realtek/rtl87x2g_evb_a/doc/index.rstUSB 连接将 USB 线连接到 EVB 左下角的COM2端口。跳线配置用跳线将P3_1 连接到 TX、P3_0 连接到 RX以启用板载 FT232RL USB 转 UART 转换器对应前面 pinctrl 中 UART2_TXP3_0、UART2_RXP3_1 的交叉连接。拨动 DIP 开关将 EVB 正面或背面的 DIP 开关拨到ON位置此操作会将P0_3引脚接地。重启按下Reset按钮一次SoC 重启后即正式进入下载模式。4.2 烧录 Realtek 镜像进入下载模式后在包含build目录的根目录下执行以下命令west flash --port port_name --mp-json zephyr workspace/modules/hal/realtek/bee/tools/mpcli/configs/rtl87x2g_essential_images.json参数说明参数含义--port port_name指定串口设备名如 Linux 下的/dev/ttyUSB0Windows 下的COMx--mp-json path指定 mpcli 的 JSON 清单文件该文件描述了需要烧录的 Realtek 必备镜像列表路径位于 hal_realtek 模块内两点注意事项west flash默认假设你位于build目录所在的根目录若不在必须用--build-dir或-d显式指定构建目录。烧录前请确认串口未被其他程序占用例如占用该串口的串口控制台工具需要先关闭否则烧录会失败。4.3 烧录 Zephyr 镜像以 hello_world 为例Realtek 镜像烧写完成后即可构建并烧录 Zephyr 应用。以hello_world示例为例使用rtl8762gru子板目标west build -b rtl87x2g_evb_a/rtl8762gru samples/hello_world west flash --port port_name对应文档中的 zephyr-app-commands 指令展开后的等价命令为west build -b rtl87x2g_evb_a/rtl8762gru samples/hello_world --build-dir build west flash --build-dir build --port port_name由于 Zephyr 的镜像烧录也走同一串口通路此时开发板仍应处于下载模式。默认的 defconfigrtl87x2g_evb_a_rtl8762gru_defconfig会默认构建安全镜像CONFIG_CONSOLEy CONFIG_UART_CONSOLEy CONFIG_SERIALy CONFIG_UART_INTERRUPT_DRIVENy CONFIG_TRUSTED_EXECUTION_SECUREy CONFIG_ARM_SECURE_BUSFAULT_HARDFAULT_NMIy其中CONFIG_TRUSTED_EXECUTION_SECUREy表示默认以 TrustZone 安全态构建 Zephyr 镜像。4.4 进入正常模式Normal ModeZephyr 镜像烧写成功后将开发板切回正常运行状态将 DIP 开关拨回1OFF位置。按下Reset按钮一次重启 SoC设备进入正常模式并开始执行固件。4.5 Flash 分区布局从子板设备树 rtl87x2g_evb_a_rtl8762gru.dts 可以看到 Zephyr 代码分区与存储分区的静态布局flash { partitions { /* 0x402d000-0x4080000: Free space for Zephyr */ app_partition: partition2d000 { compatible zephyr,mapped-partition; label app-image; reg 0x2d000 DT_SIZE_K(316); }; storage_partition: partition7c000 { compatible zephyr,mapped-partition; label storage; reg 0x7c000 DT_SIZE_K(16); }; }; };即 Flash 从0x2d000偏移开始为 Zephyr 应用预留316KB空间与 YAML 中flash: 316一致0x7c000处为16KB的 storage 分区。这也解释了为什么依赖外部 Flash、容量不固定的 RTL8762GC 无法被 Zephyr 支持——分区布局需要固定且可预测。五、串口控制台观察运行输出Zephyr 控制台复用了烧录时的同一路 UART 接口因此请保持 USB 线、跳线连接状态不变并按以下步骤查看输出打开串口终端使用你偏好的串口工具如 PuTTY、Tera Term。连接端口选择对应 COM 端口与烧录时使用的端口一致。配置波特率设置为115200对应设备树中 UART2 的current-speed 115200。复位开发板按下 EVB 上的 Reset 按钮。复位后终端应输出Hello World! rtl87x2g_evb_a/rtl8762gru这里输出的字符串源自 samples/hello_world/src/main.c其中PRINTK/printk打印的板名取自设备树model Realtek RTL87x2G Model A Evaluation Board with RTL8762GRU Daughter Board见 rtl87x2g_evb_a_rtl8762gru.dts。若终端无输出请检查开发板是否处于正常模式DIP 开关在 1/OFF、跳线是否仍连接、串口是否被其他应用占用。六、J-Link 调试RTL87x2G 支持使用J-Link 调试器按常规方式调试应用断点、单步、变量查看等。板级配置中 J-Link 参数为--deviceRTL87X2G --speed4000见 board.cmake。J-Link 接线示意如下SWDIO、SWCLK、VCC、GND、SWO、RESET 等关键引脚对应关系见图再次提醒设备树注释明确说明 P1_0GPIOA 8与 P1_1GPIOA 9默认复用为SWD 功能若通过 GPIO API 操作了这两个引脚例如点亮 LEDSWD 调试连接会被禁用。这是LED 演示与J-Link 调试之间需要注意的资源冲突。以hello_world为例调试会话启动命令为west build -b rtl87x2g_evb_a/rtl8762gru samples/hello_world west debug若已构建过且仅需调试可直接west debug命令会调用 J-Link GDB Server 并启动 GDB 会话。J-Link 的具体配置细节请参考 Realtek 官方《RTL87x2G J-Link Setup Guide》。七、总结从零到 Hello World 的完整链路阶段关键动作关键命令/配置拉取底层固件west blob 获取 Realtek 必备镜像west blobs fetch hal_realtek --allow-regex bee/rtl87x2g/.*进入下载模式接 COM2、跳线 P3_1/P3_0、DIP 拨 ON、按 Reset硬件操作烧录底层镜像mpcli runnerwest flash --port port --mp-json .../rtl87x2g_essential_images.json构建并烧录 Zephyr默认 mpcli runnerwest build -b rtl87x2g_evb_a/rtl8762gru samples/hello_worldwest flash --port port进入正常模式DIP 拨回 1、按 Reset硬件操作查看输出串口终端 115200-8-N-1Hello World! rtl87x2g_evb_a/rtl8762gru调试J-LinkSWDwest debug关键文件速查板级文档boards/realtek/rtl87x2g_evb_a/doc/index.rst板级元数据boards/realtek/rtl87x2g_evb_a/board.yml板级 CMakerunner 注册boards/realtek/rtl87x2g_evb_a/board.cmake通用设备树boards/realtek/rtl87x2g_evb_a/rtl87x2g_evb_a_common.dtsi引脚复用rtl87x2g_evb_a_grh_gru-pinctrl.dtsi、rtl87x2g_evb_a_gkh_gku-pinctrl.dtsi默认配置rtl87x2g_evb_a_rtl8762gru_defconfig默认烧录器boards/common/mpcli.board.cmake示例程序samples/hello_world赞分享操作系统嵌入式RTOS物联网【免费下载链接】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 移植指南基于 Realtek RTL8721F EVBAmebaG2评估板的开发、烧录与调试Zephyr 移植指南基于 Realtek RTL8721F EVBAmebaG2评估板的开发、烧录与调试 本指南以 Zephyr 仓库中 rtl8721操作系统嵌入式RTOS物联网Zephyr 板级支持指南Nuvoton NPCX9M6F EVB 评估板开发、时钟配置与 J-Link 烧录调试实战Zephyr 板级支持指南Nuvoton NPCX9M6F EVB 评估板开发、时钟配置与 J Link 烧录调试实战 导读 本文围绕 Zephyr RTOS操作系统嵌入式RTOS物联网Zephyr 下 Realtek RTS5817 MAA EVB 开发板实战指南指纹芯片评估平台的构建与烧录Zephyr 下 Realtek RTS5817 MAA EVB 开发板实战指南指纹芯片评估平台的构建与烧录 RTS5817 MAA EVB 是 Realte操作系统嵌入式RTOS物联网上一篇CANN asc-devkit矢量最大值计算API下一篇ZenML项目集成MLflow实验记录器实战指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价