电子说
设计将使用FlexSPI1 接外部的 HyperRAM,FlexSPI2 接QSPI Flash存储器芯片作为RT1176 引导设备。当代码在内部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实际上不需要。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !