大家好,我正在做Cortex-A7上的一个project,因为一些原因,主要代码都是跑在svn_ns状态下的。在初始化GIC时遇到了一些问题:
原本我的GIC驱动是跑在svn_s状态下,全部中断都属于Group 0,一切都没问题。现在一些原因需要让它跑在svn_ns下,查阅资料后发现为了可以在non secure状态下enable一个中断,需要把这个中断设置成Group 1,否则各种对应这个中断的设置会被忽略掉,于是我把所有的中断通过secure monitor 都设置成了Group 1。至于Priority设置,由于所有的中断都是同一个priority的,所以也没变。GICD和GICC对Group 1的enable在non-secure状态下都变成了ctrl的bit 0,所以代码依然没变。然而,都设置好了之后中断依然进不来...关键的寄存器也都读出来核对了一下,也没发现什么问题。
恳请各位指点或者提供一些大家觉得我有可能忽略掉的点。多谢!
赞