zynq7010礦機petalinux
㈠ 如何利用Zynq-7000的PL和PS進行交互
在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:
{
[bootloader]<fsbl_name>.elf
<pl_bitstream_name>.bit
<u-boot_name>.elf
}
bif文件可以用文本編輯器寫,也可以用Xilinx SDK的Create Boot Image工具生成。然後在命令行下用以下命令即可去掉bitstream文件的文件頭。
bootgen -image <bootimage>.bif -split bin -o i BOOT.BIN
"-split」參數可以生成以下文件:
<pl_bitstream_name>.bit.bin
2. 在U-BOOT下燒寫PL Image
命令」fpga load」和」fpga loadb」都可以。區別是前一個命令接受去掉了文件頭的bitstream文件,後一個命令接受含有文件頭的bitstream文件。
在OSL 2014.2上,預設編譯就可以完整支持寫入PL Image的功能。但是在Petalinux 2013.10下,盡管可以在U-BOOT下看到命令」fpga」,還需要在文件
<PROJ>/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 <path_to_storage_media>/<pl_bitstream_name>.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已經提供了靈活的解決方案,如果開發者要把這個功能集成在自己的應用程序中,也有很多的代碼可以參考,並不是很困難的任務。
㈡ zynq7010可以作為fpga使用嗎
zynq7010是帶有ARM內核處理器的FPGA,當然可以作為FPGA來使用了。但如果你不需要ARM內核處理器的話,那麼zynq7010隻作為普通FPGA來使用就有些大才小用了。
㈢ 如何在Zynq 7000平台上使用Linux spidev.c驅動
一、在前一篇博客中,我們採用xilinx針對Zynq 7000處理器提供的spi-cadence.c驅動實現了晶元上SPI匯流排驅動的注冊,接下來需要修改設備樹文件以時我們的外設掛接在SPI匯流排下。
在petalinux工程的../subsystems/linux/configs/device-tree目錄下找到zynq相關的設備樹文件,目錄所包含的文件如下圖所示。
打開其中的zynq-7000.dtsi文件,找到其中的spi0節點(具體使用spi0還是spi1根據硬體工程的配置情況),並在該節點下添加如下內容:
㈣ zynq 7010支持動態重構嗎
肯定支持啊。XILINX收購了petalinux公司。你不知道么?
㈤ zynq搭建petalinux環境build時出現Invalid ELF file是什麼意思
filename是文件名稱的意思。
如果你是用系統安裝盤安裝,不會出現這種情況,這種情況一般是GHOST恢復映像才會出現,是讓你選擇要恢復的GHO備份的映像文件,用來恢復系統。
㈥ 如何在zynq上跑petalinux
官方有個文檔,ug1144,裡面有比較詳細的步驟。
㈦ 支持zynq上的linux是petalinux嗎
沒錯,現在的linux對中文支持都很好,只要裝了中文支持用的字體都一樣ukai, uming, wyq,最多就是動手改一下配置