下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Linux在ARM上的移植摘要:本文是基于ARM的平臺(tái)上進(jìn)行嵌入式操作系統(tǒng)LINUX的移植,其中ARM選S3C2410。文中首先對(duì)Linux操作系統(tǒng)內(nèi)核進(jìn)行了介紹,然后對(duì)系統(tǒng)引導(dǎo)程序(BootLoader)進(jìn)行了設(shè)計(jì),最后給出了Linux在ARM上的移植過程。關(guān)鍵字:Linux、ARM、BootLoader、移植一、Linux操作系統(tǒng)內(nèi)核Linux作為一種優(yōu)秀的操作系統(tǒng),近幾年在嵌入式領(lǐng)域成為了極具潛力的嵌入式操作系統(tǒng)。本文的主要內(nèi)容是將Linux系統(tǒng)的內(nèi)核移植到ARM(基于ARM9S3C2410)上。Linux操作系統(tǒng)主要由內(nèi)核、Shell、文件結(jié)構(gòu)組成。其中內(nèi)核是系統(tǒng)的心臟,是運(yùn)行程序和管理磁盤、打印機(jī)等硬件設(shè)備的核心程序。Linux內(nèi)核結(jié)構(gòu)Linux內(nèi)核是整個(gè)Linux系統(tǒng)的靈魂,負(fù)責(zé)整個(gè)系統(tǒng)的內(nèi)存管理、進(jìn)程調(diào)度和文件管理。Linux內(nèi)核與大部分UNIX內(nèi)核一樣是單內(nèi)核體系結(jié)構(gòu)的,能夠根據(jù)需要定制內(nèi)核映像的尺寸,具有很大靈活性,不需要重新編譯內(nèi)核和引導(dǎo)就能檢驗(yàn)新的內(nèi)核組件,這個(gè)特性對(duì)于嵌入式而言是非常有好處的,方便用戶構(gòu)筑自己的個(gè)人內(nèi)核。Linux內(nèi)核由5個(gè)主要的子系統(tǒng)組成:進(jìn)程調(diào)度、內(nèi)存管理、虛擬文件系統(tǒng)、網(wǎng)絡(luò)接口和進(jìn)程間通信。Linux內(nèi)核代碼組織結(jié)構(gòu)本文將對(duì)LINUX進(jìn)行內(nèi)核移植,其內(nèi)核代碼分布如圖所示。圖2Ling內(nèi)核代碼分布下面分別對(duì)其進(jìn)行說明:/arch目錄包含了目前Linux支持的硬件結(jié)構(gòu),如i386、alpha、arm等的內(nèi)核代碼;/drivers目錄包含了內(nèi)核中所有的設(shè)備驅(qū)動(dòng)程序;/fs目錄包含了所有的文件系統(tǒng)的代碼;/include目錄包含了建立內(nèi)核代碼所需的大部分庫(kù)文件,這個(gè)模塊利用其它模塊重建內(nèi)核;/init目錄包含了內(nèi)核的初始化代碼,內(nèi)核從此處工作;/ipc目錄包含了進(jìn)程間通信代碼;/kernel子目錄包含了主內(nèi)核代碼;/mm目錄包含所有獨(dú)立于CPU體系結(jié)構(gòu)的內(nèi)存管理代碼;/net目錄包含了和網(wǎng)絡(luò)相關(guān)的代碼,如ipv4、ipv6等。一般在每個(gè)目錄下都有一個(gè).depend文件和一個(gè)Makefile文件,這兩個(gè)文件都是編譯時(shí)使用的輔助文件。二、弓I導(dǎo)加載程序的設(shè)計(jì)2.1引導(dǎo)加載程序(BootLoader)說明引導(dǎo)加載程序通常稱為BootLoader,是在系統(tǒng)復(fù)位后執(zhí)行的第一段代碼,是非常重要的組成部分。BootLoader獨(dú)立于操作系統(tǒng),必須由用戶自己設(shè)計(jì),它的實(shí)現(xiàn)高度依賴于硬件,所以不可能形成一個(gè)通用的BootLoader。2.2BootLoader設(shè)計(jì)與分析大多數(shù)BootLoader都分為第一階段和第二階段兩大部分。第一階段中包含依賴于CPU體系結(jié)構(gòu)的代碼,通常都用匯編語言來實(shí)現(xiàn)以達(dá)到短小精悍的目的。第二階段則通常用C語言來實(shí)現(xiàn)較復(fù)雜的功能,具有更好的可讀性和可移植性。通常把第二階段加載到RAM空間中來執(zhí)行,以獲得更快的執(zhí)行速度。本系統(tǒng)BootLoader的第一階段實(shí)現(xiàn)步驟:關(guān)閉watch-dog,屏蔽所有中斷。設(shè)置處理器時(shí)鐘和工作頻率。CPU的工作頻率為200MHz。初始化外部寄存器。初始化堆棧指針??截怋ootLoader的第二階段到RAM空間中,使用一個(gè)跳轉(zhuǎn)語句跳轉(zhuǎn)到第二階段的C入口點(diǎn)。第二階段用C語言完成,實(shí)現(xiàn)步驟如下:(1)完成通用IO口的設(shè)置。部分代碼如下:voidset_gpios(void){GPACON=vGPACON;GPAUP=vGPAUP;GPBCON=vGPBCON;GPBUP=vGPBUP;}其中GPIO口在/arch/s3c2410/smdk2410.h文件中定義。完成內(nèi)存映射初始化和內(nèi)存管理單元初始化:Mem_map_init();mmu_init();這兩個(gè)函數(shù)都在/arch/s3c2410/mmu.c中。初始化mtd設(shè)備。mtd_dev_init();這個(gè)函數(shù)在/drivers/mtd/maps/s3c2410_flash.c中。拷貝flash中的kernel映像和根文件系統(tǒng)映像到RAM空間中。跳轉(zhuǎn)到內(nèi)核的第一條指令處。跳轉(zhuǎn)時(shí)需要滿足下列條件:RO為0;R1為機(jī)器類型ID;禁止中斷(IRQ和FIQ);CPU設(shè)置為SVC模式(SVC是供操作系統(tǒng)使用的一種保護(hù)模式);關(guān)閉MMU;關(guān)閉數(shù)據(jù)Cache。至此,BootLoader的任務(wù)結(jié)束,下面的工作由操作系統(tǒng)來接管。三、Linux在ARM平臺(tái)上的移植3.1準(zhǔn)備實(shí)驗(yàn)環(huán)境拷貝光盤CD3\LinuxSource目錄到Cygwin/tmp/目錄下,并改名為edukit-2410;拷貝光盤中\(zhòng)EduKit2410Linux\drivers和examples目錄到Cygwin/usr/local/src/edukit-2410目錄下;使用EduKit2410目標(biāo)板附帶的串口線連接目標(biāo)板上UART0和PC機(jī)串口COMx;3.2串口/網(wǎng)絡(luò)設(shè)置在PC機(jī)上運(yùn)行Windows附件中自帶的超級(jí)終端串口通信程序(波特率115200、1位停止位、無校驗(yàn)位、無硬件流控制);或者使用其它串口通信程序。3.3實(shí)驗(yàn)操作過程(1) 安裝Linux源代碼包拷貝Linux源代碼包linux-2418-rmk7-pxa1-mz5.tar.bz2到$SOURCEDIR(/tmp/edukit-2410/)目錄下;運(yùn)行cygwin,首先運(yùn)行以下命令,設(shè)置工作環(huán)境變量及檢查交叉編譯工具是否正確安裝:$>source/tmp/edukit-2410/set_env」inux.sh$>arm-linux-gcc-v如果看不到類似的提示信息,重新安裝好編譯工具;如果編譯工具安裝正確,進(jìn)入工作目錄執(zhí)行以下命令安裝Linux源代碼:$>cd$WORKDIR$>tar-xvjf$SOURCEDIR/linux-2.4.18-rmk7-pxa1-mz5.tar.bz2$>ls...kernel...(2) 解壓Linux源代碼包下載測(cè)試程序正確解壓Linux源代碼包后,執(zhí)行以下命令對(duì)Linux進(jìn)行配置:$>cdkernel$>makexconfig在彈出的配置窗口里,點(diǎn)擊“Loadconfigurationftomfile”,輸入./arch/arm/def-configs/edukit2410-amd,點(diǎn)擊OK返回后,選擇SaveandExit項(xiàng)保存退出,完成內(nèi)核及用戶程序配置。選擇存放于/arch/arm/def-configs/目錄下的配置文件,在工作目錄下執(zhí)行以下命令:$>makemrproper$>makexconfig$>makedep$>makezImage編譯通過后,在./arch/arm/boot/目錄下生成內(nèi)核的壓縮映像文件zImage。3.4觀察實(shí)驗(yàn)結(jié)果用EmbestonlineFlashProgrammer燒寫工具軟件進(jìn)行燒寫,點(diǎn)擊其菜單File>Open后選擇光盤附帶的EduKit2410&am29lv160db.cfg配置文件。將vivi燒寫到Flash地址0x000000-0x00020000(No.1?No.5sector),將內(nèi)核映像文件zImage燒寫到Flash地址0x00020000-0x000E0000(No.6?No.17sector),將根文件系統(tǒng)映像root.cramfs燒寫到剩余空間(No.18?No.35sector)。斷電后再加電重新啟動(dòng)目標(biāo)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 我國(guó)上市公司相對(duì)業(yè)績(jī)?cè)u(píng)價(jià)與高管薪酬的關(guān)聯(lián)性及影響機(jī)制探究
- 我國(guó)上市公司并購(gòu)行為剖析與績(jī)效多維評(píng)估:基于多案例與實(shí)證分析視角
- 紡織面料設(shè)計(jì)師創(chuàng)新應(yīng)用水平考核試卷含答案
- 焦?fàn)t煤氣冷凝凈化工崗前創(chuàng)新意識(shí)考核試卷含答案
- 刨花板熱壓工崗前師帶徒考核試卷含答案
- 強(qiáng)化地板備料工崗前操作考核試卷含答案
- 光伏發(fā)電運(yùn)維值班員安全培訓(xùn)效果競(jìng)賽考核試卷含答案
- 纖維碳化裝置操作工安全培訓(xùn)知識(shí)考核試卷含答案
- 船體拆解工安全行為評(píng)優(yōu)考核試卷含答案
- 乳品評(píng)鑒師安全實(shí)踐考核試卷含答案
- 中廣核新能源(深圳)有限公司招聘筆試題庫(kù)2026
- 2026中國(guó)電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會(huì)成熟人才招聘?jìng)淇碱}庫(kù)帶答案詳解
- 2026屆天津市西青區(qū)數(shù)學(xué)高三第一學(xué)期期末聯(lián)考模擬試題含解析
- 2026云南大理州事業(yè)單位招聘48人參考題庫(kù)必考題
- 《公共科目》軍隊(duì)文職考試新考綱題庫(kù)詳解(2026年)
- 2025至2030中國(guó)啤酒市場(chǎng)行業(yè)調(diào)研及市場(chǎng)前景預(yù)測(cè)評(píng)估報(bào)告
- 報(bào)警受理工作制度規(guī)范
- 嘉賓邀請(qǐng)合同書
- 多源信息融合驅(qū)動(dòng)的配電網(wǎng)狀態(tài)估計(jì):技術(shù)革新與實(shí)踐應(yīng)用
- 華電集團(tuán)企業(yè)介紹
- 2025年安徽省從村(社區(qū))干部中錄用鄉(xiāng)鎮(zhèn)(街道)機(jī)關(guān)公務(wù)員考試測(cè)試題及答案
評(píng)論
0/150
提交評(píng)論