ZYNQ-7000如何生成從Flash和SD卡啟動的鏡像文件
將PL與PS部分一起使用,并且通過JTAG下載到板子運(yùn)行。對于ZYNQ,有多種啟動方式,比如從JTAG啟動、從QSPI(即Flash)啟動,從SD卡啟動等。對于從JTAG啟動的,我們直接運(yùn)行程序就OK了。對于從Flash和SD卡啟動的,需要我們生成這兩種情況下對應(yīng)的文件,并燒到對應(yīng)的位置才可以。那么下面就介紹一下如何生成以及燒錄。
生成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的啟動有關(guān)系,后續(xù)的文章我會再總結(jié)介紹。這里先介紹怎么生成這個文件。其實和創(chuàng)建一般的應(yīng)用工程很像,打開SDK,在菜單欄中依次選擇“File——New——Application Project”,出現(xiàn)下圖:
工程名我這里起為FSBL,注意下邊的Board Support Package選擇你已經(jīng)有的那個,不要再創(chuàng)建新的了。然后Next,出現(xiàn)下圖:
注意選擇最下邊的“Zynq FSBL”,右邊也會有它的作用解釋。然后點擊Finish后,F(xiàn)SBL文件就生成了,并且默認(rèn)會自動編譯。
生成鏡像文件
在菜單欄中依次選擇“Xilinx Tools——Create Zynq Boot Image”,出現(xiàn)如下對話框:
這里,我們先點擊“Browse”,選擇我們剛才創(chuàng)建的FSBL文件,后綴為elf,在你創(chuàng)建的FSBL目錄里的Debug目錄下,這里為FSBL.elf。然后點擊下面的“Add”,添加用于配置FPGA的.bit文件,這里為system.bit。同樣的方法再添加我們的應(yīng)用程序文件,這里為helloworld.elf。然后再確定下面的“Output folder”目錄(如果你沒有看見這個選項,就將上面那個對話框拉大一點,就出來了),該目錄選擇時盡量選擇不含中文路徑的目錄,這里選擇為C盤output目錄(如果你的出錯了,那就換個其他盤目錄,可能C盤沒有權(quán)限)。全部配置好以后如下圖,點擊“Create Image”,正常情況下,就可以生成所需要的文件了。這里要特別注意三個文件的順序,一定不能錯——首先是FSBL文件,其次是.bit文件,最后是應(yīng)用程序文件。
我們打開剛才指定的輸出目錄,會有三個文件:bootimage.bif、helloworld.bin、helloworld.mcs。其中第二個文件helloworld.bin是從SD卡啟動所需要的文件,將該文件放在SD卡中,設(shè)置開發(fā)板從SD卡啟動即可。第三個文件helloworld.mcs是從Flash啟動的文件,需要燒錄到Flash,然后選擇開發(fā)板從Flash啟動豈可。
燒錄方法如下:依次在SDK中選擇“Xilinx Tools——Program Flash”,出現(xiàn)下圖:
點擊Browse,選擇剛才的mcs文件,然后直接點擊Program即可。
關(guān)于板子如何設(shè)置以何種方式啟動,參加下表: