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ù)總線,支持CoreConnect片上總線的標(biāo)準(zhǔn)外設(shè)計(jì)集合,具有兼容性和重復(fù)利用性,且可根據(jù)性能需求和邏輯區(qū)域成本任意裁減,極大地?cái)U(kuò)展了應(yīng)用范圍,其最精簡(jiǎn)的核只需要將近400個(gè)Slice。
MicroBlaze的CoreConnect總線、它能夠?qū)PGA內(nèi)各種不同的IP核連接到一起構(gòu)成一個(gè)完整的系統(tǒng)。CoreConnect總線是一個(gè)總線標(biāo)準(zhǔn)的集合,它包括PLB總線(Processor Local Bus,處理器本地總線),LMB總線(Local Memory Bus,高速本地存儲(chǔ)器總線),F(xiàn)SL(Fast Simplex Link,快速單連接)總線,以及XCL(Xilinx CacheLink)總線等。
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)的總線架構(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總線與MicroBlaze處理器和DDR相連;用于快速傅里葉變換的自定義IP核FFT通過(guò)FSL總線與Micr-oBlaze內(nèi)部通用寄存器直接相連,實(shí)現(xiàn)了數(shù)據(jù)的快速傳輸;DDR通過(guò)XCL總線與MicroBlaze處理器相連,實(shí)現(xiàn)了MicroBlaze處理器對(duì)片外存儲(chǔ)器的高速訪問(wèn)。
1.3 嵌入式操作系統(tǒng)的選擇
選用PetaLinux嵌入式操作系統(tǒng)。它是PetaLogix公司專門(mén)針對(duì)FPGA的片上系統(tǒng)設(shè)計(jì)的嵌入式Linux開(kāi)發(fā)套件,在滿足應(yīng)用工程的邏輯編程能力和對(duì)嵌入式Linux要求的同時(shí),可極大地縮短產(chǎn)品開(kāi)發(fā)周期。PetaLinux作為專門(mén)針對(duì)于Xilinx FPGA的嵌入式Linux解決方案,不但提供了專門(mén)的BSP生成器,而且提供了眾多的參考設(shè)計(jì),可以幫助設(shè)計(jì)者快速掌握PetaLinux的配置方法。PelaLinux內(nèi)核正在不斷的完善之中,且不斷地加入基于Xilinx FPGA嵌入式系統(tǒng)IP核的設(shè)備驅(qū)動(dòng),比如XilinxUSB、SysACE、FSL總線設(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)境。
評(píng)論