先說結論
1、當一個irq/fiq正在執行時 ,是否可能會其它的irq/fiq打斷呢?
(1)如果開啟了中斷優先級,則在irq/fiq進入的時候,也會再次enalbe irq/fiq,即也就是支持了中斷嵌套。所以此時一個irq或fiq正在執行的時候,它是有可能被另外一個高優先級的irq/fiq num的中斷搶占的。
(2) 但是很遺憾 ,在我們的Linux Kernel系統中,至今都沒有默認開啟中斷優先級,在一進入irq/fiq的時候,也沒有再次enable irq/fiq. 所以這種情況下,一個正在執行的irq/fiq是不可能被另外的irq/fiq打斷的。
2、當一個irq/fiq正在執行時 ,是否可能會其它異常打斷呢?
當然可以,您仔細閱讀代碼就會發現,在一進入irq/fiq handler的時候,
PSTATE.D
、PSTATE.A
都是被enabled,所以irq/fiq正在執行的時候,是可能被Watchpoint
、Breakpoint
、SoftwareStepexceptions
、Serror
打斷的3、當一個irq/fiq正在執行時 ,還會被別的程序打斷嗎?
當然可以,同步異常嘛!
代碼/文檔導讀
(1) 如下代碼展示了,在一進入irq/fiq的時候,就調用 enable_da
將 PSTATE.D
、 PSTATE.A
unmasked了。所以irq/fiq中斷,是可以被 Watchpoint
、 Breakpoint
、 SoftwareStepexceptions
、 Serror
打斷的
(2) irq和fiq屬于異步異常,具有同樣的優先級。而同步異常的優先級又高于異步異常的優先級,同意異常的優先級 如下所示 (也就意味著以下同步異常都可以打斷正在執行的irq/fiq):
(3)如果開啟了中斷優先級,則在irq/fiq進入的時候,也會再次enalbe irq/fiq
-
Linux系統
+關注
關注
4文章
596瀏覽量
27512 -
串口中斷
+關注
關注
0文章
67瀏覽量
14012 -
中斷優先級
+關注
關注
0文章
22瀏覽量
9408
發布評論請先 登錄
相關推薦
Linux 2.6 中斷處理原理簡介
WindowsCE異常和中斷服務程序
linux驅動之中斷處理過程C程序部分
為什么中斷處理函數不能直接調用不可重入函數
STM32中斷系統(NVIC和EXTI)
![STM32<b class='flag-5'>中斷</b>系統(NVIC和EXTI)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論