亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于S3C2410的嵌入式Linux開(kāi)發(fā)環(huán)境的搭建

        2013-02-26 05:40:12
        兵器裝備工程學(xué)報(bào) 2013年5期
        關(guān)鍵詞:宿主機(jī)源碼編譯器

        朱 黎

        (陜西工業(yè)職業(yè)技術(shù)學(xué)院,陜西咸陽(yáng) 712000)

        由于嵌入式產(chǎn)品的大量應(yīng)用和由于Linux具有良好的可裁剪性與可移植性,而且代碼完全公開(kāi),具有豐富的網(wǎng)絡(luò)資源及有力的技術(shù)支持和眾多的研發(fā)力量。因此,嵌入式Linux系統(tǒng)的開(kāi)發(fā)得到廣泛的重視,成為越來(lái)越多的嵌入式系統(tǒng)選擇和開(kāi)發(fā)熱點(diǎn)。一個(gè)完整的嵌入式Linux系統(tǒng)通常由由Bootload、內(nèi)核、文件系統(tǒng)3部分組成,目標(biāo)板上電后由Bootload初始化硬件,引導(dǎo)內(nèi)核和文件系統(tǒng),從而啟動(dòng)Linux。

        嵌入式Linux開(kāi)發(fā)環(huán)境的搭建主要包括:編譯生成Bootloader、裁剪、配置和編譯Kernel Image和Root File System,并將它們燒寫(xiě)到Flash中。

        1 建立Linux交叉編譯環(huán)境

        本系統(tǒng)開(kāi)發(fā)環(huán)境是在宿主機(jī)的vmware虛擬機(jī)中安裝Linux操作系統(tǒng)實(shí)現(xiàn)的。其中Linux操作系系統(tǒng)的開(kāi)發(fā)版本為 RedHat4.0,內(nèi)核版本為 Linux2.6.24。此外,還需要在宿主機(jī)上配置IP地址并關(guān)閉防火墻、相關(guān)的網(wǎng)絡(luò)服務(wù),如NFS網(wǎng)絡(luò)文件系統(tǒng)、TFTP服務(wù)、Samba服務(wù)。而對(duì)應(yīng)的ARM開(kāi)發(fā)板通常稱為目標(biāo)板。GNU編譯器的開(kāi)發(fā)流程如圖1所示。

        圖1 GNU編譯器的開(kāi)發(fā)流程

        圖2 用gcc編譯程序流程

        2 Boot1oader

        Bootloader芯片復(fù)位后進(jìn)入操作系統(tǒng)之前執(zhí)行的一段程序,其作用與PC機(jī)上的BIOS類(lèi)似。Bootloader主要是為運(yùn)行操作系統(tǒng)提供基本的運(yùn)行環(huán)境,如CPU、SDRAM、Flash、串行口等進(jìn)行初始化,也可以下載文件到系統(tǒng)板,對(duì)Flash進(jìn)行擦除與編程。

        2.1 U-Boot移植步驟

        1)建立目錄并解壓u-boot源碼

        2)進(jìn)入解壓后的目錄 u-boot-1.3.2,首先用 make distclean命令清除原來(lái)編譯環(huán)境依賴關(guān)系

        3)配置開(kāi)發(fā)板,編譯u-boot。編譯成功后會(huì)在當(dāng)前目錄下生成u-boot二進(jìn)制文件。

        4)燒寫(xiě)U-Boot

        將編譯得到的u-boot.bin拷貝到PC機(jī)sjf2410-s.exe文件所在的路徑下。連接好開(kāi)發(fā)板的電源、JTAG下載線,然后打開(kāi)電源。在PC機(jī)的DOS命令提示符下,進(jìn)入u-boot.bin所在文件夾,運(yùn)行命令燒寫(xiě)u-boot。

        在燒寫(xiě)中需要做一些選擇,要分別輸入三次0,開(kāi)始燒寫(xiě),燒寫(xiě)完輸入2推出。

        2.2 測(cè)試 U-Boot

        連接好開(kāi)發(fā)板和主機(jī)之間的串口、網(wǎng)口,斷開(kāi)開(kāi)發(fā)板的JTAG下載線,重新啟動(dòng)開(kāi)發(fā)板。如果燒寫(xiě)成功,會(huì)在串口終端上出現(xiàn)如下內(nèi)容:

        3 嵌入式Linux內(nèi)核的裁減和移植

        3.1 內(nèi)核配置

        1)修改Makefile文件

        在配置內(nèi)核之前需要修改 linux-2.6.24.2目錄下的Makefile文件,指定交叉編譯器為arm-linux-編譯器和使用ARM體系結(jié)構(gòu)。

        使用vi編輯器打開(kāi)Makefile文件,作如下修改。

        2)配置內(nèi)核

        內(nèi)核源碼必須先進(jìn)行配置才能編譯。通常內(nèi)核的配置有以下4 中方法:make config、make xconfi、make menuconfig和make gconfig。

        得到.config文件,運(yùn)行“make menuconfig”命令打開(kāi)內(nèi)核配置界面如圖3所示。設(shè)置S3C2410 Machines、Nand Flash、網(wǎng)卡、文件系統(tǒng)等相關(guān)配置信息。

        圖3 內(nèi)核配置界面

        3.2 內(nèi)核編譯

        1)編譯內(nèi)核映像和模塊

        如果內(nèi)核已經(jīng)編譯過(guò)多次,需進(jìn)入內(nèi)核根目錄清除原先殘留的.config和.o文件。然后用make命令進(jìn)行編譯。編譯成功,在內(nèi)核源碼根目錄的arch/arm/boot下生成zImage文件。

        2)生成uImage文件

        使用由u-boot生成的工具mkimage,生成uImage文件。執(zhí)行腳本程序make_uImage此時(shí)會(huì)在內(nèi)核源碼根目錄下生成uImage內(nèi)核文件。

        3.3 燒寫(xiě)Linux內(nèi)核

        1)配置IP地址。設(shè)置宿主機(jī)即TFTP服務(wù)器端機(jī)器IP為 setenv serverip 192.168.1.12,設(shè)置 ARM 端 U-BOOT 中網(wǎng)絡(luò)設(shè)備 IP 地址 setenv ipaddr 192.168.1.13,saveenv保存設(shè)置。

        2)將生成的uImage文件拷貝到tftpboot目錄下

        3)下載到SDRAM。運(yùn)行tftp 0x30008000 uImage命令,將uImage文件下載到ARM開(kāi)發(fā)板的SDRAM中0x30008000開(kāi)始的空間中。

        4)擦除NANDFLASH空間,寫(xiě)入Nand Flash。

        3.4 引導(dǎo)內(nèi)核

        重啟ARM開(kāi)發(fā)板,執(zhí)行命令“bootm”,實(shí)現(xiàn)U-BOOT引導(dǎo)內(nèi)存中的內(nèi)核。啟動(dòng)后液晶屏左上角出現(xiàn)小企鵝圖案。

        4 文件系統(tǒng)

        Root Filesystem(根文件系統(tǒng))是ARM Linux正常運(yùn)行的必要組成部分。創(chuàng)建文件系統(tǒng)后,應(yīng)用程序?qū)and-Flash存儲(chǔ)設(shè)備的讀寫(xiě)操作就好像對(duì)MS-DOS文件系統(tǒng)的磁盤(pán)設(shè)備操作一樣。目前Linux支持多種文件系統(tǒng),主要包括Romfs、Cramfs、JFFS和 JFFS2等。

        4.1 建立根文件系統(tǒng)

        1)創(chuàng)建根文件目錄rootfs

        2)使用busybox工具創(chuàng)建文件系統(tǒng)

        a)將已有的busybox-1.12.2壓縮包拷貝到根目錄下并解壓

        b)修改Makefile文件,支持交叉編譯

        修改該目錄下Makefile文件中的ARCH和CROSS_COMPIL,指定交叉編譯器和目標(biāo)系統(tǒng),與本機(jī)的路徑一致。

        c)編譯busybox

        執(zhí)行命令make menuconfig進(jìn)入busybox如圖4所示配置界面設(shè)置相關(guān)選項(xiàng)并保存。

        圖4 busybox的配置界面

        d)用make,make install進(jìn)行編譯生成_install目錄

        至此busybox工具編譯完成,生成了文件系統(tǒng)需要的相關(guān)命令和工具在_install目錄下。用戶也可以根據(jù)需要,在busybox中添加刪除相關(guān)命令和工具。

        創(chuàng)建根文件系統(tǒng)的其它目錄結(jié)構(gòu),如 etc、dev、lib、mnt等,并添加相關(guān)配置文件與設(shè)備節(jié)點(diǎn)。也可直接解壓rootfs壓縮包,生成rootfs根目錄樹(shù)。

        3)復(fù)制_install文件夾內(nèi)容

        將“/home/uptech/rootfs/busybox-1.12.2/_install”的全部?jī)?nèi)容復(fù)制到“/home/uptech/rootfs”中。

        4)使用mkcramfs工具將rootfs文件系統(tǒng)目錄制作成CRAMFS根文件系統(tǒng)映像生成root.cramfs根文件系統(tǒng)文件。

        4.2 燒寫(xiě)根文件系統(tǒng)

        1)將生成的根文件系統(tǒng)文件root.cramfs到宿主機(jī)TFTP服務(wù)器下載目錄/tftpboot

        2)配置宿主機(jī)和目標(biāo)機(jī)的網(wǎng)絡(luò)IP,啟動(dòng)ARM設(shè)備,進(jìn)入U(xiǎn)-Boot控制臺(tái)

        3)下載到SDRAM

        4.3 啟動(dòng)LINUX系統(tǒng),掛載根文件系統(tǒng)

        在U-BOOT中輸入boot目錄引導(dǎo)系統(tǒng)。

        輸入root用戶名稱,系統(tǒng)順利引導(dǎo)運(yùn)行起來(lái)了。

        5 結(jié)束語(yǔ)

        本章主要設(shè)計(jì)完成系統(tǒng)設(shè)計(jì)所需要的開(kāi)發(fā)環(huán)境的搭建。首先給出了嵌入式Linux開(kāi)發(fā)環(huán)境主要過(guò)程。其中介紹了GNU編譯器和gcc編譯工具的基本結(jié)構(gòu)及gcc編譯程序的基本能流程。然后詳細(xì)的介紹了Bootloader操作模式、啟動(dòng)過(guò)程和U-Boot移植、測(cè)試。此外介紹Linux內(nèi)核的裁減、配置、編譯和燒寫(xiě),及根文件系統(tǒng)建立、編譯、配置和燒寫(xiě)過(guò)程。

        [1] 高強(qiáng),鄭曉慶,陳敏.嵌入式Linux的家用無(wú)線遠(yuǎn)程監(jiān)控系統(tǒng)[J].自動(dòng)化與儀表,2010(5):47 -50.

        [2] 呂盛林,林子杰,陳立定.基于ARM9的無(wú)線環(huán)境監(jiān)控系統(tǒng)的實(shí)現(xiàn)[J].信息技術(shù),2009(12):17-20.

        [3] 何永琪.嵌入式Linux系統(tǒng)實(shí)用開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2010:13 -24.

        [4] 楊宗德.嵌入式ARM系統(tǒng)原理與實(shí)訓(xùn)開(kāi)發(fā)[M].第2版.北京:電子工業(yè)出版社,2010.

        [5] 華清軟件嵌入式培訓(xùn)中心.嵌入式Linux應(yīng)用程序開(kāi)發(fā)標(biāo)準(zhǔn)教程[M].第2版.北京:人民郵電出版社,2010:109-114.

        [6] 薛園園.21天學(xué)通Linux嵌入式開(kāi)發(fā)[M].北京:電子工業(yè)出版社,2010:51 -52.

        [7] 楊水清,張劍,施云飛.ARM嵌入式Linux系統(tǒng)開(kāi)發(fā)技術(shù)詳解[M].北京:電子工業(yè)出版社,2010.

        [8] 韋東山.嵌入式Linux應(yīng)用開(kāi)發(fā)完全手冊(cè)[M].北京:人民郵電出版社,2009.

        (責(zé)任編輯楊繼森)

        猜你喜歡
        宿主機(jī)源碼編譯器
        基于網(wǎng)頁(yè)源碼結(jié)構(gòu)理解的自適應(yīng)爬蟲(chóng)代碼生成方法
        基于圖神經(jīng)網(wǎng)絡(luò)的軟件源碼漏洞檢測(cè)方法
        企業(yè)如何保護(hù)源碼
        基于相異編譯器的安全計(jì)算機(jī)平臺(tái)交叉編譯環(huán)境設(shè)計(jì)
        虛擬網(wǎng)絡(luò)實(shí)驗(yàn)室在農(nóng)村職校計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)教學(xué)中的應(yīng)用研究
        嵌入式計(jì)算機(jī)軟件測(cè)試關(guān)鍵技術(shù)的思考
        基于數(shù)據(jù)結(jié)構(gòu)教輔系統(tǒng)的實(shí)驗(yàn)課程改革
        嵌入式計(jì)算機(jī)軟件測(cè)試關(guān)鍵技術(shù)研究
        通用NC代碼編譯器的設(shè)計(jì)與實(shí)現(xiàn)
        在不連接網(wǎng)線的情況下Windows與VM之間如何ping通
        77777_亚洲午夜久久多人| 中文字幕亚洲精品人妻| 人妻系列少妇极品熟妇| 亚洲一区二区三区特色视频| 亚洲精品久久一区二区三区777| 欧美做受视频播放| 国产在线白浆一区二区三区在线| 国产一区二区三区十八区| 免费无遮挡无码永久视频| 少妇对白露脸打电话系列| 在线亚洲AV不卡一区二区| 成人国产av精品麻豆网址| 久久久久国色av免费观看性色| 国产精品成人99一区无码| 国产精品女同久久免费观看 | 自拍偷拍亚洲视频一区二区三区| 伊人情人色综合网站| 好看的欧美熟妇www在线| 亚洲精品综合第一国产综合| 国产精品女人一区二区三区| 久久精品一区午夜视频| 国模欢欢炮交啪啪150| 国产亚洲女在线线精品| 亚洲福利一区二区不卡| 日韩欧美在线综合网另类| 国产乱人伦av在线无码| 亚洲日本无码一区二区在线观看| 久久精品国产熟女亚洲av麻豆| 日本无码欧美一区精品久久 | 国产丝袜在线精品丝袜不卡| 亚洲男人在线天堂av| 色窝窝亚洲av网在线观看| 亚洲国产精品久久久久秋霞影院| 69国产成人综合久久精| 国产一区二区精品人妖系列在线| 无码精品人妻一区二区三区av| 夜夜综合网| 亚洲专区一区二区三区四区五区| 亚洲色图片区| 色婷婷日日躁夜夜躁| 国产91熟女高潮一曲区|