資源描述:
《ARM9平臺(tái)的linux2》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、基于arm9平臺(tái)linux2.6.29移植摘要簡(jiǎn)要分析linux內(nèi)核與硬件相關(guān)的文件,根據(jù)arm9開發(fā)平臺(tái)的具體硬件修改linux內(nèi)核的相應(yīng)文件,交叉編譯生成zImage文件,并根據(jù)實(shí)際需要制作文件系統(tǒng)及移植驅(qū)動(dòng)程序,把編譯生成的鏡像文件燒寫到arm9開發(fā)平臺(tái)運(yùn)行。AbstractAnalysethefileoftherelationbetweenlinuxkernelandhardware,modifysomefileoflinuxkernelandcrosscompiletocreatefileofzImag
2、e,accordingtohardwareofarm9development.Basingtorequirementofpratice,createfilesystemanddriverprogrammeandthezImageisrunindevelopmentofarm9引言嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)于應(yīng)用系統(tǒng),對(duì)功能、可靠性、成本、體積、功耗等方面有特殊要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)是硬件與軟件的結(jié)合,要求有一定功能的硬件及與之對(duì)應(yīng)的軟件系統(tǒng),根據(jù)不同的實(shí)際需要,軟件
3、的編寫完成不同的功能。隨著硬件的不斷發(fā)展,嵌入式linux廣泛應(yīng)用在各種設(shè)備,比如個(gè)人數(shù)字助理(PDA)、手機(jī)、航天等領(lǐng)域。源于linux開源、免費(fèi),Linux的內(nèi)核小、效率高,內(nèi)核的更新速度很快,可定制等特性等,因此嵌入式Linux有著巨大的市場(chǎng)前景。Linux操作系統(tǒng)有著嵌入式操作系統(tǒng)所需要的一些特色,突出的就是Linux適應(yīng)于不同體系結(jié)構(gòu)的計(jì)算機(jī),多種CPU和多種硬件平臺(tái),是一個(gè)跨平臺(tái)的操作系統(tǒng)。到目前為止,它可以支持三十多種CPU。而且性能穩(wěn)定,裁剪性很好,把代碼從一種體系結(jié)構(gòu)移植到另外一種不同的體現(xiàn)結(jié)構(gòu)
4、中都很容易。嵌入式linux是在特定的平臺(tái)下運(yùn)行,區(qū)別于專用的計(jì)算機(jī)機(jī)的linux系統(tǒng),嵌入式linux是專用系統(tǒng),通用對(duì)linux內(nèi)核文件進(jìn)行一定的裁剪,使之適用于專用平臺(tái)。針對(duì)linux的開源性及可裁剪移植,本文重點(diǎn)在于描述與arm平臺(tái)相關(guān)的linux代碼結(jié)構(gòu)及對(duì)應(yīng)于該平臺(tái)的裁剪、編譯使之能夠適用于arm9平臺(tái)運(yùn)行。并且移植相應(yīng)的文件系統(tǒng)及網(wǎng)卡驅(qū)動(dòng)。一、Linux內(nèi)核結(jié)構(gòu)與arm相關(guān)部分簡(jiǎn)要分析/arch是硬件結(jié)構(gòu)的kernel代碼,多平臺(tái)設(shè)計(jì)所用,如PowerPC、arm、MIPS。與體系結(jié)構(gòu)相關(guān)的代碼都存
5、放在arch和include/asm-/目錄下。arm體系代碼存放在arch/arm及包含頭文件的include/asm-arm目錄下。/arch/arm是跟arm處理器相關(guān)的代碼的目錄,該目錄的mach-s3c2440目錄就有與s3c2440相關(guān)的數(shù)據(jù)結(jié)構(gòu)與代碼。/arch/arm/machs-3c2440/devs.c文件對(duì)各種設(shè)備描述的頭文件及初始化信息。/arch/arm/mach-s3c2440/保存s3c2440處理器平臺(tái)相關(guān)的程序,其中mach-smdk2440.c,s3c2440處理器平臺(tái)資源初始
6、化相關(guān)的功能都在該文實(shí)現(xiàn)。/arch/arm/plat-s3c24xx/common-smdk.c文件描述的是一些該平臺(tái)的信息,比如結(jié)構(gòu)體表示flash分區(qū)信息staticstructmtd_partitionpartition_info[]={{/*1MB*/name:"bootloader",size:0x00100000,offset:0x0,……};name:代表分區(qū)名字size:代表flash分區(qū)大小(單位:字節(jié))offset:代表flash分區(qū)的起始地址(相對(duì)于0x0的偏移)/include建立編譯內(nèi)
7、核代碼時(shí)所需要的頭文件都包含在該目錄下,與平臺(tái)無關(guān)的頭文件在/include/linux目錄中。不同的平臺(tái)需要的頭文件會(huì)有所不同,因此該目錄和/arch一樣,按平臺(tái)劃分了多個(gè)sub-dir,比如asm-arm。/driver目錄包含了各個(gè)設(shè)備的驅(qū)動(dòng)程序,每一個(gè)目錄對(duì)應(yīng)一類驅(qū)動(dòng)程序,比如driver/char為字符設(shè)備驅(qū)動(dòng)程序,比如driver/net網(wǎng)卡驅(qū)動(dòng)程序。/arch/arm/tools/mach-types文件定義了不同系統(tǒng)平臺(tái)的系統(tǒng)平臺(tái)號(hào)。移植linux內(nèi)核到新的平臺(tái)上需要對(duì)新的平臺(tái)登記系統(tǒng)平臺(tái)號(hào)。/a
8、rch/arm/tools/Makefile包含了編譯內(nèi)核時(shí),需要的工具及目標(biāo)文件的存放等/arch/arm/Kconfig是內(nèi)核主配置文件,從這個(gè)文件中可以修改“systemType”配置選項(xiàng)及子選項(xiàng)。driver/Kconfig是各種驅(qū)動(dòng)的配置文件。/arch/arm/mach-s3c2440/Kconfig文件定義了s3c2440處理器開發(fā)板的各個(gè)選項(xiàng),通過這個(gè)文件