前面我学习了线程方面的东西,这个假期,空闲了来看看《手机安全和可信应用开发指南》这本书的中断篇。
中断处理
一个完整的系统都会存在中断,ARMv7架构扩展出了Monitor模式而ARMv8使用EL的方式对ARM异常运行模式进行了重新定义,分为EL0~EL3。
在ARMv8架构系统中,OP-TEE运行于安全侧的EL1, bl31运行于EL3。系统运行过程中任何阶段都有可能会产生外部中断。本章将主要介绍FIQ事件和IRQ事件在OP-TEE、ARMv7架构中的Monitor模式、ARMv8架构中的EL3的处理过程。
(前面其实如果你读过这本书的前面,会知道我们对于通过SMC的方式去陷入到EL3的方式与处理流程以及有所认识,但是大多数时候都避开了中断的方式。这里好好关注一下中断的方式。其次在ARMv8的架构体系中,EL3是拉通的,而EL2到EL0是分为安全与非安的。当然EL3肯定是安全的。)
1 系统的中断处理
ARM核处于安全世界状态(SWS)和正常世界状态(NWS)都具有独立的VBAR寄存器和中断向量表。