项目简介
本项目以NXP的MIMXRT1052系列微控制器和野火“I.MX1052 EVK Pro”开发板为基础,达成从QSPI Nor Flash启动并将程序加载至外部SDRAM运行的功能。项目涵盖硬件初始化、系统时钟配置、XIP相关配置、SDRAM的DCD配置、链接脚本修改以及中断向量表重定向等内容,还具备启动代码、UART通信、GPIO控制、LED闪烁和按键检测等功能。
项目的主要特性和功能
- 启动与加载:支持从QSPI Nor Flash启动,借助DCD配置让BootROM初始化外部SDRAM,把程序代码加载到SDRAM运行。
- XIP配置:依据开发板所用Nor Flash型号(W25Q256JV),修改xip目录下的配置文件实现XIP运行。
- SDRAM配置:针对开发板使用的SDRAM型号(W9825G6KH),实现对应的DCD配置数据,通过宏定义使能DCD配置并跳过SDRAM时钟初始化。
- 链接脚本修改:添加FreeMarker Linker Script Template文件修改链接脚本,将大部分代码链接到SDRAM。
- 中断向量表重定向:重载
Systeminit
函数中调用的SystemInitHook
弱函数,把中断向量表从Flash复制到SDRAM。 - 硬件功能:有启动代码负责设置异常向量表等;具备硬件初始化功能,涵盖MPU、引脚、时钟和外设;提供UART通信驱动,支持阻塞和非阻塞模式及DMA传输;提供GPIO驱动模块,支持端口初始化、输出值设置和中断模式配置;可通过按键控制LED亮灭,利用SysTick定时器控制LED闪烁频率。
安装使用步骤
- 环境准备:安装合适的编译器和调试器,如Keil或IAR Embedded Workbench,以及NXP提供的MCUXpresso SDK。
- 代码获取:下载项目源代码文件并解压到合适位置。
- XIP配置:修改工程下xip目录的
evkbimxrt1050_flexspi_nor_config.c
文件,根据Nor Flash型号(W25Q256JV)的数据手册修改参数。 - SDRAM配置:在工程属性中添加宏
XIP_BOOT_HEADER_DCD_ENABLE = 1
使能DCD配置,添加宏SKIP_SYSCLK_INIT
跳过SDRAM时钟初始化。 - 链接脚本修改:在工程中添加“linkscripts”文件夹,创建
main_text.ldt
、main_rodata.ldt
和main_data.ldt
三个文件并修改链接脚本。 - 项目配置:使用MCUXpresso SDK配置项目,配置所需的硬件和驱动。
- 编译和下载:使用Keil或IAR等编译器编译项目,用调试器将编译生成的程序下载到MIMXRT1052微控制器。
- 调试与运行:使用调试器调试,观察LED闪烁和按键控制LED亮灭功能是否正常。
注意:编译和下载前,需确保正确配置微控制器的硬件连接,包括电源、晶振、JTAG/SWD调试接口等。同时,可能需根据实际硬件平台和开发环境调整代码中的配置参数和路径。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】