cortexa8中斷機制課件_第1頁
cortexa8中斷機制課件_第2頁
cortexa8中斷機制課件_第3頁
cortexa8中斷機制課件_第4頁
cortexa8中斷機制課件_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

向量中斷控制器概述A8內核具有兩個中斷輸入,分別為IRQ中斷和FIQ中斷。4個向量中斷控制器(VIC)負責管理芯片的中斷源,最多可以管理93個中斷輸入請求。CPU內核向量中斷控制器程序狀態(tài)寄存器CPSR與VIC的關系ARM內核通過CPSR來監(jiān)視和控制內部的操作,CPSR中的“I”位和“F”位分別用來控制IRQ模式和FIQ模式的使能。CPUARM7TDMI-SVICIRQFIQCPSR[7](I)CPSR[6](F)向量中斷控制器程序狀態(tài)寄存器CPSR與VIC的關系當I=1時,禁止IRQ中斷CPUARM7TDMI-SVICIRQFIQCPSR[7](I)CPSR[6](F)當I=0時,使能IRQ中斷CPUARM7TDMI-SVICIRQFIQCPSR[7](I)CPSR[6](F)向量中斷控制器中斷分類中斷輸入請求可以在VIC中被設置為以下二類:

FIQ中斷:具有最高優(yōu)先級;

向量IRQ中斷:具有一般優(yōu)先級;4.9向量中斷控制器IRQ中斷相應流程將當前的程序狀態(tài)寄存器的內容備份即,SPSR_irq=CPSR處理器切換到IRQ模式禁止IRQ中斷,即,I=1保存返回地址LR_irq=PC設置IRQ異常入口地址PC=0x18發(fā)生IRQ異常事件寄存器描述-參數設置寄存器名稱描述復位置地址VICVectAddr0~VICVectAddr32向量地址0寄存器~向量地址32寄存器00xF200_0100~0xF200_017CVIC0Addr中斷地址寄存器00xF200_0F00向量地址0寄存器VICVectAddr0向量地址寄存器VICVectAddr向量地址31寄存器VICVectAddr31控制寄存器功能描述4.9向量中斷控制器控制寄存器功能描述VICIntEnable使能(禁止)中斷源產生中斷VICIntEnClrVICIntSelect中斷類型選擇:FIQ&IRQVIC0VectADDR中斷地址設置FIQ中斷向量IRQ中斷中斷源0中斷源1……中斷源31VIC0將32個中斷輸入進行分配IRQ中斷狀態(tài)寄存器VICIRQStatus中斷選擇寄存器VICIntSelect中斷使能寄存器VICIntEnable中斷使能清零寄存器VICIntEnClr中斷源[31:0]軟件中斷使能寄存器VICSoftInt軟件中斷清零寄存器VICSoftIntClearFIQ中斷狀態(tài)寄存器VICFIQStatus中斷狀態(tài)寄存器VICRawIntrIRQFIQ寄存器描述-狀態(tài)寄存器名稱描述訪問復位值地址VICIRQStatusIRQ狀態(tài)寄存器該寄存器讀出定義為IRQ并使能的中斷的狀態(tài)RO00xFFFFF000VICFIQStatusFIQ狀態(tài)請求該寄存器讀出定義為FIQ并使能的中斷的狀態(tài)RO00xFFFFF004VICRawIntr所有中斷的狀態(tài)寄存器該寄存器讀出32個中斷請求/軟件中斷的狀態(tài),不管中斷是否使能或分類RO00xFFFFF008注意:讀取VICRawIntr寄存器將得到所有32個中斷請求和軟件中斷的狀態(tài),它不管中斷是否使能或分類。保護使能寄存器4.9向量中斷控制器保護使能寄存器(VICProtection):位[31:1]0功能—當該位為1時,只能在特權模式下訪問VIC寄存器。

在某些場合可能需要禁止在用戶模式下訪問VIC寄存器,以提高軟件的安全等級。IRQ中斷處理4.9向量中斷控制器SPSR_irq=CPSR12CPSR=nzcvqIft_irq3VICVectAddr=VICVectAddrn4LR_irq=PC硬件處理5PC=0x18軟件處理執(zhí)行中斷服務程序2設置返回地址3恢復程序狀態(tài)寄存器CPSR4PC[VICVectAddr]1IRQ中斷處理4.9向量中斷控制器SUBSPC,LR,#4SPSR_irq=CPSR12CPSR=nzcvqIft_irq3VICVectAddr=VICVectAddrn4LR_irq=PC硬件處理5PC=0x18軟件處理執(zhí)行中斷服務程序2設置返回地址3恢復程序狀態(tài)寄存器CPSR4LDRPC,[PC,#-0xff0]1IRQ中斷的設計實例將EINT0中斷分配為IRQ,中斷服務程序地址設置為EINT0_ISR。C代碼:步驟:IRQ通道0向量地址寄存器VICVectAddr0中斷源0中斷服務程序地址EINT0_ISR中斷使能寄存器VIC0IntEnable中斷通道#4對應位,置“1”中斷選擇寄存器VIC0IntSelect中斷源0分配為IRQ中斷(EINT0為中斷源0)VIC0INTSELECT

&=

~3;VIC0VectAddr0=(int)EINT0_ISR;

VIC0INTENABLE

|=

0x1;圖示IRQ中斷的發(fā)生過程0x000000000xFFFFFFFF用戶程序中斷服務程序異常向量表①②④⑤⑥③IRQ_Eint0???VICVectAddr0VICVectAddrIRQ_Eint0⑤LDRPC,[PC,#-0xff0]注意:任何IRQ中斷產生之后,微控制器跳轉到地址0x18執(zhí)行代碼,該地址處的指令為:

LDRPC,[PC,#-0xff0]在執(zhí)行該指令時,PC指向當前指令后的第2條指令,即地址0x20。該指令將內存地址:

0x20-0xFF0=0xFFFFF030處的內容存入PC,該地址正是VICVectAddr寄存器的地址。所以一條ARM指令即可實現程序向中斷服務程序的跳轉。外部中斷輸入概述LPC2000系列ARM具有32路外部中斷,可以設置為2種類型:邊沿觸發(fā):上升沿觸發(fā)下降沿觸發(fā)雙邊沿觸發(fā)電平觸發(fā):高電平觸發(fā)低電平觸發(fā)中斷信號下降沿觸發(fā)外部中斷輸入邊沿觸發(fā)中斷下降沿觸發(fā)類型中斷的請求和清除時序。T1T2T1時刻,中斷信號有下降沿產生,中斷控制器向CPU發(fā)出中斷請求。1T2時刻,CPU執(zhí)行完成中斷控制器的中斷服務程序,清除中斷,中斷信號回復到高電平。2中斷源0(EINT0)...中斷源14(EINT14)中斷源15(EINT15)中斷源16(EINT16~31)ARM處理器核VIC0IRQFIQ4.10外部中斷輸入外部中斷源所以的外部中斷源都由VIC0管理,其中外部中斷含有16個獨立的中斷號和一個共用的中斷號。外部中斷源寄存器組外部中斷源分組管理,分為4組:EXT_INT_0EXT_INT_1EXT_INT_2EXT_INT_3名稱描述訪問復位值*地址EXT_INT_0_CON設置中斷方式的寄存器R/W00xE020_0E00EXT_INT_0_FLTCON0EXT_INT_0_FLTCON1外部中斷源濾波器設置R/W0x808080800xE020_0E800xE020_0E84EXT_INT_0_MASK外部中斷掩碼設置寄存器R/W0xFF0xE020_0F00EXT_INT_0_PEND外部中斷掛起寄存器R/W00xE020_0F40寄存器匯總以EXT_INT_0組為例,下列為0號組所包含的寄存器外部中斷方式控制寄存器(EXT_INT_X_CON):該寄存器控制著外部中斷輸入信號的有效觸發(fā)方式,低四位分別對應外部中斷3~0。對應位為0時,電平觸發(fā)外部中斷;對應位為1時,邊沿觸發(fā)外部中斷。

該寄存器每3位設置一個中斷源的觸發(fā)方式,即EXT_INT_X_CON的0~2位用于設置中斷源0;4~6位用于設置中斷源1;觸發(fā)方式的設置如圖掩碼設置中斷標志管腳功能設置GPHXCONCPU其它部件寄存器匯總中斷相關寄存器EXT_INT_0_PENDEINT7EINT070EINT11EINT22….6~3

若引腳上出現了符合要求的信號,EXT_INT_X_PEND寄存器中對應的中斷標志將被置位。以0號組外部中斷組為例,向該寄存器的EINT0~EINT7位寫入1,可將其清零。外部中斷標志寄存器(EXT_INT_X_PEND):通過對該寄存器的設置可以屏蔽對應的中斷信號。外部中斷掩碼寄存器(EXT_INT_X_MASK):外部中斷觸發(fā)方式EXT_INT_X_CONEXT_INT_X_MASKEXT_INT_X_PEND中斷相關寄存器EXT_INT_0_MASKEINT_MASK7EINT_MASK070EINT_MASK11EINT_MASK22….6~3外部中斷與VIC的關系注意:這里僅以EINT0為例來進行講解,EINT1~EINT3與之類似,此處不再重復。外部中斷0位于VIC0的0號中斷源0,中斷使能寄存器VIC0IntEnable[0]=1用來控制通道0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論