ZYNQ程序固化


3.1 固化簡介

如果需要板卡中程序掉電不丟失,則需要對程序進行固化,ZYNQ7000 SOC芯片可以從Flash啟動,也可以從SD卡啟動,上電后,ZYNQ根據模式管腳的設定,選用boot的方式。

核心模式開關:

啟動模式:

 

 

固化ZYNQ程序需要為這個程序做一個鏡像文件,該鏡像文件需要PL側的bit文件,PS側的elf文件,還需要一段代碼將bit文件和elf文件配置,這段代碼就是FSBL.elf。

因此制作一個鏡像文件需要三個文件:

(1)、.bit

(2)、.elf

(3)、FSBL.elf        

3.2 SD卡啟動

從SD卡啟動需要將鏡像文件固化到SD卡,設置撥碼開關,使系統從SD模式啟動。那么每次斷電后,系統都會從SD卡啟動。

ZYNQ的啟動過程與大多數arm類似,啟動過程分為三個階段,階段0、階段1、階段2:

階段0

傳統的bootROM過程,ZYNQ的ROM中固化了一段不可修改的程序,只要ZYNQ一上電,這段程序就會執行,它將對ZYNQ的NAND、SD等基本外設控制器進行初始化。把SD卡這類易失的存儲器件進行初始化后,就會把其中的程序拷貝到ZYNQ的OCM(On Chip Memory)。這個被拷貝到RAM上執行的程序就是要制作的文件——BOOT.bin。

階段1

BOOT.bin加載到OCM上開始執行,BOOT.bin由FSBL.elf+工程.bit+工程.elf構成,階段1首先配置PS部分,PS部分完成初始化后,再配置PL部分,最后去加載階段2的代碼。

階段2

可選,配合Linux啟動過程。

制作BOOT.bin文件:

 

 

對應於原理圖上的:

 

 

3.3 QSPI Flash固化

設置撥碼開關,將鏡像文件燒寫進FLASH,使系統從QSPI-FLASH模式啟動,那么每次斷電后,系統都會從FLASH啟動。

制作BOOT.bin文件:

對應於原理圖上的:

 

 

3.4 生成BOOT.bin文件

新建vivado工程,生成bitstream,導出到SDK,程序設計,然后!創建一個FSBL工程,在要固化的工程上右擊,選擇create boot Image,然后可以看到

 

 

       然后選擇Create Image,即可在當前工程下bootimage目錄下看到boot.bin文件,將該BOOT.bin文件復制到SD卡,斷電情況下設置撥碼開關,之后上電,開機后系統從SD卡啟動,掉電后程序也不會消失。(放到SD卡的bin文件,文件名必須是BOOT.bin,否則不識別)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM