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