嵌入式與韌體

在可為中斷設定優先順序的微控制器上,執行低優先順序中斷的處理常式期間,發生了高優先順序的中斷。一般會如何(假設設定為允許中斷巢狀)?

  1. A中斷低優先順序的處理常式,執行高優先順序的處理常式,結束後回到低優先順序處理常式的後續
  2. B在低優先順序的處理常式結束之前,高優先順序的中斷會被捨棄
  3. C兩個處理常式在同一個CPU上同時並行執行
查看答案與解析

正確答案:A. 中斷低優先順序的處理常式,執行高優先順序的處理常式,結束後回到低優先順序處理常式的後續

為中斷設定優先順序後,緊急的中斷即使在其他處理常式執行中,也能插入並被處理。例如,若將馬達過電流的偵測設為高優先順序,通訊接收設為低優先順序,即使在接收處理中,也能立即因應過電流。Arm Cortex-M的NVIC等具備此機制。優先順序相同或較低的中斷,則要等到目前的處理常式結束才會被處理。

  • A. 正確。這稱為中斷巢狀。
  • B. 不是被捨棄,而是會立即被處理。
  • C. 1個CPU同一時間只能進行1項處理。
練習這個領域 前往領域頁面

嵌入式與韌體的其他題目

  1. 以C語言只將暫存器reg的位元3設為1、其他位元不變,下列何種寫法正確?
  2. 以C語言只將暫存器reg的位元3設為0、其他位元不變,下列何種寫法正確?
  3. 想讓連接LED的輸出腳位的位元,每執行一次就在亮與滅之間切換。下列何種C語言寫法正確?
  4. 檢查輸入用暫存器in的位元5是否為1,下列何種C語言條件正確?
  5. 上面的程式碼正在改寫暫存器reg中多位元的設定欄位。它做了什麼?

這個領域的比較