回答
中斷服務程序(duh!)爲「中斷」提供服務。一個「中斷」非常多 - 「正常」代碼的執行被中斷(出於任何一種原因)並且控制被傳遞到與先前執行的代碼沒有真正關係/知識的服務例程(即使該代碼以某種方式引起中斷)。請注意,中斷可能發生在許多「級別」 - 非常低級別的ISR可能會處理未實現的指令(例如,不支持該功能的FPU中的「sqrt」指令)並模擬該功能。它們可以處理設備I/O(與執行代碼完全無關),頁面錯誤,程序錯誤等。
通常情況下(它隨處理器,操作系統和中斷類型而變化)保存了最小的「處理器狀態」,因此ISR必須首先保存足夠的狀態(附加的GPR,狀態寄存器等),直到它有足夠的空閒執行其功能。通常情況下,保存將進入預先分配的「中斷保存區域」,除非中斷爲「高電平」,足以使ISR可分頁,在這種情況下,可以使用堆棧頂部。
然後,ISR必須執行其功能,小心限制自己的可用資源(例如,如果不是處於可分頁狀態,只使用「固定」存儲器)。
最後,ISR必須恢復被中斷的環境並返回,或者,如果要將中斷轉換爲異常,請創建相應的異常信號環境併發出異常信號。
感謝兄弟,但你的回答與我的問題不匹配,感謝你的合作 – 2013-04-30 15:33:22
(獨特的)問題主要圍繞着認識到例程運行在*非常*限制的環境中,因此很多常見的編碼技術不能使用 - 沒有例外,沒有分頁,有時甚至沒有任何RAM,只是註冊。如果使用高級語言,必須非常小心,以防止它不應該做它的事情。 – 2013-04-30 17:09:42
非常感謝! – 2013-05-01 14:12:08
- 1. 代碼和程序有什麼區別?
- 2. Function Callback和ISR有什麼區別?
- 3. ISR和中斷處理程序有區別嗎?
- 4. 代理服務器和普通服務器有什麼區別?
- 5. 代碼有什麼區別
- 6. Windows服務和常規應用程序有什麼區別?
- 7. Web服務和Web應用程序有什麼區別?
- 8. 我的代碼和教程代碼有什麼區別?
- 9. Web服務和RPC有什麼區別?
- 10. IntentService和服務有什麼區別?
- 11. 活動和服務有什麼區別
- 12. 系統verilog斷言中的 - >和=>有什麼區別?
- 13. 爲什麼Windows設備驅動程序中斷服務程序(ISR)是可中斷的?
- 14. 關閉和傳統課程有什麼區別?
- 15. 代碼簽名服務有什麼區別?
- 16. EXC_BAD_ACCESS中的代碼= 1和代碼= 2有什麼區別?
- 17. ISR(中斷服務程序)中的信號量同步
- 18. 代理服務器和匿名者之間有什麼區別?
- 19. apache Ambari服務器和代理有什麼區別
- 20. 碼頭服務和堆棧有什麼區別?
- 21. 在操作系統中,系統調用和中斷有什麼區別?
- 22. chdir(...)和系統(「cd ...」)有什麼區別?
- 23. 網絡服務器和應用服務器有什麼區別
- 24. DDD服務和WCF服務有什麼區別?
- 25. 「Web服務」和「Web服務」有什麼區別?
- 26. COM DLL服務器和COM EXE服務器有什麼區別?
- 27. Web服務和Windows服務之間有什麼區別?
- 28. WCF和RIA服務域服務類有什麼區別?
- 29. 安卓服務和網絡服務有什麼區別
- 30. SVN服務器和HTTP服務器有什麼區別
什麼是'porober'? – leppie 2013-04-30 14:52:06
對不起,我的意思是正確的* – 2013-04-30 14:57:32
你的問題含糊不清。你的意思是在微控制器中找到的ISR?或OS中斷?你想要實現/理解什麼? – Hossein 2013-04-30 15:03:22