ARM: 異常與中斷
異常處理包含了ARM系統對於異常發生的細部項目。中斷在ARM系統上則被視為一種特殊的異常。
所謂異常是指會中斷任何正常直行的指令的情況皆稱之。例如RESET command、存取記憶體失敗、undefined command、軟體中斷、外部的中斷皆是。大多數的異常都對應到一個異常處理程式,提供異常的處理或是稱作service。
當異常發生時,kernel會有以下動作:
-將cpsr保存到相對應異常模式的spsr
-將pc(r15)保存到相對應異常模式的lr(r14)內
-設定cpsr為相對應的異常模式
-設定pc的內容為相對應異常模式handler的進入點位址
在ARM架構的處理器有兩種類型的中斷:
-周邊裝置引起的,FIQ and IRQ,這應該算是HW interrupt
-一條引發中斷的特殊指令,SWI指令,我認為這樣應該稱作SW interrupt
兩種類型都會打斷正在執行的process
未完成...
所謂異常是指會中斷任何正常直行的指令的情況皆稱之。例如RESET command、存取記憶體失敗、undefined command、軟體中斷、外部的中斷皆是。大多數的異常都對應到一個異常處理程式,提供異常的處理或是稱作service。
當異常發生時,kernel會有以下動作:
-將cpsr保存到相對應異常模式的spsr
-將pc(r15)保存到相對應異常模式的lr(r14)內
-設定cpsr為相對應的異常模式
-設定pc的內容為相對應異常模式handler的進入點位址
在ARM架構的處理器有兩種類型的中斷:
-周邊裝置引起的,FIQ and IRQ,這應該算是HW interrupt
-一條引發中斷的特殊指令,SWI指令,我認為這樣應該稱作SW interrupt
兩種類型都會打斷正在執行的process
未完成...
留言
張貼留言