Part Number: AM5728
Hi,
If I map multiple PRU system events to a single channel and then that channel to host 0, how would I differentiate which system event caused the interrupt to the PRU's?
Thank you,
Colin
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Part Number: AM5728
Hi,
If I map multiple PRU system events to a single channel and then that channel to host 0, how would I differentiate which system event caused the interrupt to the PRU's?
Thank you,
Colin
Hello Colin,
Once bit 30 of R31 indicates that there is a system event pending on host 0, you would want to check the INTC registers to see which event it is.
These registers in the INTC may be helpful, take a look at them in the Technical Reference Manual:
System Interrupt Status Enabled Clear Register0
System Interrupt Status Enabled Clear Register1
System Interrupt Status Raw Set Register0
System Interrupt Status Raw Set Register1
Global Prioritized Index Register
Host Interrupt Prioritized Index Register_j (where j=0 to 9)
The Host Interrupt Nesting Level Register_j (where j=0 to 9)
Note that if you use RemoteProc to load the PRUs, you will want to place your interrupt settings in the resource table. If you set interrupt settings in your firmware, the firmware can overwrite the previous settings as in this post. See this post for an example of modifying the resource table.
Regards,
Nick