在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ARM9上linux系統(tǒng)的bootloader設(shè)計

            基于ARM9上linux系統(tǒng)的bootloader設(shè)計

            作者: 時間:2012-04-11 來源:網(wǎng)絡(luò) 收藏

            1.引言

            本文引用地址:http://www.biyoush.com/article/171648.htm

            在嵌入式開發(fā)中其中不可避免的一環(huán)就是[1],它統(tǒng)籌軟硬件資源,使得資源最優(yōu)配置,嵌入式對功耗,性能,以及成本要求很苛刻,它要求在達(dá)到用戶要求的前提下把成本和資源利用降為最低,Booloader不是驅(qū)動開發(fā)的一部分,但一個好的booloader可以決定該產(chǎn)品在市場上的成敗[2]。

            采用Samsung公司的20T[3]處理器與Linux2.4.18嵌入式操作,根據(jù)處理速度和效率的不同采用分階段實現(xiàn)的方法,在具體實現(xiàn)時不拘泥于該處理器和操作版本,使之更有普遍性和通用性。

            2.概述

            引導(dǎo)加載程序是系統(tǒng)加電后運(yùn)行的第一段代碼[4],功能類似pc機(jī)的BIOS,在ARM中一般都是位于地址0x00000000,這段代碼可以實現(xiàn)初始化硬件設(shè)備,建立內(nèi)存空間映射圖,從而將系統(tǒng)的軟硬件帶到一個合適的狀態(tài),以便最終為調(diào)用操作系統(tǒng)內(nèi)核和用戶應(yīng)用程序準(zhǔn)備好正確的環(huán)境。

            Bootloader的啟動可以單階段也可以多階段,為了方便移植和增加系統(tǒng)的執(zhí)行效率一般分為兩個階段stage1用匯編編寫和stage2用C 語言編寫,stage1主要進(jìn)行與CPU與存儲設(shè)備相關(guān)的工作進(jìn)行必要的初始化工作,是一些依賴于體系結(jié)構(gòu)的代碼,例如初始化CPU運(yùn)行的時鐘頻率,初始化Flash和內(nèi)存的數(shù)據(jù)寬度、讀/寫訪問周期和刷新周期,初始化中斷系統(tǒng),初始化系統(tǒng)中各種片內(nèi)片外設(shè)備和I/O口,初始化系統(tǒng)各種運(yùn)行模式下的寄存器和堆棧。stage2是用C語言實現(xiàn)一般的流程以及對板級驅(qū)動的支持,包括初始化要用到用到的內(nèi)核映像和文件系統(tǒng)映像,并將PC指針指向操作系統(tǒng)內(nèi)核的入口處,為操作系統(tǒng)的運(yùn)行作好準(zhǔn)備。這樣代碼具有很好的移植性和可讀性,對于相同的CPU只需修改stage2,對于不同的CPU只需修改 stage1。

            3.stage1

            3.1.建立二級中斷向量表

            每當(dāng)有中斷或者異常發(fā)生時,ARM處理器便強(qiáng)制把PC指針指向向量表中對應(yīng)中斷類型的地址值。為了加快中斷響應(yīng),在Flash的0x0地址存放能跳轉(zhuǎn)到0x33ffff00地址處中斷向量的跳轉(zhuǎn)指令,即在RAM中建立一個二級中斷向量表,起始地址為0x33ffff00,除復(fù)位外,其它異常入口地址由Flash跳轉(zhuǎn)得到,部分實現(xiàn)代碼如下

            #define _ISR_STARTADDRESS (SDRAM_END-0x100) //0x33ffff00
            definepISR_RESET (*(unsigned *)(_ISR_STARTADDRESS+0x0))// x33ffff00
            #define pISR_UNDEF (*(unsigned *)(_ISR_STARTADDRESS+0x4))// x33ffff04

            如表1所示:

            33.jpg

            34.jpg
            表1.二級中斷向量表

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

            上一頁 1 2 3 下一頁

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉