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