littlebot
Published on 2025-04-12 / 3 Visits
0

【源码】基于ARM Cortex M7架构的MIMXRT1052微控制器QSPI Nor Flash启动及SDRAM加载运行系统

项目简介

本项目以NXP的MIMXRT1052系列微控制器和野火“I.MX1052 EVK Pro”开发板为基础,达成从QSPI Nor Flash启动并将程序加载至外部SDRAM运行的功能。项目涵盖硬件初始化、系统时钟配置、XIP相关配置、SDRAM的DCD配置、链接脚本修改以及中断向量表重定向等内容,还具备启动代码、UART通信、GPIO控制、LED闪烁和按键检测等功能。

项目的主要特性和功能

  1. 启动与加载:支持从QSPI Nor Flash启动,借助DCD配置让BootROM初始化外部SDRAM,把程序代码加载到SDRAM运行。
  2. XIP配置:依据开发板所用Nor Flash型号(W25Q256JV),修改xip目录下的配置文件实现XIP运行。
  3. SDRAM配置:针对开发板使用的SDRAM型号(W9825G6KH),实现对应的DCD配置数据,通过宏定义使能DCD配置并跳过SDRAM时钟初始化。
  4. 链接脚本修改:添加FreeMarker Linker Script Template文件修改链接脚本,将大部分代码链接到SDRAM。
  5. 中断向量表重定向:重载Systeminit函数中调用的SystemInitHook弱函数,把中断向量表从Flash复制到SDRAM。
  6. 硬件功能:有启动代码负责设置异常向量表等;具备硬件初始化功能,涵盖MPU、引脚、时钟和外设;提供UART通信驱动,支持阻塞和非阻塞模式及DMA传输;提供GPIO驱动模块,支持端口初始化、输出值设置和中断模式配置;可通过按键控制LED亮灭,利用SysTick定时器控制LED闪烁频率。

安装使用步骤

  1. 环境准备:安装合适的编译器和调试器,如Keil或IAR Embedded Workbench,以及NXP提供的MCUXpresso SDK。
  2. 代码获取:下载项目源代码文件并解压到合适位置。
  3. XIP配置:修改工程下xip目录的evkbimxrt1050_flexspi_nor_config.c文件,根据Nor Flash型号(W25Q256JV)的数据手册修改参数。
  4. SDRAM配置:在工程属性中添加宏XIP_BOOT_HEADER_DCD_ENABLE = 1使能DCD配置,添加宏SKIP_SYSCLK_INIT跳过SDRAM时钟初始化。
  5. 链接脚本修改:在工程中添加“linkscripts”文件夹,创建main_text.ldtmain_rodata.ldtmain_data.ldt三个文件并修改链接脚本。
  6. 项目配置:使用MCUXpresso SDK配置项目,配置所需的硬件和驱动。
  7. 编译和下载:使用Keil或IAR等编译器编译项目,用调试器将编译生成的程序下载到MIMXRT1052微控制器。
  8. 调试与运行:使用调试器调试,观察LED闪烁和按键控制LED亮灭功能是否正常。

注意:编译和下载前,需确保正确配置微控制器的硬件连接,包括电源、晶振、JTAG/SWD调试接口等。同时,可能需根据实际硬件平台和开发环境调整代码中的配置参数和路径。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】