日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 工業(yè)控制 > 電子設(shè)計自動化
[導(dǎo)讀]Xilinx的開發(fā)環(huán)境我還是推薦Linux(這里默認(rèn)都是64bit系統(tǒng)),Windows的綜合和P&R的效率要比Linux低三分之一,這個不能忍,再就是petalinux的交叉編譯用啥呢,cygwin?

做點東西不容易,我這種有強迫癥的人也在這個環(huán)節(jié)屈服了。開發(fā)環(huán)境這兩年真是換了又換,被搞的精疲力盡。Xilinx的開發(fā)環(huán)境我還是推薦Linux(這里默認(rèn)都是64bit系統(tǒng)),Windows的綜合和P&R的效率要比Linux低三分之一,這個不能忍,再就是petalinux的交叉編譯用啥呢,cygwin?Linux發(fā)行版里面我用的是CentOS,Vivado推薦測試的那幾個我試過CentOS和Ubuntu。先說Ubuntu,不好用,問題比較多。CentOS最好的版本是6.5,但是6.5已經(jīng)在官網(wǎng)不支持了,替代的是6.6和7。先說7,Vivado的開發(fā)環(huán)境沒有問題,但是petalinux的環(huán)境始終有問題,具體在這里,Unable to determine a suitable packaging system type。那最后就剩下6.6了,6.6也有一個小問題,是eclipse的一個bug,eclipse cairo bug。網(wǎng)上你能找到的方法是在eclipse的配置文件加上一句disable cairo的話,但是這個在Xilinx的工具鏈中不管用,我試了好多Xilinx的eclipse的config文件,都不行。別的解決的方法下面我會說。好,現(xiàn)在正是搭建環(huán)境:

 


 

開發(fā)平臺環(huán)境搭建

上邊說了,我們用CentOS 6.6 64bit。裝的時候有個地方讓你選平臺的用處,你就選最后一個,software development。裝別的也行,注意把一些開發(fā)環(huán)境和庫的選項都選上。裝好系統(tǒng)后可能會提示你更新,內(nèi)核也被更新了,你就更新吧。然后我們裝幾個庫1。

yum install dos2unix iproute gawk gcc git gnutls-devel net-tools ncurses-devel sftp-server zlib-devel flex bison libstdc++.i686 libgcc.i686 libgomp.i686 ncurses-libs.i686 zlib.i686 libselinux libselinux.i686

前邊幾個都是文檔里面說的庫,有些也用不到,比如tftp那個,你不用tftp調(diào)試就不用。后邊也要裝上,要不然petalinux編譯的時候還是會有問題。然后我們再裝兩個庫,解決上邊說的那個eclipse的bug。去rpmfind.net下載下面的兩個庫:

cairo-1.10.2-3.el6.x86_64.rpm

cairo-devel-1.10.2-3.el6.x86_64.rpm

然后裝上,

yum localinstall cairo*.rpm

Vivado工具鏈安裝

這個簡單,下載下來裝上就行,記得勾上 Install Cable Drivers。這里我用的都是2014.4的版本,下邊的Petalinux也是對應(yīng)的。記得source setTIng文件。

Petalinux開發(fā)環(huán)境

這個開發(fā)環(huán)境我們可以參考Xilinx Wiki上說的那些方法,也可以直接用他們準(zhǔn)備好的Petalinux SDK工具鏈。這里我們選擇后者。安裝也簡單,去官網(wǎng)下載下來然后裝上就好。BSP你可以下載下來裝上玩玩,我們這里不用下這個,我們自己建一個就好。大家可以參看Xilinx的官方文檔,ug1144,里面有詳細(xì)的說明。我們也只是按照說明走一遍,然后給出一個例子,讓大家快速上手。

一個例子

這里給大家展示一個例子,跟Zynq CTT ug873里面的差不多,但是這里我們用了Vivado,并且結(jié)合了Petalinux SDK的開發(fā)流程。不過我建議大家多看help,這里還有一個Petalinux的command reference供大家參考。我們開始:

建立一個petalinux的project

petalinux-create -t project --name poll

cd poll

在當(dāng)前目錄就會建立一個poll的文件夾,這就是我們的工作目錄,后邊的所有操作如果不特別指出,都是在這個工作目錄的根目錄進行的。里面還缺hardware platform,driver,還有我們的applicaTIon。我們一一補上。

創(chuàng)建一個hardware platform

這里我給大家準(zhǔn)備了一個TCL文件,下載(戳這里下載),然后放到project的根目錄。這里注意,我都是在Vivado 2014.4和ZC706環(huán)境下做的,要是你的環(huán)境不同,要做出適當(dāng)?shù)男薷?,板子不同改?chuàng)建工程的那兩句話。Vivado版本不同改所有IP的版本,或者你自己建一個也行,這個系統(tǒng)就是一個PS然后一個MicroBlaze,然后還有個BRAM。后邊還得給MB寫個程序。這里有個系統(tǒng)圖你可以參考下,注意保證BRAM的起始地址是0x40000000,MB和ARM都得一樣才行。?

 


 

最后運行:

vivado -mode gui -source ./system.tcl

然后Vivado就是啟動,等右上角的那個進度條走完,bitstream文件就會生成好了。機器不同,時間可能不同,我的機器大約5分鐘。

生成系統(tǒng)的時候看著特別爽吧,哈哈,duang duang的生成完了。Vivado比ISE增加了tcl,在自動化的時候還是很爽的,不用像原來ISE分析那個系統(tǒng)描述文件來自動生成系統(tǒng)。其實下邊的SDK的過程也可以全程自動化,但是有點麻煩,需要修改SDK的xml文件然后調(diào)用xsdk去build就行。這里就不說了,爽到底就沒意思了。

然后我們就可以File->Export->Export Hardware,記得勾上Include bitstream。然后File->Launch SDK,我們就進入到下一步了。

給MicroBlaze寫個程序

MB的這個程序主要的功能就是不斷的把BRAM中一個地址的數(shù)值傳到另一個地址,后邊在ARM運行的Linux會把這個BRAM當(dāng)做一個外設(shè),然后要對其寫個driver。不要MB也行,有個好玩嘛,異構(gòu)系統(tǒng),heterogeneous,多高大上。。。哈哈。給MB建一個空的ApplicaTIon Project,名字叫poll吧,然后添加一個main.c的文件到工程中,main.c里面復(fù)制上這些代碼:

/*

* main.c

*/

#define BRAM_ADDRESS 0x40000000

int main(void) {

volaTIle int *bram = (int *)BRAM_ADDRESS;

while (1)

bram[1] = bram[0];

}

然后保存下,SDK就編譯好啦。下面要做的事情就是把編譯生成的ELF文件和系統(tǒng)生成的bitstream文件組合在一起。這樣bit文件下載到板子里面,這個程序就可以直接運行了。這里有個簡單的方法,選Xilinx Tools->Program FPGA。把下面的ELF File to Initialize in Block BRAM 選擇成我們生成好的poll.elf,下拉下就找到了,一般在Debug下邊(大就忍了吧)。然后點那個Program,然后出來下一個對話框后,點Cancel。這樣,我們就騙SDK把我們要的那個download.bit文件生成出來了,然后我們不用這個下載。你們注意下邊的Console選項卡,會有剛才這個合成調(diào)用的命令updatemem,原來是data2mem,不過模糊有印象哪里說過前者會更好一些。

配置一下Petalinux

剛才創(chuàng)建的Petalinux project是沒有硬件的描述信息的,這會我們就把我們生成的硬件描述信息配置到Petalinux里面去。很簡單,運行這個:

petalinux-config --get-hw-description=./hardware/hardware.sdk/system_wrapper_hw_platform_0

然后會出來個配置界面,我們直接選Exit,然后保存配置就可以了。系統(tǒng)會被自動配置好。詳細(xì)的說明看上邊說的那個reference guide。

創(chuàng)建Linux Kernel Module

接下來我們需要對剛才創(chuàng)建的那個PL上要program的硬件系統(tǒng)寫一個驅(qū)動,主要就是對那個BRAM的兩個location進行的訪問。先創(chuàng)建一個module的工程吧:

petalinux-create -t modules --name poll_driver --enable --force

創(chuàng)建好的module的模板會在components->modules->poll_driver。這里已經(jīng)有一個poll_driver.c,然后還要建一個poll_driver.h文件。下載這個zip文件,里面有這兩個dirver文件和下一步要用的app文件。(戳這里下載)。都是參考CTT寫得啦,他們也參考了另一個網(wǎng)站,上邊給了比較簡明的教程,寫了個char的device driver。

創(chuàng)建Linux Application

這一步我們就創(chuàng)建個在petalinux上運行的程序,然后會調(diào)用剛才的那個driver。還是先建個app的工程:

petalinux-create -t apps --name poll_app --enable --force

app的模板會在components->apps->poll_app。把上一步那個壓縮包里面的poll_app.c替換到這個生成的app目錄里面。好啦,到目前為止所有的軟硬件的創(chuàng)建工作就完成了,下面就得編譯fsbl,device_tree, uboot,kernel,module和app了。我也不會分開弄了,Xilinx Wiki上的是分開弄的,好復(fù)雜的說。

編譯生成所有image文件

上邊說了那么復(fù)雜,Petalinux SDK里面好簡單的。

petalinux-build

可能需要點時間,等一會,哈哈!再修改編譯就快了。

生成image文件會在./image/linux里面,modules和apps會在./build/linux/rootfs/modules和./build/linux/rootfs/apps里面。但其實./image/linux下面的rootfs (或者kernel image,我不確定)里面已經(jīng)有我們編譯好的modules和apps了。

生成boot文件

這一步得生成啟動需要用得boot文件:

petalinux-package --boot --fsbl ./image/linux/zynq_fsbl.elf --u-boot --force

生成pre-built文件夾

這一步主要是方便后面的boot的,其實上一步已經(jīng)生成了我們可以boot zynq的所有文件了,但是養(yǎng)成好習(xí)慣,我們生成一個pre-built文件夾,把image和bitstream文件都包含進來。

petalinux-package --prebuilt --fpga ./hardware/hardware.sdk/system_wrapper_hw_platform_0/download.bit --force

好了之后可以看到工程根目錄下生成了一個pre-built,然后./pre-built/linux/images和./pre-built/linux/implementation下分別是軟件和硬件的文件。

啟動zynq board

好啦,終于倒數(shù)第二步了,所有的文件都已經(jīng)生成完了,啟動zynq有好多種方法,因為我們有bitstream文件,所以介紹兩種可以下載bitstream文件的方法,也是兩種啟動linux kernel的方法。就是SD和JTAG,還有些別的方法,參看文檔。我就不用了,無論哪種方法先把板子上的SW4配置成 off和on。其實SD卡啟動不用,但是方便就都配置成這樣就行了。在這之前還得裝一個看UART的小工具,用minicom就挺好。

yum install minicom

第一次運行su模式minicom -s,配置一下Serial port setup,Serial Device改成/dev/ttyUSB0(我的是0,你的不一定)。然后115200 8N1。Hardware Flow Control設(shè)置成No就可以輸入字符到zynq上啦,我會亂說。

第一種SD卡引導(dǎo)啦(加粗顯得正式一些。。)

先格式化一張SD卡成FAT格式,然后把這三個文件都考到SD卡上的第一個分區(qū)。

./pre-built/linux/images/image.ub

./pre-built/linux/images/BOOT.BIN

./pre-built/linux/implementation/download.bit

然后配置一下板子上的SW11成00110,0就是開關(guān)掰到下邊,1就是上邊。這樣板子就進入了SD卡啟動的模式。把SD卡插進去,重啟電源就行啦!然后啟動minicom,用戶名和密碼都輸入root就進入系統(tǒng)啦!

第二種方法JTAG

調(diào)試的時候用JTAG了,不用一遍一遍的插拔SD卡了,多方便。發(fā)行的時候用SD卡模式了。同樣,SW11先配置成00000。然后重啟下zynq的電源,清空原來運行的系統(tǒng),要不然會有錯誤哦,你又知道了。。然后我們執(zhí)行:

petalinux-boot --jtag --prebuilt 3

稍等片刻,download.bit會先被下載到板子里面,然后kernel會被加載。然后輸入用戶名密碼,系統(tǒng)又進去了。迭代開發(fā)的時候要記得生成pre-built啊,還得重啟zynq電源啊。

Finally!!下載PL,加載module,運行我們的程序了

終于最后一步了,肚子好餓。如果上一步你用的JTAG啟動,就不用再下載bitstream了,如果SD卡啟動,我們先把bitstream下載到板子里面。進入到Petalinux的系統(tǒng)之后,運行這個,很神奇的。

mount /dev/mmcblk0p1 /mnt

cat /mnt/download.bit > /dev/xdevcfg

下載完啦。。用得是zynq上得PCAP啊。

接下就是加載我們的module:

insmod /lib/modules/`uname -r`/extra/poll_driver.ko

一般會輸出printk里面的東西了,如果沒有就運行:

dmesg

或者

cat /var/log/dmesg

最后就可以看到kernel的輸出了。這里要看的是中間有那么一句話,我們需要知道m(xù)odule加載被分配的major device number。我這里是245,還要再創(chuàng)建一個設(shè)備節(jié)點,后邊的app會用到。

mknod /dev/poll_dev c 245 0

然后/dev/poll_dev就被創(chuàng)建出來了。

最后的最后了。。運行我們創(chuàng)建的程序:

很簡單,很簡單。。

/bin/poll_app

整個流程終于結(jié)束了。。。

后記

萬里長征第一步而已,入個門。還有很多的問題,比如debug,大家多多交流。

最后,推薦一本書Embedded Linux Primer: A Practical Real-World Approach,作者:Christopher Hallinan。 資深工程師寫得書,通俗易懂,入門必選。

Petalinux Tools Documentation Reference Guilde:UG1144的page 9-10推薦的庫。

『本文轉(zhuǎn)載自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系刪除』

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在嵌入式開發(fā)領(lǐng)域,工具鏈的生態(tài)競爭直接影響開發(fā)效率與產(chǎn)品競爭力。德州儀器(TI)的Code Composer Studio(CCS)與賽靈思(Xilinx)的Vitis作為兩大主流平臺,分別在DSP與FPGA/SoC開發(fā)...

關(guān)鍵字: TI Xilinx

Serial RapidIO(SRIO)是一種高性能、低引腳數(shù)、基于數(shù)據(jù)包交換的互連技術(shù),專為滿足未來高性能嵌入式系統(tǒng)的需求而設(shè)計。它由Motorola和Mercury等公司率先倡導(dǎo),旨在為嵌入式系統(tǒng)提供可靠的、高性能的...

關(guān)鍵字: SRIO Xilinx

隨著Altera,Xilinx兩家FPGA巨頭陸續(xù)被收購,F(xiàn)PGA的未來似乎已經(jīng)與數(shù)據(jù)中心、AI等超大規(guī)模應(yīng)用綁定。

關(guān)鍵字: Altera Xilinx

在現(xiàn)代電子設(shè)計自動化(EDA)工具鏈中,ModelSim作為一款功能強大的仿真軟件,廣泛應(yīng)用于FPGA(現(xiàn)場可編程門陣列)和數(shù)字IC設(shè)計的驗證階段。特別是在與Xilinx FPGA結(jié)合使用時,ModelSim能夠模擬復(fù)雜...

關(guān)鍵字: ModelSim Xilinx

在FPGA(現(xiàn)場可編程門陣列)設(shè)計與開發(fā)過程中,Xilinx的Vivado工具憑借其強大的功能和用戶友好的界面,受到了廣大工程師的青睞。然而,僅僅掌握Vivado的基本操作是遠(yuǎn)遠(yuǎn)不夠的,掌握一些使用小技巧可以極大地提高設(shè)...

關(guān)鍵字: Vivado FPGA Xilinx

在高速數(shù)據(jù)傳輸?shù)腇PGA設(shè)計中,時序約束是保證數(shù)據(jù)準(zhǔn)確傳輸?shù)年P(guān)鍵因素之一。特別是在LVDS(Low Voltage Differential Signaling)等高速接口設(shè)計中,信號的傳輸延時和時序?qū)R尤為重要。Xil...

關(guān)鍵字: 時序約束 Xilinx IDELAYE2應(yīng)用

在現(xiàn)代的FPGA設(shè)計中,球柵陣列(BGA)封裝已經(jīng)成為了一種常見的封裝方式,特別是在高性能、高密度的Xilinx FPGA設(shè)計中。BGA封裝以其高集成度、小體積和優(yōu)良的熱性能受到了廣泛的應(yīng)用。然而,BGA封裝的復(fù)雜性和高...

關(guān)鍵字: BGA 球柵陣列 Xilinx

Vivado是Xilinx公司推出的一款強大的FPGA開發(fā)工具,它為用戶提供了從設(shè)計到實現(xiàn)的全面解決方案。然而,在FPGA設(shè)計過程中,Vivado編譯錯誤是開發(fā)者經(jīng)常遇到的問題。本文將總結(jié)Vivado編譯過程中常見的錯誤...

關(guān)鍵字: Vivado編譯 Xilinx FPGA開發(fā)

在FPGA(現(xiàn)場可編程門陣列)的應(yīng)用中,F(xiàn)lash下載速度是一個關(guān)鍵的性能指標(biāo)。特別是在需要頻繁更新FPGA配置或進行大量數(shù)據(jù)傳輸?shù)膱鼍跋拢岣逨lash下載速度顯得尤為重要。Xilinx作為全球領(lǐng)先的FPGA供應(yīng)商,其...

關(guān)鍵字: Flash Xilinx FPGA

視頻流媒體市場總額將從2021年的61個Billion一路增長,至2028年達到213個Billion。流媒體大漲的背后技術(shù)挑戰(zhàn)來自新一代的交互模型,會是“多對多”的形式。這種交互模型的變化,將會徹底改變基礎(chǔ)設(shè)施的部署模...

關(guān)鍵字: AMD Xilinx 加速卡 VPU Alveo MA35D
關(guān)閉