嵌入式Linux在IOP331上的移植實現
在本嵌入式系統中我們選擇的是RedBoot,它是Red Hat的一個標準嵌入式操作系統引導和Debug環境。RedBoot在這里完成了BIOS和BootLoader的任務,所以使用exec命令啟動操作系統時,控制權在操作系統手中。此時,操作系統進行了如下操作:使用0x00000100的boot標記à解壓縮內核à顯示版本信息à顯示系統基本信息(CPU、內存等)à使用內核參數準備啟動Ramdisk文件系統à初始化并注冊系統設備à解壓縮在block 0的Ramdisk根文件系統映像à解壓并加載Ramdisk根文件系統à根據根文件系統中的初始化腳本文件運行。
使用RedBoot的exec命令啟動操作系統,則串口能夠打印系統啟動畫面,由此可以驗證移植成功。
在系統啟動的時候使用initrd來實現由bootloader(RedBoot)掛載Ramdisk盤,該盤作為根文件系統被掛載,并且供其它程序在它上面運行。
至此,整個操作系統移植過程結束,其流程如圖2所示。
3.移植驗證
IQ80331是Intel公司針對IOP331設計的評估板。板上資源除8M Flash、256M內存、JTAG外,還有網口和串口與主機通信。通過網口和TFTP協議可以從主機下載文件到評估板,通過串口可以在Linux主機上的minicom中向評估板發送和接收評估板消息。
我們將嵌入式Linux操作系統移植至評估板,并在上述基礎上搭建虛擬磁帶庫(VTL)。在IQ80331上連接一塊雙通道SCSI控制器 LSI53C1030T,1030T的一個通道連接SCSI磁盤,另一個連接到主機主板上的單通道SCSI控制器LSI53C1020T上。這樣,在主機看來,IQ80331、1030T和SCSI磁盤就組成了一個設備,讀寫該設備跟直接讀寫一個磁帶沒有區別。這就實現了一個虛擬磁帶庫。加載相關的 SCSI設備驅動模塊后系統可以正常運行。
在主機端使用tar命令將38.0M的linux-2.6.15.4.tar.bz2文件寫入SCSI磁盤,耗時18.1s,平均速度2.1M/s,能夠正常穩定工作。占用系統時間約0.1s,充分體現了I/O處理器對系統輸入輸出處理的重要作用。
4.結論
經驗證,移植后的系統穩定可靠,以此為基礎搭建的VTL系統能夠正常穩定工作,滿足設計要求。同時,本文對于同類XScale架構的處理器上的操作系統移植具有普遍意義。
本文作者創新點:首次在虛擬磁帶庫設計中,將標準Linux操作系統移植到Intel 80331 I/O處理器,并對其過程進行了詳細地闡述。
參考文獻:
[1] 毛德操,胡希明。嵌入式系統——采用公開源代碼和StrongARM/XScale處理器[M].。浙江大學出版社,2003
[2] 馬忠梅,李善平,康慨等。ARM Linux嵌入式系統教程.。北京航空航天大學出版社,2004
[3] 林濤,孫鶴旭,云立軍等。Linux在嵌入式系統中地實現。微計算機信息,2004
[4] 陳金明,潘國良,白英彩。基于Intel IOP處理器的存儲網絡技術的研究與實現。計算機應用與軟件,2006
評論