《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM9的嵌入式Linux代碼移植
基于ARM9的嵌入式Linux代碼移植
電子元器件應用
徐 源,黃大勇 南陽理工學院
摘要: 介紹了嵌入式Linux移植的方法和過程,給出了嵌入式開發環境下基于硬件平臺ARM9的bootloader、Linux內核移植的實現方案,該方案可為嵌入式系統的應用研究提供操作系統層面的支持。
Abstract:
Key words :

摘要:介紹了嵌入式Linux移植的方法和過程,給出了嵌入式開發環境下基于硬件平臺ARM9的bootloader、Linux內核移植的實現方案,該方案可為嵌入式系統的應用研究提供操作系統層面的支持。
關鍵詞:嵌入式系統;ARM;vivi;Linux移植

O 引言
    隨著計算機技術、通信技術以及Internet的飛速發展。嵌入式系統已得到越來越廣泛的應用。與此同時,嵌入式系統的復雜性也在不斷增加,嵌入式操作系統已經成為其中最重要的組成部分。目前,市場上存在著眾多的嵌入式操作系統,而在這些系統之中,兼有Linux和嵌入式優點的嵌入式Linux操作系統,憑借其在結構清晰、源代碼開放性、裁剪性好,開發與使用均易實現等方面的優勢,擁有巨大的市場前景和商業機會。當前嵌入式Linux的一個熱點應用就是將Linux內核移植到一些典型的微控制器和微處理器上,提供操作系統層面支持,以實現嵌入式系統用軟件的開發。
    此研究基于Linux 2.6內核的嵌入式Linux系統,分析了所面臨的理論問題、關鍵技術,實現了Linux內核在ARM9平臺上的運行。

1 開發環境介紹
    嵌入式IJnux移植是嵌入式系統開發的重要組成部分,它需要相應的軟件組件支持,同時又與目標硬件平臺關系密切。因此,在正式移植
前,首先應明確嵌入式系統開發的流程與開發環境,再根據目標硬件平臺的特點和所選擇的軟件組件,正確搭建功能完善的交叉開發環境,最后制定出合理的移植方案,從而使移植工作可以順利的進行。
1.1 ARM9硬件平臺
    本次移植采用斯道ARM9開發板作為硬件平臺,其基本構成為核心板和底板(外設板或基本板),核心板上集成了SamsungS3C2410處理器、64 M的FLASH和64M的SDRAM,為應用研發提供了足夠的空間,基板則提供了豐富的外圍接口。其硬件平臺結構如圖l所示。


    此完整的應用系統具有體積小、耗電低、處理能力強等特點,能夠裝載和運行嵌入式Linux操作系統。用戶可以在這個系統平臺上自主進行軟件開發。
1.2 Linux內核及處理器
    目前用于嵌入式Linux系統的內核大多數使用2.4.x版,然而,隨著嵌入式微處理器性能的不斷增強及其應用范圍的日趨擴大,Linux-2.6版內核由于其針對嵌入式系統應用的顯著特點,必將會越來越多的被應用于嵌入式系統移植與開發Linux系統之中。文中采用的是Linux-2.6版內核。
    vivi是韓國mizi公司開發的bootloader,適用于ARM9處理器,支持S3C2410X嵌入式ARM-Linux移植的應用處理器。和所有的bootloader一樣,vivi也有兩種工作模式,即啟動加載模式和下載模式。啟動加載模式指在一段時間后(這個時間可更改)自行啟動Linux內核,它是vivi的默認模式。下載模式則是指vivi為用戶提供一個命令行接口,用戶可通過接口使用命令。

2 系統移植方案
    在硬件方面,為支持NAND Flash引導模式,S3C2410A處理器在芯片內集成了4 KB的被稱為steppingstone的SRAM。NAND Flash引導模式下,系統復位后NAND Flash中的前4位內容首先被復制到steppingstone,接著將steppingstone映射到nGCSO,即內存BankO起始她址為Ox00000000,隨后系統開始正常引導。
    同樣,在軟件方面,bootloader程序應被燒寫到NAND Flash最前面的部分。通常bootloader程序大于4 KB,因此,在bootloader的前4 KB程序段中,必須先完成內存SDRAM的初始化,并將自身完全復制到SDRAM中,同時設置必要的堆棧,然后跳轉到SDRAM中去執行這一系列工作。這樣方可完成后續的初始化系統資源及裝載操作系統內核的任務。
    本次移植使用ARM9開發板,通過跳線方式設置OM[1:0]引腳來支持NAND Flash啟動模式,因此,移植方案使用NAND Flash+SDRAM的存儲模式,bootloader放在SDRAM中,內核和文件系統都放在NAND Flash中,根據選用的方案,整個系統移植要做的工作包括兩方面:
    Bootloader:為裝載操作系統內核,支持NAND Flash及網絡下載和串口通信,從而方便嵌人式ARM.Linux移植以開發調試。
    Linux系統:支持NAND Flash,并移植Cramfs+Yaffs混合文件系統;支持NFS文件系統及網絡通信、串口等。

3 Linux內核移植
    在同一硬件平臺上可以嵌入不同的嵌入式操作系統,這就好比PC既可以安裝Windows又可以安裝Linux一樣。同樣,有些操作系統經過移植后即可運行在不同的硬件平臺上。通常情況下,如果一個系統可以在不同硬件平臺上運行,那么這個系統便是可移植的。將某一個平臺的代碼運行在其他平臺上的過程稱作移植。嵌入式系統是“硬件可裁剪”的,因此工程師們設計的硬件電路會有所不同,從而使這些代碼可能無法正確運行,因而要實現移植就應結合自己的硬件電路,對已有的內核代碼進行修改。
3.1 內核移植難點
    Linux系統的內核是多層次結構的單體內核,其可移植性比微內核要差一些,但是,這種內核具有較高的效率。從操作系統發展的趨勢來看,微內核作為一種先進的操作系統結構,是操作系統發展的一個潮流。但是,微內核結構較低的系統通信效率大大的降低了系統的性能。所以,從系統效率和性能的角度來考慮,Linux并沒有采用先進的微內核結構而是選擇了傳統的單體內核機構。
3.2 內核移植的基本策略
    在Linux2.6內核支持下,Linux已經在許多典型的硬件平臺上實現移植,其中包括:I386、ARM、MIPS、ALPHA、PowerPC、SPARC、SH等。但是對于基于特定硬件體系設計的硬件平臺,需要從頭對Linux進行移植。此外還有部分體系的硬件平臺,Linux只對其中部分的CPU或目標板提供了支持,如果使用了Linux尚未支持的CPU或目標板,也需要對Linux內核進行移植工作。通??梢圆捎靡韵聝煞N方法進行Linux內核移植工作:
    (1)從頭設計。即采用“自底向上”的設計方法,從硬件的需求考慮逐步的采用分析、設計、編碼、測試。這種方法比較適合針對一種全新的硬件平臺開展移植工作。
    (2)修改已有的代碼。如前所述,Linux已經可以在多種體系結構中運行,那么,我們可以參考相近的體系結構的代碼,只修改與我們的目標硬件平臺不同的部分即可。這種方法的難點在于開發人員除了要了解目標硬件平臺外。還必須對已支持的軟硬件有一個較好的理解。本次研究的移植工作就是采用了這種開發方法。
3.3 內核移植方法
    對于系統移植而言,Linux實際上是由兩個比較獨立的部分所構成,即內核部分和系統部分。通常啟動一個Linux系統的過程為:一個不隸屬于任何操作系統的加載程序將Linux部分內核調入內存,并將控制權交給內存中Linux內核的第一行代碼,這樣就完成了加載程序的工作。此后Linux要將自己的剩余部分全部加載到內存,初始化所有的設備,在內存中建立好所需的數據構(有關進程、設備、內存等)。此時,內核已經可以控制所有硬件設備。而后轉入系統部分,操作并使用這些硬件設備。接下來內核加載根設備并啟動init守護進程,init守護進程會根據配置文件加載文件系統、配置網絡、服務進程及終端等。一旦終端初始化完畢,我們就會看到系統的歡迎界面了。概括說來,一部分內核初始化和控制絕大部分硬件設備,為內存管理、進程管理、設備讀寫等做好一切準備工作;另一部分系統加載必需的設備,配置各種環境以便用戶可以使用整個系統。


    圖2所示為Linux內核硬件相關結構??梢钥闯?,Linux內核中與具體硬件平臺相關的結構主要分為兩個部分:與具體的處理器結構相關的部分,包括中斷處理、內存操作以及進程控制等;與具體外設關系密切的部分,包括硬件驅動與I/O設備。
    內核移植由五個功能部分組成:進程管理(包括調度和通信)、內存管理、設備驅動、虛擬文件系統與網絡,它們之間存在復雜的調用關
系。前三部分按從前到后的順序,越靠前代表它們與硬件設備的相關程度越高,后面的虛擬文件系統和網絡則幾乎與平臺無關,它們由設備管理中所支持的驅動程序來提供底層支持。因此,在做內核移植的時候,需要改動的就是進程管理、內存管理和設備管理中被獨立出來的那部分即硬件相關部分的代碼。在Linux內核源代碼樹中,這部分代碼全部在areh目錄下,主要是被內核直接調用的底層支持部分。這些代碼重寫了內核所需調用的所有函數,因為接口函數是固定的,所以這里更像是為硬件平臺編寫API。
3.4 內核移植過程
    首先在通用計算機上編寫程序,然后通過交叉編譯生成可在目標平臺上運行的二進制代碼格式,最后再下載到目標平臺計算機的特定位置上運行。Linux內核移植過程如下:
    (1)建立移植所必須的交叉開發環境。需準備兩臺計算機,一臺用作修改編譯Linux內核,另一臺用作移植Linux內核。
    (2)編寫和修改Linux內核。在通用計算機上修改和編寫新的內核代碼,編譯出新的Linux內核。
    (3)調試新的Linux內核。將編譯后生成的新Linux內核加載到目標計算機上進行運行和調試,這個調試的過程就是交叉調試。
    調試器是一個單獨運行著的進程,它通過操作系統提供的調試接口來控制被調試的進程。在Linux內核移植過程中,調試時采用的是在宿主機和目標機之間進行的交叉調試。交叉調試有多種方法,它有一些典型特點:
    ◇調試器和被調試進程通常運行在不同的機器上(注:Linux內核作為操作系統內核,不同于普通進程,但在交叉調試中作為被調試對象,與普通進程沒有區別),一般調試器運行在PC或者工作站主機(宿主機)上,而被調試的進程則運行在各種專業調試板(目標機)上。調試器通過某種通信方式與被調試進程建立聯系,如串口、并口、網絡、DBM或者專用的通信方式。本次移植采用了串口和JTAG兩種方式與目標機進行通信。
    ◇在目標機上一般會具備某種形式的調試代理,它負責與調試器共同配合完成對目標機上運行著的進程的調試。這種調試代理可能是某些支持調試功能的硬件設備(如 DBI2000),也可能是某些專門的調試軟件(如 gdbserver)。本次移植使用的是GDB—Stub。
    ◇如果目標機是某種形式的系統仿真器,通過在宿主機上運行目標機的仿真軟件,整個調試過程可以在一臺計算機上運行。雖然此時物理上只有一臺計算機,但邏輯上仍然存在著宿主機和目標機的區別。本次移植沒有使用系統仿真器。調試時,作為調試器的GDB運行在宿主機上,相應的GDB—Stub運行在目標機上。GDB通過串口或者網絡與GDB—Stub進行通信,發出指令控制、訪問運行在目標硬件平臺上的新的Linux內核,讀取Linux內核的當前狀態,并能夠改變Linux內核的運行狀態。
    經過多次移植測試后,就在基于ARM920T核的53C24lO處理器為核心處理器的ARM9平臺上成功移植了Linux操作系統。

4 結束語
    文中闡述了在基于ARM920T核的53C2410處理器為核心的ARM9平臺上移植Linux操作系統的環境、方案和過程,對移植的難點進行了重點分
析,這對ARM9平臺上的嵌入式Linux移植具有較好的實用價值和參考價值,同時對于其它平臺上的嵌入式Linux移植的方法也具有一定的借鑒意義。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲私人影吧| 国产欧美精品xxxx另类| 裸体丰满少妇做受久久99精品| 亚洲美女免费精品视频在线观看| 欧美日韩调教| 欧美日韩18| 欧美国产激情二区三区| 狼狼综合久久久久综合网| 欧美77777| 亚洲午夜在线观看| 在线日本成人| 国产在线不卡| 国产亚洲激情在线| 欧美国产日产韩国视频| 夜夜嗨av一区二区三区四季av| 亚洲欧美日韩在线一区| 欧美顶级艳妇交换群宴| 国产日本欧美一区二区三区| 国内精品视频一区| 国产精品午夜av在线| 欧美激情a∨在线视频播放| 欧美国产精品v| 卡一卡二国产精品| 国产在线乱码一区二区三区| 亚洲一区二区在线视频| 中文在线资源观看网站视频免费不卡| 欧美精品国产精品日韩精品| 久久精品电影| 日韩一本二本av| 夜夜嗨av一区二区三区中文字幕| 亚洲深爱激情| av成人免费| 亚洲精品中文字幕女同| 国产精品亚洲片夜色在线| 欧美午夜精品久久久| 亚洲激情六月丁香| 在线观看日韩欧美| 国产私拍一区| 欧美日韩精品一区二区三区| 久久国产精品72免费观看| 亚洲人线精品午夜| 在线视频你懂得一区| 1204国产成人精品视频| 欧美激情视频一区二区三区不卡| 韩国三级电影久久久久久| 欧美电影在线观看完整版| 欧美激情一区二区三区全黄| 久久久久久久波多野高潮日日| 99这里只有久久精品视频| 亚洲伊人伊色伊影伊综合网| 国产一区二区三区直播精品电影| 欧美一区二粉嫩精品国产一线天| 欧美一区精品| 亚洲在线观看视频| 中文亚洲欧美| 亚洲伦理自拍| 午夜精品电影| 亚洲你懂的在线视频| 性高湖久久久久久久久| 亚洲国产精品一区二区第四页av| 亚洲精品视频中文字幕| 国产日韩欧美三级| 国产精品一区在线观看| 久久国产精品一区二区三区四区| 欧美精选午夜久久久乱码6080| 新片速递亚洲合集欧美合集| 亚洲第一偷拍| 亚洲色图自拍| 毛片一区二区三区| 亚洲国产日韩美| 国产女主播在线一区二区| 亚洲一区久久久| 一本色道久久加勒比精品| 亚洲影音一区| 亚洲免费电影在线观看| 久久资源av| 欧美日韩久久| 国产性色一区二区| 国产视频精品xxxx| 欧美人与禽猛交乱配| 国产日韩欧美一区在线| 久久aⅴ乱码一区二区三区| 欧美中文字幕第一页| 伊人久久婷婷色综合98网| 久久久久久一区二区三区| 久久久久9999亚洲精品| 欧美日韩高清区| 美日韩精品免费观看视频| 久久精品国产99精品国产亚洲性色| 在线视频你懂得一区| 欧美视频一区二区三区…| 国产精品乱码人人做人人爱| 国产精品xxxxx| 国产欧美一区二区三区国产幕精品| 欧美主播一区二区三区| 欧美一区免费视频| 亚洲国产成人午夜在线一区| 国产欧美日韩不卡免费| 亚洲国产精品精华液网站| 国产自产精品| 亚洲黄色精品| 精品99一区二区三区| 亚洲欧美成人一区二区三区| 亚洲一区黄色| 一区二区在线视频播放| 久久久免费av| 蜜桃av综合| 国产欧美日本一区二区三区| 亚洲午夜视频在线观看| 一区二区三区四区五区在线| 久久激五月天综合精品| 亚洲综合另类| 久久视频国产精品免费视频在线| 亚洲福利视频在线| 国内成人精品2018免费看| 国产日韩欧美一区| 亚洲自拍偷拍网址| 国产九色精品成人porny| 久久成人资源| 国产麻豆成人精品| 在线观看的日韩av| 在线播放日韩专区| 久久精品一区二区三区中文字幕| 欧美日韩精品免费看| 亚洲欧美国产va在线影院| 亚洲天堂av高清| 国产女主播一区| 久久综合色播五月| 在线成人激情| 久久精品国产91精品亚洲| 毛片一区二区三区| 午夜精品视频在线| 最新亚洲一区| 日韩系列欧美系列| 欧美精品 国产精品| 日韩视频在线免费| 欧美乱人伦中文字幕在线| 亚洲视频一区在线| 国产精品久久7| 一区二区三区色| 久久久久网址| 亚洲精品欧美日韩| 亚洲高清免费在线| 欧美一区二区视频97| 黄色精品在线看| 韩日精品中文字幕| 国产亚洲综合在线| 欧美日韩国产区| 国产伦精品一区二区| 亚洲激情第一区| 亚洲欧洲一区二区在线播放| 日韩一级在线观看| 国产精品久久久久久久久果冻传媒| 久久精品国产99精品国产亚洲性色| 猛男gaygay欧美视频| 欧美在线三区| 国产精品成人国产乱一区| 欧美美女福利视频| 欧美高清日韩| 欧美人与禽性xxxxx杂性| 亚洲裸体视频| 国产精品一卡二| 欧美调教vk| 日韩午夜精品| 亚洲片国产一区一级在线观看| 亚洲视屏一区| 欧美性色视频在线| 久久先锋影音| 欧美午夜片在线免费观看| 亚洲国产天堂网精品网站| 欧美激情免费观看| 老牛嫩草一区二区三区日本| 欧美成人国产一区二区| 久久精品2019中文字幕| 午夜一区二区三区在线观看| 免费亚洲视频| 亚洲夫妻自拍| 久久综合网色—综合色88| 亚洲高清不卡在线| 久久黄金**| 欧美日韩免费高清一区色橹橹| 国产日韩精品视频一区二区三区| 136国产福利精品导航网址| 亚洲一区二区在线视频| 一区二区三区在线视频观看| 欧美理论电影网| 午夜精品在线视频| 国产中文一区| 一本久久a久久免费精品不卡| 欧美在线免费观看视频| 亚洲第一黄色| 亚洲欧美日韩综合国产aⅴ| 精品二区久久| 国产精品不卡在线| 欧美三级乱人伦电影| 国内久久视频| 国产欧美日韩免费| 欧美一区二区三区四区高清| 国产精品日韩欧美一区二区三区| 亚洲大胆av| 欧美日韩日本国产亚洲在线| 久久国产精品一区二区三区| 久久深夜福利| 欧美精品亚洲精品| 亚洲欧美在线磁力| 99精品国产福利在线观看免费| 午夜老司机精品| 欧美一区二区三区视频在线| 国产精品每日更新| 日韩视频中午一区| 国产精品一区二区三区成人| 久久综合色8888| 亚洲老司机av| 中文日韩在线视频| 国产麻豆精品在线观看| 欧美日韩国产一级片| 欧美肉体xxxx裸体137大胆| 亚洲欧美在线网| 亚洲欧美日韩国产综合精品二区| 亚洲精品在线看| 激情一区二区三区| 一本色道久久综合狠狠躁篇的优点| 午夜亚洲福利在线老司机| 你懂的网址国产 欧美| 欧美理论片在线观看| 欧美主播一区二区三区美女 久久精品人| 国产精品天天摸av网| 国产日韩欧美综合精品| 欧美刺激性大交免费视频| 欧美午夜免费| 国产午夜精品久久久久久免费视| 一区二区三区日韩欧美精品| 久久人人97超碰国产公开结果| 国模精品一区二区三区色天香| 国产亚洲女人久久久久毛片| 欧美日韩成人综合| 欧美高清视频免费观看| 欧美激情一区二区三区成人| 免费观看在线综合色| 狠狠色伊人亚洲综合成人| 国产精品国产三级国产| 久久免费99精品久久久久久| 欧美日韩精品一本二本三本| 欧美日韩成人综合天天影院| 最新国产乱人伦偷精品免费网站| 国产综合婷婷| 国产精品久久久久毛片软件| 欧美精品一区二区三区蜜臀| 亚洲电影免费观看高清完整版在线观看| 欧美韩日精品| 欧美专区日韩视频| 亚洲综合成人在线| 极品少妇一区二区三区精品视频| 日韩视频在线观看一区二区| 亚洲深夜福利视频| 国产农村妇女毛片精品久久莱园子| 国产精品va| 欧美制服丝袜| 99国产精品99久久久久久| 亚洲欧美日韩中文视频| 欧美另类变人与禽xxxxx| 国产一区久久久| 91久久精品美女| 久热re这里精品视频在线6| 免费日韩成人| 亚洲国产免费看| 亚洲精品小视频在线观看| 在线欧美视频| **性色生活片久久毛片| 亚洲欧洲日产国产网站| 久久国产加勒比精品无码| 欧美女同在线视频| 免费成年人欧美视频| 另类专区欧美制服同性| 好看的亚洲午夜视频在线| 久久久久久久久岛国免费| 欧美日韩美女在线观看| 久久一区视频| 日韩亚洲在线观看| 欧美一区二区在线免费播放| 麻豆精品视频在线观看| 亚洲午夜激情在线| 国产午夜精品一区二区三区欧美| 亚洲在线第一页| 激情综合色综合久久综合| 亚洲国产精品久久91精品| 国产精品一区免费在线观看| 久久久久国产精品午夜一区| 国模精品一区二区三区| 国产在线不卡精品| 一区二区久久久久| 欧美女同在线视频| 欧美视频一区二区三区…| 久久嫩草精品久久久精品| 国产精品美女在线观看| 欧美一级片久久久久久久| 母乳一区在线观看| 国产精品久久久久久久久久久久久| 久久岛国电影| 国产精品系列在线| 欧美日韩在线电影| 欧美午夜精品理论片a级大开眼界| 日韩视频第一页| 国产亚洲欧美日韩精品| 韩国三级电影久久久久久| 亚洲午夜免费视频| 久久手机免费观看| 日韩视频精品| 国产欧美一区二区精品婷婷| 亚洲大胆美女视频| 伊人久久大香线蕉综合热线| 影音先锋日韩有码| 欧美在线一二三四区| 一色屋精品视频免费看| 亚洲制服丝袜在线| 欧美一区二区福利在线| 亚洲乱码国产乱码精品精98午夜| 欧美亚洲视频| 久久综合成人精品亚洲另类欧美| 亚洲伦理自拍| 亚洲欧美在线看| 樱桃国产成人精品视频| 国产精品久久久久久久久动漫| 欧美高清在线观看| 欧美性大战久久久久久久蜜臀| 国产精品成人一区| 一区二区电影免费观看| 欧美福利专区|