资讯动态

Zephyr 板级开发指南:NXP MIMXRT595-EVK(i.MX RT500 跨界 MCU)的 Cortex-M33 与 Fusion F1 DSP 双核实战

发布时间:2026/9/20 1:52:35 来源:尧图企业网站定制
操作系统嵌入式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 仓库中 MIMXRT595-EVK 板级文档系统介绍 NXP i.MX RT500 系列跨界 MCU 评估板在 Zephyr RTOS 中的完整开发流程覆盖板卡硬件资源、引脚复用、外设支持、Fusion F1 DSP 双核构建、烧录调试与故障排查。读完本文你将掌握如何为 MIMXRT595-EVK 的 Cortex-M33 主核与 Xtensa DSP 从核分别构建 Zephyr 应用并独立完成从接线、配置调试探针到运行hello_world的全过程。板卡概览面向低功耗 HMI 的跨界处理器i.MX RT500 系列跨界 MCU 属于 NXP 边缘计算产品家族专为低功耗人机界面HMI应用优化。其设计精髓在于将图形引擎与精简的 Cadence Tensilica Fusion F1 DSP 核心同新一代 Arm Cortex-M33 核心组合在单芯片上以安全、低功耗的嵌入式处理器形态解锁基于显示的应用潜力。MIMXRT595-EVK 是这套方案的原厂评估板其核心亮点在于5 MB 片上 SRAM足以承载图形帧缓冲与 DSP 音频处理多条高带宽外部存储器接口包括带实时解密引擎on-the-fly decryption的 Octal/Quad SPI 接口可直接从加密的外部 Flash 执行代码Cortex-M33275 MHz主核 Fusion F1 DSP 从核的异构计算形态。硬件资源总览根据板级文档与 板卡定义文件MIMXRT595-EVK 的硬件配置包括主处理器MIMXRT595SFFOC Cortex-M33275 MHz带 Cadence Tensilica Fusion F1 DSP调试接口板载高速 USB Link2 调试探针支持 CMSIS-DAP 协议仅支持 Cortex M33 调试USBUSB2.0 高速主机/设备micro USB 连接器与外置晶振外部存储经 FlexSPI 连接的 Octal/Quad Flash 与 pSRAM系统内存5 MB 系统 SRAM存储扩展全尺寸 SD 卡槽SDIO与板载 eMMC 芯片电源管理板载 5 V 输入的 NXP PCA9420UK PMIC提供 1.2 V、1.8 V、3.3 V 输出人机交互用户 LED、复位键与用户按键显示接口MIPI-DSI 连接器、FlexIO 连接器用于 MikroElektronica TFT Proto 5 英寸电容触摸屏传感器NXP FXOS8700CQ 加速度计/磁力计二合一运动传感器音频带 Line-In/Line-Out/麦克风的立体声音频编解码器以及 NXP TFA9896 音频数字功放麦克风板载两颗数字麦克风另支持经 12-pin 排针扩展最多八路板外数字麦克风扩展接口Arduino 单排插针、MikroBus 连接器与 Pmod/主机扩展连接器。在 Zephyr 中的板级形态一个板卡两种核心从 soc.yml 可以看到i.MX RT5xx 系列imxrt5xx下仅有一个 SoCmimxrt595s它包含两个 CPU 簇cm33与f1。因此在 Zephyr 中MIMXRT595-EVK 被定义为一个板卡、两种 target 的形态Target 标识架构说明mimxrt595_evk/mimxrt595s/cm33armCortex-M33 主核默认形态mimxrt595_evk/mimxrt595s/f1xtensaFusion F1 DSP 从核两个 target 的板级描述分别位于 cm33 的 DTS 与 f1 的 DTS。其中 f1 变体以cdns,tensilica-xtensa-lx6兼容节点描述 CPU并将共享内存前 512 kB 保留给 ADSP 使用含 1 kB 复位段代码段与数据段可依需调整。从 cm33 的 YAML 可以看到板卡的资源上限4 608 kB RAM、65 536 kB Flash。NXP 将 MIMXRT595-EVK 视为 i.MX RT5xx 家族的超集板卡superset board是 NXP 对 Zephyr 全平台支持Full Platform Support的聚焦对象家族内新特性的支持会优先在此板卡落地。与之高度相似的 mimxrt685_evk 板卡上已支持的特性通常也可复用到本板卡。支持的外设与 Shield 生态MIMXRT595-EVK 在 Zephyr 中已声明支持以下外设见 cm33 YAML 的supported列表adc、arduino_gpio、arduino_i2c、arduino_serial、counter、dma、dmic、flash、gpio、i2c、i2s、pwm、sdhc、spi、usb_device、usbd、watchdog这些特性在 cm33 板级 DTS 中有对应的使能证据例如FlexSPI0外接 64 MB Octal flashmx25um51345g120 MHz并划分了 mcuboot128 KB、image-0/image-1各 3 MB与 storage 分区用于 MCUboot 双镜像引导FlexSPI2外接 8 MB pSRAMaps6408l198 MHz映射为FLEXSPI2内存区域Flexcomm4作为 Arduino I2C总线上挂载 FXOS8700 传感器地址0x1eFlexcomm12作为 Arduino 串口USART12Flexcomm16hs_lspi1作为高速 SPIFlexcomm1 / Flexcomm3配置为 I2S 接收/发送默认disabled按需使能usdhc0支持 SD 卡SDIO与 eMMC并启用 HS200/HS400 高速模式I3C0总线上挂载 Wolfson WM8904 音频编解码器LPDAC0、DMIC/PDM、SCT、CTimer、WWD、RTC、CRC、USB HS、smartDMA等均已在 DTS 中使能。MIPI-DSI 显示 Shield板卡文档明确列出经过验证的显示 Shield它们通过板载 MIPI-DSI 接口工作rk055hdmipi4m、rk055hdmipi4ma0、g1120b0mipi—— 支持 MIPI-DSI 显示接口。在 DTS 中nxp_mipi_connector节点描述了 MIPI FPC 接口EVK 上的 J44的 GPIO 映射LEDK、RESET、LPTE、CTP_I2C、CTP_RST、CTP_INT、PWR_EN、BL_PWMmipi_dsi节点还接入了 smartDMA 以驱动 DSI 传输。引脚连接与 IO 配置MIMXRT595 SoC 通过 IOCON 寄存器配置引脚功能。板卡文档给出了以下常用引脚映射表引脚功能用途PIO0_2USART0USART RXPIO0_1USART0USART TXPIO0_14GPIOGREEN LEDPIO0_25GPIOSW0PIO0_10GPIOSW1PIO4_30USART12USART TXPIO4_31USART12USART RXPIO0_29I2CI2C SCLPIO0_30I2CI2C SDAPIO0_22GPIOFXOS8700 TRIGGERPIO1_5SPISPI MOSIPIO1_4SPISPI MISOPIO1_3SPISPI SCKPIO1_6SPISPI SSELPIO0_5SCT0SCT0 GPI0PIO0_6SCT0SCT0 GPI1对照 cm33 DTS 中的aliases可以确认软件层对应关系sw0/sw1分别对应user_button_1gpio0 25与user_button_2gpio0 10led0/led1/led2对应绿/蓝/红三色 LEDgpio1 0、gpio3 17、gpio0 14usart-0对应flexcomm0。引脚复用pinmux的具体配置集中在 pinctrl 文件由 NXP 的gen_board_pinctrl.py从 MIMXRT595-EVK.mex 工程生成包括 USART0、USART12、I2C、SPI、I2S、DMIC、FLEXSPI0/2、USDHC、SCT、I3C、PMIC I2C、LPADC 等全部复用组并定义了 slew-rate、drive-strength、开漏、上下拉等电气属性。若需自定义引脚功能修改该文件中的 pinmux 组即可。系统时钟与串口系统时钟板卡文档明确说明MIMXRT595-EVK 默认使用OS Event timer作为系统时钟源。在 cm33 DTS 中可以看到对应实现/* * RT595 EVK board uses OS timer as the kernel timer * In case we need to switch to SYSTICK timer, then * replace os_timer with systick */ os_timer { status okay; wakeup-source; };如需切换为 SYSTICK 定时器按 DTS 注释提示将os_timer替换为systick即可。串口MIMXRT595 SoC 拥有 13 个 FLEXCOMM 串行接口板卡上其中一个配置为 USART 作为控制台console其余默认未使用。控制台对应flexcomm0在 DTS 中配置为nxp,lpc-usart波特率 115200并启用了 DMArx/tx 通道与默认 pinmuxflexcomm0 { compatible nxp,lpc-usart; status okay; current-speed 115200; pinctrl-0 pinmux_flexcomm0_usart; pinctrl-names default; dmas dma0 0, dma0 1; dma-names rx, tx; };chosen节点中zephyr,console、zephyr,shell-uart、zephyr,uart-mcumgr均指向flexcomm0也就是说调试串口、Shell 与 MCUmgr 默认共用这一路 UART。板卡默认配置cm33 defconfig启用了CONFIG_CONSOLE、CONFIG_UART_CONSOLE、CONFIG_SERIAL与CONFIG_UART_INTERRUPT_DRIVEN同时开启了 TrustZone-MCONFIG_TRUSTED_EXECUTION_SECURE、ARM MPU 与硬件栈保护CONFIG_HW_STACK_PROTECTION。为 Fusion F1 DSP 构建应用RT500 的 Fusion F1 DSP 核心同样可以运行 Zephyr。构建 RT500 DSP 应用时需以 F1 SoC 为 targetZephyr SDK 已包含支持 RT500 DSP 核心的 Xtensa 工具链。构建 DSP 版hello_world的命令为$ west build -b mimxrt595_evk/mimxrt595s/f1 samples/hello_worldf1 板级 YAML 明确了该 target 的形态架构为xtensa工具链为zephyr。对应的 f1 defconfig 启用了CONFIG_GEN_ISR_TABLES、CONFIG_XTENSA_SMALL_VECTOR_TABLE_ENTRY并关闭了CONFIG_NXP_IMXRT_BOOT_HEADERDSP 从核无需普通启动头。DSP 应用的调试方法可参考 NXP 官方文档《Getting Started with Xplorer for EVK-MIMXRT595》结合 Tensilica Xplorer 进行固件级调试。从 f1 DTS 的注释可以看到共享内存布局约定RT595 的 ADSP 共享 RAM 在代码总线映射于偏移 0在数据总线映射于偏移 0x800000复位段必须位于 0 地址且不小于 1 kB——这是 DSP 固件链接与调试时需要特别留意的底层约束。编程与调试板级文档建议照常使用west build/west flash/west debug完成构建与烧录。板卡默认配置使用LPC-Link2作为调试探针。从 board.cmake 可以看到板卡支持两种 runnerboard_runner_args(jlink --deviceMIMXRT595S_M33 --reset-after-load) board_runner_args(linkserver --deviceMIMXRT595S:EVK-MIMXRT595) board_runner_args(linkserver --override/device/memory/5/flash-driverMIMXRT500_SFDP_MXIC_OSPI_S.cfx) board_runner_args(linkserver --override/device/memory/5/location0x18000000) include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) include(${ZEPHYR_BASE}/boards/common/linkserver.board.cmake)即支持J-Link与Linkserver两种烧录/调试后端其中 Linkserver 烧录时使用 MXIC Octal SPI 的 SFDP flash 驱动并把 flash 定位到 0x18000000对应 FlexSPI0 映射地址。配置调试探针按探针类型板卡文档给出了三种接线方式LPCLink2 JLink板载安装 J-Link 调试主机工具并确保其位于搜索路径中如需将 SWD 信号连接到板载调试电路安装跳线 JP17、JP18、JP19默认已安装按板载 J-Link 固件烧录指引将板载 Link2 编程为 J-Link 固件并确保使用该板卡的最新固件。JLink外部探针安装 J-Link 调试主机工具并确保位于搜索路径中移除跳线 J17、J18、J19默认已安装以断开 SWD 信号与板载调试电路的连接将外部 J-Link 探针连接到 J2 10-pin 排针。Linkserver安装 Linkserver 调试主机工具并确保位于搜索路径中按 MIMXRT595-EVK Debug Firmware 指引更新调试固件。配置串口终端将 USB 线从 PC 连接到J40使用 minicom、putty 等任意串口终端参数如下速率Speed115200数据位Data8 bits校验ParityNone停止位Stop bits1烧录与运行 hello_world以hello_world为例默认使用 J-Link 调试主机工具$ west build -b mimxrt595_evk/mimxrt595s/cm33 samples/hello_world $ west flash打开串口终端按下 RESET 按键复位板卡应看到如下输出版本号字符串取决于所用 Zephyr 版本示例为 v2.7*** Booting Zephyr OS v2.7 *** Hello World! mimxrt595_evk调试以hello_world为例启动调试会话$ west build -b mimxrt595_evk/mimxrt595s/cm33 samples/hello_world $ west debug打开串口终端在调试器中单步执行应用终端中应出现与烧录运行时相同的输出*** Booting Zephyr OS v2.7 *** Hello World! mimxrt595_evk故障排查Flash 镜像干扰导致调试器无法连接如果调试探针连接失败并出现如下错误很可能是 Flash 中的镜像干扰所致Remote debugging using :2331 Remote communication error. Target disconnected.: Connection reset by peer. monitor command not supported by this target. monitor command not supported by this target. You cant do that when your target is exec (gdb) Could not connect to target. Please check power, connection and settings.解决办法是擦除 Flash 并重新烧录按以下步骤操作将SW7DIP 开关拨至ON-ON-ON阻止从 Flash 启动按下SW3复位用已知可用的 Zephyr 应用例如hello_world重新运行west debug或west flash将SW5DIP 开关拨至OFF-OFF-ON恢复从 Flash 启动按下SW3复位。延伸阅读仓库内相关资源板级文档与板卡照片boards/nxp/mimxrt595_evk/doc/index.rst、boards/nxp/mimxrt595_evk/doc/mimxrt595_evk.jpgCortex-M33 板级描述mimxrt595_evk_mimxrt595s_cm33.dtsFusion F1 DSP 板级描述mimxrt595_evk_mimxrt595s_f1.dts引脚复用配置mimxrt595_evk_mimxrt595s_cm33-pinctrl.dtsi烧录后端配置board.cmake默认 Kconfigcm33 defconfig、f1 defconfigSoC 家族定义soc/nxp/imxrt/soc.yml示例应用samples/hello_world对于 i.MX RT5xx 家族中尚未在本板卡落地的特性可参考功能更丰富的姊妹板卡 mimxrt685_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点击查看免费下载相关推荐Zephyr 在 NXP i.MX 943 EVK 上的多核移植与调试指南A55 双簇 SMP、M33/M7 协处理与 NETC 以太网实战Zephyr 在 NXP i.MX 943 EVK 上的多核移植与调试指南A55 双簇 SMP、M33/M7 协处理与 NETC 以太网实战 导读 本文围绕操作系统嵌入式RTOS物联网Zephyr 开发板移植指南NXP FRDM-IMXRT700 双核Cortex-M33 CPU0/CPU1环境构建与调试Zephyr 开发板移植指南NXP FRDM IMXRT700 双核Cortex M33 CPU0/CPU1环境构建与调试 FRDM IMXRT700 是操作系统嵌入式RTOS物联网Zephyr 板级指南NXP FRDM-IMXRT1152 评估板——基于 i.MX RT1152 跨界 MCU 的构建、烧录与调试实战Zephyr 板级指南NXP FRDM IMXRT1152 评估板——基于 i.MX RT1152 跨界 MCU 的构建、烧录与调试实战 本篇技术指南以 Ze操作系统嵌入式RTOS物联网创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价