Zephyr 在 Renesas RZ/T2M RSK 评估板上的开发实战:板级支持、构建调试与烧录全指南

发布时间:2026/9/21 17:34:03
Zephyr 在 Renesas RZ/T2M RSK 评估板上的开发实战:板级支持、构建调试与烧录全指南 Zephyr 在 Renesas RZ/T2M RSK 评估板上的开发实战板级支持、构建调试与烧录全指南【免费下载链接】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 RTOS 仓库中 Renesas Starter Kit for RZ/T2Mrzt2m_rsk开发板文档为核心系统讲解这块面向高性能多功能 MPU 的评估板的硬件资源、Zephyr 板级支持BSP实现、UART/GPIO/存储等外设的连接方式以及基于 J-Link 的构建、调试与烧录全流程。读完本文你将能够用west build为rzt2m_rsk/r9a07g075m24gbg/cr520目标编译并运行 hello_world 示例并掌握如何从设备树源码中追溯板载资源的实际引脚与分区配置。硬件概览Renesas Starter Kit for RZ/T2MRZ/T2M 是 Renesas 面向高速处理与高精度控制场景的多功能 MPU。Renesas Starter Kit for RZ/T2M简称 RSKRZT2M是一块围绕该 MPU 打造的评估与开发板由 board.yml 可确认其官方全称与 SoC 型号板名rzt2m_rskRenesas Starter Kit for RZ/T2M板载 SoCr9a07g075m24gbgRZ/T2M MPU320 引脚封装开发板通过 5V 输入供电电源可来自直流电源插座DC Power Jack或 USB Type-C 接口。根据板级文档 index.rst其核心特性如下板载 RZ/T2M MPUR9A07G075M24GBG320 引脚丰富的功能 IC板载千兆以太网 PHY、Octal Flash 等可以完整评估目标 MPU 的功能通用扩展接口Pmod、Grove、QWIIC、mikroBUS排针Pin Header用户可自由与自己的硬件系统组合评估 RZ/T2M板载仿真器电路只需将 USB 线连接 PC 即可开始程序调试随板附带两根 USB 线一根用于仿真器另一根用于供电从 SoC 层设备树 r9a07g075.dtsi 可以看到 RZ/T2M 的核心计算资源双核 Arm Cortex-R52arm,cortex-r52配合 GIC v3 中断控制器arm,gic-v3、Armv8 架构定时器以及 512KB 带 ECC 的 ATCMcpu0_atcm基址 0x00000000与 64KB BTCM。板级设备树将zephyr,sram指定到cpu0_atcmRAM 容量为 2048KB见 rzt2m_rsk_r9a07g075m24gbg_cr520.yaml。上图来自板级文档目录清晰展示了 RZ/T2M 的架构分区左侧为面向电机控制与安全motor control w/safety的外设群CAN-FD、SPI、SCI、ΔΣ 接口、编码器接口、三角函数单元、12bit ADC 等右侧为面向网络安全network w/safety的外设群EtherCAT 从站控制器、带交换与 IEEE 1588 时间同步的 Ether MAC、USB HS 等并包含 2MB Shared RAM 与 16 通道 ×2 单元的 DMA。板载存储器件文档明确列出了板载存储组件括号内为容量存储器件容量SDRAM256 MbitNOR Flash256 MbitOcta Flash512 MbitHyperRAM512 MbitQSPI Serial Flash512 MbitI2C EEPROM32 Kbit其中 QSPI Serial Flash型号mx25u51245gMacronix 512Mbit在设备树中被配置为 Zephyr 的 flash 与代码分区来源详情见后文“存储与启动分区”小节。通信接口板级文档列出的通信接口包括调试接口J-Link OB、MIPI-10、MIPI-20通信外设Ethernet以太网、CAN、USB、RS485、UART、I2C、SPIZephyr 板级支持设备树与配置结构rzt2m_rsk板在 Zephyr 仓库中的目录结构boards/renesas/rzt2m_rsk/体现了标准的 Zephyr 板级布局Kconfig.rzt2m_rsk定义BOARD_RZT2M_RSK并select SOC_R9A07G075M24GBGboard.cmake声明默认调试器/烧录器为 J-Linkboard.yml板的元数据名称、厂商、SoCrzt2m_rsk-pinctrl.dtsi引脚复用配置rzt2m_rsk_r9a07g075m24gbg_cr520.dts主设备树rzt2m_rsk_r9a07g075m24gbg_cr520_defconfig板级默认 Kconfig 配置rzt2m_rsk_r9a07g075m24gbg_cr520.yaml目标标识与支持的驱动列表从 rzt2m_rsk_r9a07g075m24gbg_cr520.yaml 可以看到完整的板级标识信息identifier: rzt2m_rsk/r9a07g075m24gbg/cr520 name: Renesas Starter Kit for RZ/T2M type: mcu arch: arm ram: 2048 toolchain: - zephyr supported: - uart - gpio - pwm - adc - i2c - counter - dma - spi - watchdog vendor: renesas可见该板默认支持的 Zephyr 驱动子系统包括 UART、GPIO、PWM、ADC、I2C、Counter、DMA、SPI 与 Watchdog。设备树核心chosen 节点与别名主设备树 rzt2m_rsk_r9a07g075m24gbg_cr520.dts 通过chosen与aliases建立系统级约定chosen { zephyr,sram cpu0_atcm; /* 使用 CPU0 的 512KB ATCM 作为 SRAM */ zephyr,flash mx25u51245g; /* 板载 QSPI Serial Flash */ zephyr,code-partition slot0_partition; zephyr,console uart0; /* 控制台走 UART0 */ zephyr,shell-uart uart0; }; aliases { led0 led0; sw0 sw1; watchdog0 wdt0; };这意味着Zephyr 控制台与 shell 默认绑定 UART0led0别名指向板载 LED0sw0指向按键 SW1看门狗wdt0可用作watchdog0。板载 LED 与按键设备树中定义了 4 个 GPIO LEDled0~led3与 2 个按键sw1、sw2leds { compatible gpio-leds; led0: led0 { gpios gpio19 6 0; label led0; }; led1: led1 { gpios gpio19 4 0; label led1; }; led2: led2 { gpios gpio20 0 0; label led2; }; led3: led3 { gpios gpio23 4 0; label led3; }; }; gpio_keys { compatible gpio-keys; sw1: sw1 { label sw1; gpios gpio10 5 0; zephyr,code INPUT_KEY_0; }; sw2: sw2 { label sw2; gpios gpio16 3 0; zephyr,code INPUT_KEY_1; }; };各 LED/按键对应的 GPIO 控制器与引脚号如下资源设备树节点GPIO 引脚LED0led0gpio19 引脚 6LED1led1gpio19 引脚 4LED2led2gpio20 引脚 0LED3led3gpio23 引脚 4按键 SW1sw1gpio10 引脚 5按键 SW2sw2gpio16 引脚 3按键通过irq2中断控制器下降沿触发见irq2 { trigger-type falling; }与gpio10的irqs irq2 5关联SW1 被映射为 Zephyr input 子系统事件INPUT_KEY_0。连接与 IO默认引脚分配板级文档明确指出该板默认配置为UART0 连接到 USB 串口引脚 K18、K19UART3 连接到 PMOD 排针J25引脚 H16、G20LED定义为led0、led1、led2、led3Zephyr 控制台使用 UART0从引脚复用文件 rzt2m_rsk-pinctrl.dtsi 可以看到 UART0SCI0的引脚复用定义/omit-if-no-ref/ sci0_default: sci0_default { sci0-pinmux { pinmux RZT_PINMUX(PORT_16, 5, 1), /* TXD */ RZT_PINMUX(PORT_16, 6, 2); /* RXD */ }; };即 UART0 的 TXD 位于 PORT_16 引脚 5、RXD 位于 PORT_16 引脚 6。UART0 在设备树中被配置为 115200 波特率sci0 { pinctrl-0 sci0_default; pinctrl-names default; status okay; uart0: uart { current-speed 115200; status okay; }; };板级默认配置 rzt2m_rsk_r9a07g075m24gbg_cr520_defconfig 也印证了控制台相关使能CONFIG_XIPn # Enable UART driver CONFIG_SERIALy CONFIG_UART_CONSOLEy CONFIG_UART_INTERRUPT_DRIVENy # Enable console CONFIG_CONSOLEy其中CONFIG_XIPn表示程序从 RAM 执行非 XIP 模式这是由 Renesas 的启动流程决定的。其余外设的引脚复用同样定义在 pinctrl 文件中例如I2C1i2c1_defaultSCL 位于 PORT_22 引脚 6、SDA 位于 PORT_22 引脚 7SPI2spi2_pinsCK2/MOSI2/MISO2/SSL20 位于 PORT_18XSPI0xspi0_default覆盖 XSPI0_CKP/CKN/CS0/IO0~IO3/RESET0/RSTO0 等引脚GPT0/GPT4gpt0_pins、gpt4_pins用于 PWM/定时器输出GTIOCA/GTIOCB设备树中还使能了adc0、adc1、spi2、wdt0、i2c1等外设节点与 yaml 中supported列表一一对应。存储与启动分区板载 QSPI Serial Flashmx25u51245g64MB 地址空间在设备树中被声明为soc-nv-flash通过 Renesasrenesas,rz-qspi-xspi控制器访问映射地址范围0x60000000起 64MB。其分区布局如下定义于 rzt2m_rsk_r9a07g075m24gbg_cr520.dts分区标签地址偏移大小loader-paramloader_param0x000000000x4C只读loader-programloader_program0x0000004C56KB − 0x4C只读image-0slot0_partition0x0000E0004MB只读storagestorage_partition0x0040E00064MB − 4MB − 56KB其中slot0_partition被chosen的zephyr,code-partition引用是应用固件的存放位置storage_partition是剩余空间的存储分区。Flash 的write-block-size 1、erase-block-size 4096。编程与调试构建、调试与烧录调试器与烧录器配置board.cmake 中指定了默认调试/烧录工具链board_set_debugger_ifnset(jlink) board_set_flasher_ifnset(jlink) board_runner_args(jlink --deviceR9A07G075M2) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)即默认使用J-Link作为调试器与烧录器并为 J-Link 指定目标器件R9A07G075M2。使用 J-Link OB板载仿真器根据板级文档要使用 RSKRZT2M 上的 J-Link OB需要执行以下步骤打开跳线 J9用于切换调试连接将 micro-USB type-B 线连接到 J-Link OB 的 USB 接口J10此时 LED4 点亮控制台UART 端口通过USB-Serial 端口CN16访问也就是上文所说的 UART0 连接 USB 串口K18、K19。构建与调试 hello_world板级文档给出了使用 hello_world 示例构建并调试的命令对应:goals: build debugwest build -b rzt2m_rsk/r9a07g075m24gbg/cr520 samples/hello_world west debug -b rzt2m_rsk/r9a07g075m24gbg/cr520等价形式在示例目录下执行west build -b rzt2m_rsk/r9a07g075m24gbg/cr520 -t build与-t debug。编译目标为samples/hello_world构建完成后即可通过 J-Link 连接目标板进入调试会话。hello_world 的运行输出“Hello World! board_name”会通过 UART0 出现在连接 CN16 的串口终端上默认波特率 115200。烧录Flashing执行flash命令前必须将板卡设置为 xSPI 启动模式。随后运行west build -b rzt2m_rsk/r9a07g075m24gbg/cr520 samples/hello_world west flash -b rzt2m_rsk/r9a07g075m24gbg/cr520烧录过程由 J-Link 完成固件被写入slot0_partition对应的 QSPI Flash 区域偏移 0x0000E000 起 4MB之后板卡可从 xSPI 启动加载应用。常见问题提示若west debug无法连接请确认 J9 跳线已断开、J10 已连接且 LED4 点亮若串口无输出请确认终端波特率设置为 115200并检查连接的是 CN16USB-Serial而非其他串口若烧录失败请确认板卡已切换为 xSPI 启动模式。参考资源板级文档boards/renesas/rzt2m_rsk/doc/index.rst主设备树rzt2m_rsk_r9a07g075m24gbg_cr520.dts引脚复用rzt2m_rsk-pinctrl.dtsi板级 KconfigKconfig.rzt2m_rsk默认配置rzt2m_rsk_r9a07g075m24gbg_cr520_defconfig构建与烧录工具board.cmakeSoC 设备树r9a07g075.dtsiRZ/T2M 的详细产品文档数据手册、用户手册可在 Renesas 官方 RZ/T2M 产品页面获取板级文档中的RZT2M Product page链接指向该页面。通过本文介绍的 BSP 结构与命令流程你可以快速在 RSKRZT2M 上运行 Zephyr 应用并在此基础上扩展电机控制、工业以太网等 RZ/T2M 的典型场景。【免费下载链接】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),仅供参考