嵌入式系统与单片机|技术阅读
登录|注册

您现在的位置是:嵌入式系统与单片机 > 技术阅读 > I.MXRT1170 从 FLEXSPI2启动

I.MXRT1170 从 FLEXSPI2启动

    设计将使用FlexSPI1 接外部的 HyperRAM,FlexSPI2 接QSPI Flash存储器芯片作为RT117引导设备。当代码在内部RAM里面执行的时候是正常的,遇到了从外部Flash启动的问题,如果用FlexSPI2作为引导接口,应该如何配置呢?

-> MCUBoot 工具(https://github.com/JayHeng/NXP-MCUBootUtility)可以识别 FlexSPI2 区域,需要设置 'FlexSPI XIP Region' 选项为 1,默认情况下, "Tools/FlexSPI XIP Region"是0。

XIP 区域0 - 0x3000_0000 代表 FlexSPI1

XIP 区域1 - 0x6000_0000 代表 FlexSPI2

    每个 FlexSPI 都包含两组 pinmux group 选项,都可以用于引导启动。设置MCUBootUtility / Tools / FlexSPI XIP 区域为 1, 将会加载 APP应用程序到 FlexSPI2 区域。

    在开发板上验证 RT1170的 FlexSPI2的启动,它是第一组 pinmux。

   如果连接 Flash 到 GPIO_SD_B1[05:00],如下所示,需要在MCUBootUtility 工具中设置为 2nd pinmux,烧入如下熔丝位。

eFuse 0x940 FLEXSPI_INSTANCE =1(Fuse和GPIO电平判断)

eFuse 0x9A0 FLEXSPI_PIN_GROUP_SEL =1(熔丝位)

eFuse 0x9A0 FLEXSPI_CONNECTION_SEL =0

    设置正确的应用程序基地址,对于FlexSPI2,应为0x6000 2000。注意:可引导映像从0x6000 0000开始,其内容介于0x6000 0000和0x6000 2000之间,将自动创建。

    需要注意:所选的FlexSPI2组的速度有限。

    另外,如果要通过Flexspi1的第二组引脚启动,需要配置Fuse如下。FlexSPI1 的 2nd DQS在BootROM实际上不需要。