有关中断唤醒源的思考
生活随笔
收集整理的這篇文章主要介紹了
有关中断唤醒源的思考
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
各位大佬好,如下是關于中斷喚醒系統的一個流程上的總結,由于這方面知識過于復雜,又牽扯到SOC廠商的設計,而且我也沒有做過這方面工作,所以一半來自文檔一半靠猜測,都不一定對,反正自己給自己解釋得通了。希望大佬們不小心刷到了本文,如果覺得是不合理的,請給個贊(然后,贊同本文思想的人數 = 閱讀量 - 點贊數),如果看出明顯的錯誤,也幫忙指出下,不勝感激,多謝!
當一個藍牙中斷(如NS group 1中斷)做為喚醒源產生中斷時,此時的流程應當是這樣的:
- Redistribute發生一個Wake Request給Power controller,Power controller給PE上電,即reset
- 此時PE為最高異常級別,即EL3,PC指針指向RVBAR_EL3中的地址,也就是之前寫入的bl31_warm_entrypoint
- 然后PE在ATF中繼續執行,在ATF(EL3)中, PE不會taken該藍牙中斷,因為SCR_EL3.IRQ=0,當前有處于EL3級別,所以中斷不會被taken,中斷保持remains pending
- 當ATF相關邏輯執行完畢后,退出ATF,返回到REE側時,此時異常級別不再是EL3,變成了EL1,該中斷則會變為pending狀態,繼而再根據中斷優先級排序置為Active,然后檢查PSTATE,從而中斷被taken
- 此時跳轉到REE側的中斷向量表,然后跳轉到藍牙中斷注冊的handler函數
總結
以上是生活随笔為你收集整理的有关中断唤醒源的思考的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在enable mmu之前可以使用mmu
- 下一篇: 密码学基础(1)-前言