在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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) > 設計應用 > s3c2410中斷異常處理

            s3c2410中斷異常處理

            作者: 時間:2010-01-27 來源:網(wǎng)絡 收藏

            在進入正題之前,我想先把ARM920T的向量表(Exception Vectors)做一個簡短的介紹。:]

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

            ARM920T的向量表有兩種存放方式,一種是低端存放(從0x00000000處開始存放),另一種是高端存放(從0xfff000000處開始存放)。關于為什么要分兩種方式進行存放這點我將在介紹MMU的文章中進行說明,本文采用低端模式。ARM920T能有8個,他們分別是:

            Reset,Undefined

            instruction,Software Interrupt,Abort (prefetch),Abort

            (data),Reserved,IRQ,F(xiàn)IQ

            下面是某個采用低端模式的系統(tǒng)源碼片段:

            /*****************************************************************************

            _start:

            b

            Handle_Reset

            b HandleUndef

            b HandleSWI

            b

            HandlePrefetchAbort

            b HandleDataAbort

            b

            HandleNotUsed

            b HandleIRQ

            b

            HandleFIQ

            …..

            ..

            other

            codes

            ..

            .

            *****************************************************************************/

            上面這部分片段一般出現(xiàn)在一個名叫“head.s”的匯編文件的里,“b

            Handle_Reset”這條語句就是系統(tǒng)上電之后運行的第一條語句。也就是說這部分代碼的二進制碼必須位于內(nèi)存的最開始部分(這正是低端存放模式),因為上電后CPU會從SDRAM的0x00000000處取第一條指令并執(zhí)行。


            Address

            Instruct

            0x00000000: b

            Handle_Reset

            0x00000004: b

            HandleUndef

            0x00000008: b

            HandleSWI

            0x0000000C: b

            HandlePrefetchAbort

            0x00000010: b

            HandleDataAbort

            0x00000014: b

            HandleNotUsed

            0x00000018: b

            HandleIRQ

            0x0000001C: b

            HandleFIQ

            上面是該程序段在系統(tǒng)上電后加載到內(nèi)存后的分布情況,我們可以看到每條指令占用了4個字節(jié)。

            上電后,PC指針會跳轉(zhuǎn)到Handle_Reset處開始運行。以后系統(tǒng)每當有異常出現(xiàn),則CPU會根據(jù)異常號,從內(nèi)存的0x00000000處開始查表做相應的,比如系統(tǒng)觸發(fā)了一個IRQ異常,IRQ為第6號異常,則CPU將把PC指向0x00000018地址(4*6=24=

            0x00000018)處運行,該地址的指令是跳轉(zhuǎn)到“異常服務例程”(HandleIRQ)處運行。以上就是我對異常向量表的一個簡單介紹?,F(xiàn)在可以進入我們文章的主題

            異常”,分快中斷(FIQ)和普通中斷(IRQ),我們討論的重點是普通中斷(IRQ)。


            上一頁 1 2 3 4 下一頁

            關鍵詞: 處理 異常 中斷 s3c2410

            評論


            相關推薦

            技術專區(qū)

            關閉