当前位置: 首页 > news >正文

江山易改本性难移之ZYNQ SDK QSPI固化bug及其解决方法

         之前在Vivado2018.3通过QSPI方式固化程序时出现问题,显示flash擦除成功,但最后总是不能写入到flash中。

        查资料发现从VIVADO 2017.3版本开始,Xilinx官方为了使Zynq-7000和Zynq UltraScale +实现流程相同,在QSPI FLASH使用上做了变化,即Zynq-7000编程flash需要“指定的fsbl”。因为在QSPI引导模式下启动,则“指定的fsbl”将尝试从flash加载分区,从而导致flash编程的错误行为。导致不能下载flash或下载flash后不能启动。

           总结一下,就是需要建两个FSBL程序,也可以生成BOOT.BIT以后,修改当前FSBL工程(本例程),一个用于生成BOOT.bin文件,一个用于加载,即Program flash。完整步骤如下:

(1)新建系统环境变量:我的电脑—属性—高级系统设置—环境变量;之后重启一下电脑。

        变量名:XIL_CSE_ZYNQ_UBOOT_QSPI_FREQ_HZ

        变量值:10000000

(2)在vivado界面PS端选中QSPI方式,其中single SS 4bit IO与Dual Quad SPI方式要根据板卡上几颗QSPI flash以及位数选择,这里选择single SS 4bit IO;

(3)保存设计,编译生成bit文件;

(4)启动SDK,注意要将bit文件选中。新建fsbl程序,不用修改,此程序用于生成BOOT.bin文件。

        1)选择你的代码工程,右键选择 create boot image

                       

        2)弹出的窗口中可以看到生成的BIF文件路径,BIF文件是生成BOOT文件的配置文件,bif文件和bin文件放在同一个根目录下,并且再次确认是否是最新生成的文件;

之后点击Create Image,生成BOOT.bin文件。

当看到有这两文件时:说明已生成BOOT.bit文件

 (4)在不变的工程新建fsbl程序,先点击 Clean project,在main.c主程序中找到“Read bootmode register”的位置,并添加代码BootModeRegister = JTAG_MODE;再点击Build  project此处是为了将QSPI编程改为以JTAG模式启动,为了解决bug,

 也可以在fsbl_debug.h文件中加上#define FSBL_DEBUG_INFO语句,这是为了能够让串口打印出 Bootloader 的信息,之后保存并编译;

(5)QSPI flash固化

        1)FPGA板卡模式开关切换到QSPI启动模式;

        2)点击Xilinx—Program Flash,加载刚刚fsbl文件生成的BOOT.bin与fsbl_load文件生成的fsbl_load.elf,

其中Flash Type根据(2)中QSPI选中方式而定;

        3)点击Program,即可完成QSPI方式的程序固化。

重点+干货来了:

  环境实验:硬件板卡暂未有串口调试输出。 

当固化进去以后,如果你发现PL已经启动,但是PS暂未启动,那此时就需要修改这个选项:把这两个关闭。再重新固化以后,关机、重启,发现PL和PS均能正常运行。这就是妥妥的干货。

http://www.lryc.cn/news/277762.html

相关文章:

  • 系列三十六、注解版Spring、SpringMVC配置文件
  • 爬虫你需要知道的:什么是http请求
  • MCU FT61F14x入门
  • 星火大模型——多模态API调用(图像+文本)
  • 计算机基础面试题 |22.精选计算机基础面试题
  • kafka连接失败时springboot项目启动停机问题
  • 【算法题】46. 全排列
  • 可视可交互!在全志H618上用OpenCV读取图像显示到PyQt5窗口上
  • 现代密码学 补充1:两种窃听不可区分实验的区别
  • 多功能号卡推广分销管理系统 流量卡推广分销网站源码-目前市面上最优雅的号卡系统
  • MySQL语法及IDEA使用MySQL大全
  • 分布式系统网关和sentinel
  • 无法访问Bing网站 - 解决方案
  • Spring Boot 自动装配原理
  • golang如何生成csv文件
  • 你真的掌握了“C语言分支循环”吗
  • Apollo计算几何算法(一)
  • 计算机网络、浏览器相关高频面试题
  • 遥感单通道图像保存为彩色图像
  • 如何将字符串转换为整数
  • 如何在Linux上安装使用达芬奇DaVinci-Resolve视频剪辑|附带格式转换脚本
  • FlinkAPI开发之数据合流
  • 11 个 Python全栈开发工具集
  • 【GDAL】Windows下VS+GDAL开发环境搭建
  • 基于sumo实现交通灯控制算法的模板
  • 设计模式之单例模式的懒饿汉
  • 多平台多账号一站式短视频管理矩阵营销系统下载
  • go work
  • 基于JavaWeb+BS架构+SpringBoot+Vue智能菜谱推荐系统的设计和实现
  • SpringSecurity集成JWT实现后端认证授权保姆级教程-授权配置篇