国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

44B0中斷分析(一)

發(fā)布時間:2010-9-13 13:46    發(fā)布者:techshare
關鍵詞: 44B0 , 中斷分析
首先ARM 芯片要中斷設置要是能中斷向量,然后當有 IRQ 中斷來之后,CPU自動的到0x18地址處取指。0x18處的指令呢是CPU 根據中斷源算好的(比如:中斷 EINT4567 來了,那么 0x18 處的指令就是跳轉到地址 0x30 處)。然后就執(zhí)行“l(fā)dr pc,=HandlerEINT4567”這條指令。這條指令的執(zhí)行結果就是跳轉到 “HandlerEINT4567 HANDLER HandleEINT4567”處執(zhí)行。這條是宏指令,你可以看一下宏定義。執(zhí)行結果就是跳轉到HandleEINT4567 處執(zhí)行。  

那么 HandleEINT4567 處又是什么指令呢?這就要聯系 44b.h 文件的#define pISR_EINT4567 (*(unsigned *)(_ISR_STARTADDRESS+0x74) ) 定 義 看 了。

HandleEINT4567 處的地址就是“_ISR_STARTADDRESS+0x74”。到此還不知道這個地址對應的指令是什么。 這時候就要去看Target.c文件的中斷初始化了,其中pISR_EINT4567= (unsigned) OSEINT4567ISR;這條語句就解釋了中斷去向何處。 OSEINT4567ISR 就是在OS_CPU_A.s 里面定義的中斷處理程序了。

一、 關于44B0中斷系統(tǒng)

44B0 中斷系統(tǒng)中有兩張中斷轉移表,經過二重轉移才跳到中斷處理程序。第一張中斷向量表由硬件決定,所在區(qū)域為ROM(flash),地址空間從0X00開始,其中0X00-0X1C為異常向量入口地址,0X20-0XC0為中斷向量入口地址。另一張中斷向量表在RAM 中,可以隨便改,其位置在程序連接后才定。

二、 如何從第一張中斷向量表跳到第二張中斷向量表

由于 RAM 放在地址空間的高端(距離中斷向量超過了 32M),故在第一張中斷向量表對應位置上寫上  ldr PC,# interrupt_service 如:ldr PC,=HandlerEINT4567

三、如何在啟動程序中設置異常向量,中斷向量表

如何把 C 語言中的一個中斷函數對應到匯編的中斷向量表中,示意圖及舉例如下:


C語言中的一個中斷函數對應到匯編的中斷向量表中:pISR_EINT4567 = (int)Eint4567Isr;其實異常向量就是中斷向量,ARM7的內核實際上只有8個(1個保留)異常向量,對于眾多的中斷源,ARM7 的內核是通過 IRQ、FRQ 的軟件查詢中斷狀態(tài)寄存器的位來獲得ISR的起始地址。而44B0為了克服這種方式所帶來的中斷延遲,就加入了更多的中斷向量表(0x20到0xc0),要使用這種方式,必須在中斷控制寄存器中設置每個中斷源的方式為IRQ 方式,且使用向量中斷。

S3C44B0X 的中斷控制器有30 個中斷源。S3C44B0X 支持新的中斷處理模式稱為(vectored interrupt mode),在多個中段請求發(fā)生時,由硬件優(yōu)先級邏輯確定應該有哪個中斷得到服務,同時硬件邏輯使中斷相量表的跳轉指令加載到(0X18或0X1C)位置,在該位置執(zhí)行跳轉指令使程序跳到相應的中斷服務線程,因此相對與傳統(tǒng)的ARM 的軟件方法能夠大大減少中斷進入延時。有兩種類型的中斷模式,FIQ (快速中斷)和IRQ.所有的中斷源在中斷請求時應該確定使用的中斷模式。在網絡上廣為流傳的44b0開發(fā)板例程中,大部分使用的都是IRQ 中斷模式(請查閱寄存器rINTCON)。

一般來講,使用 44b0 開 發(fā)板進行調試時, 無需更改44b.h,44blib.h, def.h, option.h, 44binit.s, 44blib.c, 44blib_a.s, memcfg.s, option.s 等程序,甚至無需看懂,即可編程使用 44b0 開發(fā)板。如前所述,硬件邏輯使中斷向量表的跳轉指令加載到(0X18 或 0X1C)位置,在該位置執(zhí)行跳轉指令使程序跳到相應的中斷服務線程,用戶只需定義相應的中斷服務程序即可。中斷向量表的定義如下:

/* ISR */
#define pISR_RESET (*(unsigned *)(_ISR_STARTADDRESS+
0x0))
#define pISR_UNDEF (*(unsigned *)(_ISR_STARTADDRESS+0x4))
#define pISR_SWI (*(unsigned *)(_ISR_STARTADDRESS+0x8))
#define pISR_PABORT (*(unsigned *)(_ISR_STARTADDRESS+0xc))
#define pISR_DABORT (*(unsigned *)(_ISR_STARTADDRESS+0x10))
#define pISR_RESERVED (*(unsigned *)(_ISR_STARTADDRESS+0x14))
#define pISR_IRQ (*(unsigned *)(_ISR_STARTADDRESS+0x18))
#define pISR_FIQ (*(unsigned *)(_ISR_STARTADDRESS+0x1c))
void __irq Mycat(void);;;

顯然,至此可以基本理解 44b0 的中斷,是如何與程序中的中斷服務子程序聯系起來的了。中斷的硬件邏輯,將檢測到的中斷,以某種方式指向中斷服務程序的地址,該地址在頭文件中以宏定義的形式出現。用戶在自己的程序中,將中斷服務子程序的地址付給該指針,從而將其聯系起來。  

ARM7TDMI 在矢量模式下,當從 0X18 地址處取指令時候,中斷控制器會在數據總線上加載分支指令,這些分支指令使程序計數器能夠對應到每一個中斷源的向量地址。這些跳轉到每一個中斷源向量地址的分支指令由中斷控制器產生。  

例如:假設 EINT0 是 IRQ 中斷,EINT0 的向量地址為:0X20(見向量表),那么中斷控制器必須產生0X18---0X20的分支指令。

中斷控制器產生的機器碼為: 0XEA000000。在各個中斷源對應的中斷向量地址中,存放著跳轉到相應中斷服務程序的程序代碼。在相應向量地址處分支指令的機器代碼如下計算: 矢量中斷模式的機器指令代碼=0XEA000000+((<目標地址>-<向量地址>-0X8)>>2) ,機器代碼一般由反匯編后自動產生。

結合這些,再看看程序中的代碼。在無矢量中斷模式,通過分析IISPR/FISPR 寄存器,IRQ/FIQ 處理器將移動PC到相應的ISR。HandleXXX 地址包含每個響應的ISR程序的起始地址。(見 44binit.S 文件) 編譯器它自動有設置的(初始化的偽編譯宏), |Image$$RO$$Limit|:表示RO 區(qū)末地址后面的地址,即RW數據源的起始地址 |Image$$RW$$Base|:RW 區(qū)在 RAM 里的執(zhí)行區(qū)起始地址,也就是編譯器選項RW_Base指定的地址 |Image$$ZI$$Base|:ZI 區(qū)在RAM 里面的起始地址 |Image$$ZI$$Limit|:ZI 區(qū)在RAM 里面的結束地址后面的一個地址 程序先把 ROM 里|Image$$RO$$Limt|開始的 RW 初始數據拷貝到 RAM 里面|Image$$RW$$Base|開始的地址,當RAM這邊的目標地址到達|Image$$ZI$$Base|后就表示RW區(qū)的結束和ZI區(qū)的開始,接下去就對這片ZI區(qū)進行清零操作,直到遇到結束地址|Image$$ZI$$Limit|。
本文地址:http://m.qingdxww.cn/thread-26415-1-1.html     【打印本頁】

本站部分文章為轉載或網友發(fā)布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 利用SAM E54 Xplained Pro評估工具包演示CAN轉USB橋接器以及基于CAN的主機和自舉程序應用程序
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發(fā)培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 貿澤電子(Mouser)專區(qū)
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 青青青免费高清视频在线 | 午夜视频在线观看区二区 | 日韩欧美日本 | www.香蕉视频在线观看 | 色婷婷在线观看视频 | 老司机导航福利 | 91在线影视 | 99久久精品免费观看国产 | 免费观看老外特级毛片 | 久久人| 在线精品日韩一区二区三区 | 日本视频二区 | 精品高清国产a毛片 | 国产色区 | 狠狠婷| 一级待一黄aaa大片在线还看 | 国产在线五月综合婷婷 | 日产精品卡二卡三卡四卡乱码视频 | 亚洲高清美女一区二区三区 | 日韩毛片一级 | 欧美在线播放一区二区 | 日韩精品在线观看免费 | 亚洲国产成人在线 | 敢死队4免费播放完整版 | 精品久草| 一本大道久久香蕉成人网 | 四虎影院2022| 黄网址大全免费观看免费 | 国产男女视频在线观看 | 日日天天| 狠狠做狠狠做综合日日 | 99久久综合精品免费 | 农村寡妇一级毛片免费播放 | 三级网站在线看 | wwww黄色| 视频久久精品 | 91www永久在线精品果冻传媒 | 91麻豆精品国产91久久久久久 | aaa特级毛片| 日韩在线视频免费不卡一区 | 久久永久影院免费 |