- 操作系统
- 嵌入式
- RTOS
- 物联网
【免费下载链接】zephyr
Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
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,支持zephyr与cross-compile两类工具链,当前默认启用的驱动为gpio与serial。
系统控制与生态扩展
- 双路 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_R5F51406BDFN与SOC_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 可以确认的已启用能力包括:
- GPIO:
ioport2、ioport3(板级 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调试器,操作要点:
- 用 USB 线将开发板连接到宿主机 PC(同时完成供电与调试器枚举);
- 打开跳线 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 jlink或west 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、代码闪存与闪存控制器分别指向
sram0、code_flash、flash;控制台与 Shell 串口均绑定到uart5(SCI5,115200 baud)。 - LED 与按键:
led1(ioport2 pin0,低电平有效)、led2(ioport3 pin2,低电平有效)、sw1(ioport3 pin0,上拉 + 低电平有效,事件码INPUT_KEY_0),并建立别名led0、led1、sw0、watchdog0,因此应用代码可直接使用DT_ALIAS或LED0/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@0,reg = <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.
相关推荐
Zephyr 中 RSK-RX140 开发板支持详解:从板级硬件到 E2 Lite 烧录与调试
Zephyr 中 RSK RX140 开发板支持详解:从板级硬件到 E2 Lite 烧录与调试 导读 本文围绕 Zephyr RTOS 仓库中 RSK RX14
操作系统嵌入式RTOS物联网在 Zephyr 上使用 Renesas FPB-RA6E2:200 MHz Cortex-M33 快速原型板的构建、烧录与调试指南
在 Zephyr 上使用 Renesas FPB RA6E2:200 MHz Cortex M33 快速原型板的构建、烧录与调试指南 FPB RA6E2 是瑞萨
操作系统嵌入式RTOS物联网Zephyr 开发指南:Renesas FPB-RX14T 快速原型开发板移植、构建与调试全解析
Zephyr 开发指南:Renesas FPB RX14T 快速原型开发板移植、构建与调试全解析 FPB RX14T 是瑞萨(Renesas)针对 RX14T
操作系统嵌入式RTOS物联网
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考