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