请选择 进入手机版 | 继续访问电脑版
查看: 1138|回复: 0

[原创] Auto Probe 功能体验

[复制链接]

该用户从未签到

648

主题

6301

帖子

0

超级版主

Rank: 8Rank: 8

积分
19555
最后登录
2024-3-29
发表于 2020-9-24 16:40:00 | 显示全部楼层 |阅读模式
本帖最后由 小恩GG 于 2020-9-24 16:55 编辑

Auto Probe 功能
除了i.MX RT1064,i.MX RT MCU系列本身是不含有内部Flash的,所以需要外挂存储设备来存放代码程序,这样i.MX RT MCU就可以在启动阶段加载它后运行。
i.MX RT支持的外挂存储设备包括 QSPI Flash,HyperFlash,SDcard,eMMC,Nand Flash,甚至还有并行 NOR Flash等,其中 QSPI Flash运用场景的最多,官方板子也基本上都是使用 QSPI Flash作为外挂存储设备,但是有个问题,不同的QSPI Flash的厂商提供的产品在命令,存储大小及分区方面都不是完全兼容和一致的,那如何让i.MX RT MCU识别这些有差异的QSPI Flash呢?
NXP通过Bootable image的代码结构来实现,存储在外挂存储设备的i.MXRT Bootable image除了包含Application binary数据之外还包括其它额外的信息,这些额外的信息数据按功能可分有6类,但这6类信息数据并不都是必须的,其中有4类是可选的,因此一个Bootable image最多由7部分组成,最少由3部分组成。
其中Bootable image的第一个组成部分叫FDCB,是个可选组成部分,FDCB是从Flash的起始地址处开始存放的,也是Bootable image最开始部分。FDCB最大为4KB,其本身没有统一的与Flash无关的structure,具体structure根据启动Flash的接口类型(Serial/Parallel)而定,其一般是用来存储当前连接的Flash的具体特性参数,Boot ROM上电后会使用通用且可靠的Flash接口控制器配置(即Boot ROM中默认参数配置,一般是比较低速的配置)去访问外接Flash并获取FDCB,然后根据FDCB存储的参数去重新配置Flash接口控制器再去进一步访问Flash,所以如果外挂设备是Serial NOR Flash,则FDCB必须被包含在Bootable image内,但是Auto Probe 功能可以允许我们无需配置FDCB,直接无视“它”,
使能Auto Probe 功能后,在启动阶段,ROM 代码可自动识别出外挂的Serial NOR Flash,并随后配置Flash接口控制器,下面的结构体是Serial NOR Flash的FDCB原型。
实验过程
首先,Auto Probe功能是i.MX RT1060特有的,所以测试的硬件平台选为MIMXRT1060-EVK,而且为了增加实验的说服性,我除了使用板载的IS25WP064测试外,还会使用MX25U6435进行验证。测试步骤如下:
  • 生成evkmimxrt1060_iled_blinky的application image文件

    1.1 修改XIP_BOOT_HEADER_ENABLE为0
2020-09-23_17-59-46.png

Fig 1

           1.2 修改存储空间分配

2020-09-23_18-06-29.png

Fig 2

         1.3 重新编译工程,生成evkmimxrt1060_iled_blinky.s19文件

2020-09-23_18-15-39.png

Fig 3

          1.4 将开发板与NXP MCU BootUtility工具建立连接(Fig 4),随后烧录Bootable image 到QSPI Flash,烧录完成后就可看到FDCB就存储在QSPI Flash的起始位置(Fig 5)。

2020-09-23_18-11-23.png

Fig 4

2020-09-23_18-19-43.png

Fig 5

          1.5 断开连接,重新配置SW7按键为从QSPI Flash启动,上电后,观察led_blinky工程是否运行成功
          1.6 重新将开发板与NXP MCU BootUtility工具建立连接,然后删除FDCB部分(Fig 6),然后重复步骤5。

2020-09-23_18-30-02.png

Fig 6

在板载的QSPI Flash换成MX25U6435(Fig 7),重复上述的4~6步骤。

WeChat Image_20200923184545.jpg

Fig 7

实验结果
不管是IS25WP064还是MX25U6435,在完成步骤5和步骤6后,iled_blinky都能成功运行,有规律的点亮LED。




回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2024-3-29 16:41 , Processed in 0.119958 second(s), 20 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表