MCUXpresso Config Tools+Keil开发野火RT1052 Pro

MCUXpresso Config Tools+Keil开发野火RT1052 Pro

基本信息

硬件

  • 开发板:野火RT1052 Pro

  • 核心板:i.MX RT1052 BTB接口核心板(CPU:MIMXRT1052CVL5B ·主频:600M)

    从野火例程/doc/必读说明.txt中摘出:

/*********************************************************************************************/
【核心板相关的存储器说明】

RT1052芯片内部的RAM存储器,其内部无ROM类型存储器:
ITCM:指令紧耦合缓存(Instruction Tightly-Coupled Memory),
默认大小为128KB,总线宽度为64位,
芯片设计它专用于缓存需要高速执行的指令。
基地址为:0x0000 0000

DTCM:数据紧耦合缓存(Data Tightly-Coupled Memory),
默认大小为128KB,总线宽度为“双32”位,
芯片设计它专用于缓存需要高速访问的数据。
基地址为:0x2000 0000

OCRAM:片上RAM(On-Chip RAM),
默认大小为256KB,总线宽度为32位,
芯片设计它用于缓存数据。
基地址为:0x2020 0000

核心板上的存储器:
SPI NorFlash:默认使用W25Q256型号的SPI NorFlash,大小为32MB,
它连接至RT1052的FlexSPI外设的A1端口,
设计用于掉电保存程序代码,支持XIP
基地址为:0x6000 0000

SDRAM:默认使用W9825G6KH型号的SDRAM,大小为32MB,
它连接到RT1052的SEMC外设,
设计作为内存
基地址为:0x8000 0000

//
/
/

【*】 时钟

A.晶振:
-外部高速晶振:24MHz
-RTC晶振:32.768KHz

B.各总线运行时钟:
-CPU = 528MHz
-AHB = 528MHz
-SYSPLL = 528MHz

C.浮点运算单元:
使能

/*********************************************************************************************/

P.S. 必读说明对于学习RT1052例程很重要,要认真阅读

  • 调试器:野火fireDAP / ST-Link V2

软件

  • MCUXpresso Config Tools (V15.0)

  • Keil μVision (V5.33.0.0)

野火资料

[野火]i.MX RT库开发实战指南——基于i.MXRT1052 — [野火]i.MX RT库开发实战指南——基于i.MXRT1052 文档 (embedfire.com)

工程建立

  1. 打开MCUXpresso Config Tools,选择“创建一个基于SDK 实例或 hello world 工程的新配置和工程”,点击下一步
  2. 设置SDK路径(SDK包从官网Dashboard | MCUXpresso SDK Builder (nxp.com)下载),这里使用SDK_2_15_000_MIMXRT1052xxxxB
  3. 选择工具链Keil MDK
  4. 勾选“克隆选择的电路板或套件示例”,右侧选择SDK示例,这里以EVKB IMXRT1050电路板 -> driver examples -> gpio -> igpio_led_output为例
  5. 完成后窗口选择“关闭和更新源代码”

配置编译

野火开发板与官方板(EVKB i.MXRT1150)最关键的区别就在于采用的外置Flash不同:野火采用32MB的QSPI Flash,而并非64MB的Hyper Flash,相关文件包括但不限于:

  • …flash_config.c & .h
  • …dcd.c & .h

因此在配置工程时需要加以注意

Step0

若没有安装MIMXRT1052_DFP,需要先离线安装(Arm Keil | NXP MIMXRT1052_DFP

Step1

将野火例程“xxx\user\xip”下的

fire_imxrt1052_spiflash_config.c & fire_imxrt1052_spiflash_config.h

fire_imxrt1052_sdram_ini_dcd.c & fire_imxrt1052_sdram_ini_dcd.h

拷贝到新建的工程xip文件夹内

打开工程文件,在xip组中添加文件fire_imxrt1052_spiflash_config.c & fire_imxrt1052_sdram_ini_dcd.c

并删除原有文件:

xip组下的evkbimxrt1050_flexspi_nor_config.c & evkbimxrt1050_flexspi_nor_config.h

board组下的dcd.c & dcd.h

Step2

Target选择xxx_flexspi_nor_release(对应野火例程的xxx_nor_txt_ram),Options配置修改如下:

1) Device

将芯片更改为MIMXRT1052CVL5B(不改好像也没啥问题)

在这里插入图片描述

2) Target

自动生成的Keil工程Arm Compiler默认采用AC6编译(与野火例程不同),不必修改

3) C/C++

更改预定义宏CPU_MIMXRT1052DVL6B为CPU_MIMXRT1052CVL5B

在这里插入图片描述

4) Linker

修改存储器分配文件

这个 MIMXRT1052xxxxx_flexspi_nor 存储器分配文件是适配官方评估版的,针对野火开发板的存储器,需要进行修改,点击选项框中的“Edit”按钮会弹出该 文件的内容,然后直接编辑即可,具体见图 10‑25,修改如下:把 m_text_size 的值修改为 0x01FFDC00;

Step3

点击“Rebuild”(首次编译可点“Build”亦可),结果

Program Size: Code=6534 RO-data=1706 RW-data=40 ZI-data=264256  
"flexspi_nor_release\igpio_led_output.out" - 0 Error(s), 0 Warning(s).
Build Time Elapsed:  00:00:06

无报错

下载调试

参考野火官方文档“0-必读说明_下载算法/”内的《DAP仿真器下载1052必读说明》进行配置

Step1

若采用fireDAP调试器

Options for Target … -> Debug项,右上角勾选Use -> CMSIS-DAP Debugger

点击“Settings"弹出窗口配置如下:

  • Debug

在这里插入图片描述

P.S. Max Clock保持默认的10MHz实测也是可以的

若采用ST-Link调试器

Options for Target … -> Debug项,右上角勾选Use -> ST-Link Debugger

“Settings"配置:

在这里插入图片描述

Step2

  • Flash Download

在这里插入图片描述

Remove原有算法,Add野火下载算法:Embedfire_RT1052_QSPI_R1.FLM

Step3

  • Pack

取消勾选“Enable”

Step4

点击“Download”,结果

Erase Done.
Programming Done.
Verify OK.
Application running ...
Flash Load finished at xx:xx:xx

核心板上蓝色LED以约200ms周期闪烁(不太准,可以通过添加预定义宏SDK_DELAY_USE_DWT改善)

说明烧录运行正常

调试

调试可以选择的Target有很多,包括:

a) xxx_debug对应野火例程的xxx_itcm_txt_ram_debug,可直接用

​ 但会报错

Cannot access Memory (@ 0x20022724, Read, Acc Size: 4 Byte)

​ 在Options for Target … -> Debug右边栏勾选”Load Application at Startup"可以取消报错

b) xxx_sdram_debug对应野火例程的xxx_itcm_txt_sdram_debug,可直接用

c) xxx_flexspi_nor_debug更改下载算法可用

d) 更改xxx_flexspi_nor_release

​ 需要勾选Opions for Target … -> Output中的Debug Information,并Rebuild

P.S. 剩下的xxx_release和xxx_sdram_release看起来是分别将程序烧录到RAM和SDRAM中,但直接烧录报错,不清楚有何作用

我所知道的RT1050 - Kinetis - 恩智浦技术社区 (nxpic.org.cn)

  • Rt1050是没有用户可用的片上flash,只能外扩。但是EVK-MIMXRT1050开发板上用的不是flash,而是用了一颗SDRAM,型号为MT48LC16M16A2B4-6AIT:G。也就是说板子只能用于调试评估,只要一复位,所有的东西都会清零。
  • SDK里的每个case都会包含四个target:debug、release、sdram_debug、sdram_release。前面两个target是运行在片内ram中,后面两个target则是运行在外扩的sdram中。

而野火板子并没有外置SDRAM,因此猜测这两个target没有用

常见问题

1

弹窗报错:

Error: Flash Download failed  -  "Cortex-M7"

三种情况:

a) 需要更改下载算法

b) scf的宏定义不对

c) 调试时Options for Target … -> Utilities 勾选了Update Target before Debugging,应取消勾选

2

弹窗报错:

Cannot reset target.

Shutting down debug session.

外加报错:

Error: Flash Download failed  -  Target DLL has been cancelled

下载时,往往是由于上一次烧录的程序分散文件有误造成,解决方法参照《DAP仿真器下载1052必读说明》:

在核心板或者底板上按着 RST 按键不松手,然后接着同时按着 MODE 按键也不松手, 先松开 RST 键,再松开 MODE 键。然后看看能不能识别到芯片和下载。

P.S. 需要上传正确的编译文件,否则又会出现该问题

调试时,或许是因为上一次调试没有正常结束,硬件按一下reset键即可

3

下载报错(但实际并不影响效果)

RDDI-DAP Error

Options for Target … -> Debug -> Settings -> Pack取消勾选“Enable”

4

弹窗报错:

SWD/JTAG Communication Failure

Could not stop Cortex-M device!

Please check the JTAG cable.

外加报错:

Error: Flash Download failed  -  Target DLL has been cancelled

Options for Target … -> Debug -> Settings -> Debug左下角Connect选择成了under Reset或without Stop,应为Normal

5

报错:

Cannot access Memory (@ 0x6xxxxxxx, Write, Acc Size: 4 Byte)
*** error 57: illegal address (0x6xxxxxxx)

且设置不了断点

Options for Target … -> Debug -> Settings -> Debug,取消勾选右下角Download Options栏的“verify code download”和“download to flash”

  • 31
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Git是一个分布式版本控制系统,而Keil是一款嵌入式开发工具。结合使用Git和Keil可以实现对嵌入式项目的版本控制和团队协作。下面是Git和Keil的使用方法: 1. 安装Git和Keil - 首先,你需要安装Git。你可以从官方网站下载并安装Git:https://git-scm.com/downloads - 然后,你需要安装Keil。你可以从Keil官方网站下载并安装Keil:https://www.keil.com/download/ 2. 创建Git仓库 - 在Keil中打开你的项目文件夹。 - 在命令行中进入到项目文件夹的根目录。 - 使用以下命令初始化Git仓库: ```shell git init ``` 3. 添加和提交文件 - 使用以下命令将所有文件添加到Git仓库: ```shell git add . ``` - 使用以下命令提交文件到Git仓库: ```shell git commit -m "Initial commit" ``` 4. 创建分支和切换分支 - 使用以下命令创建一个新的分支: ```shell git branch <branch_name> ``` - 使用以下命令切换到一个已存在的分支: ```shell git checkout <branch_name> ``` 5. 合并分支 - 使用以下命令切换到主分支: ```shell git checkout master ``` - 使用以下命令将一个分支合并到主分支: ```shell git merge <branch_name> ``` 6. 解决冲突 - 如果在合并分支时发生冲突,你需要手动解决冲突。打开冲突文件,编辑并保存解决冲突后的文件。 - 使用以下命令将解决冲突后的文件标记为已解决: ```shell git add <conflict_file> ``` - 使用以下命令继续合并分支: ```shell git merge --continue ``` 7. 推送和拉取代码 - 使用以下命令将本地代码推送到远程仓库: ```shell git push origin <branch_name> ``` - 使用以下命令从远程仓库拉取最新的代码: ```shell git pull origin <branch_name> ``` 8. 忽略文件 - 在Keil项目文件夹中创建一个名为`.gitignore`的文件。 - 在`.gitignore`文件中添加需要忽略的文件或文件夹的规则,例如: ``` *.bak *.obj *.o ``` 9. 使用GitHub Desktop - 如果你觉得在命令行中使用Git比较麻烦,你可以尝试使用GitHub Desktop。GitHub Desktop是一个图形化的Git客户端,可以简化Git的操作。 - 你可以从GitHub Desktop的官方网站下载并安装:https://desktop.github.com/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值