<progress id="jlsnq"><code id="jlsnq"></code></progress>

<strong id="jlsnq"><del id="jlsnq"></del></strong>
    <mark id="jlsnq"></mark>

    <legend id="jlsnq"><table id="jlsnq"></table></legend>
    <small id="jlsnq"></small>
  • <ruby id="jlsnq"><table id="jlsnq"></table></ruby>

      <strong id="jlsnq"></strong>

      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。

       

      請輸入搜索關鍵字

      確定
      色鲁99热99re超碰精品_91精品一区二区三区无码吞精_亚洲国产欧洲综合997久久_一级a性色生活片久久无
      <progress id="jlsnq"><code id="jlsnq"></code></progress>

      <strong id="jlsnq"><del id="jlsnq"></del></strong>
        <mark id="jlsnq"></mark>

      <legend id="jlsnq"><table id="jlsnq"></table></legend>
      <small id="jlsnq"></small>
    1. <ruby id="jlsnq"><table id="jlsnq"></table></ruby>

        <strong id="jlsnq"></strong>