下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
ARMLinux啟動(dòng)過(guò)程分析
摘要:嵌入式Linux的可移植性使得我們可以在各種電子產(chǎn)品上看到它的身影。對(duì)于不同體系結(jié)構(gòu)的處理器來(lái)說(shuō)Linux的啟動(dòng)過(guò)程也有所不同。本文以S3C2410ARM處理器為例,詳細(xì)分析了系統(tǒng)上電后bootloader的執(zhí)行流程及ARMLinux的啟動(dòng)過(guò)程。關(guān)鍵詞:ARMLinuxbootloader啟動(dòng)過(guò)程Abstract:WecanseeembeddedLinuxinkindsofelectronicproductsbecauseofitsportability.Linux’sstart-upprocedurefordifferentprocessorsisalsodifferent.ThispaperprovidestheanalysisofbootloaderexecutionprocessandLinuxkernelstart-upprocedure-takingtheS3C2410ARMprocessorasexample.Keywords:ARMLinuxbootloaderstart-upprocedure1.引言Linux最初是由瑞典赫爾辛基大學(xué)的學(xué)生LinusTorvalds在1991年開(kāi)發(fā)出來(lái)的,之后在GNU的支持下,Linux獲得了巨大的發(fā)展。雖然Linux在桌面PC機(jī)上的普及程度遠(yuǎn)不及微軟的Windows操作系統(tǒng),但它的發(fā)展速度之快、用戶(hù)數(shù)量的日益增多,也是微軟所不能輕視的。而近些年來(lái)Linux在嵌入式領(lǐng)域的迅猛發(fā)展,更是給Linux注入了新的活力。一個(gè)嵌入式Linux系統(tǒng)從軟件角度看可以分為四個(gè)部分[1]:引導(dǎo)加載程序(bootloader),Linux內(nèi)核,文件系統(tǒng),應(yīng)用程序。其中bootloader是系統(tǒng)啟動(dòng)或復(fù)位以后執(zhí)行的第一段代碼,它主要用來(lái)初始化處理器及外設(shè),然后調(diào)用Linux內(nèi)核。Linux內(nèi)核在完成系統(tǒng)的初始化之后需要掛載某個(gè)文件系統(tǒng)做為根文件系統(tǒng)(RootFilesystem)。根文件系統(tǒng)是Linux系統(tǒng)的核心組成部分,它可以做為L(zhǎng)inux系統(tǒng)中文件和數(shù)據(jù)的存儲(chǔ)區(qū)域,通常它還包括系統(tǒng)配置文件和運(yùn)行應(yīng)用軟件所需要的庫(kù)。應(yīng)用程序可以說(shuō)是嵌入式系統(tǒng)的“靈魂”,它所實(shí)現(xiàn)的功能通常就是設(shè)計(jì)該嵌入式系統(tǒng)所要達(dá)到的目標(biāo)。如果沒(méi)有應(yīng)用程序的支持,任何硬件上設(shè)計(jì)精良的嵌入式系統(tǒng)都沒(méi)有實(shí)用意義。從以上分析我們可以看出bootloader和Linux內(nèi)核在嵌入式系統(tǒng)中的關(guān)系和作用。Bootloader在運(yùn)行過(guò)程中雖然具有初始化系統(tǒng)和執(zhí)行用戶(hù)輸入的命令等作用,但它最根本的功能就是為了啟動(dòng)Linux內(nèi)核。在嵌入式系統(tǒng)開(kāi)發(fā)的過(guò)程中,很大一部分精力都是花在bootloader和Linux內(nèi)核的開(kāi)發(fā)或移植上。如果能清楚的了解bootloader執(zhí)行流程和Linux的啟動(dòng)過(guò)程,將有助于明確開(kāi)發(fā)過(guò)程中所需的工作,從而加速嵌入式系統(tǒng)的開(kāi)發(fā)過(guò)程。而這正是本文的所要研究的內(nèi)容。2.Bootloader2.1Bootloader的概念和作用Bootloader是嵌入式系統(tǒng)的引導(dǎo)加載程序,它是系統(tǒng)上電后運(yùn)行的第一段程序,其作用類(lèi)似于PC機(jī)上的BIOS。在完成對(duì)系統(tǒng)的初始化任務(wù)之后,它會(huì)將非易失性存儲(chǔ)器(通常是Flash或DOC等)中的Linux內(nèi)核拷貝到RAM中去,然后跳轉(zhuǎn)到內(nèi)核的第一條指令處繼續(xù)執(zhí)行,從而啟動(dòng)Linux內(nèi)核。由此可見(jiàn),bootloader和Linux內(nèi)核有著密不可分的聯(lián)系,要想清楚的了解Linux內(nèi)核的啟動(dòng)過(guò)程,我們必須先得認(rèn)識(shí)bootloader的執(zhí)行過(guò)程,這樣才能對(duì)嵌入式系統(tǒng)的整個(gè)啟過(guò)程有清晰的掌握。2.2Bootloader的執(zhí)行過(guò)程不同的處理器上電或復(fù)位后執(zhí)行的第一條指令地址并不相同,對(duì)于ARM處理器來(lái)說(shuō),該地址為0x00000000。對(duì)于一般的嵌入式系統(tǒng),通常把Flash等非易失性存儲(chǔ)器映射到這個(gè)地址處,而bootloader就位于該存儲(chǔ)器的最前端,所以系統(tǒng)上電或復(fù)位后執(zhí)行的第一段程序便是bootloader。而因?yàn)榇鎯?chǔ)bootloader的存儲(chǔ)器不同,bootloader的執(zhí)行過(guò)程也并不相同,下面將具體分析。嵌入式系統(tǒng)中廣泛采用的非易失性存儲(chǔ)器通常是Flash,而Flash又分為NorFlash和NandFlash兩種。它們之間的不同在于:NorFlash支持芯片內(nèi)執(zhí)行(XIP,eXecuteInPlace),這樣代碼可以在Flash上直接執(zhí)行而不必拷貝到RAM中去執(zhí)行。而NandFlash并不支持XIP,所以要想執(zhí)行NandFlash上的代碼,必須先將其拷貝到RAM中去,然后跳到RAM中去執(zhí)行。實(shí)際應(yīng)用中的bootloader根據(jù)所需功能的不同可以設(shè)計(jì)得很復(fù)雜,除完成基本的初始化系統(tǒng)和調(diào)用Linux內(nèi)核等基本任務(wù)外,還可以執(zhí)行很多用戶(hù)輸入的命令,比如設(shè)置Linux啟動(dòng)參數(shù),給Flash分區(qū)等;也可以設(shè)計(jì)得很簡(jiǎn)單,只完成最基本的功能。但為了能達(dá)到啟動(dòng)Linux內(nèi)核的目的,所有的bootloader都必須具備以下功能[2]:1)初始化RAM因?yàn)長(zhǎng)inux內(nèi)核一般都會(huì)在RAM中運(yùn)行,所以在調(diào)用Linux內(nèi)核之前bootloader必須設(shè)置和初始化RAM,為調(diào)用Linux內(nèi)核做好準(zhǔn)備。初始化RAM的任務(wù)包括設(shè)置CPU的控制寄存器參數(shù),以便能正常使用RAM以及檢測(cè)RAM大小等。2)初始化串口串口在Linux的啟動(dòng)過(guò)程中有著非常重要的作用,它是Linux內(nèi)核和用戶(hù)交互的方式之一。Linux在啟動(dòng)過(guò)程中可以將信息通過(guò)串口輸出,這樣便可清楚的了解Linux的啟動(dòng)過(guò)程。雖然它并不是bootloader必須要完成的工作,但是通過(guò)串口輸出信息是調(diào)試bootloader和Linux內(nèi)核的強(qiáng)有力的工具,所以一般的bootloader都會(huì)在執(zhí)行過(guò)程中初始化一個(gè)串口做為調(diào)試端口。3)檢測(cè)處理器類(lèi)型Bootloader在調(diào)用Linux內(nèi)核前必須檢測(cè)系統(tǒng)的處理器類(lèi)型,并將其保存到某個(gè)常量中提供給Linux內(nèi)核。Linux內(nèi)核在啟動(dòng)過(guò)程中會(huì)根據(jù)該處理器類(lèi)型調(diào)用相應(yīng)的初始化程序。4)設(shè)置Linux啟動(dòng)參數(shù)Bootloader在執(zhí)行過(guò)程中必須設(shè)置和初始化Linux的內(nèi)核啟動(dòng)參數(shù)。目前傳遞啟動(dòng)參數(shù)主要采用兩種方式:即通過(guò)structparam_struct和structtag(標(biāo)記列表,taggedlist)兩種結(jié)構(gòu)傳遞。structparam_struct是一種比較老的參數(shù)傳遞方式,在2.4版本以前的內(nèi)核中使用較多。從2.4版本以后Linux內(nèi)核基本上采用標(biāo)記列表的方式。但為了保持和以前版本的兼容性,它仍支持structparam_struct參數(shù)傳遞方式,只不過(guò)在內(nèi)核啟動(dòng)過(guò)程中它將被轉(zhuǎn)換成標(biāo)記列表方式。標(biāo)記列表方式是種比較新的參數(shù)傳遞方式,它必須以ATAG_CORE開(kāi)始,并以ATAG_NONE結(jié)尾。中間可以根據(jù)需要加入其他列表。Linux內(nèi)核在啟動(dòng)過(guò)程中會(huì)根據(jù)該啟動(dòng)參數(shù)進(jìn)行相應(yīng)的初始化工作。5)調(diào)用Linux內(nèi)核映像Bootloader完成的最后一項(xiàng)工作便是調(diào)用Linux內(nèi)核。如果Linux內(nèi)核存放在Flash中,并且可直接在上面運(yùn)行(這里的Flash指NorFlash),那
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年化妝品包裝耐高溫技術(shù)行業(yè)報(bào)告
- 2025年郴州市第三人民醫(yī)院招聘?jìng)淇碱}庫(kù)及一套完整答案詳解
- 2025年哈爾濱市道里區(qū)愛(ài)建社區(qū)衛(wèi)生服務(wù)中心招聘?jìng)淇碱}庫(kù)含答案詳解
- 2025年黃岡中學(xué)(含黃岡中學(xué)實(shí)驗(yàn)學(xué)校)專(zhuān)項(xiàng)公開(kāi)招聘教師16人備考題庫(kù)帶答案詳解
- 2025年鶴壁能源化工職業(yè)學(xué)院公開(kāi)招聘高層次人才備考題庫(kù)及1套參考答案詳解
- 2025年霞林學(xué)校初中部自主招聘編外教師備考題庫(kù)有答案詳解
- 攀枝花市興東投資建設(shè)集團(tuán)有限責(zé)任公司關(guān)于2025年公開(kāi)招聘工作人員的備考題庫(kù)附答案詳解
- 2025年浙江大學(xué)杭州國(guó)際科創(chuàng)中心吳新科教授課題組招聘?jìng)淇碱}庫(kù)及答案詳解參考
- 2025年集團(tuán)招聘廣東省廣輕控股集團(tuán)有限公司招聘?jìng)淇碱}庫(kù)完整答案詳解
- 2025年貴州赤水國(guó)家糧食儲(chǔ)備庫(kù)面向社會(huì)公開(kāi)招聘8人備考題庫(kù)及1套參考答案詳解
- 2025下半年貴州遵義市市直事業(yè)單位選調(diào)56人筆試考試參考題庫(kù)及答案解析
- 2025鄂爾多斯達(dá)拉特旗第二批事業(yè)單位引進(jìn)28名高層次、急需緊缺人才考試筆試模擬試題及答案解析
- 甲狀腺癌放射性碘抵抗機(jī)制研究
- 包治祛痘合同范本
- 門(mén)窗的代理合同范本
- 2025年秋國(guó)家開(kāi)放大學(xué)《思想道德與法治》終考大作業(yè)試卷一附答案【供參考】
- 20252025年(完整版)三級(jí)安全教育真題試卷含答案
- 人教版2025-2026學(xué)年八年級(jí)上冊(cè)數(shù)學(xué)期末考試模擬試卷
- 掛名法人代表協(xié)議合同
- 《軟件工程》機(jī)考題庫(kù)
- 2025重慶兩江新區(qū)公安機(jī)關(guān)輔警招聘56人備考題庫(kù)完整答案詳解
評(píng)論
0/150
提交評(píng)論