news 2026/9/21 17:33:55

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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/T2M(rzt2m_rsk)开发板文档为核心,系统讲解这块面向高性能多功能 MPU 的评估板的硬件资源、Zephyr 板级支持(BSP)实现、UART/GPIO/存储等外设的连接方式,以及基于 J-Link 的构建、调试与烧录全流程。读完本文,你将能够用west buildrzt2m_rsk/r9a07g075m24gbg/cr520目标编译并运行 hello_world 示例,并掌握如何从设备树源码中追溯板载资源的实际引脚与分区配置。

硬件概览:Renesas Starter Kit+ for RZ/T2M

RZ/T2M 是 Renesas 面向高速处理与高精度控制场景的多功能 MPU。Renesas Starter Kit+ for RZ/T2M(简称 RSK+RZT2M)是一块围绕该 MPU 打造的评估与开发板,由 board.yml 可确认其官方全称与 SoC 型号:

  • 板名:rzt2m_rsk(Renesas Starter Kit+ for RZ/T2M)
  • 板载 SoC:r9a07g075m24gbg(RZ/T2M MPU,320 引脚封装)

开发板通过 5V 输入供电,电源可来自直流电源插座(DC Power Jack)或 USB Type-C 接口。根据板级文档 index.rst,其核心特性如下:

  • 板载 RZ/T2M MPU(R9A07G075M24GBG,320 引脚)
  • 丰富的功能 IC:板载千兆以太网 PHY、Octal Flash 等,可以完整评估目标 MPU 的功能
  • 通用扩展接口:Pmod、Grove、QWIIC、mikroBUS
  • 排针(Pin Header):用户可自由与自己的硬件系统组合,评估 RZ/T2M
  • 板载仿真器电路:只需将 USB 线连接 PC 即可开始程序调试(随板附带两根 USB 线:一根用于仿真器,另一根用于供电)

从 SoC 层设备树 r9a07g075.dtsi 可以看到 RZ/T2M 的核心计算资源:双核 Arm Cortex-R52(arm,cortex-r52),配合 GIC v3 中断控制器(arm,gic-v3)、Armv8 架构定时器,以及 512KB 带 ECC 的 ATCM(cpu0_atcm,基址 0x00000000)与 64KB BTCM。板级设备树将zephyr,sram指定到cpu0_atcm,RAM 容量为 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 Mbit
NOR Flash256 Mbit
Octa Flash512 Mbit
HyperRAM512 Mbit
QSPI Serial Flash512 Mbit
I2C EEPROM32 Kbit

其中 QSPI Serial Flash(型号mx25u51245g,Macronix 512Mbit)在设备树中被配置为 Zephyr 的 flash 与代码分区来源,详情见后文“存储与启动分区”小节。

通信接口

板级文档列出的通信接口包括:

  • 调试接口:J-Link OB、MIPI-10、MIPI-20
  • 通信外设:Ethernet(以太网)、CAN、USB、RS485、UART、I2C、SPI

Zephyr 板级支持:设备树与配置结构

rzt2m_rsk板在 Zephyr 仓库中的目录结构(boards/renesas/rzt2m_rsk/)体现了标准的 Zephyr 板级布局:

  • Kconfig.rzt2m_rsk:定义BOARD_RZT2M_RSKselect SOC_R9A07G075M24GBG
  • board.cmake:声明默认调试器/烧录器为 J-Link
  • board.yml:板的元数据(名称、厂商、SoC)
  • rzt2m_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 通过chosenaliases建立系统级约定:

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 默认绑定 UART0;led0别名指向板载 LED0;sw0指向按键 SW1;看门狗wdt0可用作watchdog0

板载 LED 与按键

设备树中定义了 4 个 GPIO LED(led0~led3)与 2 个按键(sw1sw2):

leds { 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 引脚 6
LED1led1gpio19 引脚 4
LED2led2gpio20 引脚 0
LED3led3gpio23 引脚 4
按键 SW1sw1gpio10 引脚 5
按键 SW2sw2gpio16 引脚 3

按键通过irq2中断控制器(下降沿触发,见&irq2 { trigger-type = "falling"; })与gpio10irqs = <&irq2 5>关联,SW1 被映射为 Zephyr input 子系统事件INPUT_KEY_0

连接与 IO:默认引脚分配

板级文档明确指出,该板默认配置为:

  • UART0 连接到 USB 串口(引脚 K18、K19)
  • UART3 连接到 PMOD 排针(J25,引脚 H16、G20)
  • LED定义为led0led1led2led3
  • Zephyr 控制台使用 UART0

从引脚复用文件 rzt2m_rsk-pinctrl.dtsi 可以看到 UART0(SCI0)的引脚复用定义:

/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_XIP=n # Enable UART driver CONFIG_SERIAL=y CONFIG_UART_CONSOLE=y CONFIG_UART_INTERRUPT_DRIVEN=y # Enable console CONFIG_CONSOLE=y

其中CONFIG_XIP=n表示程序从 RAM 执行(非 XIP 模式),这是由 Renesas 的启动流程决定的。其余外设的引脚复用同样定义在 pinctrl 文件中,例如:

  • I2C1i2c1_default,SCL 位于 PORT_22 引脚 6、SDA 位于 PORT_22 引脚 7
  • SPI2spi2_pins,CK2/MOSI2/MISO2/SSL20 位于 PORT_18
  • XSPI0xspi0_default,覆盖 XSPI0_CKP/CKN/CS0/IO0~IO3/RESET0/RSTO0 等引脚
  • GPT0/GPT4gpt0_pinsgpt4_pins,用于 PWM/定时器输出(GTIOCA/GTIOCB)

设备树中还使能了adc0adc1spi2wdt0i2c1等外设节点,与 yaml 中supported列表一一对应。

存储与启动分区

板载 QSPI Serial Flash(mx25u51245g,64MB 地址空间)在设备树中被声明为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_partitionchosenzephyr,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 "--device=R9A07G075M2") include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)

即默认使用J-Link作为调试器与烧录器,并为 J-Link 指定目标器件R9A07G075M2

使用 J-Link OB(板载仿真器)

根据板级文档,要使用 RSK+RZT2M 上的 J-Link OB,需要执行以下步骤:

  1. 打开跳线 J9(用于切换调试连接)
  2. 将 micro-USB type-B 线连接到 J-Link OB 的 USB 接口(J10),此时 LED4 点亮

控制台

UART 端口通过USB-Serial 端口(CN16)访问,也就是上文所说的 UART0 连接 USB 串口(K18、K19)。

构建与调试 hello_world

板级文档给出了使用 hello_world 示例构建并调试的命令(对应:goals: build debug):

west 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,并检查连接的是 CN16(USB-Serial)而非其他串口;
  • 若烧录失败,请确认板卡已切换为 xSPI 启动模式。

参考资源

  • 板级文档:boards/renesas/rzt2m_rsk/doc/index.rst
  • 主设备树:rzt2m_rsk_r9a07g075m24gbg_cr520.dts
  • 引脚复用:rzt2m_rsk-pinctrl.dtsi
  • 板级 Kconfig:Kconfig.rzt2m_rsk
  • 默认配置:rzt2m_rsk_r9a07g075m24gbg_cr520_defconfig
  • 构建与烧录工具:board.cmake
  • SoC 设备树:r9a07g075.dtsi

RZ/T2M 的详细产品文档(数据手册、用户手册)可在 Renesas 官方 RZ/T2M 产品页面获取(板级文档中的RZT2M Product page链接指向该页面)。通过本文介绍的 BSP 结构与命令流程,你可以快速在 RSK+RZT2M 上运行 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/21 17:33:50

面试被问原理答不上来?一文搞懂眼泪知道手写实现

面试被问原理答不上来?一文搞懂眼泪知道手写实现 面试官问你:“说说你对眼泪知道的底层原理。”你脑子里一片空白,手心冒汗,只能支支吾吾说“就是知道”。这种尴尬,每个程序员都经历过。别慌,今天咱们不整虚的,直接上干货,用微服务架构的视角,带你一文搞懂“眼泪知道”这个概念。虽然这词儿听着像情感语录,但在我…

作者头像 李华
网站建设 2026/9/21 17:33:46

搞懂论文查重哪个好,3步源码解析搞定项目搭建

搞懂论文查重哪个好,3步源码解析搞定项目搭建 是不是刚学完 Python 语法,看着满屏代码却不知怎么落地? 别慌,这比背公式难多了。 今天直接拆解【论文查重哪个好】背后的技术逻辑,用【源码解析】带你从零搭一个可用的查重工具。 项目目标与场景痛点…

作者头像 李华
网站建设 2026/9/21 17:33:38

云是什么意思?保姆级教程拆解代码报错坑

云是什么意思?保姆级教程拆解代码报错坑 你从网上复制了一段连接阿里云 OSS 的代码,满怀期待地按回车,结果终端直接吐出一串红色错误: ConnectionTimeout 或者 AccessDenied…

作者头像 李华
网站建设 2026/9/21 17:33:32

网上购电影票系统面试题:从入门到精通的5个核心考点

网上购电影票系统面试题:从入门到精通的5个核心考点 官方文档太长抓不住重点?别慌。很多应届生做网上购电影票项目,看了一天文档还是懵的,根本分不清哪段代码是核心,哪句注释是废话。今天不熬鸡汤,直接拆解这个经典场景在面试中的高频陷阱。网上购电影票看似简单,实则涵盖了并发控制、数据一致性、状态机等后端核心…

作者头像 李华
网站建设 2026/9/21 17:33:32

季允石源码拆解:从API踩坑到精通的3步实战

季允石源码拆解:从API踩坑到精通的3步实战 版本升级后 API 全变了,这种崩溃感谁懂?我去年刚接手一个老旧项目,发现底层依赖的季允石模块直接删掉了三个核心方法,文档还没更新,排查了一整天才定位到问题。如果你也在经历这种“入门到精通”路上的断崖式下跌,别慌。今天咱们不聊虚的,直接翻开…

作者头像 李华
网站建设 2026/9/21 17:33:27

3个实战项目教你搞定ae素材免费下载避坑

3个实战项目教你搞定ae素材免费下载避坑 面试官盯着你问:“这素材哪来的?版权谁负责?”你答不上来,直接挂掉。 别慌,今天拆解一套基于 Go 的资产管理系统源码,看透 ae素材免费下载 背后的逻辑。 01 入口定位:从请求到磁盘的链路 很多开发者以为下载就是 curl -o file.bin…

作者头像 李华