日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[答疑]-中断流程举例:在TEE侧时产生了FIQ,回到REE后为啥又产生了IRQ

發布時間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [答疑]-中断流程举例:在TEE侧时产生了FIQ,回到REE后为啥又产生了IRQ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

快速鏈接:
.
👉👉👉 個人博客筆記導讀目錄(全部) 👈👈👈

在中斷流程舉例的章節中,有小伙伴仔細讀了該篇文章,并產生一些列問題。其中一個問題,一下子把我問到了:“在TEE側時產生了FIQ,回到REE后為啥又產生了IRQ?
我們是知道,流程肯定是這么滴的,但具體的硬件原理呢?

在深入研讀GICV3文檔后,終于找到了答案。

首先我們了解下中斷優先級,在CPU interfaces (ICC_*_ELn)寄存器的描述中:

? Provide general control and configuration to enable interrupt handling
? Acknowledge an interrupt
? Perform a priority drop and deactivation of interrupts
? Set an interrupt priority mask for the PE
? Define the preemption policy for the PE
? Determine the highest priority pending interrupt for the PE

也就是cpu interface掌管著中斷優先級和將IRQ/FIQ發送給ARM Core.

我們以Level sensitive interrupts的中斷為例,先不考慮active and pending的情況:CPU interface發送給Core后,中斷狀態變為pending,當Core acknowledge中斷后(PE跳轉到中斷向量表), 中斷狀態變為active,當中斷退出后,Cpu interface會再次將優先級最高的中斷發送給Core,Core處理下一個中斷。

我們再看下中斷的退出流程( End of interrupt), 中斷的退出有兩種方式:
? Priority drop 將中斷優先級降到中斷產生之前的值
? Deactivation 將中斷從active變成inactive – ( 多數情況下,使用這個場景)

重點來了,在中斷退出的時候,軟件中一般會有Priority drop和Deactivation,既要么將中斷優先級降低,要么將中斷變為inactive,那么中斷退出之后,cpu interface感知到的優先級最高的中斷,就可能不會是此中斷了,一切運行正常,符合業務…

那么我們再看下上述的中斷流程舉例,在TEE中,cpu interface發了一個FIQ給Core,跳轉到optee的FIQ向量表,在FIQ的處理流程中,軟件幾乎什么都沒干,沒有Priority drop和Deactivation, 那么當SMC切換到了EL3之后,又退回REE后,Cpu interface感知到上一個中斷處理完成,會再次發送下一個優先級最高的中斷,由于之前的中斷號的優先級沒變,此時基本上依然是最高的優先級。此時CPU interface會再次發送該中斷給Core,由于SCR.NS發生了變化,此時Cpu interface發送給Core的就變成了IRQ…

總結

以上是生活随笔為你收集整理的[答疑]-中断流程举例:在TEE侧时产生了FIQ,回到REE后为啥又产生了IRQ的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。