i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)

系列文章目录

 

文章目录

  • 系列文章目录
  • 一、目的
  • 二、新建MDK寄存器工程
    • 新建工程文件夹
    • 新建工程
    • 添加启动文件
    • 创建寄存器定义头文件
    • 创建并添加main.c
  • 三、新建MDK不同版本配置
    • 1. 用于SRAM调试版本
      • 创建target
      • target设置
      • 编译器设置
      • 链接器设置(重要)
      • Debug调试设置
      • 下载器设置
      • Utilities设置
      • 开始调试
    • 2. 用于Nor Flash烧写版本
      • 设置并修改链接文件
      • 编译
      • 下载

 

环境说明:

  • MDK版本:5.30
  • SDK版本:2.9.3
一、目的

建立一个最简单的寄存器版本工程,测试在MDK环境下是否可以正常编译和下载。

二、新建MDK寄存器工程

新建工程文件夹

i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)

  • MDK-ARM:用于存放MDK工程文件
  • Src:用于存放用户源码文件
  • Inc:用于存放用户头文件

新建工程

i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)

添加启动文件

从SDK中devices\MIMXRT1062\arm复制启动文件过来:

i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
在MDK中创建Startup分组,并添加启动文件:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)

创建寄存器定义头文件

在本工程中,芯片头文件(用于包含寄存器定义)我们自己写,在Inc文件夹下创建一个空文件MIMXRT1062.h
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
然后将此路径添加到工程中:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)

创建并添加main.c

main.c也是自己编写,在 Src 文件夹创建一个空文件即可,添加到MDK工程中:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
main.c中暂时编写以下内容:

#include "MIMXRT1062.h"

int main(void)
{

    while (1);
}

void SystemInit(void)
{

}
三、新建MDK不同版本配置

MDK工程可以创建多个 target,所有的 target 共用同一份项目文件,但是配置不同。

1. 用于SRAM调试版本

创建target

i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
将当前工程 Target 名称修改为 ram_debug,表示程序被烧写到RAM中,并且只能用于调试,不用于下载

target设置

使用 ARMCC6 编译器,不开启浮点运算单元:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)

编译器设置

因为我们初期写的工程都比较简单,为了防止被编译器优化,将优化等级设为0:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)

链接器设置(重要)

从SDK中复制用于 RAM 中调试程序的链接脚本:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
设置链接器使用该文件:

i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
设置完链接文件之后就可以进行编译,警告如图:

i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
这里我们设置忽略该警告:

i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
再次编译,无告警:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)

Debug调试设置

该工程配置将程序烧写到SRAM中用于调试运行,掉电数据丢失。

从 SDK 的boards\evkmimxrt1060\demo_apps\hello_world\mdk中复制调试器设置文件:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
Debug选项设置如下:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)

下载器设置

进入CMSIS-DAP下载器设置:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
勾选reset and run,无需添加下载算法:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
pack中取消使能:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)

Utilities设置

取消调试前更新目标芯片选项:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)

开始调试

调试器所有选项设置完毕后,点击调试按钮,成功进入调试:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)

2. 用于Nor Flash烧写版本

设置并修改链接文件

链接文件也称为分散加载文件,从SDK中复制过来:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
设置链接器使用该链接文件:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
SDK中的链接文件适用于官方板,这里我们使用的是野火开发板,需要进行修改,点击上图中链接文件选项旁边的Edit
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
注释该段代码:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
设置忽略 6314 类型的编译警告:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)

编译

此时点击编译,可以编译成功:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)

下载

imxrt系列内部不带有Flash,需要使用开发板配套的下载算法将程序下载到外挂Flash中,这里先将野火的下载算法复制到Keil软件目录ARM/Flash中:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
选择CMSIS-DAP下载器:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
点击Setting进入下载器设置:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)

如果检测不到芯片,需要注意先给板子上电,再给下载器上电

选择并添加野火提供的寄存器版本工程下载算法:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
添加下载算法后,增大算法RAM空间:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
设置使用目标驱动来下载:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)
此时,点击下载,下载成功:
i.MX RT开发笔记-05 | 新建 MDK 不同版本工程(SRAM调试版本、Nor Flash下载版本)

 

上一篇:马拉车 - 吉哥系列故事——完美队形II - HDU - 4513


下一篇:HDU 5228 ZCC loves straight flush( BestCoder Round #41)