ARM学习(29)NXP 双coreMCU IMX1160学习----NorFlash 启动引脚选择

ARM学习(28)NXP 双coreMCU IMX1160学习----NorFlash 启动引脚选择

1、多种启动方式介绍

IMX1166 支持多组flexSPI 引脚启动,FlexSPI1以及FlexSPI2,通过boot cfg可以切换FlexSPI得实例。
在这里插入图片描述
每个实例又支持多组引脚,总共又两个组别,每个组别又有两组引脚,分别为PortA+PortB,ROM Code默认是通过黑体引脚去加载Code得。
在这里插入图片描述
实例1得第二组得PORTA+PORTB。
在这里插入图片描述
在这里插入图片描述

通过eUFSE信息可以去配置选择是第几组,且是哪个PORTA或者哪个PORTB。
在这里插入图片描述
eFUSE配置是通过NXP-MCUBootUtility-3.4.0工具来进行操作得。
下载地址:git@github.com:JayHeng/NXP-MCUBootUtility.git

  1. 点击左下角connect,连接成功之后,会变成蓝色,按钮会变成reset device,同时就会连接成功,左下角有日志,显示Flash得相关size信息
  2. 界面中间有eFUSE Operation Utility,可以操作eFUSE信息,eFUSE只可写一次,之后就无法操作,如下图二,可以县级scan,可以读出所有得eFUSE数据,点击Burn,就可以写eFUSE信息
  3. 界面中间得Boot Device Memory,可以对Flash进行读写擦,可以烧录bin或者hex文件下去。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2、IDE 下载以及Jflash下载代码

两者均是下载程序到Flash中。

2.1 IDE 下载代码(CMSIS DAP)

IDE采用CMSIS DAP下载代码到Flash中,也可以采用JIink方式,但是开发板上面自带得烧录器,可以直接烧录和串口显示。
在这里插入图片描述
在这里插入图片描述
其烧录得Flash Driver是MIMXRT1160_SFDP_QSPI.cfx,默认是实例1得第一组得PortA,如果换乘其他引脚无法烧录,当然其还支持MIMXRT1160_FlexSPI2_A_SFDP_QSPI.cfx,实例2得第一组得PORTA。下载算法跟Flash得位置息息相关,如果Flash得引脚更换,会导致程序无法下载。
在这里插入图片描述
注意:程序如果更新到RAM,可以直接通过下载器 走JTAG协议下进去,但是Flash不行,Flash需要有单独得接口进行操作,比如读写擦,所有下载到FLash得代码,首先需要下载到RAM中一个Flash驱动程序,然后与Flash驱动程序进行通信,然后再把代码下载到Flash中。

IDE得下载算法如这篇文章所示:RT1170 flexSPI1 secondary QSPI flash debug flashdriver

2.2 JLink下载代码

同样JLink下载到Flash里面得程序,同样需要JLink得Flash驱动程序,不过Jlink得Flash驱动程序和IDE得不一样。
如果要通过JINK下载Flash,支持得引脚也有限,如下图所示,如果引脚不一样,则无法通过jlink下载程序。
在这里插入图片描述
JLink认为他们得下载程序更快,相对传统得FLM Flash驱动程序,就是CMSIS loader开源得Flash下载驱动。具体相关得Flash下载驱动算法,下一章节详细介绍ARM学习(30)JFlash下载Flash程序的理解
在这里插入图片描述

3、下载到RAM运行

下载最简单的hello wrold程序到RAM中,下图为链接脚本,代码放到SRAM_DTC_cm7位置。
在这里插入图片描述
在这里插入图片描述
现象:一直打印数据。
在这里插入图片描述
操作:trace32直接加载对应的axf文件,就可以直接烧录到RAM上面运行。

SYStem.Down
IF SYStem.Mode()<5
(
  SYStem.CPU IMXRT1166-CM7
  SYStem.up

)
Data.LOAD.Elf "~~~~/evkmimxrt1160_hello_world_cm7.axf"  

在这里插入图片描述
Trace32窗口再新增一个core,然后点击开始,就可以新建一个窗口,可以追踪另外一个cortexm4的行为。
在这里插入图片描述

相关推荐

  1. NXP RT1060学习总结 - 基础CAN功能

    2024-07-14 13:54:02       28 阅读
  2. python 学习笔记20 批量修改页眉页

    2024-07-14 13:54:02       51 阅读
  3. NXP RT1060学习总结 - fsl_flexcan 基础CAN函数说明 -3

    2024-07-14 13:54:02       27 阅读
  4. ARM学习

    2024-07-14 13:54:02       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 13:54:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 13:54:02       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 13:54:02       58 阅读
  4. Python语言-面向对象

    2024-07-14 13:54:02       69 阅读

热门阅读

  1. LeetCode 367, 56, 22

    2024-07-14 13:54:02       20 阅读
  2. 【关于Pinia与Vuex】

    2024-07-14 13:54:02       15 阅读
  3. Swift 基于Codable协议使用

    2024-07-14 13:54:02       20 阅读
  4. 升级springboot3.2集成shiro的问题

    2024-07-14 13:54:02       28 阅读
  5. 后端老鸟的前端初探:心得与领悟20240713

    2024-07-14 13:54:02       24 阅读
  6. 安卓热门面试题二

    2024-07-14 13:54:02       24 阅读