大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。
今天和大侠简单聊一聊ZYNQ-7000如何生成从Flash和SD卡启动的镜像文件,话不多说,上货。
将PL与PS部分一起使用,并且通过JTAG下载到板子运行。对于ZYNQ,有多种启动方式,比如从JTAG启动、从QSPI(即Flash)启动,从SD卡启动等。对于从JTAG启动的,我们直接运行程序就OK了。对于从Flash和SD卡启动的,需要我们生成这两种情况下对应的文件,并烧到对应的位置才可以。那么下面就介绍一下如何生成以及烧录。
生成FSBL
FSBL的全称是First Stage Boot Loader,他是启动ZYNQ的第一步,官方对于它的解释是:The FSBL configures the FPGA with HW bit stream (if it exists) and loads the Operating System (OS) Image or Standalone (SA) Image or 2nd Stage Boot Loader image from the non-volatile memory (NAND/NOR/QSPI) to RAM (DDR) and starts executing it. It supports multiple partitions, and each partition can be a code image or a bit stream.
这和ZYNQ的启动有关系,后续的文章我会再总结介绍。这里先介绍怎么生成这个文件。其实和创建一般的应用工程很像,打开SDK,在菜单栏中依次选择“File——New——Application Project”,出现下图:
工程名我这里起为FSBL,注意下边的Board Support Package选择你已经有的那个,不要再创建新的了。然后Next,出现下图:
注意选择最下边的“Zynq FSBL”,右边也会有它的作用解释。然后点击Finish后,FSBL文件就生成了,并且默认会自动编译。
生成镜像文件
在菜单栏中依次选择“Xilinx Tools——Create Zynq Boot Image”,出现如下对话框:
这里,我们先点击“Browse”,选择我们刚才创建的FSBL文件,后缀为elf,在你创建的FSBL目录里的Debug目录下,这里为FSBL.elf。然后点击下面的“Add”,添加用于配置FPGA的.bit文件,这里为system.bit。同样的方法再添加我们的应用程序文件,这里为helloworld.elf。然后再确定下面的“Output folder”目录(如果你没有看见这个选项,就将上面那个对话框拉大一点,就出来了),该目录选择时尽量选择不含中文路径的目录,这里选择为C盘output目录(如果你的出错了,那就换个其他盘目录,可能C盘没有权限)。全部配置好以后如下图,点击“Create Image”,正常情况下,就可以生成所需要的文件了。这里要特别注意三个文件的顺序,一定不能错——首先是FSBL文件,其次是.bit文件,最后是应用程序文件。
我们打开刚才指定的输出目录,会有三个文件:bootimage.bif、helloworld.bin、helloworld.mcs。其中第二个文件helloworld.bin是从SD卡启动所需要的文件,将该文件放在SD卡中,设置开发板从SD卡启动即可。第三个文件helloworld.mcs是从Flash启动的文件,需要烧录到Flash,然后选择开发板从Flash启动即可。
烧录方法如下:依次在SDK中选择“Xilinx Tools——Program Flash”,出现下图:
点击Browse,选择刚才的mcs文件,然后直接点击Program即可。
关于板子如何设置以何种方式启动,参加下表:
END
后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。
大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!