日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          關 閉

          新聞中心

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

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

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

          5.3.3嵌入式Linux的

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

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

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

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

          設置flash分區(qū)

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

          指明分區(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ū)表**************/

          ●指定啟動時初始化在

          arch/arm/machs3c2410/machsmdk2410.c目錄,kernel啟動時依據(jù)對分區(qū)的設置進行初始配置,修改smdk_devices[]:指明初始化時包括前面所設置的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校驗kernel是通過bootloader寫到Nand Flash的,bootloader通過軟件ECC算法產(chǎn)生ECC校驗碼。這與內(nèi)核校驗的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中設置CPU以及設備相關的配置信息,可以參考SMKD2410平臺上的有關配置,除了自定義的文件系統(tǒng)以及命令行參數(shù)外,基本上有關S3C2410處理器平臺上的配置均相同,在虛擬機上配置界面如圖5.2所示。

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

          指定目標平臺

          ARCH:=arm

          指定交叉編譯器

          CROSS_COMPILE=arm-linux-gcc

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

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

          linux相關文章:linux教程




          評論


          相關推薦

          技術專區(qū)

          關閉