目录
大家好,这里是程序员杰克。一名平平无奇的嵌入式软件工程师。
前几篇推送分享了固化程序到QSPI所需文件的生成以及通过Vitis/vivado软件进行烧录,本篇推送主要是介绍第三种方法,通过批处理命令进行烧录;第三种方法其实是第一种方法的无界面操作,还是借助了Vitis的Program_Flash脚本工具进行烧录。
本篇推送使用的Vivado以及Vitis版本均为2021.1版本,芯片平台如下:
-
ZYNQ UltraScale+ MPSOC(xczu4ev系列)
-
MT25QU256ABA1EW9(Serial Nor Flash)
好的,话不多说,直接进入正题。
01 批处理命令
杰克在上家公司使用Altera的FPGA使用Nios II软核时,对Altera提供Nios command shell tcl批处理操作记忆犹新;因此在刚开始使用Vitis时,每次都特别注意操作Vitis界面时console的打印信息。对于使用Program_Flash进行烧录时,Console界面首先输出如下信息;其中program_flash为可执行的批处理脚本文件名。
Vitis软件也提供了Vitis shell支持执行脚本文件,Vitis shell界面打开依次点击“Xilinx->Vitis Shell”,将上图框内的命令写入到Vitis Shell界面,也可以执行Flash的烧录。操作界面如下图:
02 优化烧录批处理操作
通过Vitis Shell进行烧录操作跟使用Vitis界面操作类似,甚至更繁琐;所以这种方式明显不是我们所需要的,因此需要对其进行优化操作。优化的方法有很多种,杰克这里使用的是通过Window的脚本文件来调用program_flash工具,来达到操作优化的目的。即在不打开Vitis的前提下,新建一个脚本文件,去执行program_flash.bat脚本文件执行烧录操作。思路如下所示:
- 生成烧录所需文件并移动到统一路径
- 编写BAT脚本文件调用program_flash
生成烧录所需文件并移动到统一路径
生成BOOT.BIN、fsbl.elf的操作方法在前面推文中已经描述,这里不作重复。主要是新建一个文件夹,将BOOT.BIN、fsbl.elf移入到该文件夹中;然后新建一个xxxx.bat文件。操作完成后,文件夹内容如下图所示:
编写BAT脚本文件调用program_flash
1. BAT文件调用时需要先获取program_flash.bat的路径,该文件路径在vitis软件安装路径/版本/bin/,杰克本地的目录路径如下图所示:
2. 用文件编辑器打开上面新建的xxxx.bat文件,并填写如下所示内容:
call Vitis安装目录\版本号\bin\program_flash -f BOOT.BIN -offset 0 -flash_type qspi-x4-single -fsbl fsbl.elf -verify
pause
说明 | |
call | call命令. 作用是从批处理程序调用另外一个批处理程序.语法格式: CALL [盘符][路径] filename [命令行参数]; 上述中: 调用program_flash.bat程序:call Vitis安装目录\版本号\bin\program_flash program_flash的命令行参数:-f BOOT.BIN -offset 0 -flash_type qspi-x4-single -fsbl fsbl.elf -verify |
3.双击xxxx.bat文件,开始执行烧录,等待烧录完成即可;
03 文章总结
使用批处理方式对QSPI烧录与使用Vitis软件进行烧录,其烧录方法本质上是一致的。该烧录方式适合与对批量芯片进行烧录的场景,工程师准备好相关文件给到生产端,生产端仅仅需要点击批处理文件,然后等待烧录固化完成便可。