创建工程后目录结构:

名称

作用

Listings

存放编译器编译时候产生的 c/汇编/链接的列表清单

Objects

存放编译产生的调试信息、 hex 文件、预览信息、封装库等

NXP RT1052 新建工程--寄存器_固件库

test目录存放 startup_MIMXRT1052.s、 MIMXRT1052.h、 main.c 文件

MIMXRT1052xxxxx_flexspi_nor:复制存储器分配文件

startup_MIMXRT1052.s    启动文件,系统上电后第一个运行的程序,由汇编编写, C 编程用的比较少,可暂时
不管,这个文件是从固件库里面拷贝而来的,由 NXP 官方提供。文件在这个目录:MIMXRT1052\startup_MIMXRT1052.s
MIMXRT1052.h :用户手动新建,用于存放寄存器映射的代码,暂时为空。

 初始化堆栈指针 SP;
 初始化程序计数器指针 PC;
 设置堆、栈的大小;
 设置中断向量表的入口地址;
 调用 SystemInit() 函数配置 RT1052 的系统时钟。
 设置 C 库的分支入口“__main”(最终用来调用 main 函数) ;
 

 

main.c:用户手动新建,用于存放 main 函数,写入如下空代码。

在此文件中添加了一个空的函数 SystemInit(),该函数在启动文件startup_MIMXRT1052.s 的复位程序中被调用,主要作用是初始化系统时钟,是在固件库里面实现的。目前没有使用固件库编程,为了防止编译的时候报错说找不到这个函数的定义,所以在 main.c 里面手动定义一个空的 SystemInit()函数
 

#include "MIMXRT1052.h"



int main(void)
{

while(1);

}

// 函数为空,目的是为了骗过编译器不报错
void SystemInit(void)
{
}

 

找到SDK中SDK_2.5.1_MIMXRT1052xxxxB-MDK\devices\MIMXRT1052\MIMXRT1052.h

MIMXRT1052.h文件中内容全部屏蔽。

SDK_2.5.1_MIMXRT1052xxxxB-MDK\devices\MIMXRT1052\arm\startup_MIMXRT1052.s

SDK_2.5.1_MIMXRT1052xxxxB-MDK\devices\MIMXRT1052\arm\MIMXRT1052xxxxx_flexspi_nor

以上四个文件,存放在一个文件夹下:

经过上一节安装RT1052 pack包后,创建工程

NXP RT1052 新建工程--寄存器_存储器分配_02

 

NXP RT1052 新建工程--寄存器_存储器分配_03

选择RT1052相对于的型号,

NXP RT1052 新建工程--寄存器_初始化_04

用寄存器控制 RT1052 时不需要在线添加库文件,这里点击关掉,选择cancel。

 

NXP RT1052 新建工程--寄存器_初始化_05

 

双击Source Group1弹出选择框,选择.c 、.h 、.s文件 ADD添加。注意不要选择添加XXX_flexspi_nor

 

NXP RT1052 新建工程--寄存器_初始化_06

 

 

NXP RT1052 新建工程--寄存器_存储器分配_07

关闭float型

NXP RT1052 新建工程--寄存器_初始化_08

 

MIMXRT1052xxxxx_flexspi_nor 存储器分配文件选择,取消勾选“Use Memory Layout from TargetDialog”选项,重新配置
。在Scatter File中选择scf文件,编译和下载都可能是此问题导致。

1、在这个 Linker 选项卡中主要设置链接使用的存储器分配文件。

2、修改存储器分配文件。此文件针对官方评估板。

3、选项框下“disable Warnings”添加对忽略 6314 类型警告的配置,否则在编译时经常会提示分配的部分存储器没有使用的警告。

 

NXP RT1052 新建工程--寄存器_初始化_09

Output 把输出文件夹定位到工程目录下的 Objects 文件夹。


NXP RT1052 新建工程--寄存器_存储器分配_10

Listing 把输出文件夹定位到工程目录下的 Listings 文件夹

NXP RT1052 新建工程--寄存器_固件库_11

DEBUG功能和下载功能

NXP RT1052 新建工程--寄存器_存储器分配_12

Utilities 选择 Use Debug Driver
 

NXP RT1052 新建工程--寄存器_固件库_13

 

NXP RT1052 新建工程--寄存器_初始化_14

 

选择目标存储器下载算法
选择目标存储器下载算法,具体要根据板子上使用的 FLASH 型号来决定。先要删除默认的存储器,这些是官方评估板的存储器,

删除和ADD

NXP RT1052 新建工程--寄存器_初始化_15

 

如果下载算法空间不足,下载算法相比默认的需要更大的空间,可以通过如下配置页面中增大算法空间。

NXP RT1052 新建工程--寄存器_初始化_16

小技巧:

如下图把 Reset and Run 也勾选上,这样程序下载完之后就会自动运行,否则需要手动复位。擦除的 FLASH 大小选择 Sectors 即可,不要选择 Full Chip,不然下载会比较慢。

NXP RT1052 新建工程--寄存器_固件库_17

 

编译下载。