<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        Cortex-M3中斷服務程序設計

        作者:佚名   來源:本站原創   點擊數:  更新時間:2014年08月19日   【字體:

        ISR是嵌入式應用系統獲取各種事件的基本手段。而事件是實時性問題的討論基礎和事件計算的起點。

        • 中斷優先級

        不同中斷服務程序應有不同優先級,在允許中斷嵌套時,最高優先級的中斷總是能夠得到響應。

        只要沒關中斷,ISR可以中斷任何任務的運行,比最高優先級的任務還要高。

        • Cortex-M3中斷資源

        搶占優先級:實現中斷嵌套

        子優先級:當搶占優先級相同的兩個中斷同時發生時,子優先級高的中斷可以首先獲得運行權。

        • 中斷優先級安排原則

        緊迫性:觸發中斷的事件允許耽誤的時間越短,優先級越高。

        關鍵性:觸發中斷的事件越關鍵,越高

        頻繁性:觸發中斷的事件發生越頻繁,越高

        快捷性:前三項相近,ISR處理越快,越高。

        ISR功能應盡量簡單,只要將獲取的異步事件用通信手段發給關聯任務就行,后續處理由關聯任務完成。

         

        1. 中斷服務程序設計

        • ISR結構



        4部分

        A:使os掌握當前中斷的嵌套深度。

        B:ISR功能代碼。必須調用系統通信服務函數,與其他任務進行通信。正是這種通信功能是關聯任務得到同步信號或數據,從而進入就緒狀態。不允許調用延時函數和可能被掛起的系統服務函數。

        C:清除該中斷的相應標志。以便下次再次相應。不用ISR函數,中斷源的中斷相應標志不同,清除中斷標志的代碼也不同。

        D:調用退出中斷函數。實現任務調度功能。判斷是返回中斷(中斷嵌套)還是返回任務(原任務還是更高級任務)

        • 選擇與關聯任務的通信手段

        兩種類型:

        A:信號型。ISR只完成發送信號量的工作。表示事件發生,通過信號量的同步功能出發關聯任務,所有具體工作由任務完成。

        B:數據型。ISR需要完成信息采集工作,然后使用消息郵箱(消息隊列)將數據發送給關聯任務,由關聯任務完成后續數據處理工作。

         

        細分如下:

        A:觸發ISR事件不包含數據。用信號量與關聯任務通信。

        B:觸發ISR事件包含數據低頻事件。用信號量與關聯任務通信。采集任務放在關聯任務中。

        C:觸發ISR事件包含數據中高頻事件。ISR采集數據。ISR中使用消息郵箱與關聯任務通信。關聯任務完成后續工作。

        D:觸發ISR事件包含數據非周期高頻事件。ISR采集數據,ISR中使用具有數據緩沖功能的消息隊列與關聯任務通信。

         

        • 例子



        關閉窗口
        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮