zynq 固化程序

目錄

1. 工程搭建

2. 生成FSBL  

3. 創建BOOT文件 

4. SD卡啓動測試  

5.QSPI啓動測試

6.在vivado 下燒寫QSPI 


1. 工程搭建

 平臺採用AX7Z100開發平臺。

1) 首先搭建好zynq框架,有一個完整的工程。

2)要固化程序必須使能 QSPI 或SD卡。 由於開發板上是由兩顆QSPI flash 組成8位的QSPI,因此這裏選擇Dual Quad SPI (8 bit ),選擇feedback 連接到MIO8 。

3) 添加 SD0 控制器,使用MIO40-45 ,使用 TF 卡接口

4) 保存設計,編譯生成 bit文件 ,再次導出硬件 

2. 生成FSBL  

FSBL是一個二級引導程序,完成MIO的分配、DDR控制器初始化、SD、QSPI控制器初始化,配置FPGA、然後加載用戶程序。

1) 啓動SDK。hw_platform選擇最新的那個。

2)新建一個名爲fsbl的APP,特別注意硬件平臺選擇最新的那個,可以把以前的都刪除了。

 

3) 模板選擇zynq fsbl

 

4) 添加調試宏定義FSBL_DEBUG_INFO,可以在啓動輸出FSBL的一些狀態信息,有利於調試,但會導致啓動時間變長。

5) SDK 默認會自動編譯,生成fsbl.elf文件

3. 創建BOOT文件 

1)選擇fsbl工程,右鍵選擇 create boot image

2)彈出的窗口中可以看到生成的BIF文件路徑,BIF文件是生成BOOT文件的配置文件,bif文件和bin文件放在同一個根目錄下;還有生成BOOT.bin文件路徑,BOOT.bin文件是我們需要的啓動文件,可以放到SD卡啓動,也可以燒寫到QSPI flash 。(有次固化的時候,流程都正確的,但是固化代碼最後都提示失敗,後來換做加載MCS文件固化成功。分析原因可能是BIN文件比MSC文件小,可能一些東西被處理掉,對於複雜的工程來說,如果對應的FLASH   SD 容量夠大,可以選擇MSC 文件加載) 

3)在boot image partitions 列表中有要合成的文件,第一個文件一定是bootloader 文件,就是上面生成的fsbl.elf文件,第二個文件是FPGA配置文件,現在點擊ADD添加測試程序vdma_hdmi.elf

4) 點擊create image 生成

注意下面3個文件的路徑,不要更改,會出錯的。第一個就是FSBL 啓動文件,然後是PL 的bit,最後是PS 的ELF。

如果記不住上面的順序,可以到debug界面,也是先初始化系統(FSBL),program fpga (bit),run ps7 (elf)

5) 在生成的目錄下可以找到BOOT.bin文件,  或者BOOT.mcs文件

4. SD卡啓動測試  

1)格式化SD卡,只能格式化爲FAT32格式,其他格式無法啓動

2) 放入BIN文件,在根目錄下

3)SD 卡插入開發板的SD卡插槽

4)啓動模式調整爲SD卡啓動

5.QSPI啓動測試

1)在SDK 菜單XILINX--program flash 

2) hardware platform 選擇最新的,image file 文件選擇要燒寫的bin/msc,FSBL  file選擇生成的fsbl.elf,flash type 根據硬件選擇,這裏選擇qspi_dual_parallel.

3) 點擊program 等待燒寫完成

4)設置啓動模式爲QSPI,再次啓動

6.在vivado 下燒寫QSPI 

1)vivado  下 hardware manger 下選擇器件 ,右鍵add configuration memory device

2) 選擇flash型號

3)右鍵選擇編程文件

4) 選擇要燒寫的文件和fsbl文件,就可以燒寫了。如果燒寫時不是jtag啓動模式,軟件會給出一個警告,所以建議燒寫QSPI的時候設置到JTAG啓動模式

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章