在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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è)計(jì)應(yīng)用 > 基于S3C44B0X的Bootloader設(shè)計(jì)與實(shí)現(xiàn)

            基于S3C44B0X的Bootloader設(shè)計(jì)與實(shí)現(xiàn)

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

            BootLoader的stage1通常包括以下步驟(以執(zhí)行的先后順序):

            1) 硬件設(shè)備初始化。

            2) 為加載BootLoader的stage2準(zhǔn)備RAM空間。

            3) 拷貝BootLoader的stage2到RAM空間

            4) 設(shè)置堆棧

            5) 跳轉(zhuǎn)到stage2的C程序入口點(diǎn)

            BootLoader的stage2通常包括以下步驟(以執(zhí)行的先后順序):

            1) 初始化本階段要使用到的硬件設(shè)備

            2) 檢測(cè)系統(tǒng)內(nèi)存映射

            3) 將內(nèi)核映像和根文件系統(tǒng)映像從Flash讀到RAM

            4) 為內(nèi)核設(shè)置啟動(dòng)參數(shù)

            5) 調(diào)用內(nèi)核

            4.的代碼

            的Stage1初始化流程圖如圖3所示. Stage1部分主要內(nèi)容及其代碼

            30.jpg

            /*中斷向量表用于處理異常情況,當(dāng)發(fā)生異常情況時(shí),首先要保存當(dāng)前程序的返回地址和CPSR寄存器的值,然后進(jìn)入到相應(yīng)的異常向量地址。一般來說,在異常向量地址處放置無條件跳轉(zhuǎn)指令,使程序進(jìn)入相應(yīng)的異常處理過程。*/
            _ENTRY
            B ResetHandler ;reset vector
            B UndefinedHandler ;Undefined instruction
            B SWIHandler ;SWI
            B PrefetchHandler ;Prefetch abort
            B AbortHandler ;Data abort
            B. ;Address exception
            B IRQHandler ;IRQ
            B FIQHandler ;FIQ
            ……

            /*復(fù)位入口,切換到超級(jí)模式并禁止中斷。在整個(gè)Boot Loader的初始化過程中我們都不必響應(yīng)中斷,因此首先禁止系統(tǒng)的中斷。*/
            MRS a1,CPSR
            BIC a1,a1,#MODE_MASK
            ORR a1,a1,#SUP_MODE
            ORR a1,a1,#LOCKOUT ;關(guān)閉IRQ、FIQ中斷
            MSR CPSR_cxsf,a1
            LDR r0,=INTCON ;設(shè)置中斷模式,非向量中斷模式
            LDR r1,=0x07 ;IRQ、FIQ中斷禁止
            STR r1,[r0]
            LDR r0,=INTMSK ;關(guān)閉所有中斷
            LDR r1,=0x07ffffff
            STR r1,[r0]
            LDR r0,=SYSCFG ;使能回寫buffer和Cache
            LDR r1,=0xE
            STR r1,[r0]
            ……
            /*當(dāng)必要的硬件初始化設(shè)置完畢后,接下來為核心代碼貯備RAM空間,包括RO、RW、ZI這3個(gè)段設(shè)置相應(yīng)的內(nèi)存映射向量,先將ZI段請(qǐng)零,然后將RO段復(fù)制到RW段中。由于在我們采用的微處理器里對(duì)于FLASH和RAM地址空間是使用的統(tǒng)一編址的,因此我們可以直接使用一個(gè)簡(jiǎn)單循環(huán)來完成拷貝。*/
            move_data :
            LDR a1,=Image_RW_Base ;RW段運(yùn)行時(shí)的起始地址
            LDR a2,=Image_RO_Limit ;RO段運(yùn)行時(shí)的存儲(chǔ)區(qū)域界限
            LDR a3,=Image_ZI_Base ;ZI段運(yùn)行時(shí)的起始地址
            CMP a1,a3
            BEQ goto_main ;跳轉(zhuǎn)到C入口函數(shù)
            move_loop : ;將RO段復(fù)制到RW段
            LDR a4,[a2],#4
            STR a4,[a1],#4
            CMP a1,a3
            BNE move_loop

            存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理




            評(píng)論


            相關(guān)推薦

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

            關(guān)閉