日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

ARM在嵌入式linux內(nèi)核裁剪與移植的應(yīng)用

出處:劉國(guó)秀,王元偉,徐建華,蔣朝根 西南交通大學(xué) 發(fā)布于:2011-09-02 11:32:03

  微處理器用一片或少數(shù)幾片大規(guī)模集成電路組成的中央處理器。這些電路執(zhí)行控制部件和算術(shù)邏輯部件的功能。微處理器與傳統(tǒng)的中央處理器相比,具有體積小,重量輕和容易模塊化等優(yōu)點(diǎn)。微處理器的基本組成部分有:寄存器堆、運(yùn)算器、時(shí)序控制電路,以及數(shù)據(jù)和地址總線。微處理器能完成取指令、執(zhí)行指令,以及與外界存儲(chǔ)器和邏輯部件交換信息等操作,是微型計(jì)算機(jī)的運(yùn)算控制部分。它可與存儲(chǔ)器和外圍電路芯片組成微型計(jì)算機(jī)。但這些專用操作系統(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)。嵌入式linux是大勢(shì)所趨,其巨大的市場(chǎng)潛力與醞釀的無(wú)限商機(jī)必然會(huì)吸引眾多的廠商進(jìn)入這一領(lǐng)域。

  1 嵌入式linux操作系統(tǒng)

  Linux是一類Unix計(jì)算機(jī)操作系統(tǒng)的統(tǒng)稱。Linux操作系統(tǒng)的內(nèi)核的名字也是"Linux".Linux操作系統(tǒng)也是自由軟件和開放源代碼發(fā)展中著名的例子。嚴(yán)格來(lái)講,Linux這個(gè)詞本身只表示Linux內(nèi)核,但在實(shí)際上人們已經(jīng)習(xí)慣了用Linux來(lái)形容整個(gè)基于Linux內(nèi)核,并且使用GNU工程各種工具和數(shù)據(jù)庫(kù)的操作系統(tǒng)。Linux得名于計(jì)算機(jī)業(yè)余愛(ài)好者LinusTorvalds.Linux的程序源碼全部公開,任何人都可以根據(jù)自己的需要裁剪內(nèi)核,以適應(yīng)自己的系統(tǒng)。文章以將linux移植到ARM920T內(nèi)核的s3c2410處理器芯片為例,介紹了嵌入式linux內(nèi)核的裁剪以及移植過(guò)程,文中介紹的基本原理與方法技巧也可用于其它芯片。

  2 內(nèi)核移植過(guò)程

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

  在一種計(jì)算機(jī)環(huán)境中運(yùn)行的編譯程序,能編譯出在另外一種環(huán)境下運(yùn)行的代碼,我們就稱這種編譯器支持交叉編譯。這個(gè)編譯過(guò)程就叫交叉編譯。簡(jiǎn)單地說(shuō),就是在一個(gè)平臺(tái)上生成另一個(gè)平臺(tái)上的可執(zhí)行代碼。這里需要注意的是所謂平臺(tái),實(shí)際上包含兩個(gè)概念:體系結(jié)構(gòu)(Architecture)、操作系統(tǒng)(Operating System)。同一個(gè)體系結(jié)構(gòu)可以運(yùn)行不同的操作系統(tǒng);同樣,同一個(gè)操作系統(tǒng)也可以在不同的體系結(jié)構(gòu)上運(yùn)行。舉例來(lái)說(shuō),我們常說(shuō)的x86 Linux平臺(tái)實(shí)際上是Intel x86體系結(jié)構(gòu)和Linux for x86操作系統(tǒng)的統(tǒng)稱;而x86 WinNT平臺(tái)實(shí)際上是Intel x86體系結(jié)構(gòu)和Windows NT for x86操作系統(tǒng)的簡(jiǎn)稱。

  交叉編譯交叉編譯呢,簡(jiǎn)單地說(shuō),就是在一個(gè)平臺(tái)上生成另一個(gè)平臺(tái)上的可執(zhí)行代碼。這里需要注意的是所謂 平臺(tái),實(shí)際上包含兩個(gè)概念:體系結(jié)構(gòu)(Architecture)、操作系統(tǒng)(Operating System)。同一個(gè)體系結(jié)構(gòu)可以運(yùn)行不同的操作系統(tǒng);同樣,同一個(gè)操作系統(tǒng)也可以在不同的體系結(jié)構(gòu)上運(yùn)行。

  交叉編譯器完整的安裝涉及到多個(gè)軟件安裝,重要的有binutils、gcc、glibc三個(gè)。其中,binutils主要用于生成一些輔助工具;gcc則用來(lái)生成交叉編譯器,主要生成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

  Makefile文件Makefile一個(gè)工程中的源文件不計(jì)數(shù),其按類型、功能、模塊分別放在若干個(gè)目錄中,makefile定義了一系列的規(guī)則來(lái)指定,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進(jìn)行更復(fù)雜的功能操作,因?yàn)閙akefile就像一個(gè)Shell腳本一樣,其中也可以執(zhí)行操作系統(tǒng)的命令。

  修改內(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è)文件,分別如下:

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

  #include<linux/mtd/partitions.h>

  #include<linux/mtd/nand.h>

  #include<asm/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成員的賦值。

 ?。?)指定啟動(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,

 ?。?)禁止Flash ECC校驗(yàn)

  內(nèi)核一般都是通過(guò)UBOOT寫到Nand Flash的。UBOOT則通過(guò)軟件ECC算法來(lái)產(chǎn)生ECC校驗(yàn)碼,這與內(nèi)核校驗(yàn)的ECC碼不一樣,內(nèi)核中的ECC碼是由S3C2410中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)核配置過(guò)程

  3.1 支持啟動(dòng)時(shí)掛載devfs

  為了使內(nèi)核支持devfs以及在啟動(dòng)且在/sbin/init運(yùn)行之前能自動(dòng)掛載/dev為devfs文件系統(tǒng),應(yīng)修改fs/Keonfig文件,找到menu"Pseudo filesystems"并添加如下語(yǔ)句:

  3.2 配置內(nèi)核產(chǎn)生。config文件

  Linux內(nèi)核裁減的配置菜單命令有好幾個(gè)配置方法,這幾個(gè)方法實(shí)現(xiàn)的功能類似,只是與用戶的交互界面不同。其中:

  make config是基于文本的、為傳統(tǒng)的配置界面,可進(jìn)入命令行;

  make menuconfig是基于文本菜單的配置界面;

  make xconfig是基于圖形窗口模式的配置界面,在Xwindow下推薦使用該界面。

  在這3種方法中,make menuconfig使用為廣泛,這里選用的是make menuconfig的配置方法。相應(yīng)的配置有三種選擇,它們分別代表的含義如下:

  "Y":將該功能編譯進(jìn)內(nèi)核;

  "N":不將該功能編譯進(jìn)內(nèi)核;

  "M":將該功能編譯成可以在需要時(shí)動(dòng)態(tài)插入到內(nèi)核中的模塊。

  運(yùn)行make menuconfig時(shí),在smdk2410_defeonfig基礎(chǔ)上,其所增刪的內(nèi)核配置項(xiàng)如下:

 ?。?)增加對(duì)模塊的支持

  Loadable module support--->

  [*]Enable loadable module support

  [*]Automatic kernel module loading

  System Type-->

  4 內(nèi)核編譯與

  4.1 內(nèi)核編譯

  編譯內(nèi)核時(shí),可運(yùn)行以下命令:其一是#make clean,即清理環(huán)境,保證沒(méi)有不正確的依賴文件存在;二是#make dep,即將內(nèi)核源碼樹中每個(gè)子目錄產(chǎn)生的".depend"文件建立起依賴關(guān)系;三是#make zImage,用于建立壓縮的linux內(nèi)核映像。

  4.2 zImage到開發(fā)板

  zImage到開發(fā)板的方法很多,常見(jiàn)的有網(wǎng)絡(luò)(如FTP、TFTP等方式)、串口、USB等。本文采用FTP方式來(lái)移植Linux內(nèi)核映像文件到目標(biāo)機(jī)NAND FLASH中。代碼如下:

  CRANE2410#tftp 0x30008000 zImage至此,該嵌入式Linux的編譯和移植工作便告全部完成。

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

  本文以將linux移植到ARM920T內(nèi)核的s3c2410處理器芯片為例,介紹了嵌入式linux內(nèi)核裁剪以及移植的過(guò)程,并對(duì)移植中的關(guān)鍵技術(shù)和重要步驟給出了詳細(xì)的說(shuō)明。移植后的Linux系統(tǒng)在開發(fā)板上運(yùn)行穩(wěn)定,性能良好。本文的操作過(guò)程對(duì)嵌入式Linux系統(tǒng)在其它處理器上的移植也具有參考意義。

  

關(guān)鍵詞:ARM在嵌入式linux內(nèi)核裁剪與移植的應(yīng)用嵌入式linux微處理器

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

2023全國(guó)大學(xué)生嵌入式芯片與系統(tǒng)設(shè)計(jì)競(jìng)賽,海思賽道,工程機(jī)械遠(yuǎn)程管理與安全檢測(cè)系統(tǒng)
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見(jiàn),您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見(jiàn)一經(jīng)采納,將有感恩紅包奉上哦!