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