![嵌入式系統(tǒng)開(kāi)發(fā)實(shí)驗(yàn)_第1頁(yè)](http://file4.renrendoc.com/view/2bc8fdab11a452b467d99c03cc4f2fdc/2bc8fdab11a452b467d99c03cc4f2fdc1.gif)
![嵌入式系統(tǒng)開(kāi)發(fā)實(shí)驗(yàn)_第2頁(yè)](http://file4.renrendoc.com/view/2bc8fdab11a452b467d99c03cc4f2fdc/2bc8fdab11a452b467d99c03cc4f2fdc2.gif)
![嵌入式系統(tǒng)開(kāi)發(fā)實(shí)驗(yàn)_第3頁(yè)](http://file4.renrendoc.com/view/2bc8fdab11a452b467d99c03cc4f2fdc/2bc8fdab11a452b467d99c03cc4f2fdc3.gif)
![嵌入式系統(tǒng)開(kāi)發(fā)實(shí)驗(yàn)_第4頁(yè)](http://file4.renrendoc.com/view/2bc8fdab11a452b467d99c03cc4f2fdc/2bc8fdab11a452b467d99c03cc4f2fdc4.gif)
![嵌入式系統(tǒng)開(kāi)發(fā)實(shí)驗(yàn)_第5頁(yè)](http://file4.renrendoc.com/view/2bc8fdab11a452b467d99c03cc4f2fdc/2bc8fdab11a452b467d99c03cc4f2fdc5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
嵌入式系統(tǒng)開(kāi)發(fā)實(shí)驗(yàn)121180166趙琛一實(shí)驗(yàn)?zāi)康?了解嵌入式系統(tǒng)的開(kāi)發(fā)環(huán)境、內(nèi)核的下載和啟動(dòng)過(guò)程?了解Linux內(nèi)核源代碼的目錄結(jié)構(gòu)及各目錄的相關(guān)內(nèi)容?了解Linux內(nèi)核各配置選項(xiàng)內(nèi)容和作用?掌握Linux內(nèi)核的編譯過(guò)程?了解嵌入式操作系統(tǒng)中文件系統(tǒng)的類型和作用?了解JFFS2文件系統(tǒng)的優(yōu)點(diǎn)及其在嵌入式系統(tǒng)中的作用?掌握利用BusyBox軟件制作嵌入式文件系統(tǒng)的方法?掌握嵌入式Linux文件系統(tǒng)的的掛載過(guò)程二實(shí)驗(yàn)內(nèi)容和要求?掌握將linux內(nèi)核和文件系統(tǒng)下載到開(kāi)發(fā)板的過(guò)程?學(xué)會(huì)linux內(nèi)核的配置與編譯?了解嵌入式文件系統(tǒng)的構(gòu)建三實(shí)驗(yàn)設(shè)計(jì)思想3.1硬件部分嵌入式實(shí)驗(yàn)系統(tǒng)x210v3是基于45nm工藝S5PV210芯片的開(kāi)發(fā)平臺(tái)。核心處理器S5PV210為Cortex-A8架構(gòu),主頻可到1GHz,支持1GiBDDR2,片內(nèi)32KiBI/D緩存及512KiB二級(jí)緩存,PowerVRSGX540圖形加速引擎,支持MPEG4、H.263、H.2641080P@30fps編碼及MPEG41080P@30fps解碼,HDMI/TV-OUT,引腳間距0.65mm,17X17mmFBGA封裝。x210v3由核心板,底板和液晶板三大塊組成,心板采用8層板工藝設(shè)計(jì),底板留有豐富的外設(shè)接口,幾乎具備210所有功能的調(diào)試,液品板采用7口寸電容觸摸屏。3.2軟件部分bootloaderBootLoader的主要運(yùn)行任務(wù)就是將內(nèi)核映像從硬盤上讀到RAM中,然后跳轉(zhuǎn)到內(nèi)核的入口點(diǎn)去運(yùn)行,也即開(kāi)始啟動(dòng)操作系統(tǒng)。bootloader的主要作用是:初始化硬件設(shè)備;建立內(nèi)存空間的映射圖;完成內(nèi)核的加載,為內(nèi)核設(shè)置啟動(dòng)參數(shù)。串口設(shè)置(minicom)多數(shù)嵌入式系統(tǒng)都通過(guò)異步串行接口(UART)進(jìn)行初級(jí)引導(dǎo)。這種通信方式是將字符一位一位地傳送,一般是先低位、后高位。因此,采用串行方式,雙方最少可以只用一對(duì)連線便可實(shí)現(xiàn)全雙工通信。字符與字符之間的同步靠每個(gè)字框的起始位協(xié)調(diào),而不需要雙方的時(shí)鐘頻率嚴(yán)格一致,因此實(shí)現(xiàn)比較容易。tftptftp是基于UDP協(xié)議的簡(jiǎn)單文件傳輸協(xié)議。目標(biāo)板作為客戶機(jī),bootloader默認(rèn)采用tftp協(xié)議。主機(jī)安裝tftp-server,作為tftp服務(wù)器。4編譯規(guī)則Makefile利用makemenuconfig(或makeconfig、makexconfig)對(duì)1inux內(nèi)核進(jìn)行配置后,系統(tǒng)將產(chǎn)生配置文件“.config”。之前的配置文件備份到“.config.old”,以便用makeoldconfig恢復(fù)上一次的配置。5文件系統(tǒng)常用的文件系統(tǒng)有ext、NFS、JFFS2、YAFFS2、Ramdisk等。6busyboxBusybox最終編譯成一個(gè)叫做busybox獨(dú)立執(zhí)行程序,并且可以根據(jù)配置,執(zhí)行ashshell的功能,包含幾十個(gè)小應(yīng)用程序:mini-vi編輯器、系統(tǒng)不可或缺的/sbin/init程序,以及其他諸如文件操作、目錄操作、系統(tǒng)配置等等°BusyBox具有全部這些功能,大小也不過(guò)幾百K左右。而且用戶還可以根據(jù)自己的需要對(duì)BusyBox的應(yīng)用程序功能進(jìn)行剪裁,使BusyBox的規(guī)模進(jìn)一步縮小。四實(shí)驗(yàn)記錄與分析本次實(shí)驗(yàn)分為三部分:1進(jìn)行嵌入式系統(tǒng)開(kāi)發(fā)實(shí)驗(yàn)流程熟悉2內(nèi)核編譯與配置3文件系統(tǒng)構(gòu)建。以下將按照實(shí)際實(shí)驗(yàn)213的順序進(jìn)行。4.1內(nèi)核編譯與配置4.1.1內(nèi)核的配置的基本結(jié)構(gòu)Linux內(nèi)核的配置系統(tǒng)由四個(gè)部分組成:Makefile:分布在Linux內(nèi)核源碼中的Makefile,定義Linux內(nèi)核的編譯規(guī)則。頂層Makefile是整個(gè)內(nèi)核配置、編譯的總體控制文件;配置文件config.in:給用戶提供配置選擇的功能?!?config”是內(nèi)核配置文件,包括由用戶選擇的配置選項(xiàng),用來(lái)存放內(nèi)核配置后的結(jié)果;配置工具:包括對(duì)配置腳本中使用的配置命令進(jìn)行解釋的配置命令解釋器和配置用戶界面(基于字符界面:makeconfig,基于ncurses界面:makemenuconfig,基于X-Window圖形界面:makexconfig);Rules.make:規(guī)則文件,被所有的Makefile使用。4.1.2內(nèi)核配置與編譯步驟:1、解壓內(nèi)核源代碼tarxvf命令2、makemenuconfig這一步是進(jìn)行內(nèi)核配置。但是事實(shí)上,由于需要配置的東西太多,我們很難完成,因此參考了老師給出的.config文件,并將其覆蓋了原來(lái)內(nèi)核的.config文件。對(duì)于內(nèi)核配置,關(guān)鍵的一步在于選擇對(duì)系統(tǒng)類型。本次實(shí)驗(yàn)我們需要選擇的是SystemTypewithS5PV210O在進(jìn)行內(nèi)核配置的時(shí)候,需要考慮到很多硬件部分,而內(nèi)核有些部分是有待改進(jìn)的,例如usb2.0中使用到關(guān)于usb1.0的東西,因此非常容易配置不成功。在配置時(shí),有不同選項(xiàng)y—表示本編譯選項(xiàng)對(duì)應(yīng)的內(nèi)核代碼被靜態(tài)編譯進(jìn)Linux內(nèi)核;m—表示本編譯選項(xiàng)對(duì)應(yīng)的內(nèi)核代碼被編譯成模塊;n—表示不選擇此編譯選項(xiàng);如果根本就沒(méi)有選擇,那么配置變量的值為空。makeclean清除以前構(gòu)核所產(chǎn)生的所有的目標(biāo)文件、模塊文件、核心以及一些臨時(shí)文件等,不產(chǎn)生任何新文件。make這一步就是在編譯內(nèi)核。由于實(shí)驗(yàn)室主機(jī)是4核的,因此在編譯內(nèi)核時(shí),我們可以使用命令make-j4來(lái)并行編譯從而提高效率。我們可以觀察到,使用j4命令后編譯速度明顯加快。makezImage這一步生成了內(nèi)核的鏡像文件。這時(shí)我們就完成了對(duì)于內(nèi)核的配置與編譯。4.2文件系統(tǒng)的構(gòu)建4.2.1關(guān)于ramdisk文件系統(tǒng)使用內(nèi)存的一部份空間來(lái)模擬一個(gè)硬盤分區(qū),這樣構(gòu)成的文件系統(tǒng)就是ramdisk。將ramdisk用作根文件系統(tǒng)在嵌入式Linux中是一種常用的方法。因?yàn)樵趓am上運(yùn)行,讀寫速度快;用gzip算法進(jìn)行壓縮,可節(jié)省存儲(chǔ)空間。但它也有缺點(diǎn):由于將內(nèi)存的一部分用作ramdisk,這部分內(nèi)存不能再作其他用途;此外系統(tǒng)運(yùn)行是更新的內(nèi)容無(wú)法保存,系統(tǒng)關(guān)機(jī)后內(nèi)容將丟失。4.2.2配置文件系統(tǒng)步驟1解壓縮busybox源代碼tarxvfmakemenuconfig這一步也是配置文件系統(tǒng)選項(xiàng),但是為了能夠迅速準(zhǔn)確的成功,我借用了老師配置好的.config文件,并覆蓋了原來(lái)文件系統(tǒng)的.Config文件。在這個(gè)配置文件中,要注意選擇靜態(tài)編譯,并且加上編譯器前綴(arm-2009q3-gcc)。make-j4編譯文件系統(tǒng)makeinstall進(jìn)入_install(cd_install)目錄6在這個(gè)目錄下建立etc文件夾,建立inittab、rc、motd三個(gè)文件。/etc/inittab:此文件由系統(tǒng)啟動(dòng)程序init讀取并解釋執(zhí)行。以#開(kāi)頭的行是注釋行。#/etc/inittab::sysinit:/etc/init.d/rcS〃為init提供初始化路徑,將/etc/init.d/rcS〃設(shè)置為系統(tǒng)的初始化文件::askfirst:-/bin/sh//將促使init在控制臺(tái)上顯示:pleaseressEnterto//activethisconsole的信息,并在重新啟動(dòng)進(jìn)程之前//等待用戶按下Enter鍵,最重要的并且能夠順利進(jìn)入//shell::once:/usr/sbin/telnetd-l/bin/login//僅執(zhí)行相應(yīng)的進(jìn)程(即telnet登//陸)一次,而且不會(huì)等待它的完成::ctrlaltdel:/sbin/reboot//當(dāng)按下Ctrl+Alt+Del鍵時(shí),重啟::shutdown:/bin/umount-a-r//當(dāng)系統(tǒng)關(guān)機(jī)時(shí),進(jìn)行卸載。/etc/rc:這是一個(gè)腳本文件。此文件要求可執(zhí)行屬性,用命令“chmod+xrc”修改其屬性。rc文件和其他腳本文件(.sh)第一行的#不是注釋。#!/bin/shhostnamex210mount-tprocproc/proc/bin/cat/etc/motd/etc/motdWelcometoARM-LINUXWORLDx210v3@S5PV210/Cortex-A8protedby121180166ZhaoChen此文件內(nèi)容隨意,由/etc/rc調(diào)用打印在終端上。7在etc目錄下再創(chuàng)建init.d目錄,并將/etc/rc向/etc/init.d/rcS做符號(hào)鏈接。此文件為inittab指定的啟動(dòng)腳本:$mkdirinit.d$cdinit.d$ln-s../rcrcS8創(chuàng)建dev目錄,并在該目錄下建立必要的設(shè)備:$mknodconsolec51$mknodnullc13$mknodzeroc159建立proc空目錄,供proc文件系統(tǒng)使用。10建立lib目錄,將交叉編譯器鏈接庫(kù)路徑下的下面幾個(gè)庫(kù)復(fù)制到lib目錄:ld-2.10.1.so,libc-2.10.1.so,libm-2.10.1.so并做相應(yīng)的符號(hào)鏈接:ln-sld-2.10.1.sold-linux.so.3ln-slibc-2.10.1.solibc.so.6ln-slibm-2.10.1.solibm.so.6至此文件系統(tǒng)目錄構(gòu)造完畢。從根目錄看下去,應(yīng)該至少有下面幾個(gè)目錄:bindevetcliblost+foundmntprocsbin它們是下面制作文件系統(tǒng)的基礎(chǔ)。接下來(lái)我們要進(jìn)行ramdisk文件映像的制作。11為了生成并修改ramdisk,需要在主機(jī)上創(chuàng)建一個(gè)空文件并將它格式化ext2fs文件系統(tǒng)映像。格式化后的文件就可以像普通文件系統(tǒng)一樣在主機(jī)上進(jìn)行掛載和卸載。掛載后可以進(jìn)行正常的文件和目錄操作,卸載后,如果原映像文件仍然在,則更新到卸載之前的操作內(nèi)容。$ddif=/dev/zeroof=ramdisk_imgbs=1kcount=8192$sbin/mke2fsramdisk_img12下面我們進(jìn)行掛在與卸載$mountramdisk_img將_install目錄下除dev外內(nèi)容拷貝到/mnt/ramdisk下,并且在此時(shí)建立dev目錄和相關(guān)設(shè)備文件$umount/mnt/ramdisk此時(shí)的ramdisk文件已經(jīng)是一個(gè)完整獨(dú)立的文件系統(tǒng)映像。13最后我們進(jìn)行壓縮,從而生成gzip文件$gzipramdisk_img這樣我們就完成了一個(gè)文件系統(tǒng)的制作。4.3將內(nèi)核與文件系統(tǒng)寫進(jìn)開(kāi)發(fā)板我們這時(shí)候首先需要打開(kāi)串口通信軟件minicom,并且按照要求配置好(事實(shí)上之前已經(jīng)被配置好)然后寫入以下命令setenvipaddr41//開(kāi)發(fā)板地址setenvserverip1〃主機(jī)地址#以上兩行配置了初始網(wǎng)絡(luò)地址
tftp0xc000800zIMagetftp0x40000000ramdisk_img_zc.gz#在目標(biāo)機(jī)中下載編譯好的內(nèi)核和文件系統(tǒng)映像,其中文件系統(tǒng)鏡像的名稱是為了聲明是我自己的文件系統(tǒng)bootm0xc0008000#啟動(dòng)內(nèi)核執(zhí)行完這個(gè)命令之后,我們可以看到顯示出如下畫(huà)面:心RM-LINUXWORLDprotedby121180166ZhaoChen心RM-LINUXWORLDprotedby121180166ZhaoChen2.919846]2.925522]2.931466]2.941937]2.945763]2.949853]2.952505]2.959187]2.970210]2.973749]3.167228]3.171719]Melcometoreguiator_init_compIete:disablingpd_cam_supplysmdkcllO-rtcsmdkcllO-rtc:rtcdisabled,re-enablingsmdkcllO-rtcsmdkcllO-rtc:settingsystemclockto2010-01-0112)FIMCOregisteredsuccessfullyFIMC1registeredsuccessfullyFIMC2registeredsuccessfully<6>S5PC1XXTVOUTDriver,(c)2009SamsungElectronicss5p-tvouts5p-tvout:hpdstatusiscableremovedDBUG_PORTmustnotuseAFC!RAMDISK:gzipimagefoundatblock0VFS:Mountedroot(ext2filesystem)ondevice1:0.Freeinginitmemory:540Kx210v3之后按回車鍵即可進(jìn)入目標(biāo)機(jī)的shell進(jìn)行操作。五、實(shí)驗(yàn)思考題5.1為何使用普通gcc編譯的程序不能在開(kāi)發(fā)板運(yùn)行?答:因?yàn)閍rm平臺(tái)開(kāi)發(fā)板所使用編譯器編譯方式與普通編譯不同,主機(jī)使用x86體系,而開(kāi)發(fā)板使用arm體系。如果想要在ARM平臺(tái)編譯通過(guò),應(yīng)該使用arm-none-linux-gnueabi-gcc編譯命令。5.2歸納總結(jié)嵌入式系統(tǒng)下軟件開(kāi)發(fā)的一般流程答:1主機(jī)編寫程序并使用特定交叉編譯器編譯2將程序復(fù)制到對(duì)應(yīng)掛載文件夾內(nèi)3在開(kāi)發(fā)板進(jìn)行運(yùn)行測(cè)試5.3總結(jié)內(nèi)核映像文件的生成方法及對(duì)操作系統(tǒng)的作用答:簡(jiǎn)單的內(nèi)核配置和編譯過(guò)程通常是makemenuconfigf選項(xiàng)配置fmakecleanfmakedep(kernel2.4)fmakefmakezImage。5.4內(nèi)核配置中,哪些選項(xiàng)對(duì)操作系統(tǒng)的正常啟動(dòng)是必須的?答:systemtype;characterdevice|中板irtualterminal,supportforconsoleonserialsupport;upportforconsolonvirtualterminal;filssystem5.5比較romfs、ext2fs/ext3fs、JFFS2等文件系統(tǒng)的優(yōu)缺點(diǎn)答:romfs:優(yōu)點(diǎn):相對(duì)簡(jiǎn)單、占用空間較小。內(nèi)核支持romfs需要比ext2更少的代碼,在嵌入式設(shè)備常用,有體積小,可靠性高,讀取速度快等優(yōu)點(diǎn)。同時(shí)支持目錄,符號(hào)鏈接,硬鏈接,設(shè)備文件。缺點(diǎn):只是可讀文件系統(tǒng),禁止寫操作,因此系統(tǒng)同時(shí)需要ramdisk來(lái)支持臨時(shí)文件和數(shù)據(jù)文件的存儲(chǔ)。extfs2:可以實(shí)現(xiàn)快速符號(hào)鏈接,類似于windows文件系統(tǒng)的快捷方式,可將目標(biāo)名稱直接存儲(chǔ)在索引節(jié)點(diǎn)表中,提高訪問(wèn)速度;支持內(nèi)存4TB,文件名可1024字符;管理者在創(chuàng)建系統(tǒng)文件時(shí)根據(jù)需要存儲(chǔ)邏輯塊的大小。這種系統(tǒng)穩(wěn)定,可靠,健壯,在臺(tái)式機(jī)、服務(wù)器、工作站普遍使用。缺點(diǎn):占用空間比romfs大。Jffs2:支持?jǐn)?shù)據(jù)壓縮,支持多種文件節(jié)點(diǎn)類型,是一種基于Flash的日志文件系統(tǒng),提高了對(duì)山村的利用率,降低了內(nèi)存的損耗。通過(guò)jffs2,可以通過(guò)flash來(lái)存儲(chǔ)數(shù)據(jù),將Flash當(dāng)作
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025安裝工程技術(shù)咨詢合同
- 2025合同模板店面轉(zhuǎn)讓合同雙方范本
- 2025合同模板城市建筑垃圾處理特許經(jīng)營(yíng)協(xié)議示范文本范本
- 防水購(gòu)銷合同范本年
- 比賽租賃游泳池合同書(shū)
- 工程款結(jié)算合同年
- 防水裝修合同協(xié)議書(shū)
- 紗線采購(gòu)合同
- 無(wú)息借款合同
- 有關(guān)廚房承包合同
- 小學(xué)六年級(jí)數(shù)學(xué)上冊(cè)《簡(jiǎn)便計(jì)算》練習(xí)題(310題-附答案)
- 地理標(biāo)志培訓(xùn)課件
- 2023行政主管年終工作報(bào)告五篇
- 2024年中國(guó)養(yǎng)老產(chǎn)業(yè)商學(xué)研究報(bào)告-銀發(fā)經(jīng)濟(jì)專題
- 培訓(xùn)如何上好一堂課
- 高教版2023年中職教科書(shū)《語(yǔ)文》(基礎(chǔ)模塊)下冊(cè)教案全冊(cè)
- 2024醫(yī)療銷售年度計(jì)劃
- 稅務(wù)局個(gè)人所得稅綜合所得匯算清繳
- 人教版語(yǔ)文1-6年級(jí)古詩(shī)詞
- 上學(xué)期高二期末語(yǔ)文試卷(含答案)
- 人教版英語(yǔ)七年級(jí)上冊(cè)閱讀理解專項(xiàng)訓(xùn)練16篇(含答案)
評(píng)論
0/150
提交評(píng)論