在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM的嵌入式linux 內(nèi)核的裁剪與移植

            基于ARM的嵌入式linux 內(nèi)核的裁剪與移植

            作者: 時(shí)間:2009-12-11 來源:網(wǎng)絡(luò) 收藏

            0引言
            微處理器的產(chǎn)生為價(jià)格低廉、結(jié)構(gòu)小巧的CPU和外設(shè)的連接提供了穩(wěn)定可靠的硬件架構(gòu),這樣,限制系統(tǒng)發(fā)展的瓶頸就突出表現(xiàn)在了軟件方面。盡管從八十年代末開始,已經(jīng)陸續(xù)出現(xiàn)了一些操作系統(tǒng)(比較著名的有Vxwork、pSOS、Neculeus和Windows CE)。但這些專用操作系統(tǒng)都是商業(yè)化產(chǎn)品,其高昂的價(jià)格使許多低端產(chǎn)品的小公司望而卻步;而且,源代碼封閉性也大大限制了開發(fā)者的積極性。而Linux的開放性,使得許多人都認(rèn)為L(zhǎng)inux非常適合多數(shù)Intemet設(shè)備。Linux操作系統(tǒng)可以支持不同的設(shè)備和不同的配置。Linux對(duì)廠商不偏不倚,而且成本極低,因而很快成為用于各種設(shè)備的操作系統(tǒng)。是大勢(shì)所趨,其巨大的市場(chǎng)潛力與醞釀的無限商機(jī)必然會(huì)吸引眾多的廠商進(jìn)入這一領(lǐng)域。

            本文引用地址:http://www.biyoush.com/article/152238.htm

            1 嵌入式操作系統(tǒng)
            Linux為嵌入操作系統(tǒng)提供了一個(gè)極有吸引力的選擇,它是個(gè)和Unix相似、以核心為基礎(chǔ)、全內(nèi)存保護(hù)、多任務(wù)、多進(jìn)程的操作系統(tǒng)??梢灾С謴V泛的計(jì)算機(jī)硬件,包括X86、Alpha、Sparc、MIPS、PPC、、NEC、MOTOROLA等現(xiàn)有的大部分芯片。Linux的程序源碼全部公開,任何人都可以根據(jù)自己的需要,以適應(yīng)自己的系統(tǒng)。文章以將920T的s3c2410處理器芯片為例,介紹了嵌入式linux以及過程,文中介紹的基本原理與方法技巧也可用于其它芯片。

            2 內(nèi)核過程
            2.1 建立交叉編譯環(huán)境

            交叉編譯的任務(wù)主要是在一個(gè)平臺(tái)上生成可以在另一個(gè)平臺(tái)上執(zhí)行的程序代碼。不同的CPU需要有不同的編譯器,交叉編譯如同翻譯一樣,它可以把相同的程序代碼翻譯成不同的CPU對(duì)應(yīng)語(yǔ)言。
            交叉編譯器完整的安裝涉及到多個(gè)軟件安裝,最重要的有binutils、gcc、glibc三個(gè)。其中,binutils主要用于生成一些輔助工具;gcc則用來生成交叉編譯器,主要生成arm―linux―gcc交叉編譯工具;glibc主要是提供用戶程序所使用的一些基本的函數(shù)庫(kù)。
            自行搭建交叉編譯環(huán)境通常比較復(fù)雜,而且很容易出錯(cuò)。本文使用的是開發(fā)板自帶的交叉編譯器,即CROSS一3.3.4.交叉編譯器,該編譯只需將光盤中的arm―linux一3.3.4.bar.bz2用tar ixvf arm―linux一3.3.4.bar.bz2命令解壓到/usr/local/arm下即可。
            2.2 修改Makefile
            修改內(nèi)核目錄樹根下的Makefile時(shí),可先指明交叉編譯器。設(shè)計(jì)時(shí),可向Makefile中添加如下內(nèi)容:
            ARCH ?=arm
            CROSS_COMPILE?=arm-linux-然后設(shè)置PATH環(huán)境變量,使其可以找到其交叉編譯工具鏈,然后運(yùn)行vi~/.bashrc,再添加如下內(nèi)容:
            export PATH=/usr/local/arln―linux一3.4.4/bin:$PATH
            2.3 設(shè)置Flash分區(qū)
            此處一共要修改3個(gè)文件,分別如下:
            (1)在arch/arm/machs3c2410/devs.c文件中添加如下內(nèi)容:
            #includelinux/mtd/partitions.h>
            #includelinux/mtd/nand.h>
            #includeasm/arch/nand.h>
            然后再建立Nand Flash分區(qū)表;同時(shí)建立Nand F1ash芯片支持,最后加入Nand Flash芯片并支持到Nand Flash驅(qū)動(dòng)。
            另外,還要修改arch/arm/machs3c2410/devs.C文件中的s3c_device_nand結(jié)構(gòu)體變量,同時(shí)添加對(duì)dev成員的賦值。
            (2)指定啟動(dòng)時(shí)初始化
            內(nèi)核啟動(dòng)時(shí),可以依據(jù)對(duì)分區(qū)的設(shè)置進(jìn)行初始配置,然后修改arch/am4mach―s3c2410/machsmdk2410.e文件下的smdk2410_devices[],指明初始化時(shí)包括在前面所設(shè)置的flash分區(qū)信息,并添加如下語(yǔ)句:
            s3c_device_nand,
            (3)禁止Flash ECC校驗(yàn)
            內(nèi)核一般都是通過UBOOT寫到Nand Flash的。UBOOT則通過軟件ECC算法來產(chǎn)生ECC校驗(yàn)碼,這與內(nèi)核校驗(yàn)的ECC碼不一樣,內(nèi)核中的ECC碼是由中Nand Flash控制器產(chǎn)生的。所以,這里選擇禁止內(nèi)核ECC校驗(yàn)。
            修改drivers/mtd/nand/s3c2410.C 下的s3c2410_nand_init_chip ()函數(shù),可在該函數(shù)體最后加上如下一條語(yǔ)句:
            chip->eccmode=NAND_ECC_NONE;


            3 內(nèi)核配置過程

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

            上一頁(yè) 1 2 3 下一頁(yè)

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉