Zephyr 下 NXP MIMXRT685-AUD-EVK 开发板支持指南:硬件资源、板级配置与烧录调试实战
操作系统嵌入式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点击查看免费下载MIMXRT685-AUD-EVK 是 Zephyr 官方支持的 NXP 音频评估板基于 i.MX RT685 跨界 MCUCortex-M33 HiFi 4 DSP。本文以 boards/nxp/mimxrt685_aud_evk/doc/index.rst 为核心骨架结合仓库内该板卡的 DTS、Kconfig、烧录脚本与启动代码等源码系统讲解板载硬件资源、引脚连接、时钟与串口配置并给出完整的构建、烧录与调试实战步骤帮助读者在 Zephyr 上快速跑通并深入理解这块音频开发板。MIMXRT685-AUD-EVK 开发板实物板载 CS42448 音频编解码器与多种音频接口图片来源board 文档目录板卡概述面向语音助手的音频跨界 MCU 评估板芯片与定位i.MX RT600 家族i.MX RT600 是 NXP 面向 32 位沉浸式音频回放与语音用户界面Voice User Interface应用优化的跨界 MCUcrossover MCU家族。其典型特征是把一颗高性能的 Cadence Tensilica HiFi 4 音频 DSP 核与新一代 Cortex-M33 核组合在一起配合安全、低功耗的嵌入式处理器设计用于释放语音辅助端节点voice-assisted end nodes的潜力。MIMXRT685-AUD-EVK 就是围绕 i.MX RT685 打造的一颗音频聚焦型评估板板载 CS42448 音频编解码器与多种音频接口适合评估语音唤醒、音频回放、麦克风阵列采集等应用。板卡标识与 Zephyr 目标在 Zephyr 仓库中该板卡的声明位于 board.ymlboard: name: mimxrt685_aud_evk full_name: MIMXRT685-AUD-EVK vendor: nxp socs: - name: mimxrt685s而实际的编译目标target由 mimxrt685_aud_evk_mimxrt685s_cm33.yaml 定义identifier: mimxrt685_aud_evk/mimxrt685s/cm33 name: NXP MIMXRT685-AUD-EVK type: mcu arch: arm toolchain: - zephyr - gnuarmemb ram: 4608 # 单位 KB对应 4.5 MB 片上 SRAM flash: 3072 # 单位 KB对应 3 MB 可用的应用镜像分区 supported: - flash - gpio - uart vendor: nxp需要特别注意目标名的写法板卡目标使用三段式mimxrt685_aud_evk/mimxrt685s/cm33而不是常见的两段式板名/变体。从 Kconfig.soc 可以看到i.MX RT685S 同时提供SOC_MIMXRT685S_CM33Cortex-M33 核与SOC_MIMXRT685S_HIFI4HiFi 4 DSP 核两个 SOC 目标因此构建命令中必须显式指定cm33段以选中 Cortex-M33 目标。资源提示yaml 中ram: 46084.5 MB与flash: 30723 MB并非完整容量。从 mimxrt685_aud_evk_mimxrt685s_cm33.dts 中的 Flash 分区表看板上 64 MB Macronix MX25U51245G Quad SPI Flash 被划分为 mcuboot128 KB、image-03 MB、image-13 MB与 storage 分区flash: 3072对应单个应用 slot 的容量。板载硬件资源清单根据板卡文档MIMXRT685-AUD-EVK 的硬件特性如下主处理器MIMXRT685SFVKB Cortex-M33300 MHz4.5 MB 片上 SRAM并集成 Cadence Xtensa HiFi4 DSP调试探针板载高速 USB Link2 调试探针支持 CMSIS-DAP 协议仅支持 Cortex M33 调试USB高速 USB 口Micro A/B 连接器可用作 Host 或 Device桥接UART、I2C、SPI 端口经板载调试探针从 i.MX RT685 目标桥接到 USBFlash64 MB Macronix Quad SPI Flash工作电压 1.8 V电源管理NXP PCA9420UK PMIC人机接口用户 LED、复位键与用户按键音频CS42448 音频编解码器。其中4.5 MB 片上 SRAM与 yaml 中ram: 4608KB一致64 MB Quad SPI Flash与 mimxrt685_aud_evk_mimxrt685s_cm33.dts 中mx25u51245g节点size DT_SIZE_M(64 * 8)即 512 Mbit / 64 MB一一对应。支持的功能Supported Features板卡通过.. zephyr:board-supported-hw::指令在文档站点自动生成支持的硬件功能表。结合板卡 yaml 与 defconfig可以确认以下外设已启用flashFlexSPI NOR 驱动详见下文 Flash 与启动一节gpioCONFIG_GPIOyuartCONFIG_SERIALy、CONFIG_UART_CONSOLEy等。在 mimxrt685_aud_evk_mimxrt685s_cm33_defconfig 中可以看到默认启用的配置项CONFIG_CONSOLEy CONFIG_UART_CONSOLEy CONFIG_SERIALy CONFIG_UART_INTERRUPT_DRIVENy CONFIG_GPIOy # Enable TrustZone-M CONFIG_TRUSTED_EXECUTION_SECUREy CONFIG_ARM_MPUy CONFIG_HW_STACK_PROTECTIONy值得注意该板卡默认开启了TrustZone-MCONFIG_TRUSTED_EXECUTION_SECUREy以及CONFIG_ARM_MPU、CONFIG_HW_STACK_PROTECTION即板卡自带安全与非安全世界划分与硬件栈保护能力这与 i.MX RT600 面向安全语音终端的产品定位一致。连接与 IOConnections and IOsIOCON 引脚配置机制MIMXRT685 SoC 提供 IOCONI/O Controller寄存器用于配置引脚的功能。板卡的引脚复用pinmux定义在 mimxrt685_aud_evk-pinctrl.dtsi 中其引用了 NXP HAL 的引脚宏头文件并把 FlexCOMM0 配置为 USART 控制台#include nxp/imxrt/imxrt6xx/pinctrl/MIMXRT685SFVKB-pinctrl.h pinctrl { pinmux_flexcomm0_usart: pinmux_flexcomm0_usart { group0 { pinmux FC0_RXD_SDA_MOSI_DATA_PIO0_2; input-enable; slew-rate normal; drive-strength normal; }; group1 { pinmux FC0_TXD_SCL_MISO_WS_PIO0_1; slew-rate normal; drive-strength normal; }; }; };引脚功能对照表文档给出了板卡关键引脚的默认功能分配引脚名功能用途PIO0_2USARTUSART RXPIO0_1USARTUSART TXPIO0_14GPIOGREEN LEDPIO0_26GPIOBLUE LEDPIO0_31GPIORED LEDPIO1_1GPIOSW1PIO0_10GPIOSW2上述分配与 mimxrt685_aud_evk_mimxrt685s_cm33.dts 中的设备树定义完全吻合aliases { sw0 user_button_1; sw1 user_button_2; led0 green_led; led1 blue_led; led2 red_led; usart-0 flexcomm0; }; gpio_keys { compatible gpio-keys; user_button_1: button_0 { label User SW1; gpios gpio1 1 GPIO_ACTIVE_LOW; /* PIO1_1 */ zephyr,code INPUT_KEY_0; }; user_button_2: button_1 { label User SW2; gpios gpio0 10 GPIO_ACTIVE_LOW; /* PIO0_10 */ zephyr,code INPUT_KEY_1; }; }; leds: leds { compatible gpio-leds; green_led: led_1 { gpios gpio0 14 0; /* PIO0_14 */ label User LED_GREEN; }; blue_led: led_2 { gpios gpio0 26 0; /* PIO0_26 */ label User LED_BLUE; }; red_led: led_3 { gpios gpio0 31 0; /* PIO0_31 */ label User LED_RED; }; };应用开发时即可通过标准别名sw0/sw1/led0~led2直接引用按键与 LED例如点亮绿灯使用LED0_N相关宏或gpio_pin_set操作DT_ALIAS(led0)节点。系统时钟System ClockMIMXRT685-AUD-EVK 将OS Event timeros_timer即 MCUX OS Timer作为系统时钟源。这可以从设备树中确认os_timer { status okay; wakeup-source; };在 soc/nxp/imxrt/imxrt6xx/Kconfig.defconfig 中当启用MCUX_OS_TIMER时系统时钟频率被设定为if MCUX_OS_TIMER config SYS_CLOCK_HW_CYCLES_PER_SEC default 1000000 endif # MCUX_OS_TIMER即使用 OS Event Timer 时SYS_CLOCK_HW_CYCLES_PER_SEC默认为1 MHz。文档同时给出对照若使用 Cortex-M SysTickCORTEX_M_SYSTICK该值默认为250105263约 250 MHz对应系统 PLL 输出。这意味着系统 tick 的实际频率取决于所选的 timer 驱动板级默认走 OS Event Timer 路径。另外板卡 Kconfig 还配置了系统振荡器参数见 Kconfig.defconfigconfig XTAL_SYS_CLK_HZ default 24000000 config SYSOSC_SETTLING_US default 260即外部晶振为 24 MHz系统振荡器稳定时间为 260 µs。串口Serial PortMIMXRT685 SoC 提供8 个 FLEXCOMM 接口用于串行通信本板卡将其中一个FlexCOMM0配置为 USART 控制台其余未使用。设备树中 FlexCOMM0 配置如下见 mimxrt685_aud_evk_mimxrt685s_cm33.dtsflexcomm0 { compatible nxp,lpc-usart; status okay; current-speed 115200; pinctrl-0 pinmux_flexcomm0_usart; pinctrl-names default; };同时chosen节点把控制台与 Shell 都指向 FlexCOMM0chosen { zephyr,console flexcomm0; zephyr,shell-uart flexcomm0; ... };控制台波特率为115200与下文串口终端设置一致。构建、烧录与调试支持的 Runner烧录/调试后端板卡通过 board.cmake 声明了两种 runnerif(CONFIG_BOARD_MIMXRT685_AUD_EVK_MIMXRT685S_CM33) board_runner_args(jlink --deviceMIMXRT685S_M33 --reset-after-load) board_runner_args(linkserver --deviceMIMXRT685S:MIMXRT685-AUD-EVK) endif() include(${ZEPHYR_BASE}/boards/common/linkserver.board.cmake) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)LinkServerCMSIS-DAP默认 runner直接使用板载调试器预装的 CMSIS-DAP 固件无需额外硬件J-Link可选的 J-Link 后端设备参数为MIMXRT685S_M33。板卡默认使用LPC-Link2调试探针。配置调试探针LinkServer CMSIS-DAP默认安装 LinkServer 调试主机工具即 Zephyr 文档中的 linkserver-debug-host-tools并确保其位于搜索路径中LinkServer 直接兼容板载调试器默认的 CMSIS-DAP 固件。由于 linkserver 是本板的默认 runner可直接执行west flash west debugJLink可选安装 J-Link 调试主机工具jlink-debug-host-tools并加入搜索路径通过-r jlink显式指定 runnerwest flash -r jlink west debug -r jlink配置控制台串口终端将 USB 线从 PC 连接到调试 USB 口然后使用任意串口终端minicom、putty 等参数如下波特率 Speed115200数据位 Data8 bits校验 ParityNone停止位 Stop bits1烧录 hello_world 示例以 Zephyr 自带的 hello_world 为例默认使用 LinkServer 工具链west build -b mimxrt685_aud_evk/mimxrt685s/cm33 samples/hello_world west flash打开串口终端按下板上的RESET按键复位板卡终端中应看到***** Booting Zephyr OS v4.x.x ***** Hello World! mimxrt685_aud_evk/mimxrt685s/cm33调试 hello_world 示例同样以 hello_world 为例进行调试默认使用 LinkServer 工具链west build -b mimxrt685_aud_evk/mimxrt685s/cm33 samples/hello_world west debug打开串口终端在调试器中单步执行应用终端中同样应输出***** Booting Zephyr OS v4.x.x ***** Hello World! mimxrt685_aud_evk/mimxrt685s/cm33关于west flash/west debug的更多说明如-p干净构建、-t指定 target 等可参考 Zephyr 文档中构建应用与运行应用的章节build_an_application/application_run。源码级纵深Flash 布局与启动细节64 MB QSPI Flash 与分区表从 mimxrt685_aud_evk_mimxrt685s_cm33.dts 可看到完整的 FlexSPI Flash 配置MX25U51245G 挂载于 FlexSPI 端口 2支持最高 96 MHz SPI 时钟JEDEC ID 为c2 25 3aflexspi { status okay; mx25u51245g: flash-controller2 { compatible nxp,imx-flexspi-nor; size DT_SIZE_M(64 * 8); reg 2; spi-max-frequency DT_FREQ_M(96); jedec-id [c2 25 3a]; ranges 0x0 0x18000000 DT_SIZE_M(64); ... partitions { boot_partition: partition0 { label mcuboot; reg 0x00000000 DT_SIZE_K(128); }; slot0_partition: partition20000 { label image-0; reg 0x00020000 DT_SIZE_M(3); }; slot1_partition: partition320000 { label image-1; reg 0x00320000 DT_SIZE_M(3); }; storage_partition: partition620000 { label storage; reg 0x00620000 (DT_SIZE_M(58) - DT_SIZE_K(128)); }; }; }; };分区布局一览分区标签起始地址大小bootmcuboot0x00000000128 KBslot0image-00x000200003 MBslot1image-10x003200003 MBstoragestorage0x0062000058 MB - 128 KB该布局为 MCUboot 双 slot 升级预留了空间chosen节点中的zephyr,flash-controller、zephyr,flash、zephyr,code-partition均指向上述 Flash 与 slot0 分区。启动头Boot Header与 Flash 配置块i.MX RT 系列从外部 QSPI Flash 启动时Boot ROM 要求镜像开头附带Flash 配置块FCB。当不使用 MCUboot 时Kconfig.defconfig 会默认启用config NXP_IMXRT_BOOT_HEADER default y if !BOOTLOADER_MCUBOOT此时 CMakeLists.txt 会把 flash_config/flash_config.c 编入.flash_conf段。该文件针对 MX25U51245G 定义了完整的 FlexSPI NOR 配置块包括设备模式通过 WRSR0x01向状态/配置寄存器写入0xC740置位 QEQuad Enable并将配置寄存器 dummy-cycle 位设为 10 周期与 Zephyr Flash 驱动安装的 1S-4S-4S0xEC读取时序保持一致LUT查找表定义了 4READ4B0xEC读命令、读状态、写状态、写使能、扇区擦除SE4B 0x21、块擦除BE4B 0xDC、页编程4PP4B 0x3E与整片擦除等序列几何参数page_size 0x100256 B、sector_size 0x10004 KB、block_size 0x1000064 KB。同时 soc/nxp/imxrt/imxrt6xx/Kconfig.defconfig 定义了FLEXSPI_CONFIG_BLOCK_OFFSET默认0x400与ROM_START_OFFSET启用启动头时默认0x1200供 Boot ROM 正确找到 FCB 与应用入口。启动早期初始化FlexSPI Flash 复位引脚处理cm33/init.c 实现了板级早期初始化钩子board_early_init_hook板卡 Kconfig 中select BOARD_EARLY_INIT_HOOK。其作用与 RT6xx 的 FlexSPI Flash 复位机制有关sys_reboot()触发的是 NVIC_SystemReset暖复位此时 Boot ROM 必须翻转外部 FlexSPI Flash 的复位引脚否则 Flash 会停留在非默认模式导致重启失败该代码通过OCOTP OTP 影子字 BOOT_CFG1shadow index 97的读-改-写启用FLEXSPI_RESET_PIN_ENABLE并把复位引脚配置为PIO2_12与 AUD-EVK 原理图上 MX25U51245G 的 RESET 引脚连接一致物理熔丝保持未编程状态代码采用读-改-写方式以保留已编程熔丝加载的其他 BOOT_CFG1 位若该影子字被写锁定如已烧录/安全芯片该写操作会被硬件忽略。这段代码直观展示了板级支持包BSP中硬件勘误/约束类处理的典型写法也解释了为什么该板需要BOARD_EARLY_INIT_HOOK。常见问题与排查要点目标名写错导致找不到板卡必须使用完整三段式目标mimxrt685_aud_evk/mimxrt685s/cm33省略cm33段会因 SOC 选择歧义CM33 / HiFi4而失败。烧录后串口无输出确认使用调试 USB 口而非高速 USB 数据口并核对串口参数 115200/8N1按下 RESET 键触发冷启动。重启后无法重新启动reboot 失败与 FlexSPI Flash 复位引脚配置相关需要CONFIG_REBOOT使能并保留板级board_early_init_hook生效OCOTP BOOT_CFG1 影子字未被写锁。使用 J-Link 时需在命令中显式指定-r jlinkrunner 参数--deviceMIMXRT685S_M33 --reset-after-load已由 board.cmake 注入。涉及音频外设I2S/DMIC时从 soc/nxp/imxrt/imxrt6xx/Kconfig.defconfig 可见启用I2S_MCUX_FLEXCOMM或AUDIO_DMIC_MCUX会自动select INIT_AUDIO_PLL即需要初始化音频 PLL 才能获得音频外设所需时钟。参考资料板卡文档boards/nxp/mimxrt685_aud_evk/doc/index.rst设备树mimxrt685_aud_evk_mimxrt685s_cm33.dts、mimxrt685_aud_evk-pinctrl.dtsi构建配置mimxrt685_aud_evk_mimxrt685s_cm33_defconfig、Kconfig.defconfig烧录与调试board.cmake启动细节cm33/init.c、flash_config/flash_config.cSOC 支持soc/nxp/imxrt/imxrt6xx/Kconfig.soc、soc/nxp/imxrt/imxrt6xx/Kconfig.defconfig赞分享操作系统嵌入式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 中的 NXP MIMXRT1064-EVK 开发板支持详解硬件资源、引脚复用与烧录调试指南Zephyr 中的 NXP MIMXRT1064 EVK 开发板支持详解硬件资源、引脚复用与烧录调试指南 MIMXRT1064 EVK 是 NXP 面向 i.操作系统嵌入式RTOS物联网Zephyr 板级支持实战NXP FRDM-KE17Z512 开发板硬件特性、烧录与调试全指南Zephyr 板级支持实战NXP FRDM KE17Z512 开发板硬件特性、烧录与调试全指南 FRDM KE17Z512 是 Zephyr RTOS 官方支操作系统嵌入式RTOS物联网Zephyr 支持的 NXP FRDM-MCXC242 开发板硬件资源、引脚映射与烧录调试实战指南Zephyr 支持的 NXP FRDM MCXC242 开发板硬件资源、引脚映射与烧录调试实战指南 导读 FRDM MCXC242 是 NXP 推出的一款面向操作系统嵌入式RTOS物联网创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →