999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARM 920T S3C2440AL—40的EOS移植研究

2017-05-17 10:21:23胡恩博
數字技術與應用 2017年3期
關鍵詞:嵌入式

胡恩博

摘要:首先簡要闡述了Linux OS的內核目錄及結構,之后詳細描述將嵌入式Linux OS移植到SAMSUNG ARM 920T為內核的S3C2440AL-40芯片上的流程。通過移植流程的分析與研究,總結及優化了基于此類芯片向該類硬件平臺移植Linux內核的方法,為改進OS的設計提供了重要參考,具有重要的應用價值。

關鍵詞:移植;ARM;嵌入式;嵌入式操作系統;Linux

中圖分類號:TP311.52 文獻標識碼:A 文章編號:1007-9416(2017)03-0044-02

1 引言

EOS(Embedded Operation System,EOS),即嵌入式操作系統。是一種用途廣泛的系統軟件,是基于軟、硬件的廣義概念,它負責分配軟件與硬件資源、進行任務調度、控制協調并發活動等任務,具有強實時性、代碼固化、可裁剪、便于移植等特點。當前比較流行的EOS主要有Linux、uCLinux、WinC、VxWorks、uC/OS-Ⅱ QNX等,而尤以Linux的通用與應用性最為突出。在嵌入式芯片上則以ARM為代表。故以下研究的是將嵌入式Linux OS移植到SAMSUNG ARM 920T為內核的S3C2440AL-40芯片的硬件平臺上,與傳統的移植方式不同之處在于BootLoader獨立編寫,并且給出了有針對性的、完整的編寫流程,而非直接使用系統U-Boot。

2 Linux內核源碼目錄結構

Linux內核為系統核心組件,雖然版本眾多,但主要模塊不外乎內存管理、進程調度、文件系統、設備驅動及網絡和進程間通信等。其一級目錄結構如圖1所示,二級及以下目錄并未列出,在后續的移植過程中如有用到可根據所列目錄推導其所屬一級目錄。此次移植研究使用的Linux版本號為 2.6.23。各級目錄含義版本差異并不明顯,這里不做過多闡述。

3 建立GCC編譯環境

Linux系統開發方式多樣,一般采取宿主機-目標機方式,其硬件連接示意如圖2所示。此次移植Linux系統版本為Red Hat Linux 9,移植方式及流程與系統開發方式類似,在宿主機上裁剪及編譯好所需的Linux系統,然后通過雙絞線tftp傳輸完成移植,其流程如圖3所示。

此次GCC編譯器采用arm-linux-gcc-4.3.2版本,需要解壓編譯環境壓縮包arm-linux-gcc-4.3.2.tgz來實現,其流程為:下載壓縮包到任意目錄→解壓(/usr/local)→復制 arm 至 /usr/local,使編譯環境集中在/usr/local/arm/4.3.2/bin→修改環境變量→重啟。

經過以上流程后此次移植所需的GCC編譯環境就建立起來了。不論采用那一個版本的編譯器,編譯環境的建立都大同小異。

4 BootLoader

在EOS中,一般并無和BIOS相似的固件程序,但有的ECPU內也會含有一段精簡的啟動程序,這里不作討論。因此EOS的加載啟動任務全部由BootLoader完成。BootLoader是EOS在加電后執行的首段代碼,它運行在操作系統內核之前,在它完成CPU和相關硬件的初始化之后,即將操作系統映像或固化的嵌入式應用程序裝載至內存中,然后跳轉到操作系統所在的空間,從而將系統的軟硬件環境帶到一個合適狀態,以便為最終調用操作系統內核準備好正確的環境,從而啟動操作系統運行[1]。

ARM 920T的異常向量表有兩種存放方式,一種是從0x00000000處開始的低端存放,另一種從0xfff000000處開始的高端存放,選擇低端存放,建立異常向量表。S3C2440的看門狗在上電啟動時默認為開啟狀態,所有要先關閉看門狗,否則代碼運行不完全就會強制復位。重定位代碼的目的是使代碼的運行地址與鏈接地址相對應,之后就可以直接使用絕對地址。用C語言實現使用絕對跳轉指令跳轉到第二階段。初始化串口可方便調試及為內核啟動時打印信息做好準備。初始化Nand Flash時需注意將其內核鏡像拷貝到內存。

5 Linux內核修改與編譯

Linux內核移植前得先進行內核的修改,而后進行配置與編譯。內核修改流程為:指定硬件與編譯器→添加Header file→建立Nand flash分區表→加入Nand flash分區→J建立芯片支持→加入芯片支持至驅動→指定啟動時初始化→禁止FlashECC校驗。具體的修改命令與對應參數這里不做過多闡述。在完成針對性的內核修改后,需要對修改后的內核進行配置與編譯,以便于后期的移植。配置方式相對簡單,可使用makeconfig、makeoldconfig、makemenuconfig、makexconfig中的任意一種[2]。在配置做好后,需要對Linux 2.6.23的內核進行編譯,方法相對簡單,執行make即可編譯內核與模塊。

6 制作根文件系統

根文件系統是一個系統運行時必須且存儲數據文件的外部設備。Linux內核代碼映像文件便保存其中。BootLoader會從這個根文件系統設備上把內核執行代碼加載到內存中去運行。可見其重要性[3]。

在Linux下輸入ls 命令見到的目錄結構以及這些目錄下的內容都大同小異,這是因為所有的linux發行版本在對根文件系統布局上都遵循FHS標準的建議規定,該標準規定了根目錄下各子目錄的名稱及其存放的內容,制作根文件系統就是要建立以上的目錄,并在其中建立完整目錄內容。其通用流程一般為先編譯、安裝busybox,生成bin、sbin、usr/bin、usr/sbin目錄;然后依次GCC構建lib目錄;手工構建etc及dev目錄;在創建其它空目錄后對系統自動生成的proc目錄進行配置;最后利用udev構建完整的dev目錄并制作根文件系統的映像文件。

采用busybox制作cramfs文件系統的流程為:制作根文件系統→修改Makefile→去警告信息→配置busybox→編譯busybox→創建cramfs所需目錄→創建節點→目錄對拷→創建cramfs→執行。制作過程中要注意,由于采用靜態編譯,故需去掉applets/ap-plets.c中的警告信息。配置busybox要選擇靜態編譯并修改其屬性。若假設創建cramfs所需目錄均創建在rootfs下,則在目錄對拷時在busybox中 install目錄下除linuxrc目錄外的其它全部目錄均需拷貝到rootfs目錄下,同時復制常用的lib文件,可稍微精簡。創建節點前需要準備啟動所需的linuxrc、rcS、inittab和fstab四個文件,創建兩個節點console、null時必須以root身份。假設創建的cramfs文件系統壓縮包名為ramdisk.gz,執行必須在rootfs上一級目錄下。

7 Download

使用串口通過超級終端下載燒寫編寫好的BootLoader,通過網絡tftp下載燒寫修改及編譯后的內核及根文件系統。若在虛擬機下移植,可使用Windows自帶的通訊工具超級終端,或 Linux Vim 下使用Minicom。使用雙絞線連接宿主機與硬件平臺或開發板,在確保網絡硬件連接無誤的前提下設置好IP,通過指令"tftp a0008000(虛擬)zImage"下載燒寫內核,成功后輸入指令"tftp a0500000(虛擬) ramdisk.gz,若通過命令"go a0008000(虛擬)"可查看到移植內核及文件系統,則移植成功并完成。

8 結語

EOS的移植過程繁瑣復雜,涉及到很多方面的知識,包括移植方式、移植核心的體系架構及硬、軟件平臺的搭建等,它要求實踐者熟悉Linux命令及相關第三方軟件的配置,對Linux內核及文件系統熟悉,對移植硬件平臺或目標板的結構了如指掌。隨著Linux內核不斷升級完善及快速發展,硬件平臺及目標板的結構的更新也異常迅猛。此次移植對以ARM為內核的EOS移值具有非常實用的應用價值,其本身即可作為一個實際應用案例。移植后的Linux系統在以ARM 920T為內核的S3C2440AL-40硬件平臺上運行穩定、性能優良,達到了預期目標,滿足后續在此平臺上開發應用程序的實際應用要求。同時此次移植過程對采用不同硬件與軟件平臺的移植具有很好的參考價值。

參考文獻

[1]李廣軍,閻波,林水生.微處理器系統結構與嵌入式系統系統設計[M].電子工業出版社,2011.

[2]向濤,吳光敏,李蘭.基于S3C2410的嵌入式Linux操作系統移植[J].微機處理,2010(6):41-44.

[3]趙明鑫.Linux內核在ARM上的裁減與移植[J].計算機與數字工程,2009(7):81-84.

猜你喜歡
嵌入式
Focal&Naim同框發布1000系列嵌入式揚聲器及全新Uniti Atmos流媒體一體機
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
基于嵌入式Linux內核的自恢復設計
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
嵌入式PLC的設計與研究
電子制作(2018年16期)2018-09-26 03:27:18
搭建基于Qt的嵌入式開發平臺
基于嵌入式系統Windows CE的應用程序開發
嵌入式單片機在電機控制系統中的應用探討
電子制作(2017年8期)2017-06-05 09:36:15
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 在线看免费无码av天堂的| 99ri精品视频在线观看播放| 91精品网站| 亚洲国产欧美目韩成人综合| 国产婬乱a一级毛片多女| 亚洲午夜18| 国产精品jizz在线观看软件| 欧美一区二区啪啪| 91精品小视频| 国产午夜精品一区二区三区软件| 永久免费av网站可以直接看的| 亚洲无码高清视频在线观看 | 伊人国产无码高清视频| 国产欧美视频综合二区| 中文一级毛片| 无码国产偷倩在线播放老年人| 成人精品区| 欧美全免费aaaaaa特黄在线| v天堂中文在线| 九九九九热精品视频| 日韩美一区二区| 成人福利在线视频| 色有码无码视频| 国产在线观看第二页| 97视频在线观看免费视频| 亚洲日韩Av中文字幕无码| 日韩精品高清自在线| 久久一本精品久久久ー99| 99伊人精品| 国产人成网线在线播放va| 秋霞午夜国产精品成人片| 亚洲色成人www在线观看| 国产剧情一区二区| 国产视频大全| 色九九视频| 国产丝袜精品| 无码免费视频| 国产欧美又粗又猛又爽老| 欧美日韩va| 亚国产欧美在线人成| a级毛片网| 精品国产免费观看| 毛片在线区| 日韩精品成人在线| 欧美精品1区| 亚洲欧美另类色图| 99热国产这里只有精品无卡顿"| 天堂在线视频精品| 日韩精品成人网页视频在线| 亚洲精品午夜天堂网页| 在线国产毛片| 欧美日韩在线国产| 国产传媒一区二区三区四区五区| 亚洲天堂成人| 国产欧美在线视频免费| 伊人五月丁香综合AⅤ| 一级毛片a女人刺激视频免费| 亚洲第一黄片大全| 精品一区二区三区无码视频无码| 亚洲丝袜中文字幕| 国产伦片中文免费观看| 日韩免费毛片| 亚洲成人在线网| 3344在线观看无码| 国产精品美人久久久久久AV| 无码日韩精品91超碰| 激情亚洲天堂| 亚洲色无码专线精品观看| 日韩在线第三页| 再看日本中文字幕在线观看| 国产人成乱码视频免费观看| 国产成人综合久久精品下载| 国产成人综合网| 日韩免费成人| 特级欧美视频aaaaaa| 免费啪啪网址| 亚洲国产精品无码AV| 国产精品一区二区久久精品无码| 国产尤物jk自慰制服喷水| 精品国产自| 亚洲欧洲日韩国产综合在线二区| 国产成人狂喷潮在线观看2345|