I'm trying to get an interrupt handler to trigger on the rising edge of a 1PPS signal connected to GPIO3_IO05, to then toggle GPIO3_IO03 so that I can measure interrupt latency. I've based my project off of the gpio led_output example. I've read through the documentation and processor manual and know that to do this i'll need to use IRQSTEER so that the external gpio interrupt is routed to the CM4_0 core. However, I cannot get this to work. I've double checked my connections. I've attached the code i've tried, my modifications were in the main source file and pin_mux. Any help is appreciated!
Hi @zachkozar,
I hope you are doing well.
Hi Dhruvit,
Thank you for your reply!
1. I believe i'm registering the handler correctly. According to the other examples using interrupts, you only need to declare a function that matches the name and signature in the startup_MIMX8QM6_cm4_core0.S file included with the SDK, and then enable it in the NVIC. According to the SDK source, the IRQSTEER_Init function enables all 8 IRQSTEER master interrupts, so my EnableIRQ call is technically unnecessary.
2. The LSIO_GPIO3 peripheral is not being used anywhere else. It is disabled in the linux device tree and the CM4_1 core is offline.
3. I tried this with no success. I didn't think it would though, according to the SDK the IRQSTEER_N_IRQn interrupt enums are for the eight IRQSTEER master interrupts under the CM4_0s IRQSTEER channel.
Could you confirm if my understanding is correct on #1 and #3? Is there anything else I could be missing here?
Thanks again.
Hi @zachkozar,