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

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

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

胡恩博

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

關鍵詞:移植;ARM;嵌入式;嵌入式操作系統(tǒng);Linux

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

1 引言

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

2 Linux內核源碼目錄結構

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

3 建立GCC編譯環(huán)境

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

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

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

4 BootLoader

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

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

5 Linux內核修改與編譯

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

6 制作根文件系統(tǒng)

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

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

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

7 Download

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

8 結語

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

參考文獻

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

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

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

猜你喜歡
嵌入式
Focal&Naim同框發(fā)布1000系列嵌入式揚聲器及全新Uniti Atmos流媒體一體機
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應用
電子制作(2019年7期)2019-04-25 13:17:14
基于嵌入式Linux內核的自恢復設計
嵌入式系統(tǒng)通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
嵌入式PLC的設計與研究
電子制作(2018年16期)2018-09-26 03:27:18
搭建基于Qt的嵌入式開發(fā)平臺
基于嵌入式系統(tǒng)Windows CE的應用程序開發(fā)
嵌入式單片機在電機控制系統(tǒng)中的應用探討
電子制作(2017年8期)2017-06-05 09:36:15
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
Altera加入嵌入式視覺聯(lián)盟
主站蜘蛛池模板: 欧美日韩中文国产va另类| 国产亚洲男人的天堂在线观看 | 亚洲动漫h| 国产亚洲精品自在线| 1769国产精品免费视频| 最新日韩AV网址在线观看| 国产精品浪潮Av| 亚洲中文字幕国产av| 免费 国产 无码久久久| 秋霞午夜国产精品成人片| 天天操精品| 亚洲天堂伊人| 欧美人与牲动交a欧美精品| 亚洲不卡网| 国产精品久线在线观看| 香蕉国产精品视频| 一本大道香蕉中文日本不卡高清二区| 色九九视频| 免费无码一区二区| 亚洲国产精品日韩欧美一区| 国产精品欧美日本韩免费一区二区三区不卡| 国产成熟女人性满足视频| 中文字幕永久视频| 国产亚洲精品91| 国产一在线观看| 日韩a级片视频| 欧美日韩高清| 午夜人性色福利无码视频在线观看| 精品视频第一页| 亚洲天堂.com| 香蕉久久国产超碰青草| 国产亚洲精品97在线观看| 国产永久在线视频| 九九九精品成人免费视频7| 亚洲AⅤ永久无码精品毛片| 91视频青青草| 国产亚洲欧美另类一区二区| 久久亚洲国产视频| 久久免费观看视频| A级毛片高清免费视频就| 久久亚洲黄色视频| 国产福利大秀91| 欧美色视频日本| 国产色婷婷| 欧美日韩北条麻妃一区二区| 乱人伦中文视频在线观看免费| 一本综合久久| 免费无码AV片在线观看国产| 一级爆乳无码av| 国产精品乱偷免费视频| 色综合天天视频在线观看| 中文字幕天无码久久精品视频免费| 激情無極限的亚洲一区免费| 欧美精品在线观看视频| 中国黄色一级视频| 91激情视频| 色综合国产| 国产91导航| 亚洲无码熟妇人妻AV在线| 亚洲国产成人无码AV在线影院L| 国产区91| 欧美视频二区| 中文字幕1区2区| 久久综合伊人 六十路| 成人在线天堂| 亚洲精品欧美日本中文字幕| a毛片在线免费观看| 久久久久亚洲精品成人网 | 在线免费观看a视频| 亚洲av无码牛牛影视在线二区| 伊人AV天堂| 色综合天天综合中文网| av大片在线无码免费| 国产女人18水真多毛片18精品| 国产精品一区二区国产主播| 制服丝袜一区二区三区在线| 亚洲国产欧美自拍| 免费在线看黄网址| 亚洲bt欧美bt精品| 天天做天天爱夜夜爽毛片毛片| 91偷拍一区| 高清国产va日韩亚洲免费午夜电影|