I have recently started working with MQX 4.2 on K64F. I use Keil uVision 5 to build my application on top of the IEEE 1588 demo project. I need a very tightly timed position control for which I use the PIT module (1ms period), however, installing a regular ISR gave me a relatively large activation jitter. I found instructions on how to use a kernel ISR instead (I had to recompile MQX with MQX_ROM_VECTORS set to 0). The jitter in activation time of the ISR reduced greatly, but now the board is acting differently.
When I compile/load my project with:
_int_install_isr (INT_PIT0, PIT_IRQHandler, 0);
everything is OK, and I can reset the board multiple times and see the same code running every time.
When I compile/load my project with:
_int_install_kernel_isr (INT_PIT0, PIT_IRQHandler);
after the load finishes, I restart the board and the code runs. However, if I restart the board, no code is being run anymore until I perform another load.
Does anyone have an idea why this is happening and how to overcome this? I would really have to use kernel ISRs for my application.
Thank you very much.