
Zephyr 中的 MAX32651EVKIT 开发板支持硬件特性、固件签名与烧录调试全解【免费下载链接】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/zephyrZephyr RTOS 在 boards/adi/max32651evkit 下为 Analog DevicesADI的 MAX32651 评估套件提供了完整的板级移植。本文以该板级文档 boards/adi/max32651evkit/doc/index.rst 为主体完整覆盖这块超低功耗开发板的硬件能力、Zephyr 支持特性清单并深入讲解 MAX32 家族 Secure SoC 的固件签名机制、通过 OpenOCD/J-Link 进行west flash与west debug的实操流程。读完后你可以直接在本板上完成构建、签名、烧录和调试的完整闭环。1. 平台概览MAX32651 评估套件EV Kit是一个用于评估 MAX32651 超大规模可扩展、超低功耗微控制器MCU能力的平台该 MCU 专为高性能电池供电应用设计。Zephyr 端口直接运行在 MAX32651 MCU 上。板级标识信息可以在 boards/adi/max32651evkit/board.yml 中确认board: name: max32651evkit full_name: MAX32651EVKIT vendor: adi socs: - name: max32651即构建时的目标板名为max32651evkit厂商目录为adiSoC 为max32651。配套的 Kconfig 文件 boards/adi/max32651evkit/Kconfig.max32651evkit 则通过select SOC_MAX32651将BOARD_MAX32651EVKIT选项绑定到该 SoC。2. 硬件规格2.1 MAX32651 MCU 核心MAX32651 是一款面向电池供电应用的超高效微控制器核心硬件特性如下摘自板级文档120MHz Arm Cortex-M4带 FPUSmartDMA提供可编程数据处理的后台内存传输振荡器资源120MHz 高速 / 50MHz 低功耗振荡器7.3728MHz 低功耗振荡器32.768kHz RTC 时钟需要外部晶振8kHz 常开超低功耗振荡器存储3MB 内部 Flash、1MB 内部 SRAM能效1.1V 下从 Cache 执行时低至 104µW/MHz五种低功耗模式Active、Sleep、Background、Deep-Sleep、BackupI/O1.8V 与 3.3V I/O无需电平转换器内置编程与调试能力2.2 可扩展的外部存储接口120MB/s HyperBus/Xccela DDR 接口SPIXF/SPIXR 外部 Flash/RAM 扩展240Mbps SDHC/eMMC/SDIO/microSD 接口2.3 片上外设16 通道 DMA3 个 SPI 主机60MHz/ 从机48MHz1 个 QuadSPI 主机60MHz/ 从机48MHz最多 3 个 4Mbaud 带流控 UART2 个 1MHz I2C 主机/从机I2S 从机4 通道、7.8ksps、10 位 Delta-Sigma ADC带 PHY 的 USB 2.0 高速设备接口16 个脉冲列发生器Pulse Train Generator6 个 32 位定时器8mA 高驱动能力1-Wire 主机2.4 安全单元TPUTrust Protection UnitTPU提供 IP/数据安全能力模算术加速器MAA、真随机数发生器TRNG安全非易失密钥存储、SHA-256、AES-128/192/256内存解密完整性单元、安全启动 ROM2.5 板载外部器件评估套件上连接的外部设备包括3.5 英寸 320 x 240 彩色 TFT 显示屏64MB HyperRAM64MB XIP Flash1MB XIP RAMUSB 2.0 Micro B 接口2 个通用 LED 和 2 个通用按键3. Zephyr 支持特性与默认配置3.1 支持特性清单在 boards/adi/max32651evkit/max32651evkit.yaml 中声明了该板支持的 Zephyr 特性gpio、serial、spi、i2c、dma、watchdog、counter、rtc_counter、usbd、memc工具链zephyr与gnuarmemb存储256KB RAM、3072KB Flash对应 3MB 内部 Flash3.2 默认 Kconfig 配置boards/adi/max32651evkit/max32651evkit_defconfig 启用了基础外设与调试控制台# Enable MPU CONFIG_ARM_MPUy # Enable GPIO CONFIG_GPIOy # Console CONFIG_CONSOLEy CONFIG_UART_CONSOLEy # Enable UART CONFIG_SERIALy CONFIG_UART_INTERRUPT_DRIVENy从这份 defconfig 可以看出板级默认配置围绕“MPU GPIO 串口控制台”展开ARM MPU 提供内存保护UART 控制台中断驱动是调试输出的默认通道。3.3 设备树中的板级定义boards/adi/max32651evkit/max32651evkit.dts 继承自adi/max32/max32650.dtsi与adi/max32/max32650-pinctrl.dtsi完成了以下板级定义chosen 节点控制台与 Shell 均使用uart0SRAM 指向sram4Flash 指向flash0LED 与按键红色 LEDgpio2.25低有效、绿色 LEDgpio2.26低有效两个按键 SW2/SW3gpio2.28/gpio2.30上拉、低有效并映射到INPUT_KEY_0/INPUT_KEY_1别名led0/led1、sw0、watchdog0便于与 Zephyr 示例代码兼容UART0TX/RX 复用为P2_12/P2_11115200 8N1并绑定 DMA 通道MAX32_DMA_SLOT_UART0_TX/RXI2C0P2_8SCL/P2_7SDASPI2P2_4MOSI/P2_3MISO/P2_2SCK/P2_5SS0看门狗、RTC 计数器、USB 设备usbhs均设为status okayHPB 外部存储控制器启用 HyperRAMADI_MAX32_HPB_DEV_TYPE_HYPER_RAM基址0x60000000并精细配置了片选时序CS high 2.5 周期 ≈ 41.7ns、setup/hold 1 周期 ≈ 16.7ns基于 60MHz 外设时钟与 6 周期访问延迟同时通过config-reg-vals 0x8f1f将 HyperRAM 器件自身的时钟延迟从 7 降到 6 周期以匹配控制器配置设备树中还定义了一个默认disabled的SDRAM1内存区域0x60000000起始、8MB供按需启用。4. 固件签名Secure SoC Image Signing固件签名特性是 Zephyr 针对安全 SoC 实现的通用能力。使用它需要先在主机上安装 ADI Secure Boot Tools。4.1 配置项要让west build在后台自动完成签名需要开启两个 Kconfig 选项CONFIG_SOC_FAMILY_MAX32_SECURE_SOC_SIGNING启用安全 SoC 镜像签名CONFIG_SOC_FAMILY_MAX32_SECURE_SOC_KEY_PATH指定签名私钥文件路径这两个选项定义在 soc/adi/max32/sbt/Kconfig 中从源码结构看还包含两个关联配置CONFIG_SOC_FAMILY_MAX32_SECURE_SOC_SIGNING_ALGO签名算法选择项choice支持RSA2048与ECDSA256。该选项的默认值在每颗 SoC 的Kconfig.defconfig中设置——对 MAX32651见 soc/adi/max32/Kconfig.defconfig.max32651默认算法是RSA2048CONFIG_SOC_FAMILY_MAX32_SECURE_SOC_SIGNATURE_SECTION_SIZE链接时预留的签名段大小RSA2048 时默认 256 字节ECDSA256 时默认 64 字节开启签名选项还会select HAVE_CUSTOM_LINKER_SCRIPT自定义链接脚本和BUILD_OUTPUT_HEX_GAP_FILL生成 HEX 时填充空隙为带头部/签名的安全启动镜像布局做准备。4.2 构建期自动签名流程在 soc/adi/max32/CMakeLists.txt 中可以看到实现入口if(CONFIG_SOC_FAMILY_MAX32_SECURE_SOC_SIGNING) set_target_properties(zephyr_property_target PROPERTIES SIGNING_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/sbt/sbt_signing.cmake) endif()即启用签名后构建系统会把 SoC 层的sbt_signing.cmake注册为签名脚本west build过程会自动校验 ADI Secure Boot Tools 并使用指定私钥在构建目录中生成签名的 HEX 与 BIN 文件。签名产物会被自动设置为默认的烧录文件因此后续west flash无需额外参数即可烧写签名镜像。4.3 签名构建示例板级文档给出的west build示例目标板max32651evkit应用为 samples/hello_worldwest build -b max32651evkit -DCONFIG_SOC_FAMILY_MAX32_SECURE_SOC_SIGNINGy \ -DCONFIG_SOC_FAMILY_MAX32_SECURE_SOC_KEY_PATHC:/analog/SecureBootTools/devices/MAX32651/keys/maximtestcrk.key \ 应用目录其中密钥路径C:/analog/SecureBootTools/devices/MAX32651/keys/maximtestcrk.key是 ADI Secure Boot Tools 在 Windows 主机上的典型安装位置实际使用时应替换为你本机 Secure Boot Tools 中的真实私钥路径。5. 烧录与调试Programming and Debugging5.1 硬件连接通过外部调试探针连接 SWD 端口SWD 调试信号可从 Cortex 10 引脚连接器J3引出逻辑电平固定为 VDDIO1.8V将调试探针接入主机后直接运行west flash即可把固件镜像写入 Flash5.2 调试接口runner配置板级文件 boards/adi/max32651evkit/board.cmake 声明了两种可用 runnerboard_runner_args(jlink --deviceMAX32651 --reset-after-load) include(${ZEPHYR_BASE}/boards/common/openocd-adi-max32.boards.cmake) include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)默认使用 OpenOCD作为调试/烧录接口也可用 Segger J-Link配合 Segger 原生工具链在west命令后追加--runner jlink覆盖默认 runner。J-Link 应通过合适的适配板与线缆接到标准 2x5 引脚调试连接器J3上board_runner_args中预置了--deviceMAX32651 --reset-after-load参数5.3 OpenOCD 的底层配置细节从 boards/common/openocd-adi-max32.boards.cmake 可以看到针对 MAX32651 的具体处理CONFIG_SOC_MAX32651时OpenOCD 目标配置复用max32650.cfg见第 18–19 行调试接口使用cmsis-dap.cfg目标句柄为_CHIPNAME.cpu对 Cortex-M4/M33 家族追加allow_low_pwr_dbg避免部分板子烧录后复位失败擦除时执行max32xxx mass_erase 0整片擦除这解释了为什么文档提示 OpenOCD 是默认接口MAX32 家族在 OpenOCD 侧有专用的max32xxx擦除/复位命令封装烧录流程更完整。5.4 调试操作调试方式与烧录一致参照上文 Flashing 部分的硬件连接只需把west flash换成west debugwest debug -b max32651evkit如需改用 J-Link 调试同样追加--runner jlink。6. 小结与深入阅读板级文档与图片boards/adi/max32651evkit/doc/index.rst、boards/adi/max32651evkit/doc/img/max32651evkit.webp板级定义board.yml、max32651evkit.yaml、max32651evkit_defconfig、max32651evkit.dts、board.cmake、Kconfig.max32651evkit签名机制soc/adi/max32/sbt/Kconfig、soc/adi/max32/CMakeLists.txt烧录接口boards/common/openocd-adi-max32.boards.cmakeMAX32651EVKIT 在 Zephyr 中的支持覆盖了 GPIO、串口、SPI/I2C、DMA、看门狗、RTC 计数与 USB 设备等功能默认配置即可通过 J3 调试口完成串口控制台的构建与烧录而CONFIG_SOC_FAMILY_MAX32_SECURE_SOC_SIGNING则让安全启动镜像签名无缝融入west build流水线签名产物自动成为west flash的默认烧录目标。【免费下载链接】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),仅供参考