1
我正在使用ARM Cortex-A9在Zynq7020中,並遇到軟件生成的中斷問題。ARM Cortex-A9軟件生成的中斷只觸發一次
當我生成核心(寫ICDSGIR寄存器)一個SGI ARM1它只能觸發一次,而不是再次,更多的寫入ICDSGIR不會觸發中斷。
在發送給ARM1的核心ARM0中生成SGI可以正常工作,但ARM1不會生成ARM1。
有沒有在ISR需要SGI任何特殊處理?我在配置中錯過了什麼?
我正在使用ARM Cortex-A9在Zynq7020中,並遇到軟件生成的中斷問題。ARM Cortex-A9軟件生成的中斷只觸發一次
當我生成核心(寫ICDSGIR寄存器)一個SGI ARM1它只能觸發一次,而不是再次,更多的寫入ICDSGIR不會觸發中斷。
在發送給ARM1的核心ARM0中生成SGI可以正常工作,但ARM1不會生成ARM1。
有沒有在ISR需要SGI任何特殊處理?我在配置中錯過了什麼?
你或許應該通過與目標處理器的ICCEOIR寄存器一起寫中斷ID標記中斷的末尾:
什麼操作系統您使用的?什麼是中斷驅動程序在做什麼?這些可以被掩蓋。每個GIC都有一些寄存器的私人副本。 –
您是否在中斷處理程序的末尾將指示的ID寫回GICC_EOIR? – unixsmurf
@ unixsmurf:謝謝!這解決了問題,我沒有意識到這是需要的,因爲來自ARM0的SGI工作正常。如果可以的話,我會將你的評論標記爲答案。 – qnyz