




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1.InitPieVectTable():每個中斷都有自己的中斷向量,即每個中斷源都對應(yīng)著自己的中斷服務(wù)程序的入口地址,這些中斷向量連續(xù)存在于RAM中,就是整個系統(tǒng)的中斷向量表;Uint32 *Source = (void *) &PIE_RESERVED;中斷服務(wù)函數(shù)入口地址;取PIE_RESERVED地址,強制轉(zhuǎn)換為void*。換后的void*直接賦值給Uint32 *指針。這里要把PIE_RESERVED的首地址給指針Source,Source是Uint32型的,不能夠直接給地址的,需要類型轉(zhuǎn)換,在C語言里面指針強制轉(zhuǎn)換要求兩邊的類型要是一樣的,同時也指出了void類型是可以賦值
2、給任何類型的,所以這里用了(void*),其實也可改成(Uint32*)。Uint32 *Dest = (void *) &PieVectTable;中斷向量表extern struct PIE_VECT_TABLE PieVectTable;(Device.h)一共128個中斷,即128個中斷向量ID: EALLOW;for(i=0; i < 128; i+)*Dest+ = *Source;EDIS;把中斷入口地址送給中斷向量表,達到關(guān)聯(lián)的目的;#define EALLOW asm(" EALLOW")#define EDIS asm(" EDI
3、S") (Device.h)EALLOW是指允許對受保護的寄存器操作,通常和EDIS配套使用,EDIS是指恢復(fù)被保護寄存器的狀態(tài),只有執(zhí)行了EALLOW命令之后才能對受保護的寄存器操作。PieCtrlRegs.PIECTRL.bit.ENPIE = 1;使能中斷向量表。2.InitPieCtrl(): DINT;關(guān)閉CPU總中斷; #define DINT asm(" setc INTM") ( Device.h) PieCtrlRegs.PIECTRL.bit.ENPIE = 0; 關(guān)閉PIE模塊總中斷。關(guān)閉所有PIE模塊的中斷: PieCtrlRegs.PIE
4、IERn.all = 0;(n=012)清除所有中斷標志位: PieCtrlRegs.PIEIFRn.all = 0;(n=0.12)對于不可屏蔽中斷來說,它直接進入CPU級。對于可屏蔽中斷來說,PIE模塊有相關(guān)的標志寄存器(PIEIFRx和PIEIERx)(x=1.12)每一個位設(shè)為y(y=1.8)當有中斷請求進入PIE控制器的時候,相關(guān)的PIE中斷標志位PIEIFRx.y置高。如果PIE中斷允許位PIEIERx.y也置高的時候,PIE控制器機會檢查PIEACKx標志位來決定CPU是否已經(jīng)準備好接收這個PIE中斷組的中斷。如果PIEACKZx被清零了,那么PIE會把這個中斷請求送到CPU;如
5、果PIEACKx位置1,那么PIE就會等待直到這個標志位清零然后發(fā)送中斷請求給CPU級的INTx。一旦中斷請求到達CPU級,CPU級和INTx相對應(yīng)的中斷標志位(IFR)置1,如果CPU中斷允許寄存器(IER)或者調(diào)試中斷允許寄存器(DBGIER)和全局中斷屏蔽位(INTM)允許的話,CPU才會執(zhí)行這個中斷申請IER:CPU中斷使能寄存器;extern cregister volatile unsigned int IER; (Device.h)CPU中斷使能寄存器是一個16位的CPU寄存器,包含可屏蔽CPU中斷(INT1-INT12,DLOGINT和RTOSINT中斷)的使能位。IFR:CP
6、U中斷標志寄存器;extern cregister volatile unsigned int IFR;(Device.h)15: RTOSINT 實時操作系統(tǒng)標志位;:0:已處理完成所有RTOS中斷;1:至少一個RTOS中斷未執(zhí)行,向該位寫0可以清除中斷請求;14: DLOGINT 數(shù)據(jù)記錄中斷標志位;1:至少有一個DLOGINT中斷未被執(zhí)行,向該位寫0可以清除中斷請求;0:沒有DLOGINT中斷;13-0: INTx 中斷x標志位;1:至少有一個INTx中斷未被執(zhí)行,向該位寫0可以清除中斷請求;0:沒有INTx中斷;EINT: #define EINT asm(" clrc IN
7、TM") ( Device.h)使能CPU中斷;INTM只是個位不是寄存器,編程中不會出現(xiàn),由硬件控制,同時其清除也在中斷程序執(zhí)行完后由硬件自動清除。判斷INTM是否為0. 如果為0,CPU保存當前工作狀態(tài)經(jīng)過9個周期后開始執(zhí)行中斷。如過INTM為1,則只有等待。一般INTM為1,說CPU正在處理別的中斷INTM Bit 0:中斷全局屏蔽位。此位從全局上使能或禁止所有可屏蔽CPU中斷(那些可由軟件阻止的中斷): 0 可屏蔽中斷被全局使能。為了被CPU認可,則可屏蔽中斷也必須被中斷使能寄存器(IER)局部使能。1 可屏蔽中斷被全局禁止。
8、即使一個可屏蔽中斷被IER局部使能,也不會被CPU認可。 INTM對非可屏蔽中斷沒有影響,包括硬件復(fù)位或軟件復(fù)位中斷NMI。此外,當CPU在實時仿真模式下被停止時,由IER和DBGIER使能的中斷將被響應(yīng),即使INTM設(shè)置為禁止可屏蔽中斷。 當CPU響應(yīng)中斷時,INTM的當前值存儲到堆棧中(當ST1存儲在堆棧中時),然后INTM置位。當由中斷返回時,INTM由堆棧中恢復(fù)。此位可分別由SETC INTM指令和CLRC INTM指令復(fù)位和清零。復(fù)位時,INTM置位。INTM的值不會引起中斷標志寄存器(IFR)、
9、中斷使能寄存器(IER)或調(diào)試中斷使能寄存器(DBGIER)的改變ERTM: #define ERTM asm(" clrc DBGM") ( Device.h)DRTM:#define DRTM asm(" setc DBGM") ( Device.h)DBGM Bit 1:調(diào)試啟用屏蔽位。當DBGM置位時,仿真器無法在實時狀態(tài)下訪問內(nèi)存或寄存器。調(diào)試器無法更新其窗口。 在實時調(diào)試模式中,若DBGM = 1,則CPU忽略停止請求或硬件斷點,直到DBGM清零
10、。DBGM并不阻止CPU停止在軟件斷點。這點的一個影響可以在實時調(diào)試模式中看到。如果你在實時調(diào)試模式中單步執(zhí)行一個指令,并且這條指令置位DBGM,CPU繼續(xù)執(zhí)行指令,直到DBGM被清零。 當你給TI調(diào)試器“實時”命令時(進入實時模式),DBGM強制為0。令DBGM = 0確保了允許調(diào)試和測試直接內(nèi)存訪問 (DT-DMAs);內(nèi)存和寄存器的值可傳遞到主處理器,用于更新調(diào)試器窗口。 CPU在執(zhí)行中斷服務(wù)程序(ISR)之前將DBGM置位。當DBGM = 1時,來自主處理器和硬件斷點的
11、停止請求被忽略。如果你想要單步執(zhí)行程序或在對時間要求不嚴格的ISR中設(shè)置斷點,那么你必須在ISR的開始處增加一條CLRC DBGM指令。 DBGM主要用在時間要求嚴格的程序代碼部分的仿真,來阻止調(diào)試事件。DBGM使能或禁止調(diào)試事件,如下: 0 調(diào)試事件使能。 1 調(diào)試事件禁止。 當CPU響應(yīng)中斷時,DBGM的當前值存儲到堆棧中(當ST1存儲在堆棧中時),然后DBGM置位。當由中斷返回時,DBGM由堆棧中恢復(fù)。
12、; 此位可分別由SETC DBGM指令和CLRC DBGM指令復(fù)位和清零。DBGM在中斷操作期間被自動置位。復(fù)位時,DBGM置位。執(zhí)行ABORTI (中止中斷)指令也可以將DBGM置位3.DSP28335外部中斷流程可表示為:外設(shè)中斷標志產(chǎn)生外設(shè)中斷使能PIEx IFR置位PIExIER使能判斷PIExACKIFR置位IER使能判斷INTM位CPU執(zhí)行中斷程序3.中斷總結(jié): C28XX一共有16個中斷源,其中有2個不可屏蔽的中斷RESET和NMI、定時器1和定時器2分別使用中斷13和14。這樣還有12個中斷都直接連接到外設(shè)中斷擴展
13、模塊PIE上。說的簡單一點就是PIE通過12根線與28335核的12個中斷線相連。而PIE的另外一側(cè)有12*8根線分別連接到外設(shè),如AD、SPI、EXINT等等。這樣PIE共管理12*8=96個外部中斷。這12組大中斷由28335核的中斷寄存器IER來控制,即IER確定每個中斷到底屬于哪一組大中斷(如IER |= M_INT12;說明我們要用第12組的中斷,但是第12組里面的什么中斷CPU并不知道需要再由PIEIER確定 )。接下來再由PIE模塊中的寄存器PIEIER中的低8位確定該中斷是這一組的第幾個中斷,這些配置都要告訴CPU(我們不難想象到PIEIER共有12總即從PIEIER1-PIEIER12)。另外,PIE模塊還有中斷標志寄存器PIEIFR,同樣它的低8位是來自外部中斷的8個標志位,同樣CPU的IFR寄存器是中斷組的標志寄存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 氣密條施工方案
- 尿素脫硝施工方案
- 陜西財稅知識培訓(xùn)課件
- 第2單元第2節(jié)《人機的互動》教學設(shè)計 2023-2024學年粵教清華版初中信息技術(shù)七年級下冊
- 光伏材料合同范例
- 合同范本運用方法
- 年度創(chuàng)新思維與實踐分享計劃
- 產(chǎn)品定價和利潤計劃
- 精細化管理在急診科的應(yīng)用計劃
- 安徽省合肥市長豐縣七年級生物上冊 1.1.1 生物的特征教學實錄2 (新版)新人教版
- 2025年個人所得稅贍養(yǎng)老人費用分攤協(xié)議模板
- 2025人教版(2024)小學美術(shù)一年級下冊教學計劃、教學設(shè)計及教學反思(附目錄)
- 醫(yī)療器械使用安全和風險管理培訓(xùn)課件
- 2025年江西工業(yè)貿(mào)易職業(yè)技術(shù)學院單招職業(yè)技能測試題庫帶答案
- 雷鋒的故事春鋒十里暖童心小小雷鋒在學習課件
- 語文-云南省師范大學附屬中學2025屆高三下學期開學考試試題和答案
- 英語學科核心素養(yǎng)下小學英語繪本閱讀教學現(xiàn)狀及對策研究
- 外周靜脈解剖知識
- 2025年飼料及寵物食品項目建議書
- 《走近世界民間美術(shù)》 課件 2024-2025學年人美版(2024)初中美術(shù)七年級下冊
- 河南2025年02月鄭州市公安機關(guān)公開招考1200名警務(wù)輔助人員筆試歷年典型考題(歷年真題考點)解題思路附帶答案詳解
評論
0/150
提交評論