ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Zephyr 下 NXP MIMXRT1050-EVK 开发板完全指南:硬件资源、双 Flash 变体与调试烧录实战

Zephyr 下 NXP MIMXRT1050-EVK 开发板完全指南:硬件资源、双 Flash 变体与调试烧录实战 操作系统嵌入式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 RTOS 仓库中 MIMXRT1050-EVK 板级文档 为核心系统讲解 NXP i.MX RT1050 跨界处理器评估板在 Zephyr 中的完整支持情况涵盖硬件特性、外部存储器配置、引脚复用Pinmux表、系统时钟与串口规划、hyperflash/qspi 两种板级变体的构建目标、以及从调试探针配置到烧录运行、故障排查的完整实战流程。读完本文你将能够独立完成该板卡的 Zephyr 环境搭建、应用构建、烧录与调试并能基于源码理解 SEMC/FLEXSPI 等外部存储器的初始化机制。开发板与处理器概览MIMXRT1050-EVK 是 NXP 官方评估板核心搭载 i.MX RT1050 系列跨界处理器。该系列基于 ARM Cortex-M7 内核在提供高 CPU 性能的同时具备实时响应能力是 NXP 对 Cortex-M 平台的一次重要演进。i.MX RT1050 提供了丰富的外部存储接口包括 SDRAM、Raw NAND FLASH、NOR FLASH、SD/eMMC、Quad SPI、HyperBus 等同时具备广泛的外设连接能力可用于 WLAN、Bluetooth™、GPS、显示器和摄像头传感器。与 i.MX 其他系列一致RT1050 也拥有丰富的音视频特性包括 LCD 显示、基础 2D 图形、摄像头接口、SPDIF 与 I2S 音频接口。该板卡的板级标识与 SoC 选型可直接在仓库中确认板级标识文件 board.yml 声明了板名mimxrt1050_evkSoC 为mimxrt1052并列出hyperflash与qspi两个变体Kconfig.mimxrt1050_evk 中将板级 Kconfig 符号BOARD_MIMXRT1050_EVK关联到 SoC 部件号SOC_PART_NUMBER_MIMXRT1052DVL6B即当前 Zephyr 构建面向的是 DVL6B 这颗更新后的芯片板级默认配置 mimxrt1050_evk_hyperflash_defconfig 启用了控制台、UART 控制台、串口、GPIO、ARM MPU 与硬件栈保护。图为 NXP MIMXRT1050-EVK 开发板可看到以太网口、USB 接口、SD 卡槽与调试排针等主要接口布局。硬件资源清单板载硬件资源如下MCUMIMXRT1052DVL6A600 MHz512 KB TCM存储器256 KB SDRAM64 Mbit QSPI Flash512 Mbit Hyper Flash显示LCD 连接器触摸连接器以太网10/100 Mbit/s 以太网 PHYUSBUSB 2.0 OTG 连接器、USB 2.0 Host 连接器音频3.5 mm 立体声耳机插孔、板载麦克风、左右扬声器输出连接器电源5 V DC 电源插孔调试20 引脚 JTAG 连接器、OpenSDA带 DAPLink传感器FXOS8700CQ 6 轴电子罗盘、CMOS 摄像头传感器接口扩展Arduino 接口其他CAN 总线连接器注板级文档中的 SoC 型号标注为 MIMXRT1052DVL6A而当前 Zephyr 构建面向的是 MIMXRT1052DVL6B见 Kconfig.mimxrt1050_evk 与下方板卡版本章节两者兼容。外部存储器SEMC 与 FLEXSPI 双通道该平台的外部存储器及其在 Zephyr 中的启用方式如下器件控制器状态IS42S16160JSDRAMSEMC通过 device configuration data block 启用在启动时配置 SEMCS26KS512SDPBHI020HyperFlashFLEXSPI通过 flash configuration block 启用在启动时配置 FLEXSPI这两类配置块机制可以结合板级源码进一步理解板级默认配置 Kconfig.defconfig 中设置了CONFIG_DEVICE_CONFIGURATION_DATAy即 SDRAM 的 device configuration data与CONFIG_NXP_IMX_EXTERNAL_SDRAMy同时默认开启以太网驱动CONFIG_ETH_DRIVERy板级目录下的 dcd/dcd.c 与 dcd/dcd.h 承载 device configuration dataDCD由 boot header 在启动早期完成 SEMC 控制器初始化xip/ 目录下的evkbimxrt1050_flexspi_nor_config.c与evkbimxrt1050_flexspi_nor_config.h为 FLEXSPI 的 flash configuration block其中还包含了 qspi 专用配置evkbimxrt1050_flexspi_nor_qspi_config.c与板级的两种 Flash 变体一一对应。在设备树层面两种变体对外部 Flash 的建模可见于 mimxrt1050_evk_mimxrt1052_hyperflash.dtsHyperFlash 使用nxp,imx-flexspi-hyperflash兼容节点、256 KB 擦除块与 mimxrt1050_evk_mimxrt1052_qspi.dtsQSPI 使用nxp,imx-flexspi-nor兼容节点、4 KB 擦除块、JEDEC ID9d 70 17。支持的板级功能MIMXRT1050-EVK 在 Zephyr 中支持的硬件功能以.. zephyr:board-supported-hw::指令自动生成。从板级 yaml 元数据 mimxrt1050_evk_mimxrt1052_hyperflash.yaml 可以确认支持的功能列表adc、arduino_gpio、arduino_serial、counter、display、dma、flash、gpio、i2c、netif:eth、ptp_clock、sdhc、spi、usb_device、usbd、watchdog、rtc。qspi 变体的 yaml 元数据 功能列表一致区别仅在于 Flash 容量hyperflash 变体 64 MBqspi 变体 8 MB。提示对于尚未支持的额外功能可参考同系列超集板卡 mimxrt1064_evk。NXP 优先在该超集板卡上启用 Zephyr 的完整平台支持Full Platform Support因此 mimxrt1064_evk 已支持的功能通常也可以在 mimxrt1050_evk 上复用。配合 Shield 测试的功能上表部分功能通过 Zephyr shields 在板上完成验证rk043fn02h_ct与rk043fn66hs_ctg支持 Display显示接口dvp_fpc24_mt9m114支持 CSI 视频/摄像头接口。连接与 IOPinmux/GPIO 对照表MIMXRT1050 SoC 共有五组 pinmux/gpio 控制器。以下是板级文档给出的完整引脚功能对照表引脚名功能用途GPIO_AD_B0_00LPSPI1_SCKSPIGPIO_AD_B0_01LPSPI1_SDOSPIGPIO_AD_B0_02LPSPI3_SDI/LCD_RSTSPI/LCD 显示GPIO_AD_B0_03LPSPI3_PCS0SPIGPIO_AD_B0_05GPIOSD 卡GPIO_AD_B0_09GPIO/ENET_RSTLEDGPIO_AD_B0_10GPIO/ENET_INTGPIO/以太网GPIO_AD_B0_11GPIO触摸中断GPIO_AD_B0_12LPUART1_TXUART 控制台GPIO_AD_B0_13LPUART1_RXUART 控制台GPIO_AD_B1_00LPI2C1_SCLI2CGPIO_AD_B1_01LPI2C1_SDAI2CGPIO_AD_B1_06LPUART3_TXUART BT HCIGPIO_AD_B1_07LPUART3_RXUART BT HCIGPIO_AD_B1_11ADCADC1 通道 0WAKEUPGPIOSW0GPIO_B0_00LCD_CLKLCD 显示GPIO_B0_01LCD_ENABLELCD 显示GPIO_B0_02LCD_HSYNCLCD 显示GPIO_B0_03LCD_VSYNCLCD 显示GPIO_B0_04LCD_DATA00LCD 显示GPIO_B0_05LCD_DATA01LCD 显示GPIO_B0_06LCD_DATA02LCD 显示GPIO_B0_07LCD_DATA03LCD 显示GPIO_B0_08LCD_DATA04LCD 显示GPIO_B0_09LCD_DATA05LCD 显示GPIO_B0_10LCD_DATA06LCD 显示GPIO_B0_11LCD_DATA07LCD 显示GPIO_B0_12LCD_DATA08LCD 显示GPIO_B0_13LCD_DATA09LCD 显示GPIO_B0_14LCD_DATA10LCD 显示GPIO_B0_15LCD_DATA11LCD 显示GPIO_B1_00LCD_DATA12LCD 显示GPIO_B1_01LCD_DATA13LCD 显示GPIO_B1_02LCD_DATA14LCD 显示GPIO_B1_03LCD_DATA15LCD 显示GPIO_B1_04ENET_RX_DATA00以太网GPIO_B1_05ENET_RX_DATA01以太网GPIO_B1_06ENET_RX_EN以太网GPIO_B1_07ENET_TX_DATA00以太网GPIO_B1_08ENET_TX_DATA01以太网GPIO_B1_09ENET_TX_EN以太网GPIO_B1_10ENET_REF_CLK以太网GPIO_B1_11ENET_RX_ER以太网GPIO_B1_12GPIOSD 卡GPIO_B1_14USDHC1_VSELECTSD 卡GPIO_B1_15BACKLIGHT_CTLLCD 显示GPIO_EMC_40ENET_MDC以太网GPIO_EMC_41ENET_MDIO以太网GPIO_AD_B0_09ENET_RST以太网GPIO_AD_B0_10ENET_INT以太网GPIO_SD_B0_00USDHC1_CMD/LPSPI1_SCKSD 卡/SPIGPIO_SD_B0_01USDHC1_CLK/LPSPI1_PCS0SD 卡/SPIGPIO_SD_B0_02USDHC1_DATA0/LPSPI1_SDOSD 卡/SPIGPIO_SD_B0_03USDHC1_DATA1/LPSPI1_SDISD 卡/SPIGPIO_SD_B0_04USDHC1_DATA2SD 卡GPIO_SD_B0_05USDHC1_DATA3SD 卡GPIO_AD_B1_021588_EVENT2_OUT1588GPIO_AD_B1_031588_EVENT2_IN1588注意要在该板上使用 SPI 外设必须先焊接零欧姆电阻 R278、R279、R280、R281。引脚级配置在仓库中体现为 mimxrt1050_evk-pinctrl.dtsi其中定义了上述引脚的 pinctrl 节点如pinmux_flexspi1等供各设备树引用。系统时钟MIMXRT1050 SoC 默认使用SysTick作为系统时钟源运行在 600 MHz。当启用电源管理时板上的 32 KHz 低频振荡器将作为GPT 定时器的时钟源来产生系统时钟。该时钟允许进入更低功耗状态代价是时钟分辨率降低。串口规划MIMXRT1050 SoC 共有八个 UART板级使用规划如下LPUART1配置为控制台ConsoleLPUART3配置为蓝牙 Host Controller InterfaceBT HCI其余 UART 未使用。对应引脚可对照上文 IO 表LPUART1 的 TX/RX 位于GPIO_AD_B0_12/13LPUART3 的 TX/RX 位于GPIO_AD_B1_06/07。USBRT1050 SoC 具有两个 USB OTGUSBOTG控制器通过 micro USB 连接器同时支持设备device与主机host功能。目前 Zephyr 仅支持 USB 设备功能板级 yaml 中的usb_device/usbd也印证了这一点。板级目标hyperflash 与 qspi 双变体该板有两个可选的构建目标target取决于将哪个 Flash 设置为zephyr,flashmimxrt1050_evk/mimxrt1052/hyperflash默认变体对应板卡出厂时的 HyperFlash 配置mimxrt1050_evk/mimxrt1052/qspi用于已改装为使用 QSPI Flash的板卡。两个变体在仓库中的对应文件构建入口 board.cmake 会强制校验必须指定qspi或hyperflash限定符否则直接报错提示二选一设备树分别见 mimxrt1050_evk_mimxrt1052_hyperflash.dts 与 mimxrt1050_evk_mimxrt1052_qspi.dts默认配置分别见 mimxrt1050_evk_hyperflash_defconfig 与 mimxrt1050_evk_mimxrt1052_qspi_defconfig。此外两个变体的 Flash 分区在设备树中均被划分为boot_partitionmcuboot、slot0_partitionimage-0、slot1_partitionimage-1与storage_partition便于使用 MCUboot 进行 A/B 升级。编程与调试Zephyr 支持三种调试主机工具安装任一偏好的工具后按板卡原理图版本Schematic A/A1 或 B/B1完成相应配置即可LinkServer默认NXP 支持J-LinkNXP 支持pyOCDNXP 不支持。各 runner 的设备参数在 board.cmake 中定义J-Link 使用设备MCIMXRT1052LinkServer 使用MIMXRT1052xxxxB:EVKB-IMXRT1050qspi 变体下 J-Link 会附加--loaderBankAddr0x60000000LoaderQSPI、pyOCD 使用mimxrt1050_quadspi、LinkServer 覆盖为MIMXRT1050_SFDP_QSPI.cfxhyperflash 变体下 pyOCD 使用mimxrt1050_hyperflash。注意该板较新版本使用 LPC-Link2 板载调试探针较旧版本使用 OpenSDA 探针。原理图版本 A/A1 使用 K20 OpenSDA 探针B/B1 使用 LPC-Link2 LPC4322 探针。配置调试探针原理图 A/A1RT1050 原理图 Rev A 中J32/J33是 SWD 隔离跳线SW4是复位按钮J21是 20 引脚 JTAG/SWD 排针。详细配置步骤参见仓库中通用的 opensda-debug 配置说明。配置调试探针原理图 B/B1RT1050 原理图 Rev B 中J47/J48是 SWD 隔离跳线J42是 DFU 模式跳线J21是 20 引脚 JTAG/SWD 排针。详细配置步骤参见通用的 rt1xxx-lpclink2-debug 配置说明。配置串口控制台无论选择哪种调试探针都使用 OpenSDA 微控制器作为 USB 转串口适配器来提供串口控制台。检查跳线J30和J31处于on状态出厂默认即为 on将 UART 信号连接到 OpenSDA 微控制器。用 USB 线连接 PC 到J28然后使用任意串口终端minicom、putty 等串口参数如下速率Speed115200数据位Data8校验ParityNone停止位Stop bits1烧录Flashing以hello_world示例为例烧录命令如下默认 hyperflash 变体west build -b mimxrt1050_evk/mimxrt1052/hyperflash samples/hello_world west flash打开串口终端复位板卡按 SW4 按钮终端应输出***** Booting Zephyr OS v1.14.0-rc1 ***** Hello World! mimxrt1050_evk//hyperflash调试Debugging同样以hello_world为例调试命令如下west build -b mimxrt1050_evk/mimxrt1052/hyperflash samples/hello_world west debug打开串口终端在调试器中单步执行应用终端应输出***** Booting Zephyr OS v1.14.0-rc1 ***** Hello World! mimxrt1050_evk//hyperflash故障排查修复无效/损坏的启动头如果调试探针连接失败并出现以下错误可能是 HyperFlash 中的 boot header启动头无效或已损坏。boot header 由 Kconfig 选项CONFIG_NXP_IMXRT_BOOT_HEADER配置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.按以下步骤擦除并重新烧写 HyperFlash 即可修复将 SW7 DIP 开关拨到ON-ON-ON-OFF阻止从 HyperFlash 启动按SW4复位使用一个已知可正常工作的 Zephyr 应用重新运行west debug或west flash将 SW7 DIP 开关拨回OFF-ON-ON-OFF从 HyperFlash 启动按SW4复位。板卡版本说明最初的 MIMXRT1050-EVKrev A0已被更新的 MIMXRT1050-EVKBrev A1取代主要硬件差异如下SoC 从 MIMXRT1052DVL6A更换为 MIMXRT1052DVL6B修复了电源、接口和存储器方面的硬件缺陷增加了 Arduino 排针。当前 Zephyr 构建支持新的 MIMXRT1050-EVKB 板卡。如需更详细信息可参考 NXP 官方的 i.MX RT1050 A0 到 A1 迁移指南AN12146。总结MIMXRT1050-EVK 是 Zephyr 中 NXP i.MX RT10xx 家族的代表性评估板它以 600 MHz Cortex-M7 提供高性能实时计算通过 SEMC 与 FLEXSPI 两个控制器在启动阶段完成 SDRAM 与外部 Flash 的初始化并提供 hyperflash/qspi 两种可切换的构建目标。开发者只需在west build时指定正确的变体限定符配合 LinkServer、J-Link 或 pyOCD 任一调试工具即可完成从编译、烧录到调试、故障恢复的完整闭环。与超集板卡 mimxrt1064_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 MIMXRT685-AUD-EVK 开发板支持指南硬件资源、板级配置与烧录调试实战Zephyr 下 NXP MIMXRT685 AUD EVK 开发板支持指南硬件资源、板级配置与烧录调试实战 MIMXRT685 AUD EVK 是 Zeph操作系统嵌入式RTOS物联网Zephyr RTOS 下的 NXP MIMXRT1024-EVK 开发板实战指南硬件特性、引脚映射与烧录调试Zephyr RTOS 下的 NXP MIMXRT1024 EVK 开发板实战指南硬件特性、引脚映射与烧录调试 导读 本文以 Zephyr RTOS 仓库中的操作系统嵌入式RTOS物联网Zephyr RTOS 实战NXP MCXW72-EVK 开发板指南硬件特性、固件烧录、调试与蓝牙 NBU 双核镜像Zephyr RTOS 实战NXP MCXW72 EVK 开发板指南硬件特性、固件烧录、调试与蓝牙 NBU 双核镜像 本文以 Zephyr 官方仓库中 m操作系统嵌入式RTOS物联网创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表