Zephyr 中的 Seeed Studio XIAO RP2350 板级支持:硬件特性、引脚映射与 UF2 拖拽烧录实战 操作系统嵌入式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 仓库中 XIAO RP2350 板级文档 为主线系统讲解这块由 Seeed Studio 出品的 IoT 迷你开发板在 Zephyr 中的支持情况包括 RP2350A 双核 SoC 的硬件规格、完整的 Zephyr 外设映射、XIAO 标准排针与底部测试焊盘的引脚定义以及无需任何调试器、仅靠拖拽 UF2 文件即可烧录固件的完整操作流程。读完本文你将能够基于xiao_rp2350板级目标快速构建、烧录并调试自己的 Zephyr 应用。板级概览一颗支持拖拽烧录的双核迷你开发板XIAO RP2350 是 Seeed Studio 推出的 XIAO 系列 IoT 迷你开发板尺寸与 XIAO 家族其他成员保持一致可在面包板与扩展板上直接使用。根据板级文档 index.rst 的说明它的核心配置如下SoCRaspberry Pi RP2350A双核处理器灵活时钟最高可达133 MHz存储264 KB SRAM与2 MB 板载 Flash板载外设一颗 WS2812NeoPixel可寻址 RGB LED一个 USB 连接器烧录方式板载 USB 引导加载程序bootloader支持UF2 拖拽烧录无需任何烧录适配器。其中 USB 拖拽烧录是这块板最突出的易用性设计按住BOOTSEL按钮上电板子会以 U 盘大容量存储设备形式出现在主机上把 UF2 固件文件复制进去即可完成烧录。这也是 Zephyr 为它默认启用CONFIG_BUILD_OUTPUT_UF2y的直接原因见 xiao_rp2350_rp2350a_m33_defconfig。值得强调的是RP2350A 是一颗双架构 SoC它既可以在Arm Cortex-M33核心上运行也可以在RISC-VHazard3核心上运行。Zephyr 对这颗芯片的两种核心变体都提供了完整支持因此本板在构建系统中对应两个板级目标详见下文「两种核心变体」小节。硬件规格详解根据板级文档的 Hardware 章节XIAO RP2350 是一块低功耗微控制器板正面边缘排针与背面测试焊盘共同构成了完整的 I/O 能力正面 14 个 GPIO 引脚XIAO 标准排针能力数量数字引脚11模拟引脚ADC3PWM 引脚11I2C 接口1UART 接口1SPI 接口1SWD 调试焊盘1PCB 背面 8 个测试焊盘secondary interfaces能力数量额外数字引脚8额外 I2C 接口1额外 UART 接口1额外 SPI 接口1也就是说这块板把 RP2350A 的两组外设控制器UART0/UART1、I2C0/I2C1、SPI0/SPI1都引了出来一组走标准排针一组走背面焊盘。板级元数据 xiao_rp2350_rp2350a_m33.yaml 中声明了 Cortex-M33 变体的flash: 1024、ram: 520KB供构建系统与工具链使用。支持的 Zephyr 特性板级 yaml 文件xiao_rp2350_rp2350a_m33.yaml中通过supported字段声明了该板在 Zephyr 中已验证可用的设备驱动与子系统标准驱动adc、clock、counter、crypto、dma、entropy、flash、gpio、hwinfo、i2c、pwm、spi、uart、usbd、watchdogXIAO 扩展能力xiao_gpio、xiao_i2c、xiao_serial、xiao_spi。后四个xiao_*能力是 Zephyr 为 XIAO 生态引入的板级扩展它通过设备树中的gpio-map把逻辑引脚号D0~D18映射到实际 GPIO并预置了xiao_adc、xiao_i2c、xiao_spi、xiao_serial等节点别名让为其他 XIAO 板编写的应用与扩展板Shield能够以统一方式访问外设详见下文「连接器与扩展焊盘」小节。需要留意的是这些能力声明除usbd外主要描述的是底层驱动与子系统是否可用具体外设默认是否使能、跑在哪个引脚上由板级设备树 xiao_rp2350.dtsi 决定。例如其中将zephyr,console与zephyr,shell-uart都指向uart0将zephyr,entropy指向rng因此开箱即可获得串口控制台与硬件熵源。引脚映射主接口与副接口的默认布局RP2350A 的外设UART、I2C、SPI、PWM、ADC、PIO 等均可通过引脚复用路由到板上众多引脚具体走线通过设备树DTS配置。板级文档给出了 Zephyr 的默认外设映射整理如下主接口XIAO 标准排针功能引脚UART0_TXP0UART0_RXP1I2C1_SDAP6I2C1_SCLP7SPI0_CSP5GPIOSPI0_RXP4SPI0_TXP3SPI0_SCKP2副接口背面测试焊盘功能引脚UART1_TXP20UART1_RXP21I2C0_SDAP16I2C0_SCLP17SPI1_CSP9GPIOSPI1_SCKP10SPI1_RXP11SPI1_TXP12这套映射并非写死的硬件而是 Zephyr 通过 pinctrl 完成的默认复用配置全部集中在 xiao_rp2350-pinctrl.dtsi 中。例如uart0_default: uart0_default { group1 { pinmux UART0_TX_P0; }; group2 { pinmux UART0_RX_P1; input-enable; }; };可以看到发送引脚UART0_TX_P0与接收引脚UART0_RX_P1分别用两个 group 描述RX 一侧额外带input-enable属性使能输入。同样的模式也用于uart1_default、i2c0_default、i2c1_default、spi0_default、spi1_default以及 PWMPWM_4B_P25与 ADCADC_CH0_P26~ADC_CH3_P29的引脚组。如果需要把外设改路由到其他引脚只需在应用 overlay 中覆写对应的pinctrl-0节点即可具体可路由组合请查阅 RP2350A 数据手册。连接器与扩展焊盘XIAO 生态的 D0~D18 逻辑引脚板子采用标准的 XIAO 排针引脚定义正反面并提供了两套 DTS 映射文件把逻辑引脚号翻译成物理 GPIOseeed_xiao_connector.dtsi —— 定义D0~D10主排针映射compatible seeed,xiao-gpioseeed_xiao_pads.dtsi —— 定义D11~D18背面测试焊盘映射compatible seeed,xiao-expand。两套映射都用gpio-map完成逻辑号到gpio0引脚的翻译摘录如下gpio-map 0 0 gpio0 26 0, /* D0 (ADC0) */ 1 0 gpio0 27 0, /* D1 (ADC1) */ ... 10 0 gpio0 3 0; /* D10 (SPI0-MOSI) */焊盘部分则为gpio-map 0 0 gpio0 21 0, /* D11 (UART1-RX) */ ... 7 0 gpio0 9 0; /* D18 (SPI1-CS) */同时两份文件还预置了 Zephyr 的扩展节点别名使上层应用可以用统一名称访问外设排针侧xiao_adc - adc、xiao_i2c - i2c1、xiao_spi - spi0、xiao_serial - uart0焊盘侧xiao_pads_i2c - i2c0、xiao_pads_spi - spi1、xiao_pads_serial - uart1。这些seeed,xiao-*兼容节点与xiao_*别名是 Zephyr XIAO 生态的公共约定也是屏蔽罩Shield与跨板应用得以复用的关键。板级设备树细节外设默认配置与电源管理深入 xiao_rp2350.dtsi 可以看到更多板级实现细节这些是理解板子默认行为的重要依据启动与调试相关chosen节点chosen { zephyr,sram sram0; zephyr,flash flash0; zephyr,flash-controller qmi; zephyr,code-partition code_partition; zephyr,console uart0; zephyr,shell-uart uart0; zephyr,entropy rng; };板载 WS2812 可寻址 LED默认由 PIO0 驱动输出引脚 GP22chain-length 1单灯颜色映射为 GRBPIO 波形位宽bit-waveform 3, 3, 4数据频率800 kHz复位延时280。值得注意的是该 LED 的电源不是常供电而是由一个 GPIO 开关控制neopixel_power_enable: neopixel-power-enable { compatible regulator-fixed; status okay; enable-gpios gpio0 23 GPIO_ACTIVE_HIGH; regulator-name neopixel_enable; regulator-boot-on; };这个regulator-fixed在板初始化时自动拉高 GP23 为 LED 供电regulator-boot-on应用代码可随时按需关断以省电。同样的设计也用于电池电压检测通道battery_adc_enable: battery-adc-enable { compatible regulator-fixed; status okay; enable-gpios gpio0 19 GPIO_ACTIVE_HIGH; regulator-name battery_adc_enable; regulator-boot-on; };battery ADC 门控由 GP19 控制将 ADC 输入与 VBAT 解耦避免待机时漏电。板载 ADC 共配置 4 个通道channel0~3均为 12 位分辨率、内部参考、增益 1zephyr,user节点中把io-channels定义为 XIAO 排针的 3 路 ADC1:1以及 VBAT1:2 分压通道。常规外设默认参数外设默认配置UART0 / UART1115200 baud中断驱动控制台I2C0 / I2C1400 kHzI2C_BITRATE_FASTSPI0 / SPI120 MHzADC12 位内部参考增益 1PWMpwm_ch4b_defaultPWM_4B_P25默认disabledled0GP25 低有效为板载常规 LED板级 Kconfig 还有一处值得注意的细节Kconfig.defconfig 中当使用 DesignWare I2CI2C_DW时将I2C_DW_CLOCK_SPEED默认设为150并把USB_SELF_POWERED默认设为n即 USB 默认按总线供电处理。编程与调试UF2 拖拽烧录XIAO RP2350 的默认烧录路径就是UF2 拖拽烧录整个过程不需要任何调试适配器。1. 构建生成 UF2 固件板级默认配置xiao_rp2350_rp2350a_m33_defconfig 与 xiao_rp2350_rp2350a_hazard3_defconfig中已经启用了CONFIG_BUILD_OUTPUT_UF2y CONFIG_BUILD_OUTPUT_HEXy CONFIG_USE_DT_CODE_PARTITIONy因此按默认流程构建任意应用例如 hello_worldwest build -b xiao_rp2350/rp2350a/m33 samples/hello_world构建完成后UF2 固件会生成在build/zephyr/zephyr.uf2同时也会输出zephyr.hex。板级文档明确指出默认情况下为本板构建应用就会生成build/zephyr/zephyr.uf2文件。2. 进入 BOOTSEL 模式并拖拽烧录按住板上的BOOTSEL按钮同时用 USB 线连接主机上电或按住 BOOTSEL 后短按复位松开按钮后板子会以**大容量存储设备U 盘**形式出现在主机上把build/zephyr/zephyr.uf2复制到该 U 盘复制完成写入完毕后设备会自动弹出/重枚举板子即完成烧录并自动重启运行新固件。3. 使用 west flash如果希望在构建后直接用命令烧录Zephyr 为这块板配置了uf2runner。查看 board.cmakeboard_runner_args(uf2 --board-idRP2350) include(${ZEPHYR_BASE}/boards/common/uf2.board.cmake)其中--board-idRP2350与 RP2350A 芯片的 UF2 板卡 ID 对应。在构建目录内执行west flashZephyr 的 uf2 runner 会输出提示等待用户以 BOOTSEL 模式挂载设备随后自动完成固件拷贝。两种核心变体Cortex-M33 与 RISC-V Hazard3RP2350A 的双架构特性在 Zephyr 中体现为两个独立的板级目标二者共享同一套板级设备树 xiao_rp2350.dtsiCortex-M33 变体xiao_rp2350_rp2350a_m33.dts 在rp2350a.dtsi基础上叠加m33.dtsi对应目标名xiao_rp2350/rp2350a/m33见 xiao_rp2350_rp2350a_m33.yaml 中的identifier: xiao_rp2350/rp2350a/m33架构为armRISC-V 变体xiao_rp2350_rp2350a_hazard3.dts 在rp2350a.dtsi基础上叠加hazard3.dtsi运行在 RP2350A 内置的 RISC-V Hazard3 核心上。目标的选择在 Kconfig 层完成见 Kconfig.xiao_rp2350config BOARD_XIAO_RP2350 select SOC_RP2350A_HAZARD3 if BOARD_XIAO_RP2350_RP2350A_HAZARD3 select SOC_RP2350A_M33 if BOARD_XIAO_RP2350_RP2350A_M33构建 RISC-V 变体时使用west build -b xiao_rp2350/rp2350a/hazard3 samples/hello_world两块目标共享相同的板级设备树、引脚映射与 UF2 烧录流程区别仅在于运行核心与对应工具链zephyr/gnuarmemb均已在 yaml 中声明。这也意味着同一套应用代码可以很方便地在两种核心架构间切换验证。实战建议与延伸阅读首次点亮west build -b xiao_rp2350/rp2350a/m33 samples/basic/blinkyblinky使用板级led0别名GP25 低有效若想驱动板载 WS2812可参考 LED Strip 相关示例其设备树节点通过led-strip别名暴露见 xiao_rp2350.dtsi 中的aliases。串口控制台默认zephyr,console指向 UART0P0/P1115200搭配CONFIG_SHELLy即可获得交互式 shell。模拟量采集3 路 XIAO 排针 ADC 与 1 路 VBAT1:2 分压通道参考zephyr,user的io-channels定义注意读取 VBAT 前需保证battery_adc_enable调节器处于开启状态。XIAO 生态复用基于seeed,xiao-gpio/seeed,xiao-expand映射与xiao_i2c、xiao_spi等别名为其他 XIAO 板编写的扩展板Shield与应用通常可以无缝迁移。如需继续深入推荐阅读以下仓库内文件板级文档boards/seeed/xiao_rp2350/doc/index.rst板级设备树xiao_rp2350.dtsi、xiao_rp2350-pinctrl.dtsiXIAO 逻辑引脚映射seeed_xiao_connector.dtsi、seeed_xiao_pads.dtsi板级构建与元数据board.cmake、board.yml、xiao_rp2350_rp2350a_m33.yaml默认配置xiao_rp2350_rp2350a_m33_defconfig、Kconfig.defconfig上述引脚复用组合、时钟频率等细节以 RP2350A 官方数据手册为最终依据实际开发时建议结合数据手册与本文给出的板级文件对照确认。赞分享操作系统嵌入式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 中的 Adafruit KB2040 板级支持RP2040 开发板的硬件特性、引脚映射与 UF2 烧录实战Zephyr 中的 Adafruit KB2040 板级支持RP2040 开发板的硬件特性、引脚映射与 UF2 烧录实战 导读 本文以 Zephyr RTOS操作系统嵌入式RTOS物联网Zephyr 平台下 Seeed XIAO RP2040 开发板支持指南引脚映射、外设配置与 UF2 烧录实战Zephyr 平台下 Seeed XIAO RP2040 开发板支持指南引脚映射、外设配置与 UF2 烧录实战 导读 本文以 Zephyr 仓库中 Seeed操作系统嵌入式RTOS物联网Zephyr 板级支持解析Adafruit Feather RP2040adafruit_feather_rp2040的硬件特性、引脚映射与 UF2 烧录实战Zephyr 板级支持解析Adafruit Feather RP2040adafruit_feather_rp2040的硬件特性、引脚映射与 UF2 烧录操作系统嵌入式RTOS物联网创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考