ZYNQ程序固化
3.1 固化簡(jiǎn)介
如果需要板卡中程序掉電不丟失,則需要對(duì)程序進(jìn)行固化,ZYNQ7000 SOC芯片可以從Flash啟動(dòng),也可以從SD卡啟動(dòng),上電后,ZYNQ根據(jù)模式管腳的設(shè)定,選用boot的方式。
核心模式開關(guān):
啟動(dòng)模式:
固化ZYNQ程序需要為這個(gè)程序做一個(gè)鏡像文件,該鏡像文件需要PL側(cè)的bit文件,PS側(cè)的elf文件,還需要一段代碼將bit文件和elf文件配置,這段代碼就是FSBL.elf。
因此制作一個(gè)鏡像文件需要三個(gè)文件:
(1)、.bit
(2)、.elf
(3)、FSBL.elf
3.2 SD卡啟動(dòng)
從SD卡啟動(dòng)需要將鏡像文件固化到SD卡,設(shè)置撥碼開關(guān),使系統(tǒng)從SD模式啟動(dòng)。那么每次斷電后,系統(tǒng)都會(huì)從SD卡啟動(dòng)。
ZYNQ的啟動(dòng)過程與大多數(shù)arm類似,啟動(dòng)過程分為三個(gè)階段,階段0、階段1、階段2:
階段0:
傳統(tǒng)的bootROM過程,ZYNQ的ROM中固化了一段不可修改的程序,只要ZYNQ一上電,這段程序就會(huì)執(zhí)行,它將對(duì)ZYNQ的NAND、SD等基本外設(shè)控制器進(jìn)行初始化。把SD卡這類易失的存儲(chǔ)器件進(jìn)行初始化后,就會(huì)把其中的程序拷貝到ZYNQ的OCM(On Chip Memory)。這個(gè)被拷貝到RAM上執(zhí)行的程序就是要制作的文件——BOOT.bin。
階段1:
BOOT.bin加載到OCM上開始執(zhí)行,BOOT.bin由FSBL.elf+工程.bit+工程.elf構(gòu)成,階段1首先配置PS部分,PS部分完成初始化后,再配置PL部分,最后去加載階段2的代碼。
階段2:
可選,配合Linux啟動(dòng)過程。
制作BOOT.bin文件:
對(duì)應(yīng)于原理圖上的:
3.3 QSPI Flash固化
設(shè)置撥碼開關(guān),將鏡像文件燒寫進(jìn)FLASH,使系統(tǒng)從QSPI-FLASH模式啟動(dòng),那么每次斷電后,系統(tǒng)都會(huì)從FLASH啟動(dòng)。
制作BOOT.bin文件:
對(duì)應(yīng)于原理圖上的:
3.4 生成BOOT.bin文件
新建vivado工程,生成bitstream,導(dǎo)出到SDK,程序設(shè)計(jì),然后!創(chuàng)建一個(gè)FSBL工程,在要固化的工程上右擊,選擇create boot Image,然后可以看到
然后選擇Create Image,即可在當(dāng)前工程下bootimage目錄下看到boot.bin文件,將該BOOT.bin文件復(fù)制到SD卡,斷電情況下設(shè)置撥碼開關(guān),之后上電,開機(jī)后系統(tǒng)從SD卡啟動(dòng),掉電后程序也不會(huì)消失。(放到SD卡的bin文件,文件名必須是BOOT.bin,否則不識(shí)別)
總結(jié)
- 上一篇: 厌胜术
- 下一篇: 如何理解客户需求、市场需求、产品需求、业