《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于ARM的Linux系統移植研究與實現
基于ARM的Linux系統移植研究與實現
來源:現代電子技術
作者:許青林,解爭龍 
摘要: Linux具有源代碼開放、效率高、可裁剪等優點,在嵌入式系統的開發中具有廣泛的應用。文章介紹了嵌入式Linux操作系統、移植目標平臺SBC2410及Linux內核源代碼的目錄結構,分析了Linux移植到SBC2410平臺的實現過程,闡述了Linux內核、u-boot的裁剪和編譯以及根文件系統的制作過程,最后在SBC2410平臺上成功移植了嵌入式Linux系統。
Abstract:
Key words :

 0 引言

    嵌入式系統是一個專用的計算機系統。該系統以計算機技術為基礎,軟硬件可裁減,但對功能、可靠性、成本等都有嚴格的要求。今天,一些專用系統需要處理大量的信息,由于傳統的計算機系統很難實現硬件可裁減,因而已經不能滿足專用系統的需要。伴隨著我國汽車、家電等產業的快速發展,嵌入式系統的應用與開發已成為目前IT產業的一個新的熱點。基于ARM的嵌入式系統的開發,首先要解決的問題是嵌入式操作系統的移植。Linux操作系統作為一種源代碼開放、同時可支持多種處理器結構的多任務操作系統,具有內核小、易裁剪、可移植性好等優點,是目前嵌入式系統應用與開發的主流操作系統。本文主要研究在ARM9平臺上搭建嵌入式Linux系統的實現方法。
 
1 嵌入式Linux操作系統及特點
    目前,在嵌入式系統開發中,52%的項目選擇Linux作為嵌入式操作系統,這與Linux自身的優良特性有不可分割的關系。
     Linux操作系統內核源代碼開放,并具有豐富的軟件資源。不同的應用領域可以根據需要對內核進行修改,每一種通用程序在Linux都能找到。在Linux上開發程序不需要從頭做起,可以選擇一個類似的軟件進行二次開發,因而能夠低成本地開發出滿足自己需要的嵌入式系統。
    另外,Linux系統能支持多種硬件設備,而且驅動豐富,能支持多種主流硬件設備和最新硬件技術。隨著Linux的廣泛應用,許多芯片生產廠家也已經開始為Linux提供驅動,這為Linux在各種硬件平臺上的應用奠定了基礎。
     Linux可支持多種體系結構,具有較好的可移植性。目前,Linux已經移植到絕大多數硬件平臺上,能夠支持ARM、MIPS、LPHA、SPARC等多種體系,Linux支持幾乎所有流行的CPU。Linux具備一整套工具鏈,容易建立嵌入式系統的開發環境和交叉運行環境,可跨越嵌入式系統開發中仿真工具的障礙。由于其符合IEEE POSIX.1標準,因而應用程序具有較好的可移植性。
    Linux具有完善的網絡通信和文件管理機制。實際上,Linux從一開始就與網絡密不可分,網絡是Linux的最為顯著的特征。Linux具有ARM9上的嵌入式Linux系統移植的特性,從而保證了它支持所有標準因特網協議,可以利用Linux的網絡協議棧開發嵌入式TCP/IP網絡協議棧。同時,Linux支持ext2、fat16、fat32、romfs等文件系統,從而為嵌入式系統應用開發打下了很好的基礎。
 
2 Linux在ARM平臺上的移植
2.1 SBC2410硬件平臺介紹
    SBC2410硬件平臺是具有基于ARM9處理器SBC2410A,可支持ARM—Linux、WindowsCE等操作系統的嵌入式硬件平臺。主要硬件資源有一片64 MB SDRAM,一片64 MBNandFlash,一片1 MB Nor Flash,一個串口COM0,一個USB Host A型接口,一個USB Slave B型接口,以及一個標準的JTAG接口等。
2.2 Linux在ARM平臺上的移植準備
    首先是要建立交叉編譯環境。交叉編譯環境是一個由編譯器、連接器和解釋器組成的綜合開發環境。交叉編譯工具主要包括編譯器gcc,二進制工具binutils,目標系統的標準c庫glibc和目標系統的Linux內核頭文件。宿主機要選好做嵌入式開發的Linux操作系統,配置好網絡、NFS服務等。因為目標機沒有足夠的資源運行開發工具和調試工具,所以要在宿主機上建立交叉編譯環境,然后由交叉編譯工具生成可執行二進制代碼(并不能在宿主機上運行),再下載到目標板上調試和運行。交叉編譯標準c環境的生成步驟包括以下四步:
    (1)獲得binutils、gcc、glibc的源碼;
    (2)配置編譯binutils,得到匯編器和連接器;
    (3)配置編譯gcc源碼,生成gcc編譯器;
    (4)配置glibc編譯生成glibc的c庫函數。
2.3 引導程序移植bootloader
    引導程序bootloader是與體系結構緊密相關的部分,是操作系統內核和應用程序運行之前運行的一小段程序,用于完成系統的啟動和加載。它類似于PC機中的BIOS程序。bootloade嚴重依賴于硬件實現,一般在嵌入式系統中建立一個通用的bootloader是不可能的。用戶必須自己編寫這一小段程序,從而完成硬件設備的初始化,建立內存空間的映射圖,將系統的軟硬件帶到一個合適的狀態,為操作系統內核的運行做準備。
    通常bootloader移植分為兩步:
    第一步常用匯編語言實現依賴于CPU體系結構的代碼。主要包括硬件設備初始化;為加載bootloader準備RAM空間;拷貝bootloader到RAM空間中;設置好堆棧。
    第二步常用C語言來實現。即:初始化本階段要使用到的硬件設備;檢測系統內存映射(memory map);將kernel映像和根文件系統映像從flash上讀到ram空間中;為內核設置啟動參數;調用內核。圖1所示是bootloader的工作流程圖。
2.4 內核移植
    內核移植首先應當啟動操作系統,完成內存管理、任務調度、進程管理、加載驅動程序、網絡等功能,然后執行應用程序或等待用戶命令。雖然各功能之間存在復雜的調度關系,但由于Linux分層結構的特點,已將其中硬件相關的代碼獨立了出來,因此,移植過程中只需要改動進程管理、內存管理和設備管理中與硬件相關的那部分代碼。
    一般情況下,從官方網站上下載的內核不能直接在硬件平臺上運行,而要跟據具體的硬件平臺重新裁剪、編譯內核,并根據硬件平臺特性編寫相應的硬件相關的代碼,將Linux移植到硬件平臺。對內核代碼的修改包括以下部分:
    (1)修改內核目錄樹根下的Makefile,找到ARCH和CROSS_COMPILE,修改ARCH=arm,CROSS_COMPILE=armlinux,然后設置PATH環境變量,在文件bashrc中添加expor PATH=/usr/local/arm/3.4.4/bin:$PATH,使其可以找到交叉編譯工具鏈,然后重新登陸。
    (2)設置flash分區,修改arch/arm/machSBC2410/devs.c用以指明分區信息,該文件的內容建立nand flash分區表;修改arch/arm /machSBC2410/machsmdk2410.c文件指定啟動時初始化,并在kernel啟動時依據對分區的設置進行初始配置。在Linux源文件目錄下,執行makemenuconfig命令,配置內核產生config文件,選擇處理器類型為SBC2410,選擇串口驅動設備,完成后保存config文件。
    在完成內核的裁減之后,執行命令make clean,編譯內核之前先把環境給清理干凈,也可以用makerealclean或makemrproper來徹底清除相關依賴,保證沒有不正確的文件存在,最后將zimage下載到開發板。
 
3 結語
    經過移植,Uboot和Linux在SBC2410平臺就能運行,在此基礎上,還可以進一步開發各類驅動程序及應用軟件。用串口線將SBC2410和PC機相連,通過超級終端可以看到移植成功。系統成功啟動后,就可以進入根文件系統。本文通過分析Linux的特點和移植方法,總結出了一種基于ARM的Linux系統移植的方法,并實現了Linux系統內核在SBC2410處理器平臺上的移植。
此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
精久久久久久| 亚洲伊人网站| 国产老女人精品毛片久久| 欧美国产第一页| 蜜桃av一区二区| 久久久水蜜桃| 欧美一区亚洲一区| 性欧美xxxx大乳国产app| 亚洲欧美日韩一区在线| 亚洲一区二区三区中文字幕 | 欧美一区二区三区四区夜夜大片| 99视频精品全部免费在线| 亚洲乱码精品一二三四区日韩在线 | 亚洲日本电影| 亚洲老板91色精品久久| 亚洲人体一区| 亚洲精品中文字幕有码专区| 亚洲精品乱码久久久久久久久| 亚洲精品国产精品国自产观看浪潮 | 欧美日韩国产免费| 欧美日韩一区二区三区四区五区| 欧美日韩精品一区二区在线播放 | 在线观看亚洲视频| 亚洲欧洲精品成人久久奇米网| 亚洲人成高清| 亚洲视频一区二区免费在线观看| 亚洲一区二区三区在线视频| 午夜免费日韩视频| 亚洲高清久久| 一本到高清视频免费精品| 亚洲视频www| 西瓜成人精品人成网站| 久久久久国产精品一区| 欧美中文在线视频| 亚洲午夜激情| 欧美一区二区福利在线| 亚洲高清在线精品| 一本色道久久综合亚洲精品不卡| 亚洲夜晚福利在线观看| 欧美在线一区二区三区| 久久婷婷综合激情| 欧美激情一区二区三区成人| 国产精品高潮在线| 国产一区二区三区观看| 亚洲国产精品t66y| 亚洲色图自拍| 久久黄色网页| 一本大道av伊人久久综合| 亚洲欧美日韩一区二区三区在线观看| 久久精品国产一区二区电影| 欧美国产日韩xxxxx| 国产精品久久久久久户外露出| 国产日韩欧美在线播放| 亚洲福利视频三区| 亚洲一区二区伦理| 亚洲人成在线观看| 亚欧成人精品| 欧美激情一区二区三区在线视频 | 激情文学综合丁香| 一本久久综合亚洲鲁鲁五月天| 午夜精品999| 日韩一区二区精品在线观看| 久久gogo国模啪啪人体图| 免费在线一区二区| 国产精品v片在线观看不卡| 韩国女主播一区| 亚洲视频在线免费观看| 91久久一区二区| 午夜精品福利一区二区蜜股av| 欧美阿v一级看视频| 国产精品区二区三区日本| 怡红院精品视频| 亚洲影视在线| 一本色道久久综合狠狠躁篇的优点| 欧美在线观看视频一区二区三区 | 欧美电影免费观看高清完整版| 国产精品日韩久久久| 亚洲国产精品久久久久秋霞不卡| 亚洲伊人一本大道中文字幕| 日韩视频在线你懂得| 久久久久91| 国产精品久久久久久久久久ktv| 亚洲福利免费| 欧美一区深夜视频| 亚洲欧美另类在线| 欧美日韩国产成人精品| 黄色日韩在线| 欧美亚洲一区二区在线观看| 亚洲一区二区三区精品在线观看 | 亚洲电影免费观看高清完整版在线观看 | 夜夜嗨av色综合久久久综合网| 亚洲高清影视| 久久国产免费看| 国产精品青草综合久久久久99 | 女生裸体视频一区二区三区 | 在线成人免费视频| 性刺激综合网| 羞羞色国产精品| 国产精品成人aaaaa网站| 亚洲精品专区| 日韩视频一区二区三区在线播放| 久久综合福利| 国产有码在线一区二区视频| 亚洲欧美成人一区二区三区| 亚洲欧美日韩国产另类专区| 欧美视频导航| 99精品欧美一区| 99re在线精品| 欧美久久九九| 亚洲人成久久| 99国内精品久久| 欧美剧在线观看| 欧美国产视频日韩| 国产精品wwwwww| 一片黄亚洲嫩模| av72成人在线| 欧美日韩高清一区| 亚洲美女淫视频| 99国产精品自拍| 欧美乱大交xxxxx| 亚洲乱码国产乱码精品精可以看| 亚洲精品久久久久| 欧美电影电视剧在线观看| 在线观看成人一级片| 亚洲人成在线观看一区二区| 欧美成人激情在线| 亚洲国产视频a| 亚洲免费观看高清完整版在线观看熊| 欧美成人中文字幕在线| 91久久精品久久国产性色也91 | 新片速递亚洲合集欧美合集| 国产精品一区二区三区成人| 亚洲欧洲99久久| 久久久水蜜桃av免费网站| 在线观看久久av| 99精品欧美一区二区三区综合在线| 欧美日韩国产美| 在线中文字幕不卡| 性色一区二区| 激情久久久久久久| 日韩午夜免费| 国产精品a级| 亚洲欧美中文另类| 美女视频黄免费的久久| 亚洲日本成人| 性高湖久久久久久久久| 国内精品久久久久影院 日本资源| 久久精品亚洲精品国产欧美kt∨| 欧美大片网址| 一区二区三区四区五区视频| 欧美诱惑福利视频| 亚洲福利精品| 亚洲在线第一页| 国产自产v一区二区三区c| 亚洲黄一区二区| 欧美日韩在线播放一区| 亚洲欧美日韩在线不卡| 美女主播精品视频一二三四| 亚洲人线精品午夜| 欧美一区二区成人| 1000部精品久久久久久久久 | 亚洲中午字幕| 国内自拍视频一区二区三区| 99xxxx成人网| 国产欧美欧美| 亚洲美女中文字幕| 国产精品女人网站| 亚洲欧洲视频在线| 国产精品你懂的| 亚洲人午夜精品| 国产精品亚洲а∨天堂免在线| 亚洲电影在线观看| 国产精品成人免费精品自在线观看| 欧美在线视频免费播放| 欧美日本中文| 欧美一区激情| 欧美日韩在线三区| 亚洲国产高清一区| 国产精品伦一区| 最新成人av网站| 国产精品永久在线| 日韩一二在线观看| 韩国女主播一区二区三区| 亚洲综合欧美日韩| 亚洲国产精品国自产拍av秋霞| 午夜精品免费在线| 91久久线看在观草草青青| 欧美在线精品免播放器视频| 亚洲精品日韩综合观看成人91| 久久av一区二区三区| 日韩视频免费在线观看| 久久夜色精品国产欧美乱| 在线视频亚洲一区| 欧美成人精品福利| 欧美一区二区三区免费观看视频| 欧美午夜在线视频| 日韩五码在线| 狠狠爱成人网| 欧美在线高清视频| 亚洲视频在线二区|