创建工程后目录结构:
名称 | 作用 |
Listings | 存放编译器编译时候产生的 c/汇编/链接的列表清单 |
Objects | 存放编译产生的调试信息、 hex 文件、预览信息、封装库等 |
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()函数
找到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包后,创建工程
选择RT1052相对于的型号,
用寄存器控制 RT1052 时不需要在线添加库文件,这里点击关掉,选择cancel。
双击Source Group1弹出选择框,选择.c 、.h 、.s文件 ADD添加。注意不要选择添加XXX_flexspi_nor
关闭float型
MIMXRT1052xxxxx_flexspi_nor 存储器分配文件选择,取消勾选“Use Memory Layout from TargetDialog”选项,重新配置
。在Scatter File中选择scf文件,编译和下载都可能是此问题导致。
1、在这个 Linker 选项卡中主要设置链接使用的存储器分配文件。
2、修改存储器分配文件。此文件针对官方评估板。
3、选项框下“disable Warnings”添加对忽略 6314 类型警告的配置,否则在编译时经常会提示分配的部分存储器没有使用的警告。
Output 把输出文件夹定位到工程目录下的 Objects 文件夹。
Listing 把输出文件夹定位到工程目录下的 Listings 文件夹
DEBUG功能和下载功能
Utilities 选择 Use Debug Driver
选择目标存储器下载算法
选择目标存储器下载算法,具体要根据板子上使用的 FLASH 型号来决定。先要删除默认的存储器,这些是官方评估板的存储器,
删除和ADD
如果下载算法空间不足,下载算法相比默认的需要更大的空间,可以通过如下配置页面中增大算法空间。
小技巧:
如下图把 Reset and Run 也勾选上,这样程序下载完之后就会自动运行,否则需要手动复位。擦除的 FLASH 大小选择 Sectors 即可,不要选择 Full Chip,不然下载会比较慢。
编译下载。