基于AT91RM9200的ARM Linux的移植方法
4. 內(nèi)核的下載和執(zhí)行
要想使目標(biāo)板的Linux系統(tǒng)脫離交叉開(kāi)發(fā)環(huán)境,直接在目標(biāo)機(jī)上本地啟動(dòng)運(yùn)行,必須通過(guò)U-boot將U-boot映像,內(nèi)核映像和RAMDISK 映像燒寫(xiě)到FLASH中,因?yàn)槭褂肬-boot引導(dǎo)程序需要使用U-boot格式的內(nèi)核映像和RAMDISK映像,可以通過(guò)以下命令來(lái)實(shí)現(xiàn):
($U-BOOT-PATH)/tools /mkimage -A arm -O linux -T kernel -C gzip –a 0x20008000 -e 0x20008000 –n “linux-2.4.19”-d linux.bin.gz uImage
($U-BOOT-PATH)/tools/mkimage-A arm -O linux -T ramdisk -C gzip –a 0x21100000 -e 0x21100000 –n “RAMDISK”-d ramdisk.bin ramdisk
通過(guò)U-boot將uImage和ramdisk燒寫(xiě)到flash相應(yīng)的分區(qū)中去,燒寫(xiě)到flash相應(yīng)分區(qū)的地址如圖7所示:燒寫(xiě)完畢后設(shè)置u- boot的環(huán)境變量,讓系統(tǒng)自動(dòng)啟動(dòng),系統(tǒng)復(fù)位后,Linux系統(tǒng)就可以完全自動(dòng)從本地flash啟動(dòng)了,啟動(dòng)后,進(jìn)行地址映射,u-boot會(huì)把u- boot壓縮映像,kernel壓縮映像,ramdisk壓縮映像全部拷貝到SDRAM的相應(yīng)地址,SDRAM的映射地址如圖8所示,這時(shí)Linux系統(tǒng)完全在SDRAM中運(yùn)行了,Linux系統(tǒng)真正啟動(dòng)起來(lái)了。
5. 總結(jié)
本文根據(jù)一個(gè)特定的目標(biāo)平臺(tái),結(jié)合AT91RM9200的開(kāi)發(fā)經(jīng)驗(yàn),詳細(xì)介紹了將Linux移植到ARM構(gòu)建的嵌入式系統(tǒng)上的主要技術(shù)和整個(gè)流程,實(shí)現(xiàn)了Linux 向目標(biāo)系統(tǒng)AT91RM9200的移植,移植后的操作系統(tǒng)在目標(biāo)板上運(yùn)行穩(wěn)定,并且可以根據(jù)實(shí)際需要編寫(xiě)相應(yīng)的控制程序,將其應(yīng)用于實(shí)際工業(yè)控制中。掌握這些技術(shù),對(duì)于開(kāi)發(fā)嵌入式系統(tǒng)十分重要,對(duì)開(kāi)發(fā)其他類(lèi)型的嵌入式系統(tǒng)同樣具有參考意義。
本論文作者創(chuàng)新點(diǎn):從軟件與硬件的相互關(guān)系, 硬件對(duì)軟件的制約、硬件對(duì)軟件的支持這個(gè)角度對(duì)裁減和移植進(jìn)行了分析,同時(shí)在Bootloader(啟動(dòng)代碼)的移植,Kernel(內(nèi)核)的裁減和移植過(guò)程中,把代碼分成了兩部分,一部分是和硬件相關(guān)的部分,一部分是和硬件無(wú)關(guān)的部分,這樣做不僅思路清晰,而且可以大大減少工作量。
參考文獻(xiàn):
[1] 許先斌, 熊慧君, 李淵, 楊芬. 基于ARM9 的嵌入式Linux開(kāi)發(fā)流程的研究[J]微計(jì)算機(jī)信息. 2006,11:87-90
[2] 劉振綱,劉成安,盧劍翔. 移植標(biāo)準(zhǔn)Linux 到S3C2410[J] 微計(jì)算機(jī)信息.2006,32:152-154
[3] 羅致,王仲東. ARM Linux在AT91RM9200平臺(tái)上的移植.軟件技術(shù),2006年第25卷第1期
[4] 李明,ARM Linux的移植過(guò)程及分析[J ].電子設(shè)計(jì)應(yīng)用, 2003,7
[5] 劉崢嶸等編著,嵌入式Linux應(yīng)用開(kāi)發(fā)詳解[M].北京:機(jī)械工業(yè)出版社,2004. 7
評(píng)論