<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      sansakrit

      導航

      TMS320F28002x——中斷詳解

      中斷概念

      中斷是指MCU處理程序運行中出現的“緊急事件”的整個過程,程序運行過程中,系統外部、系統內部或者現行程序本身若出現緊急事件,MCU立即終止現行程序的運行,自動轉入相應的處理程序——中斷服務程序,待處理完成后,再返回原來的程序運行,整個過程為程序中斷。

      中斷可分為可屏蔽中斷和不可屏蔽中斷:可由程序控制其屏蔽的中斷稱為可屏蔽中斷,屏蔽時,MCU將不接受中斷(不進入中斷服務程序);不能由程序控制其屏蔽的,MCU一定要立即處理的中斷為不可屏蔽中斷。

      外設中斷

      中斷架構

      C28x內核CPU擁有14個外設中斷線。其中兩個(INT13和INT14)分別直接連接到CPU timer1 和timer2。剩余12個外設中斷線通過ePIE模塊(enhanced Peripheral Interrupt Expansion module)與CPU連接。每一根連接到CPU的外設中斷線最多能接16個外設中斷。

      中斷路徑分3個階段——外設、ePIE以及CPU。每個階段都有其中斷使能和標志寄存器。如下圖所示:

      外設階段

      一些外設允許多個不同的事件觸發相同的中斷信號。如:通信外設可能使用相同的中斷來指示數據已經被接收或存在傳輸錯誤。中斷生成的原因可以通過讀取外設的狀態寄存器進行確定,通常在生成另一個中斷之前,需要手動清除狀態寄存器。

      PIE階段

      PIE為每個外設中斷信號提供單獨的標志和使能寄存器位,會根據相關的CPU中斷進行分組。每個PIE組有一個16位使能寄存器(PIEIERx)、一個16bit標志寄存器(PIEFIRx)和一個1bit確認寄存器(PIACK)。

      當CPU接收到中斷時,CPU從PIE獲取ISR的地址。PIE返回中斷向量表中標志位已經置位并且編號最低的通道,這樣當多個中斷標志置位時,能夠保證更高優先級的中斷能被相應。

      CPU階段

      與PIE一樣,CPU為每個中斷提供標志和使能寄存器位,使能寄存器(IER)和標志寄存器(IFR)。這兩個寄存器都是內部CPU寄存器。在ST1寄存器中的INTM位,是一個全局的中斷掩碼,可以使用CPU的SETC和CLRC指令來進行置位和清除。在C代碼中,一般使用DINT和EINT來實現。

      中斷輸入順序

      下圖展示了外設中斷如何傳輸到CPU的過程:

      當外設生成一個中斷信號時(假設是PIE group x,channel y),它會觸發以下事件序列:

      ①PIEIFRx.y位置1;

      ②如果PIEIERx.y位為1,中斷傳遞到下一步

      ③如果PIEACK.x位為0,中斷傳遞到下一步并且PIEACK.x置1

      ④IFR.x位置1

      ⑤如果IER.x位為1,中斷傳遞到下一步

      ⑥如果INTM位0,CPU接收中斷。

      ⑦在Data-read Data bus上的指令或者后續流程的指令都會被完整執行

      ⑧CPU在棧中保存中斷跳轉現場

      ⑨IFR.x和IER.x被清零,INTM被置位,EALLOW被清零

      ⑩CPU從PIE獲取ISR中斷向量,PIEIFRx.y被清零

      ?CPU執行ISR分支

      最小的中斷延遲時間是14個SYSCLK周期,等待ISR的置位和棧內存會增加延遲的時間。

      初始化和使用中斷

      芯片剛上電時,默認不會使能任何的中斷。PIEIER寄存器和IER寄存器都是默認值,INTM置位1。應用代碼負責配置和使能所有外設的中斷。

      使能中斷

      使能外設中斷,需要有以下幾個步驟:

      ①禁能全局中斷(DINT或SETC INTM)

      ②設置PIECTRL寄存器的ENPIE位,使能PIE

      ③將中斷的ISR向量寫入PIE向量表中

      ④設置合適的PIIERx位

      ⑤設置CPU的IER位

      ⑥使能外設對應的中斷

      ⑦使能全局中斷(EINT或CLRC INTM)

      中斷處理

      中斷處理函數與普通功能函數一樣,但必須要有以下幾步:

      ①有必要的話保存和恢復某些CPU寄存器的狀態

      ②清除中斷group中的PIEACK位

      ③使用IRET指令返回

      步驟①與③如果函數使用了__interrupt關鍵字,會被編譯器自動添加處理。PIEADCK位需要在代碼中手動清除,一般在中斷處理函數完成后執行。

      PIE channel映射

      下表為PIE group和channel在每個中斷的映射表:

      異常與不可屏蔽中斷

      初始化和使用NMI

      傳入的NMI會在NMIFLG寄存器中設置一個標志位,并啟動NMI看門狗計數器。計數器的時鐘由SYSCLK提供,如果計數器計數值到達NMIWDPRD寄存器的值后,計數器會觸發一個NMI看門狗復位信號(NMIWDRS)。為了避免這個信號產生,NMI處理函數必須使用NMIFLGCLR寄存器清除NMIFLG標志位。

      NMI源

      Missing Clock Detection

      時鐘丟失檢測管理OSCCLK是否異常。如果OSCCLK的時鐘源停止,PLL會被旁路,OSCCLK被連接到INTOSC1,并且NMI傳遞到CPU。

      RAM ECC錯誤

      RAM讀取時單bit校驗錯誤和雙bit ECC數據錯誤或者單bit ECC地址錯誤都會觸發NMI。

      FLASH ECC錯誤

      FLASH讀取時雙bit ECC錯誤或單bit ECC地址錯誤都會觸發NMI。

      CPU HWBIST錯誤

      芯片自帶的模塊檢測到CPU存在故障,觸發NMI。

      Software-Forced 錯誤

      在NMIFLGFRC寄存器中置位SWERR可以通過軟件強制觸發NMI。

      posted on 2024-01-04 16:36  SansaKrit  閱讀(731)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 人妻少妇精品系列一区二区| 精品黑人一区二区三区| 亚洲精品岛国片在线观看| 久久五十路丰满熟女中出| 国产精品中文字幕综合| 日韩av日韩av在线| 国产精品久久久久久久久久直播| 亚洲精品国产中文字幕| 亚洲一区二区三区十八禁| 亚洲欧美日韩第一页| 国产一区二区三区高清视频| 牲欲强的熟妇农村老妇女视频| 色一情一乱一区二区三区码| 国产一区在线播放av| 欧美18videosex性欧美tube1080| 久久精品国产99精品亚洲| 国产精品一区二区人人爽| 亚欧洲乱码视频在线专区| 婷婷久久香蕉五月综合加勒比| 黔江区| 午夜成人精品福利网站在线观看| 亚洲欧美日韩在线码| 狠狠躁夜夜躁无码中文字幕| 亚洲午夜久久久影院伊人| 国内精品久久人妻无码妲| 国产精品第二页在线播放| 在线亚洲午夜片av大片| 国内精品久久久久久久coent| 99国产精品国产精品久久| 国内精品无码一区二区三区| 国产精品毛片一区二区| 视频一区视频二区卡通动漫| 另类 专区 欧美 制服| 阳东县| 日韩av一中美av一中文字慕| 亚洲AV日韩精品久久久久| 亚洲熟妇中文字幕五十路| 亚洲欧美v国产蜜芽tv| 国产综合色在线精品| 五月天天天综合精品无码| 国产亚洲精品VA片在线播放|