我在看ARMv7异常部分,看到Vector tables发现和以前不一样了,有Secure和Non-secure状态(还有Hyp和Monitor),请问怎么理解这两种状态?读那个寄存器可以知道当前ARM处于哪种状态?
secure、non-secure、monitor是ARM TrustZone架构引入的,目前大部分os如android都是运行在non-secure mode下,secure mode下主要是由厂商提供的bin控制。hyp是虚拟化相关的,cortex-a15才开始有。
严格来讲,在non-secure mode下是无法知道当前ARM处于哪个状态下,因为那个状态的寄存器只能在secure mode下读写。
希望以上回答可以帮到你。
非常感谢您的回答,有个大概的了解,细节我看看trustzone技术,可能理解的更好些。我现在想知道arm处于哪种模式。我只能猜测是Secure mode。因为其他模式reset没有跳转地址,都没用。楼下的兄弟说CPSR.M,但是我看了没有。