前言 本操作如何固化ZYNQ PL端程序到FLASH分享---基于廣州星嵌電子科技有限公司設計研發的Zynq7015平臺。 板載QSPI FLASH一顆,具體型號為:MT25QL256ABA1EW9-0SIT。 首先,打開已經完成的Vivado設計例程,點擊Project Manager下面的IP Integrator -> Create Block Design,創建Block Design設計文件: ![]() 在彈出的對話框中,點擊OK: ![]() 在Diagram窗口,點擊中間加號按鈕,添加IP: ![]() 在彈出的IP添加窗口的搜索欄中,輸入zynq字樣,然后雙擊選中ZYNQ7 Processing System: ![]() 添加好ZYNQ7 Processing System IP核后,雙擊該IP核,對此IP核進行配置: ![]() 設置ZYNQ7 Processing System IP核的外設IO: ![]() 設置ZYNQ7 Processing System IP核的DDR內存,然后點擊OK,完成IP核配置: ![]() 點擊Run Block Automation,運行模塊自動化,并在彈出的對話框中直接點擊OK: ![]() ![]() 使用鼠標左鍵,單擊FCLK_CLK0,并拖動鼠標至M_AXI_GP0_ACLK,將這兩個管腳短接起來: ![]() 在Sources窗口,右鍵點擊design_1.bd文件,在彈出的菜單中,選擇Generate Output Products…,并在隨后彈出的對話框中點擊Generate: ![]() ![]() 輸出文件生成完畢后,點擊OK: ![]() 在Sources窗口,右鍵點擊design_1.bd文件,在彈出的菜單中,選擇Create HDL Wrapper…,并在隨后彈出的對話框中點擊Generate: ![]() 在彈出的對話框中直接點擊OK: ![]() 在Sources窗口,雙擊打開剛剛生成的design_1_wrapper.v文件: ![]() 將Vivado之前的工程頂層模塊例化到design_1_wrapper.v設計文件中: ![]() 整理design_1_wrapper.v模塊的輸入、輸出管腳,并將Vivado例程頂層模塊的管腳添加進來: ![]() 點擊Generate Bitsteam,生成bit流文件,在彈出的對話框中選擇Yes: ![]() ![]() 如果在生成bit流文件過程中,產生了如下錯誤,則按照錯誤提示,添加時鐘約束,如下示例紅框中所示,將紅框里面的內容復制到約束文件中: ![]() 雙擊Constraints -> constrs_1下面的xdc約束文件,xdc約束文件打開后,將錯誤提示內容復制到xdc約束文件中,然后點擊保存: ![]() 然后,再次點擊Generate Bitsteam,生成bit流文件,在彈出的對話框中選擇Yes。 bit流文件生成完成后,在彈出的窗口中點擊Cancel: ![]() 點擊File -> Export -> Export Hardware…: ![]() 在彈出的對話框中,選中Include bitstream,然后點擊OK: ![]() 點擊File -> Launch SDK,并在彈出的對話框中點擊OK: ![]() ![]() 隨后,SDK軟件被打開: ![]() 在Xilinx SDK軟件界面,點擊File -> New -> Application Project: ![]() 用戶自定義fsbl工程名,如下示例fsbl,然后點擊Next: ![]() 選擇Zynq FSBL模板,并點擊Finish: ![]() 等待Build進度條完成: ![]() fsbl工程Build進度條完成后,在fsbl -> Binaries目錄下面會生成一個fsbl.elf文件: ![]() 點擊Xilinx Tools -> Create Zynq Boot Image: ![]() 指定bif文件存放路徑,用戶自定義位置: ![]() 添加FSBL文件,將剛剛生成的fsbl.elf文件添加到Boot image partitions中: ![]() ![]() 添加bit流文件,將bit流文件添加到Boot image partitions中: ![]() ![]() 最后,點擊Create Image,生成鏡像文件BOOT.bin: ![]() 燒寫FLASH前,需確保下載模式配置為JTAG模式,即開發板SW2撥碼開關的2位撥碼均需要撥到ON的位置,如下圖紅框所示: ![]() 開發板上電,然后點擊Xilinx Tools -> Program Flash: ![]() 點擊Browse,選擇剛剛生成的鏡像文件BOOT.bin,然后點擊Program: ![]() 等待燒寫完成: ![]() FLASH燒寫完成后,在控制臺輸出Flash Operation Successful信息: ![]() 燒寫完FLASH后,給開發板斷電,并將SW2撥碼開關設置為QSPI FLASH啟動模式,即1號撥碼位撥到ON位置,2號撥碼位撥到ON的對立面,如下圖紅色箭頭所示: ![]() 開發板上電,查看實驗程序是否運行起來。 ![]() ![]() |