嵌入式課程設(shè)計--linux系統(tǒng)的裁剪與移植_第1頁
已閱讀1頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p>  linux系統(tǒng)的裁剪與移植</p><p><b>  摘 要</b></p><p>  嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機技術(shù)為基礎(chǔ)、軟硬件均可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計算機系統(tǒng)。其發(fā)展已有二十多年的歷史,國際上也出現(xiàn)了一些著名的嵌入式操作系統(tǒng),如VxWorks,Palm OS,Windows CE等

2、等,但這些操作系統(tǒng)均屬于商品化產(chǎn)品,價格昂貴且由于源代碼不公開導(dǎo)致了諸如對設(shè)備的支持 ,應(yīng)用軟件的移植等一系列的問題。而Linux作為一種優(yōu)秀的Free OS,近幾年在嵌入式領(lǐng)域異軍突起,成為了最有潛力的嵌入式操作系統(tǒng)。</p><p>  Linux從1991年問世到現(xiàn)在,短短的十幾年時間已經(jīng)發(fā)展成為功能強大、設(shè)計完善的操作系統(tǒng)之一;可運行在X86、Alpha、Sparc、MIPS、PPC、Motorola、N

3、EC、ARM等多種硬件平臺,而且開放源代碼,可以定制;可與各種傳統(tǒng)的商業(yè)操作系統(tǒng)分庭抗?fàn)?。越來越多的企業(yè)和研發(fā)機構(gòu)都轉(zhuǎn)向嵌入式Linux的開發(fā)和研究上,在新興的嵌入式操作系統(tǒng)領(lǐng)域內(nèi)也獲得了飛速發(fā)展。</p><p>  關(guān)鍵詞:嵌入式;Linux; 操作系統(tǒng)</p><p>  Linux system of cutting and transplantation</p>&

4、lt;p><b>  abstract</b></p><p>  Embedded system is used as the center, take the computer technology as the foundation, the software and hardware can be cut, adapt to function, application syst

5、em reliability, cost, volume, power strict specialized computer system. The development history of 20 years, there were also some international famous embedded operating system, such as Palm OS, VxWorks, Windows CE etc,

6、but these operating system belong to product, the price is expensive and commercialization of open source is not due to </p><p>  Linux from 1991 to now, was a decade has become a powerful, perfect design of

7、 the operating system, But in X86 operating gamerelease, Sparc and the MIPS, Motorola, NEC, PPC, various hardware platform, ARM, and open source can be customized, All kinds of traditional commercial operation system Cha

8、mbers. More and more enterprises and research institutes to research and development of embedded Linux, in the emerging field of embedded operating system also won the rapid development.</p><p>  Keywords:em

9、bedded;Linux;Operating system</p><p><b>  目 錄</b></p><p><b>  1 引言1</b></p><p>  2主要術(shù)語解析2</p><p>  2.1交叉編譯器2</p><p>  2.2li

10、nux剪裁2</p><p><b>  3設(shè)計流程3</b></p><p>  3.1linux系統(tǒng)的剪裁與移植3</p><p>  3.1.1Uboot燒寫3</p><p>  3.1.2內(nèi)核的裁剪與移植5</p><p>  3.1.3 文件系統(tǒng)的移植與燒寫6<

11、/p><p><b>  4 設(shè)計體會8</b></p><p><b>  參考文獻9</b></p><p><b>  1 引言</b></p><p>  隨著linux功能不斷加強,靈活多樣的實現(xiàn)加上其可定制的特性以及開放源碼的優(yōu)勢, Linux 在各個領(lǐng)域的應(yīng)用

12、正變得越來越廣泛。而隨著嵌入式領(lǐng)域,的興起更是為Linux 的長足發(fā)展提供了無限廣闊的空間,現(xiàn)在出現(xiàn)了越來越多的標(biāo)準(zhǔn)LINUX 在各個硬件體系結(jié)構(gòu)的移植版本。</p><p>  主要是通過把uboot、內(nèi)核、文件系統(tǒng)的源文件先在linux環(huán)境下進行相應(yīng)的配置(比如通過menuconfig命令),之后通過相應(yīng)的編譯生成可執(zhí)行的文件(bin文件),最后通過相應(yīng)的命令把這些可執(zhí)行的文件燒寫到arm端的flash中,重

13、啟arm可以發(fā)現(xiàn)相應(yīng)的變化。</p><p>  用開機之后先進入Bootloader,通過bootloder引導(dǎo)進入內(nèi)核再進行相應(yīng)的文件讀寫操作。</p><p><b>  如下流程:</b></p><p>  圖1-1 實驗流程圖</p><p>  它們在移植到arm端flash中固定的地址上,uboot:0

14、x30000000—0x30008000,內(nèi)核:0x30008040—0x33f80000。 </p><p><b>  主要術(shù)語解析</b></p><p><b>  交叉編譯器</b></p><p>  交叉編譯環(huán)境的建立最重要的就是要有一個交叉編譯器

15、。所謂的交叉編譯就是:利用運行在某機器上的編譯器編譯某個源程序生成在另一臺機器上運行的目標(biāo)代碼的過程。這里我主要用到的編譯器是arm-linux-gcc,它是gcc 的arm 改版。gcc 是個功能強大的c語言編譯工具,其年齡比Linux 還長。</p><p><b>  linux剪裁</b></p><p>  Linux裁剪看上去只是對配置菜單的簡單選擇。但是

16、配置菜單本身結(jié)構(gòu)龐大,內(nèi)容復(fù)雜。因此熟悉與了解該菜單的各項具體含義就顯得比較重要。Linux編譯菜單主要有:</p><p>  1)make config:進入命令行,可以一行一行的配置,這不好使用所以我們不具體介紹。</p><p>  2)make menuconfig:進入我們熟悉的menuconfig 菜單,相信很多人對此都不陌生。</p><p>  3

17、)make xconfig:在2.4.X 以及以前版本中xconfig 菜單是基于TCL/TK 的圖形庫的。</p><p><b>  設(shè)計流程</b></p><p>  linux系統(tǒng)的剪裁與移植</p><p>  一個完整的系統(tǒng)主要5部分組成:硬件、Bootloader 、操作系統(tǒng)內(nèi)核、操作系統(tǒng)服務(wù)和用戶應(yīng)用程序。用戶應(yīng)用程序是指那些

18、字處理程序、互聯(lián)網(wǎng)應(yīng)用程序或其它用戶自行編制的各種應(yīng)用程序;操作系統(tǒng)服務(wù)程序是指向用戶提供的系統(tǒng)調(diào)用等接口程序, Bootloader 主要完成硬件檢測和系統(tǒng)引導(dǎo)。操作系統(tǒng)內(nèi)核是操作系統(tǒng)的主要核心部分,是整個系統(tǒng)的靈魂。操作系統(tǒng)服務(wù)程序、操作系統(tǒng)內(nèi)核及Bootloader 被看作是操作系統(tǒng)部分。</p><p><b>  Uboot燒寫</b></p><p>  

19、主要包括編譯Uboot和燒寫Uboot</p><p> ?。?)編譯Uboot</p><p>  Linux虛擬機下建立Uboot目錄</p><p>  mkdir uboot</p><p>  把Uboot源碼包壓縮到uboot目錄下</p><p>  tar xivf u-boot-1.3.2.tar.b

20、z2</p><p>  進入解壓后的目錄,清除原來編譯環(huán)境的依賴關(guān)系</p><p>  make disclean</p><p><b>  配置開發(fā)板</b></p><p>  make uptech_2410class_config</p><p>  class board</

21、p><p><b>  make</b></p><p>  編譯完成后會在當(dāng)前目錄下生成u-boot二進制文件uboot.bin。</p><p> ?。?)燒寫Uboot</p><p>  把整個GIVEIO目錄拷貝到c:/windows下,并把該目錄下的giveio.sys文件拷貝到c:/windows/system

22、32/drivers下。在控制面板的添加硬件中安裝剛才考到C盤下的鏡像文件Giveio,完成硬件的安裝。</p><p>  將sjf2410-s.exe燒寫文件和以上生成的可執(zhí)行文件uboot.bin一同放在D盤下,打開開發(fā)板的電源。進入Doc命令對話框D:\>sjf2410-s.exe /f:u-boot.bin出現(xiàn)圖3-1信息。</p><p>  選擇flash,輸入的參數(shù)為

23、0</p><p>  Select the function to test:0</p><p><b>  信息如下:</b></p><p>  [K9S1208 NAND Flash JTAG Programmer]</p><p>  K9S1208 is detected. ID=0xec76</p&g

24、t;<p>  0:K9S1208 Program 1:K9S1208 Pr BlkPage 2:Exit</p><p>  選擇對flash的兩種功能,同樣選擇0</p><p>  Select the function to test :0</p><p><b>  圖 3-1</b></p>

25、<p><b>  信息如下:</b></p><p>  [SMC(K9S1208V0M) NAND Flash Writing Program]</p><p>  Source size:0h~21237h</p><p>  Available target block number: 0~4095</p>

26、<p>  選擇起始地址,同樣選擇0</p><p>  Input target block number:0</p><p><b>  信息如圖3-2:</b></p><p><b>  圖 3-2</b></p><p>  選擇參數(shù)2,退出燒寫</p><

27、p>  Select the function to test :2</p><p>  此時完成了對Uboot的燒寫工作。重啟開發(fā)板,可以發(fā)現(xiàn)按空格鍵則進入了Uboot環(huán)境下,可以輸入相應(yīng)的命令進行相應(yīng)的操作。顯示如圖3-3:</p><p><b>  圖 3-3</b></p><p>  3.1.2內(nèi)核的裁剪與移植</p&

28、gt;<p>  所謂Linux 移植就是把Linux 操作系統(tǒng)源碼針對具體的目標(biāo)平臺做必要改寫之后,安裝到該目標(biāo)平臺使其正確的運行起來。在Linux 移植的過程中可以通過裁減、修改源碼等達到增強新系統(tǒng)的實時性或者減小新系統(tǒng)的體積等目的。</p><p>  主要步驟:主要包括配置、編譯內(nèi)核(包括配置系統(tǒng)硬件處理器、配置LCD驅(qū)動、配置系統(tǒng)啟動LOGO、配置網(wǎng)卡驅(qū)動、配置文件系統(tǒng)支持、編譯內(nèi)核、生成

29、uImage文件)燒寫內(nèi)核、引導(dǎo)內(nèi)核。</p><p><b>  (1)配置內(nèi)核</b></p><p>  在linux虛擬機下建立kernel目錄 mkdir kernel,將kernel源碼解壓至kernel目錄下,tar -xjvf linux-2.6.24.4.tar.bz2,進入解壓目錄用make menuconfig命令對內(nèi)和進行配置。</p&g

30、t;<p>  配置系統(tǒng)硬件處理器:</p><p>  -> System Type </p><p>  -> S3C2410 Machines</

31、p><p><b>  配置LCD驅(qū)動</b></p><p>  -> Device Drivers -> Graphics support -> Support for frame buffer devices (FB [=y])

32、 </p><p>  配置系統(tǒng)啟動LOGO</p><p>  -> Device Drivers -> Graphics support -> Bootup logo (LOGO [=y])

33、 </p><p><b>  配置網(wǎng)卡驅(qū)動:</b></p><p>  

34、-> Device Drivers -> Network device support (NETDEVICES [=y]) </p><p>  -> Ethernet (10 or 100Mbit) (NET_ETHERNET [=y])</p><p><b>  配置文件系統(tǒng)支持:</b></p><p>

35、  ->File systems ->Miscellaneous filesystems</p><p>  NFS文件系統(tǒng)支持: </p><p>  -> File sys

36、tems -> Network File Systems (NETWORK_FILESYSTEMS [=y])</p><p>  選擇第一項NFS file system support</p><p>  此時,最基本的內(nèi)核就配置好了。</p><p><b>  (2)編譯內(nèi)核:</b></p><p&g

37、t;  進入內(nèi)核源碼跟目錄下輸入make命令編譯內(nèi)核,成功編譯后會在內(nèi)核arch/arm/boot目錄下生成內(nèi)核文件zImage。使用由u-boot生成的工具mkimage,生成uImage文件。執(zhí)行腳本程序make_uImage。</p><p><b>  (3)燒寫內(nèi)核</b></p><p>  打開arm端電源,打開arm終端進入uboot環(huán)境下。修改arm

38、機的IP地址命令:setenv ipaddr 192.168.1.13,修改PC機得到IP地址命令:setenv serverip 192.168.1.11,保存修改后的IP地址命令:saveenv。</p><p>  Windows平臺下tftp服務(wù)的配置:</p><p>  把tftpd32.exe文件和生成的uImage文件放在同一個文件夾下,打開tftpd32.exe,選擇IP

39、地址為192.168.1.11。</p><p>  在arm終端下輸入命令:tftp flash kernel uImage,顯示如圖3-4:</p><p><b>  圖3-4</b></p><p>  擦出nandflash空間:nand erase 0x80000 0x200000</p><p>  寫入

40、nandflash</p><p>  nand write 0x30008000 0x80000 0x200000</p><p>  這樣就把內(nèi)核文件固化到flash中了,arm重啟之后會點擊非空格鍵出現(xiàn)如圖3-5:</p><p><b>  圖3-5</b></p><p>  3.1.3 文件系統(tǒng)的移植與燒寫&

41、lt;/p><p>  Linux是通過把系統(tǒng)支持的各種文件系統(tǒng)鏈接到一個單獨的樹形層次結(jié)構(gòu)中,來實現(xiàn)對多文件系統(tǒng)的支持的。該樹形層次結(jié)構(gòu)把文件系統(tǒng)表示成一個整個的獨立實體。無論什么類型的文件系統(tǒng),都被裝配到某個目錄上,由被裝配的文件系統(tǒng)的文件覆蓋該目錄原有的內(nèi)容。</p><p><b>  (1)配置文件系統(tǒng)</b></p><p>  創(chuàng)建實

42、驗?zāi)夸況ootfs mkdir rootfs ,解壓實驗壓縮包 tar xjvf busybox-1.12.2.tar.bz2,進入busybox源碼目錄,修改該目錄下Makefile文件中的ARCH和CROSS_COMPIL,指定交叉編譯器和目標(biāo)系統(tǒng),與本機的路徑一致:</p><p>  CROSS_COMPILE ?= arm-linux- </p><p><b>  .

43、..</b></p><p>  ARCH ?= arm</p><p>  編譯busybox。先make menuconfig對其進行配置。</p><p><b> ?。?)編譯文件系統(tǒng)</b></p><p>  保存退出,直接make,make install。以看到生成的目錄_install。使用

44、mkcramfs工具將rootfs文件系統(tǒng)目錄制作成CRAMFS根文件系統(tǒng)映像 mkcramfs rootfs root.cramfs,生成root.cramfs根文件系統(tǒng)文件。</p><p> ?。?)燒寫根文件系統(tǒng)</p><p>  拷貝剛剛生生成的根文件系統(tǒng)文件root.cramfs和本機(宿主機)TFTP服務(wù)器tftpd32.exe文件放在同一文件夾下,打開arm終端,進入ub

45、oot控制臺 tftp flash root root.cramfs,顯示如下:</p><p>  擦除NANDFLASH空間:nand erase 280000 400000</p><p>  寫入NANDFLASH:nand write 30008000 280000 400000</p><p>  重啟arm終端點擊非空格鍵,顯示如圖3-6:</p

46、><p><b>  圖3-6</b></p><p>  此時可以輸入相關(guān)命令,入ls可以顯示相關(guān)目錄及文件。</p><p>  此時,linux系統(tǒng)移植與燒寫任務(wù)基本上完成,它們的每一部分少燒寫到arm開發(fā)板的flash相應(yīng)地址中。</p><p><b>  4 設(shè)計體會</b></p&

47、gt;<p>  通過自己動手實踐,學(xué)會了很多嵌入式綜合方面的知識.同時也遇到了很多的問題,在發(fā)現(xiàn)問題和解決問題的過程中,又得到了提高.</p><p>  剛開始實驗時,做的是Linux系統(tǒng)燒寫,一開始雖然看了很多資料,但還是完全找不著頭緒,于是找到指導(dǎo)老師咨詢了一下,經(jīng)老師一介紹,感覺輕松了許多,就很自信的走進了實驗室,這對后來實驗的順利開展奠定了基礎(chǔ),無論做什么事情,心態(tài)最重要!只要通過自己學(xué)

48、習(xí)研究深入了解,問題最終都會解決的!</p><p>  這次實驗是對我的又一次考驗,相信在不斷努力下,一定會飛得更高、走得更遠、站得更穩(wěn)。</p><p>  再次感謝指導(dǎo)老師—張明老師!</p><p><b>  參考文獻</b></p><p>  [1] 孫天澤,袁文菊,張海峰.嵌入式設(shè)計及Linux驅(qū)動開發(fā)

49、指南[M].北京:電子工業(yè)出版社,2005.138-142</p><p>  [2] 田磊.Linux體系結(jié)構(gòu)及嵌入式Linux的移植與應(yīng)用[J].西安郵電學(xué)院學(xué)報,2009年5月第14卷第3期</p><p>  [3] Daniel P.Bovet,Understanding the Linux Kernel(2nd Edition)[M].Oreily,2002.67-98&l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論