移植標準Linux到S3C2410
3 完整系統的構成
要想讓linux真正跑起來(lái),還需要根文件系統的支持,常用的方法是Ramdisk。Ramdisk 是通過(guò)將計算機的內存(RAM)模擬作設備來(lái)創(chuàng )建和掛裝文件系統的一種驅動(dòng)器機制。一般應包括以下目錄內容: /dev(設備文件目錄); /proc (proc 文件系統目錄);/etc(系統配置文件的目錄); /sbin(系統程序的目錄);/bin(基本應用程序目錄);/lib(共享函數庫的目錄);/mnt (裝載其他磁盤(pán)節點(diǎn)的目錄);/usr(附加應用程序的目錄)[3]。
除此之外一個(gè)完整的嵌入式系統還要有引導代碼,如vivi,u_boot等。Bootloader也需要移植與編譯,在此并不詳述。以上三塊內容都準備好,對FLASH做好區間的劃分[1]以后,便可以用 FLASH 燒寫(xiě)工具依次將Bootloader,內核以及根文件系統燒寫(xiě)到 FLASH里。然后就可以啟動(dòng)系統了。
系統從0 地址處開(kāi)始執行Bootloader。Bootloader做完相關(guān)硬件初始化工作之后從 FLASH里把壓縮的內核映象復制到SDRAM內并且把根文件系統所在地址參數傳遞給內核[1]。內核復制到SDRAM之后進(jìn)行內核解壓?jiǎn)?dòng)。內核啟動(dòng)過(guò)程中根據 Bootloader傳遞過(guò)來(lái)的地址參數去尋找根文件系統 , 將其加載到嵌入式系統上。這樣,整個(gè)Linux被引導啟動(dòng)起來(lái) , 進(jìn)入正常工作狀態(tài)。
4 結束語(yǔ)
本文作者創(chuàng )新點(diǎn):現在采用較為普遍的2.4版本的Linux并沒(méi)有包含進(jìn)對S3C2410的支持,給基于此的嵌入式系統的開(kāi)發(fā)帶來(lái)不便。本文在了解了移植過(guò)程中普遍存在的問(wèn)題和作者經(jīng)驗教訓積累的基礎上,詳盡分析了如何將Linux2.4移植到ARM平臺的嵌入式系統上的主要技術(shù),使得該系統可以很好的支持目標平臺,并且移植后的Linux 很好的保留了原有的工作穩定的特點(diǎn)。在移植過(guò)程中強調其原理與可操作性,對加深對于Linux內核的理解和開(kāi)發(fā)嵌入式系統是十分重要的,對于開(kāi)發(fā)其他嵌入式系統具有參考意義。
參考文獻 ( References)
[1]劉晶晶,基于A(yíng)RM-Linux嵌入式系統引導程序的設計[J],微計算機信息,2006,2-2:123-125
[2]李明,ARM Linux 的移植過(guò)程及分析,電子設計應用[J],2003,7:55-57
[3]徐虹等,操作系統實(shí)驗指導[M],北京:清華大學(xué)出版社,2002,5
[4]張杰,曹衛華,吳敏,施衛強,基于S3C2410的Linux移植[J],微機發(fā)展, 2005(15),6:142-144
[5]孫天澤,袁文菊,張海峰,嵌入式設計及Linux驅動(dòng)開(kāi)發(fā)指南[M],北京:電子工業(yè)出版社,2005,9
[6]Wookey and Tak-Shing,Porting the Linux Kernel to a New ARM Platform,SOLUTIONS JOURNAL,2002,4:52-57
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論