嵌入式系統中斷巢狀是否可以迴圈

2025-03-01 17:00:10 字數 2773 閱讀 6788

1樓:

1.幾乎所有的即時事件都是通過中斷上報的,當中斷來臨時,空改陸必須停止當前的一切任務,響應中斷,把中斷分成兩部分:上半部分與下半部分,或者快中斷部分與慢中斷部分。

上半部分遮蔽其他中斷,處理那些緊急任務,如清除某些暫存器,儲存中斷現場,給相應程序傳送訊息等,其他不太緊急的部分放在下半部分,此時所有中斷開啟,不影響其他任務的完成。

2.當cpu在執行某個任務時,即時任務到來,需要馬上執行即時任務,不能等到當前任務時間片用完才去執行即時任殲鋒務,那樣黃花菜都涼了,必須在中斷來臨之時馬上能夠切換過去,儲存當前程序的上下文如暫存器,記憶體,檔案,訊號等上下文,恢復即時任務的上下文。儲存恢復上下文越快越好,這就要求兩個程序的上下文共享的資源越少越好,如每個任務的記憶體是獨立的,甚至暫存器也是獨立的,這樣互不干擾,切換最快了。

3.一般程序都是按照優先順序排程的,即時程序的優先順序當然要比非即時的高, 不同即時程序按緊急度不同優先順序也不同,即時程序排程演算法最好與非即時部分有所區別,演算法複雜度最好是o(1).

4.如果即時程序需要某個資源,發現那個資源被別的低優先順序程序佔用,非要等人家執行完才行,而此低優先順序程序級別實在太低,其它的程序趁機搶佔了cpu,導致這個低優先順序程序遲遲得不到執行,連累苦了我們的即時程序。這樣就造成了優先順序的反轉,解決優先順序反轉也有很多辦法:主要有優先順序繼承與優先順序極限兩種,原理都相同:此時迅速提高佔有資源的低優先順序程序的優先順序,使其優先順序至少與等待資源的即時程序相同鬥頃。

2樓:匿名使用者

那個東西我一般稱為主迴圈,程式執行過程中時鐘在你規定的區域內循衝派環執行,不會超出,如果沒有這個迴圈,程式執行完最後一句後,微控制器繼續向下定址,就會進入空白的儲存區域握裂,這種情況就是程式「跑飛段判閉了」

嵌入式中的「中斷」什麼原理,如何使用

3樓:豬八戒網

1.中斷基本概念。

什謹賣麼是中斷?先打個比方。當乙個經理正處理檔案時,**鈴響了(中斷請求),不得不在檔案上做乙個記號(返回位址),暫停工作,去接**(中斷),並指示「按第二方案猛禪辦」(調中斷服務程式),然後,再靜下心來(恢復中斷前狀態),接著處理檔案。

電腦科學家觀察了類似例項,「外師物化,內得心源」,借用了這些思想、處理方式和名稱,研製了一系列中斷服務程式及其排程系統。

中斷是cpu處理外部突發事件的乙個重要技術。它能使cpu在執行過程中對外部事件發出的中斷請求及時地進行處理,處理完成後又立即返回斷點,繼續進行cpu原來的工作。引起中斷的原因或者說發出中斷請求的**叫做中斷源。

根據中斷源的不同,可以把中斷分為硬體中斷和軟體中斷兩大類,而硬體中斷又可以分為外部中斷和內部中斷。

兩類。外部中斷一般是指由計算機外設發出的中斷請求,如:鍵盤中斷、印表機中斷、定時器中斷等。外部中斷是可以遮蔽的中斷,也就是說,利用中斷控制器可以遮蔽這些外部裝置。

的中斷請求。

內部中斷是指因硬體出錯(如突然掉電、奇偶校驗錯等)或運算出錯(除數為零、運算。

溢位、單步中斷等)所引起的中斷。內部中斷是不可遮蔽的中斷。

軟體中斷其實並不是真正的中斷,它們只是可被呼叫執行的一般程式。例如:rom

bios中的各種外部裝置管理中斷服務程式(鍵盤管理中斷、顯示器管理中斷、印表機管理。

中斷等,)以及dos的系統功能呼叫(int

21h)等都是軟體中斷。

cpu為了處理祥知逗併發的中斷請求,規定了中斷的優先權,中斷優先權由高到低的順序是:

1)除法錯、溢位中斷、軟體中斷。

2)不可遮蔽中斷。

3)可遮蔽中斷。

4)單步中斷。

中斷巢狀的中斷巢狀

4樓:小魚參廚

關於中斷巢狀。可以這樣說,當一箇中斷正在執行的時候,如果事先設定了中斷優先順序暫存器ip,那麼當乙個更高優先順序的中斷到來的時候會發生中斷巢狀,如果沒有設定則不會發生任何巢狀;如果有同乙個優先順序的中斷觸發,它並不是在「不斷的申請」,而是將它相應的中斷標誌位置即ie暫存器的某位置位,當cpu執行完當前中斷之後,按照查詢優先順序重新去查詢各個中斷標誌位,進入相應中斷。

要記住,沒有設定ip時,微控制器會按照查詢優先順序(或都說邏輯優先順序)來排隊進入服務。如果要想讓某個中斷優先響應,則要設定ip,更改執行優先順序(或者說物理優先順序)。要注意的是,當設定了ip(interrupt priority即中斷優先順序,後同)後,當低執行優先順序中斷在執行時,如果有高執行優先順序的中斷產生,則會巢狀呼叫進入高執行優先順序的中斷。

如果你是用c語言寫的程式,並在中斷服務時 using 了寄存組,要注意,優先順序不同的兩個中斷服務程式不要 using 同一組暫存器。 1 在各個中斷都是低優先順序的時候,如果定時器0的溢位進入中斷。在這個中斷處理的過程中,外部中斷0也被觸發了,那麼是不是要發生中斷巢狀?

答案1:在ip事先設定了外部中斷0的優先順序的情況下,cpu會中止定時器0的中斷服務,進入外部中斷0服務程式,執行完以後再回到定時器0中斷服務程式。否則不會。

2 如果定時器0發生中斷的時候,進入中斷處理程式,這個時候外部中斷1條件觸發條件滿足了。因為定時器0自然優先順序比外部中斷1高,那麼定時器0的中斷處理程式繼續執行。假設定時器中斷處理程式執行的過程中,外部中斷1的觸發。

條件消失了,那麼等定時器0的中斷處理完後,程式還是會進入外部中斷1處理程式嗎?

答案2:肯定會進入中斷的;外部中斷1的觸發條件滿足後會置位外部1的中斷標誌,即使後來外部中斷1的觸發條件消失了,也不會清除已置位的中斷標誌,所以等定時器0的中斷處理完後,程式判斷外部中斷的中斷標誌為1後依然會進入外部中斷1處理程式的,只有在外部中斷1處理程式中執行reti指令才會硬體清除外部中斷1的中斷標誌(這也正是為什麼中斷返回使用reti指令而不可以用ret替換的原因)..

嵌入式系統的中斷處理的主要過程是什麼?

什麼是中斷?簡述中斷處理過程 中斷就是執行中斷服務程式,這是中斷系統的核心。不同計算機系統。的中斷處理過程各具特色,但對多數計算機而言,其中中斷服務程式的流程如下。中斷處理過程基本上由部分組成,第一部分為準備部分,其基本功能是保護現場,對於非向量中斷方式則需要確定中斷源,最後開放中斷,允許更高階的中...

嵌入式系統怎麼樣,嵌入式系統發展前景怎樣?

嵌入式軟體開發是未來幾年最熱門和最受歡迎的職業之一。權威部門統計,我國目前嵌入式軟體人才缺口每年為40萬人左右,未來隨著 三網融合 不斷提速,手機 數字電視 資訊家電 網路 汽車電子 醫療電子等都將是嵌入式軟體的重要應用領域,嵌入式開發人才將會越發搶手。當前,企業需要的嵌入式開發人才要求具備c語言程...

為什麼嵌入式系統的c語言的中斷函式不能有引數和返回值

這個和c語言沒有關係,中斷處理沒有引數和返回值是由中斷的原理決定的。c語言都一樣的,應該是你寫的程式有問題吧,建議可以把程式發上來看看 應該可以有的吧,這要看你定義函式的時候是怎麼定義的,通常中斷函式定義的時候都是void void型別的,因此在呼叫中斷函式的時候就不需要引數和返回值。微控制器c語言...