<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

        中文

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

        技術專題

        單片機開發中斷ISR的原因和條件


        單片機開發中斷的ISR與其他用戶軟件程序不同,屬于特殊的功能類別。原因如下:

        1.  單片機開發中斷的ISR必須是無效類型的無參數傳遞函數,不可見參數沒有返回值;

        2.  單片機開發中斷ISR運行時間必須盡可能短,以確保外設中斷的實時性能;

        3.  單片機開發中斷ISR是由硬件外設而不是其他函數調用觸發的,其運行時序具有隨機不確定性和硬件實時性

             在中斷的ISR中需要完成以下工作

        1.  處理外設中斷事件,例如定時計數,通信外設RX數據接收或MCU??數據緩沖區填充;

        2.  清除引起中斷請求的外設中斷標志,以確保外設不會由于中斷ISR操作而丟失下一個中斷,并且在中斷退出后CPU可以處理其他任務;

              為了確保中斷的實時性,被中斷的ISR程序應盡可能短,并且在中斷ISR中應放置條件等待語句或無限循環語句。建議用戶通常只將關鍵處理放在中斷的ISR中,而其他相關的常規工作則在主程序中執行。典型示例(例如CAN數據接收)放置在CAN RX中斷ISR中,并且全局變量通知主程序以執行相關的診斷協議(例如UDS)。

              中斷優先級和中斷嵌套

              中斷優先級是指內核CPU響應硬件外圍設備中斷的順序。當產生不同的硬件外設中斷時,中斷優先級高的外設首先由內核執行;

              中斷嵌套意味著外圍中斷具有不同的優先級。當CPU響應低優先級中斷時(即,運行中斷ISR時),將打開CPU全局中斷。如果到達更高優先級的中斷,則CPU具有響應高優先級中斷而停止當前中斷處理區域的能力,可確保高優先級任務外設對實時條件作出響應:

        總結一下中斷嵌套的必要條件:

        1.  不同的外設中斷源必須具有不同的優先級

               單片機開發中某些MCU的中斷優先級是固定的且不可配置。例如,S12G系列MCU??具有固定的外設中斷優先級,并且中斷向量地址越高,優先級越高。其他MCU的中斷優先級可以靈活配置。例如,S12XE系列MCU的外設中斷具有8個優先級設置,而Qorivva MPC56xx系列MCU的外設中斷具有16個優先級。所有MCU的默認優先級都相同,因此需要中斷嵌套。根據外圍任務的重要性,需要為相應的外圍設備配置不同的優先級。

        2.  必須在中斷ISR中打開CPU全局中斷

              推送中斷時,幾乎所有嵌入式MCU都會關閉CPU全局中斷,即默認情況下禁用了中斷嵌套。要啟用中斷嵌套,用戶必須在可嵌套的外設中中斷ISR。手動打開CPU的全局中斷。

              下圖顯示了S12核心CPU中斷堆棧過程,按下CCR?寄存器,關閉全局中斷處理,箭頭中的紅色圓圈,硬件設置了I-BIT(禁用I位外設中斷),S-BIT(禁止),低功耗指令STOP)和X位(禁止XIRQ中斷)(注:此過程是用戶無法控制且不可中斷的原子操作)


              需要根據特定任務確定打開全局中斷的時間。通常建議打開中斷ISR,并清除當前的外設中斷標志。

              請注意,在某些先進的MCU(例如Qorivva MPC56xx和基于ARM Cortex M4F內核的第一款汽車級MCU)中,S32K系列MCU還集成了DMA,它們還可以響應大多數片上外圍中斷,然后在通過DMA清除中斷標志,然后移動外設數據(不寫入外設中斷ISR),從而減少了外設中斷CPU的頻率并提高了CPU效率。

         

        請輸入搜索關鍵字

        確定
        国产在线视频在线