如何在Zynq 7000上燒寫PL Image

2021-06-27 22:44:52 字數 1869 閱讀 5275

在zynq-7000上程式設計pl大致有3種方法:

1. 用fsbl,將bitstream整合到boot.bin中

2. 用u-boot命令

3. 在linux下用xdevcfg驅動。

步驟:1. 去掉bitstream的檔案頭

用fsbl燒寫pl images沒有什麼好說的,用xilinx sdk的create boot image工具即可完成,不再贅述。用後兩種方法需要把bitstream檔案的檔案頭用bootgen工具去掉。

乙個典型的bif檔案如下所示:

the_rom_image:

bif檔案可以用文字編輯器寫,也可以用xilinx sdk的create boot image工具生成。然後在命令列下用以下命令即可去掉bitstream檔案的檔案頭。

bootgen -image .bif -split bin -o i boot.bin

"-split」引數可以生成以下檔案:

.bit.bin

2. 在u-boot下燒寫pl image

命令」fpga load」和」fpga loadb」都可以。區別是前乙個命令接受去掉了檔案頭的bitstream檔案,後乙個命令接受含有檔案頭的bitstream檔案。

在osl 2014.2上,預設編譯就可以完整支援寫入pl image的功能。但是在petalinux 2013.10下,儘管可以在u-boot下看到命令」fpga」,還需要在檔案

/subsystems/linux/configs/u-boot/platform-top.h 中增加以下內容後重新編譯才可以支援具體的功能。

/* enable the pl to be downloaded */

#define config_fpga

#define config_fpga_xilinx

#define config_fpga_zynqpl

#define config_cmd_fpga

#define config_fpga_loadfs

在osl 2014.2 u-boot中,具體的功能是在zynqpl.c的zynq_load()中實現的。

3. 在linux下燒寫pl image

osl linux 2014.2.01中已經含有xdevcfg驅動了(之前就有,不過本文是在這個版本上驗證的),直接用以下命令就可以完成pl image寫入。

cat /.bit.bin > /dev/xdevcfg

linux驅動的源**在xilinx_devcfg.c中。因為驅動的編號是通過alloc_chrdev_region()動態分配的,所以不需要手工用mknod命令手動建立裝置節點。

在linux驅動中,每次往devcfg中寫入4096位元組,直到全部寫完。

4. 在使用者程式中燒寫pl image

目前沒有現成的原始碼來完成這個功能,不過可以用mmap()把devcfg的暫存器對映到使用者程式的虛位址中,然後參考一些現成的軟體**來完成這個功能:

* fsbl中的pcap.c

* u-boot中的zynqpl.c

* linux中的xilinx_devcfg.c

* xilinx sdk中的例子。例子位於以下位置,隨sdk的版本會有變化。

c:\xilinx\sdk\2014.1\data\embeddedsw\xilinxprocessoriplib\drivers\devcfg_v3_0\examples\index.html

小結:devcfg外設內部有自己的dma,只需要簡單的配置pl image的基位址和長度到devcfg暫存器,就可以完成zynq-7000 pl image的載入。xilinx已經提供了靈活的解決方案,如果開發者要把這個功能整合在自己的應用程式中,也有很多的**可以參考,並不是很困難的任務。

如何在Zynq 7000上燒寫PL Image

在zynq 7000上程式設計pl大致有3種方法 用fsbl,將bitstream整合到boot.bin中 用u boot命令 在linux下用xdevcfg驅動。去掉bitstream的檔案頭 用fsbl燒寫pl images沒有什麼好說的,用xilinx sdk的create boot imag...

ZYNQ7000效能分析

提到自動駕駛,機械人視覺,高畫質攝像機,都要想到攝像頭這個單元,先前本俠也講過一些fpga應用在高畫質攝像頭和機器視覺中的深度攝像頭以及雙目攝像頭等,fpga在裡面的作用主要是對採集的影象進行處理,對影象的處理需要硬體有著很好的並行的效能,那麼它處理速度跟arm的cpu比起來有沒有優勢呢?本俠今天就...

Zynq7000晶元內部介紹

基於arm雙核coretexa9 arm v7架構 高達1ghz 單雙精度浮點單元 neon多 處理引擎 高速緩衝,中斷,dma,定時器,rtc,ent,3個看門狗 快取每個cpu 32kb 1級指令和資料快取 512kb 2級快取 2個cpu共享 支援8位奇偶校驗 片內儲存 片上boot rom ...