Is it possible that it clears itself so quickly so the interrupt status bit will always be 0 ?
If that's the case, how do I distinguish different interrupts?
"After some more experiment I am able to receive low-g interrupt now", do you meant apollo2 could response interrupt?
Normally, for your low-g test when you receive interrupt and read out interrupt status, int_status.bit.low_g should be 1. Other interrupt bits should be 0 if you didn't enable corresponding features.
I mean I can receive interrupt from NRF52 now. However, int_status.bit.low_g is always 0 as well as int_status.bit.
I am pretty sure low-g is the only interrupt I enabled.