首页 > 编程知识 正文

optee,单片机中断流程

时间:2023-05-06 13:39:48 阅读:268178 作者:4966

(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-x18lr (x30)sp_el0spsr_el1

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。