[待]-optee的native_intr_handler中断处理流程
生活随笔
收集整理的這篇文章主要介紹了
[待]-optee的native_intr_handler中断处理流程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(1)、進入中斷后,先將X0-X3保存到到thread_core_local,然后切換到sp_el0指向THREAD_CORE_LOCAL_TMP_STACK_VA_END(2)、然后在扣除一段固定的區域,用于保存x4-x18, LR, SP_EL0存器
#define ELX_NINTR_REC_X(x) (8 * ((x) - 4))
#define ELX_NINTR_REC_LR (8 + ELX_NINTR_REC_X(19))
#define ELX_NINTR_REC_SP_EL0 (8 + ELX_NINTR_REC_LR)
#define ELX_NINTR_REC_SIZE (8 + ELX_NINTR_REC_SP_EL0)(3)、接著SP_EL0指向 THREAD_CORE_LOCAL_TMP_STACK_VA_END + ELX_NINTR_REC_SIZE,調用C語言程序(系統中注冊的中斷處理函數)
(4)、
待中斷處理完畢后,先恢復x4-x18, LR, SP_EL0,此時棧也切回SP_EL1(5)、然后再從thread_core_local恢復X0-X3
總結:對于optee的中斷處理的過程中,保存和恢復的寄存器有:
- x0-x18
- lr (x30)
- sp_el0
- spsr_el1
總結
以上是生活随笔為你收集整理的[待]-optee的native_intr_handler中断处理流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [How TO]-外网访问自己的HTTP
- 下一篇: python自动化测试locksetti