編譯比特流 (bitstream)
在 zybo board 開發(fā)記錄: 升級(jí) Digilent 提供的設(shè)計(jì)檔 一文中,我們提到了怎樣升級(jí) Digilent 提供的預(yù)先定義好接腳的配置文件 (zybo_base_system) ,這次的項(xiàng)目,我們就直接用這個(gè)配置文件案來進(jìn)行 Linux 開機(jī)的動(dòng)作。
首先你必須根據(jù)該篇文章,將你的 Zybo board 配置文件案升級(jí)到你用的 Vivado 版本,完成后我們重新建立一個(gè)干凈的項(xiàng)目。
首先先把先前生成的舊項(xiàng)目清掉:
coldnew@gentoo ~/ZYBO/Projects/linux_bd/proj $ sh cleanup.sh
接下來用 Vivado 2016.2 重新生出新的項(xiàng)目 ~
coldnew@gentoo ~/ZYBO/Projects/linux_bd/proj $ /opt/Xilinx/Vivado/2016.2/bin/vivado -mode batch -source create_project.tcl
完成后,會(huì)看到 ZYBO/Projects/linux_bd/proj 目錄變成這樣:
coldnew@gentoo ~/ZYBO/Projects/linux_bd/proj $
tree -L 1
.
├── cleanup.cmd
├── cleanup.sh
├── create_project.tcl
├── ip_upgrade.log
├── linux_bd.cache
├── linux_bd.hw
├── linux_bd.ip_user_files
├── linux_bd.sim
├── linux_bd.srcs
├── linux_bd.xpr
├── vivado.jou
└── vivado.log
5 directories, 7 files
我們使用 Vivado 打開 linux_bd.xpr 這個(gè)專案。
如果你有興趣看他生出來的 Block Design 是怎樣的,也可以切到 Block Design 那頁(yè)看看
我們直接點(diǎn)選 Program and Debug -> Generate Bitstream 產(chǎn)生我們要的比特流 (bitstream)
建立 FSBL
到此,我們除了 第一階段開機(jī)程序 (First Stage Boot Loader, FSBL) 外,其他的程序都已經(jīng)編譯出執(zhí)行檔了,讓我們來處理 FSBL 吧。
首先點(diǎn)選 File -> Export -> Export hardware
記得要勾選 Include bitstream
完成后,執(zhí)行 Xilinx SDK
透過 File -> New -> Application Project 去建立我們的新項(xiàng)目
設(shè)定這個(gè)項(xiàng)目為 standalone 的項(xiàng)目
選擇樣板為 Zynq FSBL
選擇我們剛剛建立的 FSBL 項(xiàng)目,按下右鍵選擇 Build Project 進(jìn)行編譯
建立 BOOT.bin
編譯完 FSBL 后,選擇 Xilinx Tools -> Create Boot Image 去建立我們的 BOOT.bin
在 Boot image partitions 那邊,加入我們的 bitstream 以及 u-boot 檔案,記得要按照順序加入。
完成后,點(diǎn)選 Create Image 就會(huì)產(chǎn)生我們要的 BOOT.bin 到指定路徑。
在這個(gè)步驟中,如果你是指令控的話,我們也可以在產(chǎn)生 FSBL.elf 后,建立一個(gè)名為 boot.bif 的檔案,其內(nèi)容如下
//arch = zynq; split = false; format = BIN
the_ROM_image:
{
[bootloader]/path/to/fsbl-build/fsbl.elf
/path/to/linux_bd/linux_bd.sdk/linux_bd_wrapper.bit
/path/to/u-boot/u-boot.elf
}
接下來透過 bootgen 這個(gè)命令去產(chǎn)生 BOOT.bin
coldnew@gentoo ~ $ bootgen -image boot.bif -w on -o i boot.bin
將檔案復(fù)制到 Micro SD 卡
好了,我們已經(jīng)完成了所有準(zhǔn)備動(dòng)作,是時(shí)候?qū)n案放到 Micro SD 卡并看看結(jié)果了,在本文中我們會(huì)將以下幾個(gè)檔案放到 第一個(gè)分割區(qū) (fat32) 。
coldnew@gentoo /tmp/sdc1 $
tree -L 1
.
├── BOOT.bin
├── devicetree.dtb
├── uImage
└── uramdisk.image.gz
0 directories, 4 files
也就是說我們的 SD 卡有的東西,要像 The Zynq Book p.439 這張圖那樣
評(píng)論
查看更多