www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 工業(yè)控制 > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]用戶可輕松將這款高穩(wěn)健操作系統(tǒng)安裝到目標(biāo)FPGA平臺(tái)上,以供嵌入式設(shè)計(jì)項(xiàng)目使用。從最初不起眼的膠合邏輯開始,F(xiàn)PGA已經(jīng)歷了漫長的發(fā)展道路。當(dāng)前FPGA的邏輯容量和靈活性已將其帶入了嵌入式設(shè)計(jì)的中心位置。目前,在

用戶可輕松將這款高穩(wěn)健操作系統(tǒng)安裝到目標(biāo)FPGA平臺(tái)上,以供嵌入式設(shè)計(jì)項(xiàng)目使用。

從最初不起眼的膠合邏輯開始,F(xiàn)PGA已經(jīng)歷了漫長的發(fā)展道路。當(dāng)前FPGA的邏輯容量和靈活性已將其帶入了嵌入式設(shè)計(jì)的中心位置。目前,在單個(gè)可編程芯片上可實(shí)現(xiàn)一個(gè)完整系統(tǒng),這種架構(gòu)有助于軟硬件的協(xié)同設(shè)計(jì),并能將軟硬件應(yīng)用進(jìn)行集成。

這些基于FPGA的嵌入式設(shè)計(jì)種類需要穩(wěn)健的操作系統(tǒng)。PetaLinux應(yīng)運(yùn)而生,已成為眾多嵌入式設(shè)計(jì)人員青睞的對(duì)象。它以開源免費(fèi)的方式提供,支持包括賽靈思MicroBlaze® CPU和ARM®處理器在內(nèi)的多種處理器架構(gòu)。要將PetaLinux移植到特定的FPGA上,必須針對(duì)目標(biāo)平臺(tái)定制、配置和構(gòu)建內(nèi)核源代碼、引導(dǎo)載入程序、器件樹和根文件系統(tǒng)。

對(duì)于PES大學(xué)和C-DOT的一個(gè)設(shè)計(jì)項(xiàng)目而言,我們的研發(fā)團(tuán)隊(duì)準(zhǔn)備移植PetaLinux并在采用Kintex®-7 XC7K325T FPGA的賽靈思KC705評(píng)估板上運(yùn)行多個(gè)PetaLinux用戶應(yīng)用。結(jié)果證明整個(gè)過程相當(dāng)便捷。

選擇PetaLinux的原因

在詳細(xì)介紹具體做法之前,有必要花點(diǎn)時(shí)間來探討針對(duì)基于FPGA的嵌入式系統(tǒng)提供的操作系統(tǒng)選項(xiàng)。PetaLinux是FPGA上最常用的操作系統(tǒng),另外還有μClinux 和Xilkernel。μClinux為Linux發(fā)行版,是一款包含小型Linux內(nèi)核的移植型Linux操作系統(tǒng),適用于無存儲(chǔ)器管理單元(MMU)的處理器[1]。μClinux配備有各種庫、應(yīng)用和工具鏈。Xilkernel就其本身而言,是一款小型、高穩(wěn)健性、模塊化內(nèi)核,能夠提供高于μClinux 的定制性能,有助于用戶通過定制內(nèi)核來優(yōu)化其設(shè)計(jì)尺寸與功能[2]。

同時(shí),PetaLinux也是一款完整的Linux發(fā)行版及開發(fā)環(huán)境,適用于基于FPGA的片上系統(tǒng)(SoC)設(shè)計(jì)。PetaLinux包含預(yù)配置二進(jìn)制可引導(dǎo)映像、面向賽靈思器件的完全可定制Linux 以及配套提供的PetaLinux軟件開發(fā)套件(SDK)[3]。其中SDK包括用于自動(dòng)完成配置、構(gòu)建和部署過程中各種復(fù)雜工作的工具和實(shí)用程序。賽靈思提供可免費(fèi)下載的PetaLinux開發(fā)包,其中包括針對(duì)各種賽靈思FGPA開發(fā)套件而設(shè)計(jì)的硬件參考項(xiàng)目。同時(shí)包含在內(nèi)的還有適用于賽靈思FPGA的內(nèi)核配置實(shí)用程序、交叉編譯器等軟件工具、硬件設(shè)計(jì)創(chuàng)建工具以及大量其它設(shè)計(jì)輔助功能。

據(jù)報(bào)道,Xilkernel 的性能優(yōu)于μClinux[4],而PetaLinux的性能又優(yōu)于Xilkernel [5]。由于這個(gè)原因,特別是由于已針對(duì)我們賽靈思目標(biāo)板提供的軟件包原因,我們?yōu)槲覀兊捻?xiàng)目選擇了PetaLinux。移植PetaLinux的另一大優(yōu)勢(shì)是用戶可以輕松實(shí)現(xiàn)遠(yuǎn)程編程。這就意味著用戶可使用遠(yuǎn)程接入方式,通過遠(yuǎn)程登錄,采用新的配置文件(或比特流文件)加載FPGA目標(biāo)板。

有兩種方法可以創(chuàng)建用于構(gòu)建PetaLinux系統(tǒng)的軟件平臺(tái):在Linux終端上使用PetaLinux命令或通過下拉菜單使用GUI。

開始安裝

下面詳細(xì)介紹我們項(xiàng)目團(tuán)隊(duì)安裝PetaLinux的方法。第一步,我們下載了PetaLinux軟件包12.12版以及用于Kintex-7目標(biāo)板的電路板支持包(BSP)。然后運(yùn)行了PetaLinux SDK安裝程序,并在控制臺(tái)上使用下列命令把SDK安裝到了/opt/Petalinux-v12.12-final目錄下:

@ cd /opt

@ cd /opt/PetaLinux -v12.12-final-full.tar.gz

@ tar zxf PetaLinux-v12.12-final-full.tar.gz

隨后,我們把從賽靈思網(wǎng)站獲得的PetaLinux SDK許可證復(fù)制并拷貝到.xilinx和.Petalogix文件夾中。接下來,我們使用下列命令獲取適當(dāng)設(shè)置,設(shè)置了SDK的工作環(huán)境:

@ cd /opt/PetaLinux-v12.12-final

@ source settings.sh

為驗(yàn)證工作環(huán)境是否設(shè)置正確,我們使用了以下命令:

@ echo $PETALINUX

如果環(huán)境設(shè)置正確,將顯示PetaLinux的安裝路徑。在本案例中,PetaLinux的安裝路徑是 /opt/PetaLinux-v12.12-final。

圖1:用于用戶設(shè)置的Linux終端窗口截屏

接下來的工作是安裝BSP,其中包含必要的設(shè)計(jì)文件、配置文件和預(yù)構(gòu)建軟硬件包。這些軟硬件包已經(jīng)通過測試,可隨時(shí)下載到目標(biāo)板上。另外軟件包還可用于在快速仿真器(QEMU)系統(tǒng)仿真環(huán)境下的引導(dǎo)。為了安裝BSP,我們?cè)趐ath /opt中創(chuàng)建了一個(gè)名為“bsp”的文件夾,并使用下列命令復(fù)制了KC705 BSP的ZIP文件:

@ cd /opt/PetaLinux-v12.12-final-full

@ source settings.sh

@ source /opt/Xilinx/14.4/ISE _DS/settings32.sh

@ PetaLinux-install-bsp /bsp/Xilinx-KC705

-v12.12- final.bsp

構(gòu)建為新平臺(tái)定制的PetaLinux系統(tǒng),有兩種創(chuàng)建和配置軟件平臺(tái)的方法。一種方法是使用Linux終端,在PetaLinux命令對(duì)應(yīng)的路徑位置使用PetaLinux命令,如圖1所示。第二種方法是通過下拉菜單使用GUI,如圖2所示。您可使用其中任何一種方法來選擇平臺(tái),配置Linux內(nèi)核,配置用戶應(yīng)用和構(gòu)建鏡像。在操作系統(tǒng)安裝完成后,就可使用PetaLinux控制臺(tái)。而使用GUI則需要完成PetaLinux SDK插件的安裝。完成該插件的安裝后,就可使用PetaLinux Eclipse SDK中提供的PetaLinux GUI設(shè)置各種配置(圖2)。該GUI具有各種特性,如用戶應(yīng)用和庫開發(fā),以及PetaLinux及硬件平臺(tái)的調(diào)試、構(gòu)建和配置等。

硬件構(gòu)建

我們?yōu)轫?xiàng)目使用了基于Kintex-7 FPGA的KC705評(píng)估板。設(shè)計(jì)需要的硬件接口有用于監(jiān)控輸出的RS232接口、用于編程FPGA的JTAG接口以及用于遠(yuǎn)程編程的以太網(wǎng)接口。除了PetaLinux SDK,所推薦設(shè)計(jì)需要的其它軟件還包括Xil-inx Platform Studio (XPS) [6,7] 和賽靈思軟件開發(fā)套件(SDK)[7]。

圖2:用于用戶設(shè)置的PetaLinux SDK菜單截屏

在該嵌入式設(shè)計(jì)的硬件部分,我們的第一項(xiàng)任務(wù)就是使用XPS中的基本系統(tǒng)構(gòu)建器(BSB)設(shè)計(jì)基于MicroBlaze處理器的硬件平臺(tái)。BSB允許選擇目標(biāo)板上提供的一系列外設(shè)。您還可根據(jù)應(yīng)用需求添加或刪除外設(shè)。我們所推薦應(yīng)用采用的內(nèi)核或外設(shè)集包括帶8Mb存儲(chǔ)器的外部存儲(chǔ)器控制器、在中斷情況下啟用的定時(shí)器、波特率為115,200Bps的RS232 UART、以太網(wǎng)、非易失性存儲(chǔ)器以及

LED。完成選擇后,我們就獲得了硬件外設(shè)及其總線接口(圖3)。對(duì)于基于MicroBlaze處理器的設(shè)計(jì),PetaLinux需要支持MMU的CPU。因此我們?cè)赬PS窗口中雙擊MicroBlaze_0實(shí)例,選擇了帶MMU的低端Linux。

圖3:FPGA的硬件配置

此時(shí)硬件設(shè)計(jì)已完成。現(xiàn)在可以使用第一階段引導(dǎo)載入程序引導(dǎo)該內(nèi)核。

接下來,我們使用三步轉(zhuǎn)換流程將硬件配置轉(zhuǎn)換為比特流。首先,我們使用XPS生成了代表嵌入式硬件平臺(tái)的網(wǎng)表。隨后,我們將設(shè)計(jì)映射到FPGA邏輯中。最后我們將實(shí)現(xiàn)的設(shè)計(jì)轉(zhuǎn)換為能夠下載到FPGA上的比特流。XPS的最終輸出是system.bit和sys-tem_bd.bmm文件。

生成比特流后,我們將硬件平臺(tái)描述導(dǎo)出到SDK,以便在SDK中觀察目標(biāo)硬件平臺(tái)。導(dǎo)出的系統(tǒng)xml文件包含SDK編寫應(yīng)用軟件并在目標(biāo)硬件平臺(tái)上對(duì)其進(jìn)行調(diào)試所需的信息。我們的下一項(xiàng)任務(wù)是使用Xilinx Tools → Repository → New 在SDK中添加一個(gè)PetaLinux庫,然后選擇PetaLinux的安裝路徑。在本實(shí)例中,該路徑為$PetaLinux/Hardware/edk_user_repository。

接下來,我們使用File → Board support package → PetaLinux創(chuàng)建了PetaLinux BSP。我們根據(jù)所需的應(yīng)用選擇必要的驅(qū)動(dòng)程序,配置了PetaLinux BSP。隨后我們通過構(gòu)建BSP并創(chuàng)建和配置第一階段的引導(dǎo)載入程序應(yīng)用(fs-boot),引導(dǎo)了內(nèi)核。該BSP可建立硬件和引導(dǎo)應(yīng)用之間的交互。SDK的輸出為fs-boot.elf。可使用數(shù)據(jù)到存儲(chǔ)器轉(zhuǎn)換器命令data2mem

將system.bit、system_bd.bmm和fs-boot.elf 合并為一個(gè)名為download.bit的統(tǒng)一比特流文件,用作最終的FPGA比特流。

此時(shí)硬件設(shè)計(jì)已完成,其它方面還包括一個(gè)MicroBlaze內(nèi)核和運(yùn)行其上的PetaLinux操作系統(tǒng)?,F(xiàn)在我們可以使用第一階段的引導(dǎo)載入程序引導(dǎo)內(nèi)核。

構(gòu)建軟件

完成硬件平臺(tái)的構(gòu)建后,我們使用下列命令創(chuàng)建了針對(duì)硬件的定制PetaLinux軟件平臺(tái):

$ cd/opt/PetaLinuxv12.12

$ PetaLinux-new-platform –c –v –p

其中–c 為支持的CPU類型(這里是MicroBlaze處理器)、–v 為廠商名稱(這里是賽靈思),而–p 則為產(chǎn)品名稱(這里是KC705)。軟件平臺(tái)的配置文件在安裝PetaLinux的目錄下生成,即/opt/PetaLi-nuxv12.12/software/ PetaLinux-dist/vendors/Xilinx/ KC705。

圖4:內(nèi)核配置菜單

為定制與硬件匹配的軟件平臺(tái)模板,我們使用PetaLinux-copy-autoconfig命令將現(xiàn)有平臺(tái)配置與內(nèi)核配置進(jìn)行了合并。該命令可生成硬件配置文件Xilinx-KC705.dts、xparame-ters.h 和 config.mk。

我們使用GUI(PetaLinux SDK → Kernel Configuration)打開內(nèi)核配置菜單,配置了Linux內(nèi)核。此外,您也可以在Linux終端上使用下列命令完成該工作:

$ cd /opt/PetaLinux_v12.12 $ PetaLinux-config-kernel

我們?cè)趦?nèi)核配置彈出窗口中啟用該應(yīng)用的驅(qū)動(dòng)程序(如圖4所示)。為通過用戶空間輸入/輸出(UIO)接口訪問設(shè)備,完成所提出的工作,我們?cè)趦?nèi)核配置菜單中啟用了UIO驅(qū)動(dòng)程序。

內(nèi)核配置完成后,我們?cè)O(shè)計(jì)了一些應(yīng)用。PetaLinux可提供用于C語言和C++編程的用戶應(yīng)用模板[8]。這些模板包括應(yīng)用源代碼和Makefile文件,方便為目標(biāo)芯片配置和編譯應(yīng)用并將其安裝在根文件系統(tǒng)中。創(chuàng)建新的PetaLinux用戶應(yīng)用,既可使用GUI(File → PetaLinux New Application),也可在Linux終端上輸入下列命令:

$ cd /opt/PetaLinux_v12.12 $ PetaLinux-config-apps

隨后我們?yōu)樵撚脩魬?yīng)用起了個(gè)文件名。在本實(shí)例中,我們創(chuàng)建了gpio-dev-mem-test和gpio-uio-test用戶應(yīng)用,并根據(jù)應(yīng)用要求修改了模板源代碼。

接下來我們使用GUI構(gòu)建了PetaLinux系統(tǒng)映像(如圖2所示)。此外,您還可以在Linux終端上使用make命令完成該任務(wù),如下圖所示:

$ cd $PETALINUX/software/ PetaLinux-dist $ make

支持操作系統(tǒng)(OS)和定制用戶應(yīng)用的軟件平臺(tái)以及我們前文討論過的硬件設(shè)計(jì)現(xiàn)已可供使用。

測試運(yùn)行在設(shè)備上的PetaLinux

下面介紹PetaLinux的引導(dǎo)方式。MicroBlaze處理器可處理駐留在Block RAM中的代碼。第一階段的引導(dǎo)載入程序(fs-boot)將初始化基本硬件、執(zhí)行fs-boot.elf、搜索通用引導(dǎo)載入程序或U-Boot、在閃存分區(qū)中進(jìn)行尋址(因?yàn)閁-Boot的地址已在配置fs-boot時(shí)設(shè)定)。隨后,fs-boot將從閃存中的U-Boot分區(qū)中獲取U-Boot映像,將其發(fā)送到設(shè)備的DDR3存儲(chǔ)器并運(yùn)行內(nèi)核。一旦構(gòu)建好所有引導(dǎo)所需的映像后,您就可以通過JTAG、以太網(wǎng)或快速仿真器在硬件上測試這些映像了。QEMU是一種仿真器和虛擬機(jī),允許您運(yùn)行PetaLinux操作系統(tǒng)[9]。下面討論所有這三種解決方案的引導(dǎo)方法。

JTAG是編程和測試FPGA設(shè)計(jì)的傳統(tǒng)方法。為使用JTAG對(duì)FPGA進(jìn)行編程,我們使用了下拉菜單“Xilinx Tool → Program the FPGA”并下載了之前生成的download.bit文件。隨后我們使用GUI(PetaLinux SDK → BOOT JTAG [Li-nux])將映像下載到了電路板上,如圖2所示。您也可以在Linux終端上使用下列命令:

$ cd/opt/PetaLinux _v12.12/software/ PetaLinux-dist

$ PetaLinux-jtag-boot -i images/image.elf

此外,您還可使用U-Boot執(zhí)行間接內(nèi)核引導(dǎo),從而引導(dǎo)PetaLinux。系統(tǒng)首先使用GUI(PetaLinux SDK → BOOT JTAG [U-Boot])或以下命令通過JTAG接口下載U-Boot來進(jìn)行引導(dǎo)。

$ cd $PETALINUX/software/ PetaLinux-dist

$ PetaLinux-jtag-boot -i images/u -boot.elf

圖6是U-Boot控制臺(tái)的快照。

值得注意的是,F(xiàn)PGA電路板連接的是以太網(wǎng)接口。您必須在XPS的硬件資源部分選擇以太網(wǎng)接口。一旦U-Boot引導(dǎo)成功,就要檢查服務(wù)器和主機(jī)的IP地址是否相同。如果IP地址不同,請(qǐng)?jiān)赨-Boot終端上使用下列命令設(shè)置主機(jī)IP。

u-boot>print serverip // prints 192.168.25.45(server ip)

u-boot>print ipaddr // prints IP address

of the board as // 192.168.25.68

u-boot>set serverip // Host IP 192.168.25.68

u-boot>set serverip 192.168.25.68192.168.25.68

現(xiàn)在服務(wù)器(PC)和主機(jī)(KC705電路板)具有相同的IP地址。請(qǐng)通過服務(wù)器運(yùn)行網(wǎng)絡(luò)引導(dǎo)命令,下載PetaLinux映像和引導(dǎo)程序:

u-boot> run netboot

運(yùn)行網(wǎng)絡(luò)引導(dǎo)命令后,您應(yīng)該能夠看到PetaLinux控制臺(tái),如圖5所示。

最后您可使用GUI(PetaLinux SDK → BOOT QEMU [Linux])或以下命令執(zhí)行內(nèi)核引導(dǎo),這也很重要。

$ cd $ PETALINUX/software/ PetaLinux-dist $ PetaLinux-qemu-boot -i images/image.elf

使用這種快速方法,我們將看到圖7所示信息。

測試運(yùn)行在設(shè)計(jì)上的應(yīng)用

完成PetaLinux引導(dǎo)的測試后,接下來就是測試專為PetaLinux設(shè)計(jì)的用戶應(yīng)用。MicroBlaze處理器將Kintex-7 FPGA電路板上的硬件外設(shè)視為一組存儲(chǔ)寄存器。每個(gè)寄存器都有自己的基址和結(jié)束地址。要訪問一個(gè)外設(shè),用戶必須知道它的基

圖5:確認(rèn)操作系統(tǒng)引導(dǎo)成功的PetaLinux控制臺(tái)快照

圖6:通過通用引導(dǎo)載入程序(U-Boot)進(jìn)行的間接內(nèi)核引導(dǎo)

址和結(jié)束地址。您可以在設(shè)備樹源(*.dts)文件中找到有關(guān)地址的詳細(xì)信息。就本設(shè)計(jì)而言,我們開發(fā)并測試了四款應(yīng)用,分別是訪問DDR3、使用/dev/mem訪問GPIO、使用UIO訪問GPIO和文件傳輸。

1. 訪問DDR3

我們使用名為DDR3-test.c的PetaLinux應(yīng)用訪問DDR3存儲(chǔ)器。該應(yīng)用經(jīng)過精心設(shè)計(jì),可向DDR存儲(chǔ)器位置寫入數(shù)據(jù)并從這里讀取數(shù)據(jù)。DDR3是雙列直插式存儲(chǔ)器模塊,可提供用于存儲(chǔ)用戶代碼和數(shù)據(jù)的SDRAM。如上文所述,用戶需要知道DDR存儲(chǔ)器的開始地址和結(jié)束地址,分別是0xC0000000和0xC7FFFFFF。存儲(chǔ)器的容量為512兆字節(jié)。Linux內(nèi)核駐留在DDR存儲(chǔ)器的初始存儲(chǔ)器位置。因此需要選擇DDR3存儲(chǔ)器的寫入位置,以避免破壞Linux內(nèi)核。我們使用以下命令向DDR3存儲(chǔ)器寫入數(shù)據(jù):

#DDR3-test –g 0xc7000000 –o 15

其中DDR3-test是應(yīng)用名稱、-g是DDR3存儲(chǔ)器的物理地址、-o是輸出、15是準(zhǔn)備在0xc7000000位置寫入DDR3存儲(chǔ)器的值。為測試該值是否能寫入預(yù)計(jì)的位置,我們使用以下命令從DDR3存儲(chǔ)器讀取數(shù)據(jù):

#DDR3-test –g 0xc7000000 –i

圖7:通過QEMU運(yùn)行PetaLinux

該應(yīng)用旨在控制8位離散輸出,可通過將板載LED連接至GPIO進(jìn)行測試。

值15顯示在終端上,這說明DDR3存儲(chǔ)器讀寫操作正在成功進(jìn)行。

2. 使用/dev/mem訪問GPIO

對(duì)于接下來的應(yīng)用測試,我們使用名為gpio-dev-mem-test.c的PetaLinux應(yīng)用訪問了通用I/O(GPIO)。該應(yīng)用的設(shè)計(jì)目的是控制8位離散輸出并通過將板載LED連接至GPIO來測試該輸出。要從用戶空間訪問任何設(shè)備,就要先打開/dev/mem,然后使用mmap()將設(shè)備映射至存儲(chǔ)器。我們所使用LED GPIO的開始地址和結(jié)束地址分別是0x40000000 和0x4fffffff。

GPIO外設(shè)具有兩個(gè)寄存器:數(shù)據(jù)寄存器(GPIO_DATA)和方向寄存器(GPIO_TRI_OFFSET)。為了讀取GPIO的狀態(tài),我們將方向位設(shè)置為1(即GPIO_TRI_OFFSET=1)并且從數(shù)據(jù)寄存器讀取數(shù)據(jù)。為了將數(shù)據(jù)寫入到GPIO,我們?cè)O(shè)置方向位為0并寫入值到數(shù)據(jù)寄存器。在PetaLinux終端上使用下列命令將數(shù)據(jù)寫入到GPIO:

#gpio-dev-mem-test –g 0x40000000 –o 255

其中g(shù)pio-dev-mem-test為應(yīng)用名稱,-g為GPIO物理地址,-o為輸出,255為從GPIO(連接到LED)發(fā)送的值。LED按編寫的程序點(diǎn)亮?xí)r,測試的結(jié)果就得到了驗(yàn)證。

3. 使用UIO訪問GPIO

訪問GPIO的另一個(gè)途徑是通過用戶空間輸入/輸出。我們通過UIO,使用名為gpio-uio-test.c的PetaLinux應(yīng)用訪問了GPIO。該應(yīng)用旨在控制8位離散輸出,可通過將板載LED連接至GPIO進(jìn)行測試。UIO設(shè)備在文件系統(tǒng)中表現(xiàn)為/dev/uioX。為通過UIO訪問GPIO,我們打開了/dev/uioX或sys/class/ui0,然后使用了mmap()調(diào)用。我們配置了內(nèi)核使之支持UIO,并在內(nèi)核中啟用了UIO框架。隨后我們使用名為“Compatibility”的參數(shù),根據(jù)UIO設(shè)備(而非標(biāo)準(zhǔn)GPIO設(shè)備)對(duì)LED的GPIO控制方式進(jìn)行了設(shè)置。此外,我們還將

設(shè)備的標(biāo)簽從 gpio@40000000修改成了leds@40000000。

然后我們重新構(gòu)建了PetaLinux,并使用UIO測試了GPIO訪問。我們使用以下命令,獲得了所加載UIO模塊的詳細(xì)信息:

# ls /sys/class/uio/ uio0 uio1 uio2

UIO的名稱和地址可在/sys/class/uio/uioX下找到。我們使用以下命令通過UIO驅(qū)動(dòng)程序訪問了GPIO LED:

# cd “/sys/class/uio/uioX

# gpio-uio-test -d /dev/uio1 -o 255

其中g(shù)pio-uio-test為應(yīng)用名稱、-d為設(shè)備路徑、-o為輸出、255為通過UIO傳遞給GPIO的值。使用以上命令,LED按寫入到GPIO線路上的數(shù)據(jù)點(diǎn)亮,驗(yàn)證了該結(jié)果。

4. 文件傳輸應(yīng)用

最后一項(xiàng)測試,我們將文件從服務(wù)器傳輸?shù)搅丝蛻舳耍@里的服務(wù)器是主機(jī)PC,客戶端是KC705電路板。在這項(xiàng)測試中,我們使用以太網(wǎng)線纜連接服務(wù)器和客戶端,并使用了小型文件傳輸協(xié)議(TFTP)。這種協(xié)議因簡單而出名,通常用于自動(dòng)傳輸配置文件或引導(dǎo)文件。為測試使用TFTP從服務(wù)器向客戶端傳輸文件的情況,我們?cè)?tftpboot位置為服務(wù)器PC創(chuàng)建了一個(gè)名為test的文件。我們使用以下命令在文件中寫入了“世界,你好”并查看了該文件中的內(nèi)容(如圖8所示):

@ echo “Hello World” > /tftpboot/test

@ more /tftpboot/test

圖8:在服務(wù)器中創(chuàng)建文件的快照

圖9:在客戶端接收文件的快照

圖10:從客戶端到服務(wù)器傳輸文件的快照

圖11:在服務(wù)器中接收文件的快照

為從服務(wù)器接收該文件,我們?cè)谝钥蛻舳朔绞竭\(yùn)行在KC705電路板上的PetaLinux終端窗口中輸入以下獲取命令(-g):

# tftp -r test -g 192.168.25.68

# ls –a

在客戶端中創(chuàng)建了一個(gè)名為“test”的新文件(如圖9所示)。我們可以使用更多內(nèi)容命令查看該文件的內(nèi)容,如圖9所示:

同樣,如果要從客戶端向服務(wù)器傳輸文件,可先在客戶端機(jī)器上創(chuàng)建一個(gè)名為test1的文件,其內(nèi)容為“PetaLinux OS”。然后在運(yùn)行在客戶端上的PetaLinux終端中使用以下“放置”命令(-p),便可將該文件從客戶端傳輸至服務(wù)器,如圖10所示:

# tftp -r test1 -p 192.168.25.68

可在服務(wù)器中創(chuàng)建一個(gè)空白文件test1,其內(nèi)容可在文件傳輸工作完成后讀取。該內(nèi)容可圖11所示方法進(jìn)行驗(yàn)證。

在FPGA上實(shí)現(xiàn)嵌入式系統(tǒng)和運(yùn)行PetaLinux,操作起來非常簡單直觀。接下來,我們計(jì)劃使用遠(yuǎn)程編程實(shí)現(xiàn)設(shè)計(jì),即引導(dǎo)文件通過以太網(wǎng)傳輸,客戶端能夠運(yùn)行新應(yīng)用。

參考資料

1. Kynan Fraser,《運(yùn)行uClinux的MicroBlaze》,摘自《高級(jí)計(jì)算機(jī)體系架構(gòu)》:http://www.cse.unsw.edu.au/~cs4211

2. 賽靈思公司Xilkernel 3.0版,2006年12月

3. 賽靈思公司《PetaLinux SDK用戶指南》UG976,2013年4月

4. Gokhan Ugurel和Cuneyt F. Bazlamacci,《在MicroBlaze上Xilkernel和μC/OS-II上下文切換時(shí)間及內(nèi)存占用比較》,摘自2011年12月土耳其布爾薩的《第7屆電子電氣工程國際學(xué)術(shù)會(huì)議》第52頁至55頁。

5. Chenxin Zhang、Kleves Lamaj、Monthadar Al Jaberi和Praveen Mayakar,《極小型網(wǎng)絡(luò)附加存儲(chǔ)(NAS)》”,摘自隆德大學(xué)機(jī)械學(xué)院(Lunds Tekniska Hogskola)《項(xiàng)目報(bào)告,高級(jí)嵌入式系統(tǒng)課程》2008年11月

6. 賽靈思公司《Platform Studio用戶指南》UG113,1.0版,2004年3月

7. 賽靈思公司《EDK概念、工具和技巧:高效嵌入式系統(tǒng)設(shè)計(jì)實(shí)際操作指南》UG683,14.1版本,2002年4月

8. 賽靈思公司《PetaLinux應(yīng)用開發(fā)指南》UG981,2013年4月

9. 賽靈思公司《PetaLinux QEMU仿真指南》UG982,2013年11月

 

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉