构建与 DAPLink 烧录调试)
Zephyr MAX32655FTHR 开发板指南硬件架构、双核M4 RV32构建与 DAPLink 烧录调试【免费下载链接】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 仓库中 MAX32655FTHR 板级文档 编写系统讲解这款面向超低功耗无线应用的 Analog Devices 开发板硬件与外设规格、Zephyr 板级目标max32655fthr/max32655/m4与max32655fthr/max32655/rv32的设备树与默认配置要点、按键/LED 引脚定义以及基于板载 DAPLink 的west flash/west debug烧录调试流程。读完后可直接在该板上完成构建、烧录与双核Cortex-M4 RISC-V RV32开发。MAX32655FTHR 开发板正面板卡概述MAX32655FTHR 是 Analog Devices 推出的快速开发平台帮助工程师基于MAX32655Arm Cortex-M4F Bluetooth 5.2 LE快速实现超低功耗无线方案。板载MAX20303 PMIC负责电池与电源管理。板型采用 0.9in × 2.6in 双排针脚位兼容 Adafruit Feather Wing 外设扩展板。板上集成了数字麦克风、低功耗立体声音频 CODEC、128Mb QSPI Flash、micro SD 卡座、RGB 指示灯和按键等外设定位为快速概念验证PoC与早期软件开发平台。MAX32655FTHR 板载模块MAX32655FTHR 背面Zephyr 的移植运行在 MAX32655 的Cortex-M4F 主核上从 Kconfig.max32655fthr 可以看到板级 Kconfig 会根据目标限定符自动选择SOC_MAX32655_M4或SOC_MAX32655_RV32两个 SoC 配置。硬件规格MAX32655 MCU超低功耗无线微控制器片内 100MHz 振荡器灵活的低功耗模式可选 7.3728MHz 系统时钟512KB Flash、128KB SRAM其中一个 32KB SRAM Bank 可选 ECC16KB 指令缓存Bluetooth 5.2 LE 射频专用超低功耗 32 位RISC-V 协处理器卸载时序敏感的蓝牙处理完全开源的 Bluetooth 5.2 协议栈支持 AoA、AoD、LE Audio、Mesh高速模式2Mbps、长距模式125kbps / 500kbps接收灵敏度 -97.5dBm发射功率 4.5dBm单端天线接口50Ω电源管理最大化电池寿命2.0V3.6V 供电范围集成 SIMO 电源调节器动态电压缩放DVS3.0V 下 23.8μA/MHz 工作电流32KB 保持电流 4.4μA 3.0V低功耗模式下 SRAM 保持 RTC 可选系统控制外设最多 2 组高速 SPI 主/从最多 3 组高速 I2C 主/从3.4Mbps最多 4 组 UART、1 组 I2S 主/从最多 8 输入、10 位 Σ-Δ ADC7.8ksps最多 4 个微功耗比较器定时器最多 2 个 4×32 位定时器、2 个 LP 定时器、2 个看门狗定时器1-Wire 主机最多 4 个 Pulse TrainPWM引擎带唤醒定时器的 RTC最多 52 个 GPIO安全与完整性可选安全启动Secure BootTRNG 种子生成器AES 128/192/256 硬件加速引擎板上外部器件立体声音频 CODEC 接口数字麦克风PMIC 与电池充电电路128Mb16MBQSPI Flashmicro SD 卡接口RGB LED按键Zephyr 板级目标与支持特性该板在 board.yml 中注册于adi厂商下SoC 为max32655并提供两个构建目标board qualifier目标架构工具链支持的子系统RAM / Flashmax32655fthr/max32655/m4armzephyr、gnuarmembgpio、serial、trng、i2c、dma、watchdog、spi、adc、counter、rtc_counter、feather_i2c、feather_spi、pwm、flash64KB / 352KB片内max32655fthr/max32655/rv32riscvzephyrgpio、serial、flash、spi64KB / 128KB分区上表数据来自 max32655fthr_max32655_m4.yaml 与 max32655fthr_max32655_rv32.yamlM4 目标支持面更广含 trng、dma、adc、watchdog、pwm 等RV32 目标为次核裁剪后的最小集。默认 Kconfig 配置差异同样清晰见 max32655fthr_max32655_m4_defconfig 与 max32655fthr_max32655_rv32_defconfigM4启用ARM_MPU内存保护单元、GPIO、UART 控制台、中断驱动 UART、USE_DT_CODE_PARTITION使用设备树中的代码分区RV32系统时钟滴答CONFIG_SYS_CLOCK_TICKS_PER_SEC50005kHz 心跳同样启用 GPIO、UART 控制台与代码分区但未启用 MPU。设备树中的关键配置板级公共配置集中在 max32655fthr.dtsiM4 与 RV32 的目标 DTS 分别位于 max32655fthr_max32655_m4.dts 和 max32655fthr_max32655_rv32.dts。几个值得注意的设计1. 双核 SRAM 划分。M4 主核使用SRAM0(32KB) SRAM1(32KB)拼出 64KB0x20000000RV32 次核使用SRAM2(48KB) SRAM3(16KB)共 64KB0x20010000soc { /* M4: SRAM0(32KB) SRAM1(32KB) */ m4_sram: memory20000000 { compatible mmio-sram; reg 0x20000000 DT_SIZE_K(64); }; /* RV32: SRAM2(48KB) SRAM3(16KB) */ rv32_sram: memory20010000 { compatible mmio-sram; reg 0x20010000 DT_SIZE_K(64); }; };2. 128Mb QSPI Flash 三分区。外部 flashw25q128jv1JEDEC IDef 70 1816MBSPI0 CS1最高 10MHz在设备树中被划为三个 mapped partition分区标签起始地址大小用途m4_partitionimage-m40x0320KBM4 固件镜像storage_partitionstorage-m40x5000064KBM4 存储如 settingsrv32_partitionimage-rv320x60000128KBRV32 固件镜像M4 的chosen节点同时声明zephyr,code-partition m4_partition与zephyr,code-rv32-partition rv32_partition为双核 sysbuild 构建提供分区依据。3. 双串口 Feather 排针。M4 控制台默认使用uart0TXP0.1、RXP0.0115200-8N1并配置了 DMA 收发通道uart3TXP2.7、RXP2.6作为feather_serial映射到 Feather 排针 TX/RX是RV32 核的默认控制台。两个目标均启用了zephyr,shell-uart。4. Feather 排针引脚映射。feather_connector节点实现了adafruit-feather-header兼容标准将 016 号排针映射到具体 GPIO如 SDA→P0.31、SCL→P0.30、TX→P2.7、RX→P2.6、MISO→P0.22、MOSI→P0.21、SCK→P0.23、AIN0AIN5→GPIO2 的 05 号引脚因此标准 Feather Wing 扩展板可直接插用。此外板上i2c2Feather I2CP0.30/P0.31、spi1Feather SPI、i2s0音频P1.2P1.5、trng、dma0、wdt0、rtc_counter均已在设备树中置为okay。SPI/I2C 部分引脚显式选择了MAX32_VSEL_VDDIOH供电域保证与 3.3V 外设的互操作。按键Push Buttons板上有 6 个按键。其中 SW2、SW3 与唤醒键在 max32655fthr.dtsi 中注册为gpio-keys内部上拉、低电平有效SW2/SW3 经过板上消抖 ICSW1 — PMIC 电源键。开机状态下长按 12 秒执行硬关断关机状态下按下则开机。该按键状态也可被 MAX32655 固件读取PMIC_PFN2信号连接到Port 0.13带缓冲的输入按下时信号拉低。SW2 — 用户可编程功能键。经消抖 IC 连接到Port 0.2。设备树中定义为pb1上报输入事件INPUT_KEY_0。SW3 — 用户可编程功能键。经消抖 IC 连接到Port 0.3定义为pb2上报INPUT_KEY_1。SW4 — 唤醒键。连接到Port 3.1定义为pb_wakeup上报INPUT_KEY_WAKEUP该引脚在设备树中额外配置了MAX32_GPIO_VSEL_VDDIOH电平域。SW5 — 复位键。通过 MAX32655 的RSTN输入复位芯片。SW6 — DAPLink 适配器键。上电时按住此键可将板载 DAPLink 适配器MAX32625进入 MAINTENANCE 模式用于更新 DAPLink 固件。兼容性别名sw0 pb1、sw1 pb2已提供便于复用官方 sample 代码。指示灯LEDs板上有 3 颗 RGB LEDLED1 (D1) — 用户可控。直接接 MAX32655 GPIO可被用户固件控制Port 0.18红色Port 0.19绿色Port 0.26蓝色设备树中注册为gpio-leds低电平点亮并给出别名led0/led1/led2以兼容标准示例。需要留意设备树里三个节点的颜色标签Red/Blue/Green与官方文档的引脚颜色描述顺序不一致文档为 0.18红、0.19绿、0.26蓝若按颜色命名 LED 请以引脚号为准自行核对。LED2 (D2) — PMIC 指示灯。接 MAX20303 PMIC 的LEDx输出通过I2C 命令控制也可配置为充电状态指示。LED3 (D3) — DAPLink 状态灯。由板载 DAPLink 适配器MAX32625控制不可作为用户 LED 使用。编程与调试烧录Flashing板上 MAX32625 微控制器出厂已刷入DAPLink固件它提供了通过 USB 对 MAX32655 主核进行调试与烧录的能力对应cmsis-dapOpenOCD 接口。流程非常简单用 USB 线连接主机直接运行west flash将固件镜像写入 Flash若需全片擦除加--erase选项执行west flash --erase。从 board.cmake 引用的 openocd-adi-max32.boards.cmake 可以看到底层细节M4 目标走cmsis-dap.cfg接口 max32655.cfg目标擦除命令为max32xxx mass_erase 0并针对 M4/M33 系列启用了allow_low_pwr_dbg。调试Debugging调试方式与烧录相同只需把west flash换成west debug即可通过同一 DAPLink 链路挂接调试器并暂停程序执行。RV32 RISC-V 次核MAX32655 SoC 的次级 RV32RISC-V核通过max32655fthr/max32655/rv32板级限定符支持默认使用 Feather 排针的 TX/RX即feather_serial/uart3115200作为控制台。利用sysbuild可以一次构建两个核的镜像官方示例位于 samples/sysbuild/hello_world# 以 M4 为目标板构建sysbuild 会同时生成 M4 与 RV32 两个核的镜像 west build -p -b max32655fthr/max32655/m4 samples/sysbuild/hello_world # 目前将镜像烧录到两个核需要 jlink runner 及外接 J-Link 编程器 west flash --runner jlink从源码结构看RV32 核的 OpenOCD 配置与 M4 不同RISC-V 侧使用${SOC}_riscv.cfg目标、FTDI 调试接口ftdi/olimex-arm-usb-ocd-h.cfg以及 CMSIS-DAP 的 Flash 接口cmsis-dap.cfg这解释了为什么双核烧录当前要求 J-Link 而非纯 USB DAPLink 链路。参考与延伸阅读板级文档原文boards/adi/max32655fthr/doc/index.rst硬件规格、按键/LED 定义、烧录调试流程硬件详细资料请查阅 Analog Devices 官方的 MAX32655FTHR 产品页面双核构建示例samples/sysbuild/hello_world板级源码入口Kconfig.max32655fthr、board.cmake、max32655fthr.dtsi同系列开发板不同 SoC可对照其 文档 结构如 MAX32650EVB、MAX32672FTHR 等位于 boards/adi 目录下适用前提与限制以上所有引脚、分区与命令均以当前仓库中的设备树/板级配置为准RV32 目标的支持面gpio/serial/flash/spi小于 M4 目标双核烧录需外接 J-Link纯 USB DAPLink 链路仅覆盖 M4 主核的west flash/west debug。【免费下载链接】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),仅供参考