当前位置: 首页 新闻资讯 技术问答

ZYNQ可以在QSPI模式下使用SDNAND做代码存储器吗

SD NAND-贴片式TF卡-贴片式SD卡-免费测试2024-09-13196

在Zynq平台上,虽然标准的启动方式是通过QSPI、SD卡或eMMC来实现的,但Zynq并没有初期支持从SDNAND(即SD NAND flash)直接启动。因此,想要在QSPI模式下使用SDNAND来做代码存储器的实现启动,需要较复杂的定制化工作。

实现方法的几种适配方案

1.标准方案:使用QSPI Flash或SD卡启动

最常见的方案是在QSPI Flash或SD卡中存放FSBL(First Stage Bootloader),通过Zynq的BootROM直接从这些设备启动。FSBL加载后,可以初始化SDNAND,并完成读取并加载应用程序。

步骤

  • 在QSPI Flash或SD卡上存储FSBL。

  • FSBL负责初始化SDNAND。

  • FSBL从SDNAND加载应用程序到DDR内存并执行。

方法的好处是使用了Zynq标准支持的启动这种方式,稳定性首要,且需要BootROM。

2.定制方案:定制Bootloader

要在QSPI模式下直接使用SDNAND进行启动,必须编写自定义的Bootloader,因为Zynq的BootROM不支持直接识别SDNAND。该Bootloader需要配备以下功能:

  • 初始化QSPI接口并配置SDNAND。

  • 读取SDNAND中的固件并将其加载到DDR。

  • 跳转到加载的代码执行。

这个方法涉及其中,需要熟悉Zynq的启动流程和SDNAND的接口协议。可以参考Zynq的FSBL源码进行修改,从而支持SDNAND。

3.使用SD卡启动,并加载SDNAND作为存储扩展

你可以使用修改SD卡作为主启动介质,然后在应用层加载SDNAND作为代码或数据存储的扩展。这样就避免了启动流程的复杂性。

步骤

  • 在SD卡上存放FSBL和应用程序的核心部分。

  • 在应用程序启动后,初始化SDNAND并加载额外的数据或代码。

方案避免了对启动过程的复杂性,适用于这种需要在后期加载增加代码或数据的情况。

详细实现步骤

1.使用FSBL引导并加载SDNAND

  • 在Petalinux或裸机环境下,确保FSBL能够正确启动。

  • 在FSBL中添加初始化SDNAND的驱动,使用QSPI协议与SDNAND进行通信。

  • 修改FSBL源码,由SDNAND中加载应用代码支持。

  • 编译并烧录到QSPI Flash或SD卡中。

2.修改FSBL源代码

  • 在FSBL源码中,加入SDNAND初始化代码,通常涉及到设置QSPI控制器、配置SDNAND操作。

  • 确保可以通过SPI/QSPI正确接口与SDNAND通信,并实现读写器操作。

  • 将SDNAND中的数据加载到DDR内存中执行。

3.测试和验证

  • 保证QSPI和SDNAND的初始化正确无误,可以成功读取NAND中的数据。

  • 调试和优化代码,使启动过程稳定。

这个过程需要对Zynq平台的启动流程、QSPI控制器和SDNAND硬件接口有较深入的了解。定制开发Bootloader的方法比较复杂,但如果实现成功,可以灵活使用SDNAND作为代码存储器。你可以先从最开始考虑常见的FSBL + QSPI Flash启动方法开始,逐步划分SDNAND的使用。


热门标签:SDNAND贴片式TF卡贴片式SD卡SD FLASHSLC NANDNAND FLASH


SD NAND-贴片式TF卡-贴片式SD卡-免费测试

深圳市芯存者科技有限公司

售前咨询
售前咨询
售后服务
售后服务
联系我们

电话:176-6539-0767

Q Q:135-0379-986

邮箱:1350379986@qq.com

地址:深圳市南山区蛇口街道后海大道1021号B C座C422W8

在线客服 在线客服 QQ客服 微信客服 淘宝店铺 联系我们 返回顶部