當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]MicroBlaze處理器的PetaLinux操作系統(tǒng)移植

引言
    隨著FPGA(Field Prograromable Gate Array,現(xiàn)場(chǎng)可編程門(mén)陣列)技術(shù)的迅速發(fā)展,SOPC(Systam On a Prograromable Chip,可編程片上系統(tǒng))作為一種特殊的嵌入式微處理器系統(tǒng),已逐漸成為一個(gè)新興的技術(shù)方向。SOPC融合了SoC和FPGA各自的優(yōu)點(diǎn),并具備軟硬件在系統(tǒng)可編程、可裁減、可擴(kuò)充、可升級(jí)的功能。其核心是在FPGA上實(shí)現(xiàn)的嵌入式微處理器核,而如何針對(duì)特定的微處理器選擇合適的嵌入式操作系統(tǒng)是SOPC開(kāi)發(fā)的難點(diǎn)之一。本文針對(duì)Xilinx公司的MicroBlaze軟核,介紹了PetaLinux嵌入式操作系統(tǒng)及其移植方法,研究了PetaLinux的相關(guān)配置和啟動(dòng)方案。

1 基于MicroBlaze處理器的系統(tǒng)設(shè)計(jì)
1.1 MicroBlaze處理器簡(jiǎn)介
    MicroBlaze軟核處理器是一種針對(duì)Xilinx FPGA器件而優(yōu)化的功能強(qiáng)大的微處理器。它內(nèi)部采用RISC架構(gòu)的32位指令和數(shù)據(jù)總線(xiàn),支持CoreConnect片上總線(xiàn)的標(biāo)準(zhǔn)外設(shè)計(jì)集合,具有兼容性和重復(fù)利用性,且可根據(jù)性能需求和邏輯區(qū)域成本任意裁減,極大地?cái)U(kuò)展了應(yīng)用范圍,其最精簡(jiǎn)的核只需要將近400個(gè)Slice。
    MicroBlaze的CoreConnect總線(xiàn)、它能夠?qū)PGA內(nèi)各種不同的IP核連接到一起構(gòu)成一個(gè)完整的系統(tǒng)。CoreConnect總線(xiàn)是一個(gè)總線(xiàn)標(biāo)準(zhǔn)的集合,它包括PLB總線(xiàn)(Processor Local Bus,處理器本地總線(xiàn)),LMB總線(xiàn)(Local Memory Bus,高速本地存儲(chǔ)器總線(xiàn)),F(xiàn)SL(Fast Simplex Link,快速單連接)總線(xiàn),以及XCL(Xilinx CacheLink)總線(xiàn)等。
1.2 系統(tǒng)結(jié)構(gòu)和外部設(shè)備概述
    本系統(tǒng)主要是在Virtex-4開(kāi)發(fā)板上構(gòu)建一個(gè)以MicroBlaze處理器為中心的嵌入式信號(hào)處理系統(tǒng),在FPGA內(nèi)部實(shí)現(xiàn)系統(tǒng)的總線(xiàn)架構(gòu)、數(shù)據(jù)存儲(chǔ)、地址譯碼、外設(shè)接口等系統(tǒng)部件和功能。各功能部件在FPGA內(nèi)部都以IP核的形式構(gòu)建并連接,整個(gè)系統(tǒng)的結(jié)構(gòu)框圖如圖1所示。


    其中,SysACE用于存放文件系統(tǒng)和應(yīng)用程序配置文件,INTC用來(lái)實(shí)現(xiàn)中斷控制;GPIO和UART 16550用于系統(tǒng)調(diào)試,自定義IP核DDC用來(lái)實(shí)現(xiàn)數(shù)字接收機(jī)下變頻功能,這些外設(shè)通過(guò)PLB總線(xiàn)與MicroBlaze處理器和DDR相連;用于快速傅里葉變換的自定義IP核FFT通過(guò)FSL總線(xiàn)與Micr-oBlaze內(nèi)部通用寄存器直接相連,實(shí)現(xiàn)了數(shù)據(jù)的快速傳輸;DDR通過(guò)XCL總線(xiàn)與MicroBlaze處理器相連,實(shí)現(xiàn)了MicroBlaze處理器對(duì)片外存儲(chǔ)器的高速訪問(wèn)。
1.3 嵌入式操作系統(tǒng)的選擇
    選用PetaLinux嵌入式操作系統(tǒng)。它是PetaLogix公司專(zhuān)門(mén)針對(duì)FPGA的片上系統(tǒng)設(shè)計(jì)的嵌入式Linux開(kāi)發(fā)套件,在滿(mǎn)足應(yīng)用工程的邏輯編程能力和對(duì)嵌入式Linux要求的同時(shí),可極大地縮短產(chǎn)品開(kāi)發(fā)周期。PetaLinux作為專(zhuān)門(mén)針對(duì)于Xilinx FPGA的嵌入式Linux解決方案,不但提供了專(zhuān)門(mén)的BSP生成器,而且提供了眾多的參考設(shè)計(jì),可以幫助設(shè)計(jì)者快速掌握PetaLinux的配置方法。PelaLinux內(nèi)核正在不斷的完善之中,且不斷地加入基于Xilinx FPGA嵌入式系統(tǒng)IP核的設(shè)備驅(qū)動(dòng),比如XilinxUSB、SysACE、FSL總線(xiàn)設(shè)備驅(qū)動(dòng)、10/100/1000M三態(tài)以太網(wǎng)MAC等。這些設(shè)備驅(qū)動(dòng)極大地減輕了嵌入式系統(tǒng)開(kāi)發(fā)者的工作量,縮短了產(chǎn)品開(kāi)發(fā)的周期。

2 PetaLinux系統(tǒng)移植
    在SOPC硬件系統(tǒng)構(gòu)建完成后,就要針對(duì)此結(jié)構(gòu)配置操作系統(tǒng)內(nèi)核,下面介紹具體步驟。
2.1 建立交叉編譯環(huán)境
    嵌入式系統(tǒng)開(kāi)發(fā)一般采用交叉編譯的方法,即在宿主機(jī)上對(duì)內(nèi)核和應(yīng)用程序進(jìn)行編譯,生成目標(biāo)機(jī)處理器可執(zhí)行的二進(jìn)制位流文件,將此文件下載到目標(biāo)機(jī)運(yùn)行。PetaLinux針對(duì)MicroBlaze處理器建立了交叉編譯器,運(yùn)行source./settings.sh腳本,系統(tǒng)會(huì)自動(dòng)建立交叉環(huán)境。[!--empirenews.page--]
2.2 建立硬件平臺(tái)
    PetaLinux為每個(gè)應(yīng)用工程建立一個(gè)文件夾,里面保存該工程的硬件配置。在移植PetaLinux時(shí),只需選擇相應(yīng)的硬件平臺(tái),內(nèi)核就會(huì)讀取該工程文件夾下的配置文件。使用PetaLinux-new-platform命令建立硬件平臺(tái),如果使用MMU(虛擬內(nèi)存管理單元),則在此命令后添加-m選項(xiàng)。硬件平臺(tái)建立起來(lái)后,運(yùn)行make menuconfig命令,在Vendor/Product Seletion選項(xiàng)中,選擇該硬件平臺(tái)。
    另外,還需將在EDK下生成的配置文件轉(zhuǎn)換成Linux操作系統(tǒng)可以識(shí)別的格式。在工程文件夾下運(yùn)行PetaLinux-copy-autoconfig命令,自動(dòng)完成格式轉(zhuǎn)換,并拷貝配置文件到已選擇的工程文件夾下。
2.3 添加自定義設(shè)備驅(qū)動(dòng)
    本系統(tǒng)自定義了IP核,因此必須開(kāi)發(fā)驅(qū)動(dòng)程序并將其添加到PetaLinux配置中。添加自定義設(shè)備驅(qū)動(dòng)主要步驟如下:
    ①在平臺(tái)配置目錄下Makefile文件中添加語(yǔ)句platobj-$(CONFIG_PETALOGIX_DDC)+=ddc.o和$(obj)/ddc.o:.config使設(shè)備初始化函數(shù)ddc.C與內(nèi)核配置相關(guān)聯(lián);
    ②在驅(qū)動(dòng)程序所在目錄下的Makefile文件中添加obj-$(CONFIG_PETALOGIX_DDC)+=ddc_adapter.o使設(shè)備驅(qū)動(dòng)程序ddc_adapter.c與內(nèi)核配置相關(guān)聯(lián);
    ③修改設(shè)備驅(qū)動(dòng)程序所在目錄下的Kconfig文件,使配置內(nèi)核時(shí)可以選擇該設(shè)備驅(qū)動(dòng),并添加以下語(yǔ)句:

    通過(guò)以上文件的修改,就可以在配置PetaLinux內(nèi)核時(shí)選擇自定義的設(shè)備驅(qū)動(dòng)。
2.4 配置PetaLinux內(nèi)核
    由于Linux內(nèi)核的可裁減性,能夠方便地對(duì)內(nèi)核進(jìn)行修改、裁減、編譯,最終移植到一個(gè)嵌入式系統(tǒng)中。運(yùn)行圖形編輯工具make menuc-onfig命令,對(duì)內(nèi)核和系統(tǒng)環(huán)境進(jìn)行配置。
    在內(nèi)核配置的設(shè)備驅(qū)動(dòng)選項(xiàng)中,一定要選擇與系統(tǒng)硬件配置一致的硬件設(shè)備驅(qū)動(dòng),否則內(nèi)核編譯時(shí)就會(huì)出錯(cuò)。針對(duì)本系統(tǒng)的硬件配置,主要配置以下幾項(xiàng)驅(qū)動(dòng):
    ①[Block devices]塊設(shè)備。選擇Xilinx SystemACEsupport。
    ②[Misc device]混雜設(shè)備。選擇FSL FIFO driver,然后進(jìn)入FSL Channel Selection,選擇FIFO on FSLO,并選擇自添加設(shè)備驅(qū)動(dòng)Pet-aLogix DDC101 Driver。
    ③[Network device support]網(wǎng)絡(luò)設(shè)備。選擇Ethernet(1000Mbit)子菜單中的Xilinx 10/100/1000 LLTEMAC support。
    ④[Character devices]字符設(shè)備。選擇Serial drivers子菜單中的8250/16550 and compatible serial support和Console on 8250/16550 and compatible serial port。
    文件系統(tǒng)選項(xiàng)中,默認(rèn)選擇了ext2、romfs和cramfs文件系統(tǒng),其他文件系統(tǒng)可以根據(jù)需要自行選擇。本系統(tǒng)需要掛載DOS文件系統(tǒng)的CF卡,因此進(jìn)行以下配置:
    ①[DOS/FAT/NT Filesystems]。選擇MSDOS fssupport。
    ②[Native Language Support]。選擇Codepage 437(United States,Canada)。
    內(nèi)核配置中的其他配置可以根據(jù)目標(biāo)系統(tǒng)的不同靈活配置,配置完成后保存退出,自動(dòng)進(jìn)入系統(tǒng)環(huán)境配置菜單。系統(tǒng)環(huán)境配置是對(duì)Peta-Linux的屬性、命令進(jìn)行配置,主要有以下幾個(gè)選項(xiàng):
    ①[System Settings]系統(tǒng)設(shè)置。配置系統(tǒng)的網(wǎng)絡(luò)地址、默認(rèn)用戶(hù)名、默認(rèn)登陸密碼和所用根文件系統(tǒng)等內(nèi)容。
    ②Core Applications]內(nèi)核應(yīng)用。主要配置內(nèi)核的常用特性。
    ③[Network Applications]網(wǎng)絡(luò)應(yīng)用。配置網(wǎng)絡(luò)應(yīng)用時(shí)的相關(guān)命令。
    ④[Miscellaneous Applications]混雜應(yīng)用。配置系統(tǒng)內(nèi)核中的命令。
    ⑤[BusyBox]。配置系統(tǒng)內(nèi)核中的命令。
    PetaLinux已經(jīng)設(shè)置好了編譯規(guī)則,因此配置完成后,依次執(zhí)行命令make dep、make clean、make all,建立文件依賴(lài)關(guān)系,清除舊的文件,編譯內(nèi)核,生成內(nèi)核image。

3 PetaLinux啟動(dòng)方案
    經(jīng)過(guò)編譯的PetaLinux內(nèi)核image文件主要有image.bin、image.elf、image.ub。根據(jù)選擇image文件的不同,PetaLinux有4種啟動(dòng)方案:XMD下載啟動(dòng)、TFTP網(wǎng)絡(luò)下載啟動(dòng)、Flash啟動(dòng)和SysACE CF卡啟動(dòng)。其中,XMD和TFTP網(wǎng)絡(luò)下載啟動(dòng)方案,在每次系統(tǒng)上電后都必須重新下載,適用于系統(tǒng)調(diào)試;Flash啟動(dòng)方案在系統(tǒng)上電后自動(dòng)從Flash中讀取配置文件,但Flash燒寫(xiě)速度較慢,更改系統(tǒng)配置較為不便。因此,本系統(tǒng)選用SysACECF卡啟動(dòng)方案。
    使用SysACE CF卡啟動(dòng)PetaLinux,先將硬件比特流文件和image.elf制作成ACE文件,再?gòu)?fù)制到CF卡中,配置CF卡啟動(dòng)PetaLinux。制作ACE文件,可在EDKShell窗口運(yùn)行命令:
    xmd-tcl genace.tcl(命令工具)
    -jprog-board m1402(所需的開(kāi)發(fā)板)
    -hw implementation/download.bit(生成的比特流文件)
    -elf image.elf(編譯Linux內(nèi)核生成的可執(zhí)行網(wǎng)表文件)
    -ace system.a(chǎn)ce(需生成的ACE文件)
    成功后,適合于ML-402開(kāi)發(fā)板的ACE文件就生成了。
    Linux運(yùn)行需要根文件系統(tǒng)的支持,啟動(dòng)時(shí)必須加載文件系統(tǒng)以支持系統(tǒng)的運(yùn)行,而image.elf中不包含文件系統(tǒng)。因此,使用SysACE CF卡啟動(dòng)時(shí)必須手動(dòng)加載文件系統(tǒng)。在編譯PetaLinux內(nèi)核時(shí),已經(jīng)生成了以romfs文件夾為名稱(chēng)的文件系統(tǒng),所以只需將CF卡分區(qū)和格式化,然后掛載此文件系統(tǒng)。具體步驟如下:
    ①將CF卡掛載到Linux系統(tǒng)中,運(yùn)行命令fdisk/dev/sda把CF卡分成3個(gè)區(qū)。第1分區(qū)存放system.a(chǎn)ce文件,第2分區(qū)為L(zhǎng)inux Swap交換分區(qū),第3分區(qū)存放根文件系統(tǒng)。
    ②Linux下格式化第3分區(qū)為ext2文件系統(tǒng),運(yùn)行命令mke2fs/dev/sda3。在/ete/fstab下輸入命令/dev/sda3/mnt/rootfs auto defaults,user,noauto 0 0。把設(shè)備sda3掛在/mnt/rootfs文件下,文件系統(tǒng)為默認(rèn)的ext2,普通用戶(hù),能掛載,不轉(zhuǎn)儲(chǔ),啟動(dòng)時(shí)不掃描文件系統(tǒng)。通過(guò)命令mount/mnt/rootfs掛載該目錄,這樣就可以把根文件系統(tǒng)rootfs拷貝到CF卡的該分區(qū)上。
    ③Windows下格式化第1分區(qū)為FAT32文件系統(tǒng),把system.a(chǎn)ce復(fù)制到這個(gè)分區(qū)。
    ④Linux下格式化第2分區(qū)為交換分區(qū),運(yùn)行命令mkswap/dev/sda2。
    一切準(zhǔn)備就緒后,插入CF卡,開(kāi)啟電源,就可以從CF卡啟動(dòng)PetaLinux。

結(jié)語(yǔ)
    本文介紹了一種可用于MicroBlaze處理器的嵌入式Linux操作系統(tǒng)——PetaLinux,并詳細(xì)討論了其內(nèi)核配置和啟動(dòng)方案。通過(guò)移植Peta-Linux,本文開(kāi)發(fā)的SOPC可以直接用于實(shí)際工程。該嵌入式操作系統(tǒng)移植快速、簡(jiǎn)單,由于其基于Linux2.6內(nèi)核,可以保證較高的穩(wěn)定性。因此,在SOPC應(yīng)用日益復(fù)雜的背景下具有較高的實(shí)用價(jià)值。
    本文創(chuàng)新點(diǎn):實(shí)現(xiàn)了PetaLinux在MicroBlaze處理器移植,并成功實(shí)現(xiàn)PetaLinux中自定義硬件設(shè)備驅(qū)動(dòng)的添加和SysACE CF卡的啟動(dòng)方案。

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

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

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

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

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

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(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ì)日本游戲市場(chǎng)的投資。

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

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

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

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

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

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

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

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

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

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

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