中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 關(guān) 閉

        新聞中心

        EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 現(xiàn)場(chǎng)總線的開關(guān)量I/O模塊設(shè)計(jì):操作系統(tǒng)移植與驅(qū)動(dòng)開發(fā)

        現(xiàn)場(chǎng)總線的開關(guān)量I/O模塊設(shè)計(jì):操作系統(tǒng)移植與驅(qū)動(dòng)開發(fā)

        作者: 時(shí)間:2013-05-27 來源:網(wǎng)絡(luò) 收藏

        5.3.3嵌入式Linux的

        在同一個(gè)硬件平臺(tái)上可以嵌入不同的嵌入式,就好比PC既可以安裝Windows又 可以安裝Linux一樣。同樣,有些經(jīng)過后可以運(yùn)行在不同的硬件平臺(tái)上。如果一個(gè)系統(tǒng)可以在不同硬件平臺(tái)上運(yùn)行,那么這個(gè)系統(tǒng)就是可的。 使某一個(gè)平臺(tái)的代碼運(yùn)行在其他平臺(tái)上的。過程叫做移植。

        在Linux系統(tǒng)內(nèi)核代碼中有arch目錄,其中包含了不同平臺(tái)(包括i386、 ARM)的代碼,arch目錄中的代碼是為多平臺(tái)并使用的,與體系結(jié)構(gòu)相關(guān)的代碼都存放在arch//和 include/asm-/目錄中,architecture是Linux支持的體系結(jié)構(gòu)的簡(jiǎn)稱。例如,ARM體系結(jié)構(gòu)對(duì)應(yīng)的簡(jiǎn)稱是arm.與這種體系結(jié) 構(gòu)相關(guān)的代碼都存放在arch/arm/以及include/asm-arm /目錄下。嵌入式系統(tǒng)是“硬件可剪裁”的,因此工程師的硬件電路會(huì)有所不同,從而這些代碼可能無法正確運(yùn)行(比如內(nèi)核解壓的地址不同)。因此,在剪裁 系統(tǒng)內(nèi)核是必須結(jié)合硬件電路對(duì)內(nèi)核代碼進(jìn)行修改移植。

        本系統(tǒng)采用Linux2.6.12,Samsung S3C2440已經(jīng)成為Linux的一個(gè)標(biāo)準(zhǔn)支持平臺(tái),對(duì)內(nèi)核做簡(jiǎn)單的修改和配置后,無需任何其他的patch就可以在S3C2440的目標(biāo)板上運(yùn)行得很好。

        (1)針對(duì)內(nèi)核源碼的修改

        設(shè)置flash分區(qū)

        內(nèi)核對(duì)flash分區(qū)的支持是內(nèi)核移植成功的一個(gè)關(guān)鍵步驟,一共要修改三個(gè)文件,分別如下:

        指明分區(qū)信息

        在arch/arm/machs3c2410/devs.c文件中,添加如下內(nèi)容:

        /**************增加的頭文件**************/

        # include linux/mtd/partitions.h>

        #include asm/arch/nand.h>

        #include linux/mtd/nand.h>

        /**************建立NANDFlash分區(qū)表**************/

        ●指定啟動(dòng)時(shí)初始化在

        arch/arm/machs3c2410/machsmdk2410.c目錄,kernel啟動(dòng)時(shí)依據(jù)對(duì)分區(qū)的設(shè)置進(jìn)行初始配置,修改smdk_devices[]:指明初始化時(shí)包括前面所設(shè)置的flash分區(qū)信息,

        static struct platform_device*smdk2410_devices[]__initdata={

        3c_device_usb,

        3c_device_lcd,

        3c_device_wdt,

        3c_device_i2c,

        3c_device_iis,

        3c_device_nand,/*添加該語句即可*/

        };

        ●禁止Flash ECC校驗(yàn)kernel是通過bootloader寫到Nand Flash的,bootloader通過軟件ECC算法產(chǎn)生ECC校驗(yàn)碼。這與內(nèi)核校驗(yàn)的ECC碼不一樣,內(nèi)核中的ECC碼是由S3C2440中的Nand Flash控制器產(chǎn)生的。

        修改drivers/mtd/nand/s3c2410.c文件:找到s3c2410_nand_init_chip( )函數(shù),在該函數(shù)體最后加上如下語句。

        chip ->eccmode = NAND_ECC_NONE ;

        (2)內(nèi)核配置及編譯

        主要是在make menuconfig中設(shè)置CPU以及設(shè)備相關(guān)的配置信息,可以參考SMKD2410平臺(tái)上的有關(guān)配置,除了自定義的文件系統(tǒng)以及命令行參數(shù)外,基本上有關(guān)S3C2410處理器平臺(tái)上的配置均相同,在虛擬機(jī)上配置界面如圖5.2所示。

        根目錄下只需修改Makefile文件。這個(gè)Makefile文件的任務(wù)有兩個(gè):產(chǎn)生vmlinux件和產(chǎn)生內(nèi)核。為了達(dá)到此目的,Makefile將遞歸進(jìn)入到內(nèi)核的各個(gè)子目錄中,分別調(diào)用位于這些子目錄中的Makefile.

        指定目標(biāo)平臺(tái)

        ARCH:=arm

        指定交叉編譯器

        CROSS_COMPILE=arm-linux-gcc

        設(shè)置好交叉編譯器之后,執(zhí)行make clean、makeu Image,生成在IO上運(yùn)行的內(nèi)核映象文件uImage,通過網(wǎng)口或串口進(jìn)行燒寫。

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

        linux相關(guān)文章:linux教程




        評(píng)論


        相關(guān)推薦

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

        關(guān)閉