<strike id="0k9r3"><p id="0k9r3"></p></strike>
  • <form id="0k9r3"></form>
    <nav id="0k9r3"></nav>
    <em id="0k9r3"><p id="0k9r3"></p></em>
  • <tr id="0k9r3"><source id="0k9r3"></source></tr>
    <form id="0k9r3"></form>
    <sub id="0k9r3"></sub>

      <sub id="0k9r3"><address id="0k9r3"></address></sub>
      1. <form id="0k9r3"></form>

        24小時聯系電話:18217114652、13661815404

        中文

        您當前的位置:
        首頁>
        電子資訊>
        技術專題>
        嵌入式單片機開發的中...

        技術專題

        嵌入式單片機開發的中斷處理


        眾所周知,一方面,在嵌入式系統中普遍使用單片機的一個重要原因是它們比MPU 和通用CPU 具有及時性優勢。低延遲的外設中斷和中斷嵌套是確保MCU實時性能的極大保證。另一方面,嵌入式系統單片機開發軟件的開發中隨著系統功能的日益復雜,無論是否采用RTOS,多任務處理都是不可避免的。在裸奔系統中,為了獲得時間緊迫的任務來獲得第一響應,通常有必要實現外圍中斷嵌套,該嵌套中斷屬于基于外圍設備的硬件中斷嵌套。在RTOS中,分配了所有系統任務。具有特定優先級的內核會根據優先級進行調度,實際上它實現了一組基于優先級的軟件中斷嵌套。嵌套在RTOS中的任務軟件使用內核滴答計時器中斷來連續查詢RTOS任務準備列表中每個任務的優先級,以實現任務切換,而外圍硬件中斷不一定需要嵌套。 

              由于中斷嵌套對于嵌入式單片機開發設計非常重要,所以什么是中斷嵌套?在具體說明中斷嵌套之前,有必要先談談嵌入式MCU的中斷工作機制和中斷優先級: 

              編寫準系統的工程師知道,核心CPU一次只能執行一個任務/程序代碼/指令,例如數據計算以及與片上外圍設備的交互通信。代碼的執行順序由用戶自己編寫,CPU逐行獲取,解碼和執行。乘積函數的實現在主函數(通常稱為主程序)的while1)循環中,并由其他函數不斷調用。但是,在實際的工作環境中,許多事件是隨機發生的,例如網絡通信,外部IO輸入和其他不確定事件。此時,CPU必須放下當前正在執行的工作,但要對這些緊急情況做出響應并及時讀取網絡消息。處理和響應網絡通信需求以及及時的外部IO請求。這種處理稱為中斷。 

              嵌入式單片機開發中的內核CPU異常和各種外設操作可以生成響應中斷,并由中斷控制器統一管理。這樣,CPU可以專注于不產生中斷時順序執行的任務,并且僅在產生中斷時才通過中斷控制器中斷CPU(通過向CPU產生高/低信號,此過程稱為打斷)。請求),如果此時啟用了CPU全局中斷,則CPU將組合中斷向量表和中斷優先級配置,根據中斷優先級(如果同時發生多個外設中斷),從中斷向量表中取出很高優先級中斷服務程序的ISR地址將當前CPU運行時環境壓入堆棧,然后跳轉到中斷ISR地址。如果CPU全局中斷已關閉,則當前中斷請求將被忽略。 

         

               S12核心CPU的中斷/異常處理流程圖如下: 


         中斷響應-中斷ISR和實時中斷 

              產生中斷時,中斷控制器會向核心CPU請求中斷響應。 

              典型的響應是CPU運行預先準備的中斷ISR。

         

        請輸入搜索關鍵字

        確定
        国产在线视频在线