新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Linux的SoPC開(kāi)發(fā)

基于Linux的SoPC開(kāi)發(fā)

作者: 時(shí)間:2011-05-28 來(lái)源:網(wǎng)絡(luò) 收藏

2 系統(tǒng)構(gòu)建

系統(tǒng)的構(gòu)建包括,硬件平臺(tái)的搭建和操作系統(tǒng)的移植。首先進(jìn)行項(xiàng)目需求分析,決定實(shí)現(xiàn)系統(tǒng)需要的硬件IP核,繼而搭建硬件平臺(tái)。硬件平臺(tái)構(gòu)建完成之后,利用EDK軟件生成相關(guān)的硬件參數(shù)文件和設(shè)備驅(qū)動(dòng)文件。用戶需要利用生成的文件構(gòu)建內(nèi)核,同時(shí)需要構(gòu)建適用于內(nèi)核的根文件系統(tǒng),最后在構(gòu)建完成的操作系統(tǒng)的基礎(chǔ)上所需功能的應(yīng)用程序接口。其中根文件系統(tǒng)的構(gòu)造要考慮內(nèi)核中提供的服務(wù)和功能以及應(yīng)用程序所需的系統(tǒng)命令等。同樣所要實(shí)現(xiàn)的應(yīng)用功能又影響著內(nèi)核服務(wù)和功能的選擇。根文件系統(tǒng)、應(yīng)用程序接口以及內(nèi)核三者是互相影響的。具體的構(gòu)建流程圖如圖3所示。

2.1 利用EDK搭建硬件系統(tǒng)

利用EDK8.2軟件搭建硬件系統(tǒng),因?yàn)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/基于">基于Linux的操作系統(tǒng)設(shè)計(jì)中,CPU、RAM和總線是必須的。由于芯片內(nèi)部的BRAM只有128kb/s, 而下載Linux內(nèi)核的.elf文件通常遠(yuǎn)大于這個(gè)容量,因此需要使用外部的存儲(chǔ)單元。本文使用opb_sdram存儲(chǔ)控制模塊實(shí)現(xiàn)此功能。本文使用Uart16550控制模塊,能方便地通過(guò)RS232端口觀察測(cè)試的結(jié)果。為滿足本文應(yīng)用的需要,可以使用Uartlite模塊實(shí)現(xiàn)RS232的COM2端口和外部設(shè)備通信的功能。添加Ethernet_Mac的IP模塊,可使用以太網(wǎng)端口將板連接到網(wǎng)絡(luò)上。為了調(diào)試的方便,可以加入GPIO模塊。通過(guò)GPIO控制LED燈,可顯示系統(tǒng)狀態(tài)。若選擇應(yīng)用程序初始化硬件,當(dāng)bit數(shù)據(jù)下載到FPGA系統(tǒng)正常運(yùn)行時(shí),可以觀察到LED燈被點(diǎn)亮。另外,根據(jù)設(shè)計(jì)需求,也可以掛載用戶定制的IP,以處理用戶的特定的需求。

選擇參數(shù)時(shí),可以使用默認(rèn)值,而存儲(chǔ)器參數(shù)可以選擇容量大一些的。使用的PowerPC 405硬核,PPC的工作頻率設(shè)置為100MHz, 參考時(shí)鐘和系統(tǒng)的總線頻率也分別設(shè)置為100MHz;使用的BRAM模塊IBRAM和DBRAM速率分別設(shè)置為64Kb/s。最終定制的硬件系統(tǒng)如圖4所示。

2.2 的Linux系統(tǒng)構(gòu)建

在SoPC的硬件系統(tǒng)構(gòu)建完成之后,利用EDK軟件生成的板級(jí)支持包(BSP)配置編譯內(nèi)核。BSP包含了所選定處理器架構(gòu)的屬性文件以及相關(guān)硬件的驅(qū)動(dòng)源文件。將這些文件加入到Linux內(nèi)核中,然后配置內(nèi)核選項(xiàng)選擇對(duì)應(yīng)的處理器架構(gòu)、所選硬件的驅(qū)動(dòng)模塊以及需要的其他內(nèi)核模塊,之后再對(duì)完成配置的內(nèi)核進(jìn)行編譯,生成Linux的內(nèi)核image文件。

生成內(nèi)核image文件之后,還需要生成系統(tǒng)運(yùn)行所需要的根文件系統(tǒng)。根文件系統(tǒng)中包含了嵌入式Linux系統(tǒng)的所有應(yīng)用程序、庫(kù)以及系統(tǒng)配置等相關(guān)文件。根文件系統(tǒng)中常用的程序和命令可利用開(kāi)源軟件Busybox構(gòu)造。構(gòu)造完成之后,在Busybox生成的目錄和文件的基礎(chǔ)上再構(gòu)造根文件系統(tǒng)的目錄樹,并添加相關(guān)設(shè)備文件和配置文件以及系統(tǒng)運(yùn)行時(shí)需要的腳本文件,從而形成最終的根文件系統(tǒng)。至此,就可以將文件系統(tǒng)作為映像編譯到內(nèi)核中,也可以通過(guò)網(wǎng)絡(luò)使用NFS文件系統(tǒng)加載根文件系統(tǒng)。

3 應(yīng)用舉例

以一個(gè)多進(jìn)程的嵌入式Web服務(wù)器用于實(shí)現(xiàn)控制遠(yuǎn)程設(shè)備的的為例,闡述在Linux的SoPC系統(tǒng)上開(kāi)發(fā)應(yīng)用程序的過(guò)程。嵌入式Web服務(wù)器的開(kāi)發(fā)包括HTTP協(xié)議裁減和具體的應(yīng)用程序?qū)崿F(xiàn)。用戶可以通過(guò)向Web服務(wù)器發(fā)送CGI請(qǐng)求的方式使服務(wù)器通過(guò)串口和外部設(shè)備通信,達(dá)到遠(yuǎn)程控制的目的。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


關(guān)鍵詞: 開(kāi)發(fā) SoPC Linux 基于

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉