回答
中斷服務程序(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. Function Callback和ISR有什麼區別?
- 2. ISR和中斷處理程序有區別嗎?
- 3. Web服務和Web應用程序有什麼區別?
- 4. Windows服務和常規應用程序有什麼區別?
- 5. 我的代碼和教程代碼有什麼區別?
- 6. 系統verilog斷言中的 - >和=>有什麼區別?
- 7. 關閉和傳統課程有什麼區別?
- 8. 爲什麼Windows設備驅動程序中斷服務程序(ISR)是可中斷的?
- 9. 代碼簽名服務有什麼區別?
- 10. ISR(中斷服務程序)中的信號量同步
- 11. apache Ambari服務器和代理有什麼區別
- 12. 碼頭服務和堆棧有什麼區別?
- 13. chdir(...)和系統(「cd ...」)有什麼區別?
- 14. SVN服務器和HTTP服務器有什麼區別
- 15. 「Web服務」和「Web服務」有什麼區別?
- 16. netflix zuul服務器和netflix eureka服務器有什麼區別?
- 17. DDD服務和WCF服務有什麼區別?
- 18. 安卓服務和網絡服務有什麼區別
- 19. ado.net數據服務和WCF數據服務有什麼區別?
- 20. Web服務和Windows服務之間有什麼區別?
- 21. WCF和RIA服務域服務類有什麼區別?
- 22. Web服務器和遊戲服務器有什麼區別?
- 23. 網絡服務器和應用服務器有什麼區別
- 24. 原始代碼和修改代碼有什麼區別?
- 25. 困惑!代碼第一和代碼之間有什麼區別?
- 26. 編譯代碼和可執行代碼有什麼區別?
- 27. Web服務和使用ajax調用代碼隱藏之間有什麼區別?
- 28. 網絡服務和遠程處理有什麼區別?
- 29. 啓用中斷和恢復中斷有什麼區別?
- 30. 什麼是WordPress短代碼?代碼中的代碼有什麼區別?
什麼是'porober'? – leppie 2013-04-30 14:52:06
對不起,我的意思是正確的* – 2013-04-30 14:57:32
你的問題含糊不清。你的意思是在微控制器中找到的ISR?或OS中斷?你想要實現/理解什麼? – Hossein 2013-04-30 15:03:22