my firmware is now running and has a lot of interrupt routines/functions for USB, Ethernet, UART, LSPI, DMA, GPIO, etc.
The GPIO IRQ on GPIO1 (only this GPIO IRQ) => GPIO1_Combined_16_31_IRQHandler has the highest level (0)
there are no __disable_irq(), etc. in the firmware, meaning i do not use any disabling function.
The irq function:
void GPIO1_Combined_16_31_IRQHandler(void)
{
GPIO1->ISR = (1 << 24);
GPIO1->DR ^= (1 << 9);
}
I did some measurements and use my oscilloscope therefore. The pin GPIO1.24 is connected with a frequency generator, and pin GPIO1.9 toggles the output. my oscilloscope captures both pins.
i start the test and do a lot of UART and USB and Ethernet communication things.
The interrupts raises up to 978 ns.
Very very bad. The GPIO Irq has the highest priority in my system.
So what the hell is going on here?
How can that be? How can i improve the irq jitter?