news 2026/9/21 7:26:09

Zephyr 支持 Renesas FPB-RX140 开发板:RX140 快速原型板的构建、烧录与调试实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Zephyr 支持 Renesas FPB-RX140 开发板:RX140 快速原型板的构建、烧录与调试实战指南
  • 操作系统
  • 嵌入式
  • RTOS
  • 物联网

【免费下载链接】zephyr

Primary 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
点击查看免费下载

FPB-RX140(Fast Prototyping Board for RX140)是 Renesas 推出的低成本快速原型开发板,搭载 RX140 系列 MCU(R5F51406BGFN),面向 RX140 评估与各类应用原型开发。本文以 Zephyr 仓库中 fpb_rx140 板级文档 为核心,结合板卡定义、设备树、pinctrl、构建脚本与 SoC 时钟树等源码,完整讲解该板卡的硬件资源、Zephyr 板级支持、以及如何用标准 west 工作流完成构建、烧录与调试。读完本文,你将掌握在 Zephyr 下为 FPB-RX140 编写、编译、烧录和断点调试应用的完整流程,并理解板卡底层设备树与引脚复用配置的工作原理。

Renesas FPB-RX140 快速原型开发板实物布局

开发板概述与核心硬件规格

FPB-RX140 的定位是"廉价、易用、高扩展性"的 RX140 评估与原型开发平台:板上集成了仿真器电路(E2OB,E2 Emulator On Board),只需用一根 USB 线连接 PC 即可完成写入与调试;同时板载 Arduino Uno R3 兼容排针与两个 Digilent Pmod 接口,并提供对 MCU 全部引脚的过孔(through-hole)访问,扩展能力非常灵活。

MCU 原生引脚访问

  • MCU:R5F51406BGFN(板卡文档特性小节标注为 R5F51406ADFN,二者同属 RX140 系列,板级定义文件实际使用的是r5f51406bgfn,见 board.yml 与 Kconfig.fpb_rx140)
  • CPU 内核:32 位 RXv2 内核,最高主频 48 MHz
  • 存储:256 KB 代码闪存(Code Flash)、64 KB SRAM
  • 封装:80 引脚 LFQFP
  • 通过 2 × 40 引脚排针(默认未焊接)提供全部 MCU 引脚访问
  • 板上设有 RX MCU 电流测量点,便于进行高精度电流消耗测量
  • 主时钟使用 RX MCU 片上振荡器(HOCO),另提供 32.768 kHz 晶体振荡器作为子时钟(Sub Clock)

板卡的内存与工具链信息在 fpb_rx140.yaml 中登记为:ram: 64(KB)、flash: 256(KB)、arch: rx,支持zephyrcross-compile两类工具链,当前默认启用的驱动为gpioserial

系统控制与生态扩展

  • 双路 5 V 输入电源:USB 供电,或通过 2 引脚排针(默认未焊接)接入外部电源
  • 板载调试器/编程器:E2 仿真器 On Board(E2OB,FINE 接口),USB 直连即可下载与调试
  • 指示灯:两颗绿色用户 LED(LED1、LED2)、一颗绿色电源 LED(指示稳压电源就绪)、一颗黄色调试 LED(指示调试连接状态)
  • 按键:一颗用户按键(SW1)、一颗复位按键(RESET)
  • 生态扩展:两个 Digilent Pmod 接口、一个 Arduino Uno R3 兼容排针

Zephyr 板级支持:从识别到构建

在 Zephyr 中,一块板卡被识别的链路是:board.yml(west 元数据)→fpb_rx140.yaml(板卡索引)→Kconfig.fpb_rx140(选择 SoC)→ SoC 层的Kconfig.soc(选择系列)。FPB-RX140 在这条链路上都有对应文件:

  • boards/renesas/fpb_rx140/board.yml:声明板卡名fpb_rx140、全名Fast Prototyping Board for RX140、厂商renesas,SoC 为r5f51406bgfn
  • boards/renesas/fpb_rx140/Kconfig.fpb_rx140:config BOARD_FPB_RX140通过select SOC_R5F51406BGFN关联到 SoC
  • soc/renesas/rx/rx140/Kconfig.soc:定义SOC_SERIES_RX140(属于SOC_FAMILY_RENESAS_RX),并列出SOC_R5F51406BDFNSOC_R5F51406BGFN两款 SoC 型号,SOC符号默认解析为r5f51406bgfn

板卡默认配置 fpb_rx140_defconfig 启用了最小可用集:

# Enable GPIO CONFIG_GPIO=y # Enable UART driver CONFIG_SERIAL=y CONFIG_UART_INTERRUPT_DRIVEN=y # Enable console CONFIG_CONSOLE=y CONFIG_UART_CONSOLE=y

即默认开启 GPIO、串口(含中断驱动模式)与控制台/串口控制台,保证hello_world等样例开箱即用。

支持的硬件特性

FPB-RX140 在 Zephyr 中支持的特性由板卡文档中的zephyr:board-supported-hw::指令自动生成,完整列表以构建时的实际支持为准。从设备树与 defconfig 可以确认的已启用能力包括:

  • GPIOioport2ioport3(板级 LED 与按键挂载其上)
  • 串口 UART:SCI5 上的uart5,默认 115200 baud,作为 Zephyr 控制台(zephyr,console/zephyr,shell-uart
  • PWM:MTU1 定时器通道(P20/MTIOC1A)
  • I2C:RIIC0,400 kHz
  • SPI:RSPI0
  • ADC:引脚 P41 模拟输入
  • 独立看门狗(IWDT):窗口模式
  • 数据闪存(Data Flash):划分 8 KB 存储分区
  • 定时器:CMT 3 MHz

构建与烧录:标准 west 工作流

FPB-RX140 的应用可完全使用 Zephyr 标准流程构建、烧录与调试(对应 Zephyr 文档中的 build an application 与 run an application 章节)。以官方hello_world样例为例,在 Zephyr 仓库根目录执行:

west build -b fpb_rx140 samples/hello_world west flash

烧录细节:E2OB 与 J4 跳线

将程序烧录到 FPB-RX140 需要借助板载E2OB调试器,操作要点:

  1. 用 USB 线将开发板连接到宿主机 PC(同时完成供电与调试器枚举);
  2. 打开跳线 Jumper J4(断开相关回路后即可通过 E2OB 写入程序)。

Zephyr 为烧录提供了两种 runner,定义在 board.cmake:

board_runner_args(jlink "--device=R5F51406" "--iface=FINE" "--speed=1000" "--tool-opt=-jtagconf -1,-1 -autoconnect 1") board_runner_args(rfp "--device=RX100" "--tool=e2l" "--interface=fine" "--erase") include(${ZEPHYR_BASE}/boards/common/rfp.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
  • jlink:使用 SEGGER J-Link 工具,设备名R5F51406,接口 FINE,速率 1000 kHz,并透传-jtagconf -1,-1 -autoconnect 1自动连接参数;
  • rfp:使用 Renesas Flash Programmer(--tool=e2l,即 E2 Lite 兼容模式),接口fine,烧录前自动擦除(--erase)。

注释中还说明:--tool-opt=之后的参数会直接传递给底层工具,例如把--iface=JTAG写成--tool-opt=-if JTAG效果相同。运行时可用west flash --runner jlinkwest flash --runner rfp指定具体的烧录后端。

调试:Visual Studio Code 图形化调试

官方推荐的调试方式是在 Visual Studio Code 中安装 Renesas 提供的Renesas Debug extension,获得可视化调试界面。launch.json的推荐配置如下:

{ "version": "0.2.0", "configurations": [ { "type": "renesas-hardware", "request": "launch", "name": "RX140 Renesas Debugging E2lite", "target": { "deviceFamily": "RX", "device": "R5F51406", "debuggerType": "E2LITE", "serverParameters": [ "-uUseFine=", "1", "-w=", "0" ] } } ] }

说明:板卡文档中的示例在"debuggerType": "E2LITE"后缺少逗号,属于 JSON 语法笔误;上面给出的版本已补齐逗号,可直接复制使用。配置要点为:调试器类型选择renesas-hardware,设备族RX、器件型号R5F51406、调试器E2LITE,并通过serverParameters传入 FINE 接口使能(-uUseFine=1)与写保护关闭(-w=0)参数。

从设备树看板级资源分配

板级设备树 fpb_rx140.dts 完整定义了 FPB-RX140 在 Zephyr 中的硬件拓扑:

/ { model = "Renesas FPB-RX140 KIT"; compatible = "renesas,fpb_rx140"; chosen { zephyr,sram = &sram0; zephyr,flash = &code_flash; zephyr,flash-controller = &flash; zephyr,console = &uart5; zephyr,shell-uart = &uart5; }; ... };
  • chosen 节点:SRAM、代码闪存与闪存控制器分别指向sram0code_flashflash;控制台与 Shell 串口均绑定到uart5(SCI5,115200 baud)。
  • LED 与按键led1(ioport2 pin0,低电平有效)、led2(ioport3 pin2,低电平有效)、sw1(ioport3 pin0,上拉 + 低电平有效,事件码INPUT_KEY_0),并建立别名led0led1sw0watchdog0,因此应用代码可直接使用DT_ALIASLED0/SW0这类通用符号,无需关心具体引脚。
  • 时钟subclk(32.768 kHz 子时钟)与pclkblock(外设时钟块,时钟源为hoco,即 48 MHz 片上振荡器)被使能;cmt定时器配置为 3 MHz。
  • 外设mtu1使能 PWM(P20/MTIOC1A);sci5使能 UART;rspi0(SPI,ssl-assert = <0>)与i2c0(400 kHz)配置好引脚复用;data_flash划分出 8 KB 的storage分区(partition@0reg = <0x0 DT_SIZE_K(8)>),可用于设置(Settings)或 NVS 等存储后端;iwdt以窗口模式使能(window-start = <0x3000>window-end = <0x0300>)。

引脚复用:pinctrl 配置

外设引脚映射集中定义在 fpb_rx140-pinctrl.dtsi,采用 RX 系列统一的RX_PSEL复用宏:

  • SCI5(UART):P104 作为 TX、P103 作为 RX;
  • ADC:P41 作为模拟输入(renesas,analog-enable使能模拟通道);
  • RSPI0(SPI):P105/RSPCKA(时钟)、P16/MOSIA、P17/MISOA、P124/SSLA0(片选);
  • RIIC0(I2C):P17 作为 SDA、P16 作为 SCL;
  • MTU1(PWM):P20 作为 MTIOC1A 输出。

如需在应用中改接引脚,只需在此文件对应 group 中调整psels项,并保持pinctrl-0/pinctrl-names与节点一致即可。

SoC 时钟树

SoC 设备树 dts/rx/renesas/r5f51406.dtsi 给出了 RX140 的完整时钟树:外部主晶振xtal(8 MHz,默认禁用)、片上高速振荡器hoco(48 MHz,默认启用)、低速振荡器loco(4 MHz)、子时钟subclk(32.768 kHz)与 IWDT 低速时钟iwdtlsclk(15 kHz);PLL 与pclkblock(MSTPA/MSTPB/MSTPC/MSTPD 寄存器组)负责为 ICLK、FCLK、PCLKB、PCLKD 等外设时钟分频。开发板pclkblock选择hoco作为时钟源,正是为了满足"以片上振荡器为主时钟、不依赖外部晶振"的硬件设计,板卡文档中"RX MCU on-chip oscillators as main clock"的表述在源码中得到了对应实现。

开发要点小结

  • 上手最快路径west build -b fpb_rx140 samples/hello_world && west flash(烧录前打开 Jumper J4,USB 连接 PC);
  • 调试:安装 VS Code 的 Renesas Debug extension,按上文launch.json配置即可图形化断点调试;
  • 扩展开发:利用 Arduino Uno R3 与双 Pmod 接口连接现成外设模块,所有 MCU 引脚均通过 2 × 40 排针引出,便于制作自定义原型;
  • 低功耗测量:板上电流测量点配合子时钟(32.768 kHz 晶体)可开展精密电流消耗评估;
  • 存储:8 KB Data Flash 分区(storage)可直接对接 Zephyr 的 NVS/Settings 子系统,实现参数持久化。

参考资料

  • 板级文档:boards/renesas/fpb_rx140/doc/index.rst
  • 板卡定义与构建:board.yml、fpb_rx140.yaml、board.cmake、fpb_rx140_defconfig
  • 设备树与引脚复用:fpb_rx140.dts、fpb_rx140-pinctrl.dtsi
  • SoC 层:Kconfig.fpb_rx140、soc/renesas/rx/rx140/Kconfig.soc、dts/rx/renesas/r5f51406.dtsi

RX140 硬件手册与 FPB-RX140 用户手册等更详细的硬件资料,可通过 Renesas 官网对应产品页面获取。

  • 操作系统
  • 嵌入式
  • RTOS
  • 物联网

【免费下载链接】zephyr

Primary 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
点击查看免费下载

相关推荐

上一篇:Nextcloud AIO OnlyOffice集成:企业级文档处理平台
下一篇:微信聊天记录怎么导出成文档?WeChatMsg 免费备份与年度报告完整教程

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

SysML接口块实战:住宅安防系统建模与EA落地指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

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

RV1126平台JD9366 MIPI屏驱动移植与触摸调试实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/21 6:58:31

STM32CubeMX+HAL库实战:串口printf重定向与ESP8266 AT指令调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华