基于Linux的SoPC開發
系統的構建包括,硬件平臺的搭建和Linux操作系統的移植。首先進行項目需求分析,決定實現系統需要的硬件IP核,繼而搭建硬件平臺。硬件平臺構建完成之后,利用EDK軟件生成相關的硬件參數文件和設備驅動文件。用戶需要利用生成的文件構建Linux內核,同時需要構建適用于內核的根文件系統,最后在構建完成的操作系統的基礎上開發所需功能的應用程序接口。其中根文件系統的構造要考慮內核中提供的服務和功能以及應用程序所需的系統命令等。同樣所要實現的應用功能又影響著內核服務和功能的選擇。根文件系統、應用程序接口以及內核三者是互相影響的。具體的構建流程圖如圖3所示。
2.1 利用EDK搭建硬件系統
利用EDK8.2軟件搭建硬件系統,因為基于Linux的操作系統設計中,CPU、RAM和總線是必須的。由于芯片內部的BRAM只有128kb/s, 而下載Linux內核的.elf文件通常遠大于這個容量,因此需要使用外部的存儲單元。本文使用opb_sdram存儲控制模塊實現此功能。本文使用Uart16550控制模塊,能方便地通過RS232端口觀察測試的結果。為滿足本文應用的需要,可以使用Uartlite模塊實現RS232的COM2端口和外部設備通信的功能。添加Ethernet_Mac的IP模塊,可使用以太網端口將開發板連接到網絡上。為了調試的方便,可以加入GPIO模塊。通過GPIO控制LED燈,可顯示系統狀態。若選擇應用程序初始化硬件,當bit數據下載到FPGA系統正常運行時,可以觀察到LED燈被點亮。另外,根據設計需求,也可以掛載用戶定制的IP,以處理用戶的特定的需求。
選擇參數時,可以使用默認值,而存儲器參數可以選擇容量大一些的。使用的PowerPC 405硬核,PPC的工作頻率設置為100MHz, 參考時鐘和系統的總線頻率也分別設置為100MHz;使用的BRAM模塊IBRAM和DBRAM速率分別設置為64Kb/s。最終定制的SoPC硬件系統如圖4所示。
2.2 SoPC的Linux系統構建
在SoPC的硬件系統構建完成之后,利用EDK軟件生成的板級支持包(BSP)配置編譯內核。BSP包含了所選定處理器架構的屬性文件以及相關硬件的驅動源文件。將這些文件加入到Linux內核中,然后配置內核選項選擇對應的處理器架構、所選硬件的驅動模塊以及需要的其他內核模塊,之后再對完成配置的內核進行編譯,生成Linux的內核image文件。
生成內核image文件之后,還需要生成系統運行所需要的根文件系統。根文件系統中包含了嵌入式Linux系統的所有應用程序、庫以及系統配置等相關文件。根文件系統中常用的程序和命令可利用開源軟件Busybox構造。構造完成之后,在Busybox生成的目錄和文件的基礎上再構造根文件系統的目錄樹,并添加相關設備文件和配置文件以及系統運行時需要的腳本文件,從而形成最終的根文件系統。至此,就可以將文件系統作為映像編譯到內核中,也可以通過網絡使用NFS文件系統加載根文件系統。
3 應用舉例
以一個多進程的嵌入式Web服務器用于實現控制遠程設備的的開發為例,闡述在基于Linux的SoPC系統上開發應用程序的過程。嵌入式Web服務器的開發包括HTTP協議裁減和具體的應用程序實現。用戶可以通過向Web服務器發送CGI請求的方式使服務器通過串口和外部設備通信,達到遠程控制的目的。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論