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