How do interrupts work on multicore ARM cpu

﹥>﹥吖頭↗ 提交于 2019-12-02 19:50:03

The short and for practical purposes correct answer is that what you ask for is not possible without some configuration being performed on the secondary cores...

The interrupt controller architecture is described (in quite some detail) in http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ihi0048b/index.html

To prepare the secondary cores to receive IPIs, you need to:

  • Enable the GIC Distributor (once, for the whole system)
  • Enable the GIC CPU interface (for each core)
  • Enable the IPIs you want to receive (for each core)
  • Set the priorities for each IPI you want to receive (for each core)
  • Ensure the CPU interface Interrupt Priority Mask Register (for each core) is set to priority level lower (higher number) than the interrupt priority you set above.
  • Clear the CPSR I-bit (for each core)

If you don't intend to implement an interrupt handler, skip the clearing of the I-bit. The core will come out of WFI and continue executing. That is normally what you want for a system boot operation.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!