I have the following problem.
I need to send and receive SPI frames triggered by interrupts or interrupt sequences. By interrupt sequences I mean things like “interrupt A enables interrupt B, and when interrupt B arrives it start an SPI frame”.
The algorithm is quite complicated as the interrupt and SPI-frame sequence flow is dynamically configurable. The actual run-time of the algorithm is quite low as we can use DMA for the SPI, and the decisions themselves (i.e. which interrupts to enable and which data to send) are simple relative to the processor clock speed.
We need to keep jitter to the absolute minimum.
While all this is running, we need communication with the user over a UART, housekeeping, etc.
I was thinking about using FreeRTOS, running the algorithm in a high-priority task, woken up by the interrupts. However, as I understand it, the kernel tick interrupt will still interrupt the high-priority task unpredictably, increasing jitter.
Is it possible to operate FreeRTOS without a tick interrupt? We do not need tasks of the same priority, software timers, or time-outs. As I understand it, that makes the tick count irrelevant (?). Neither Google nor the API give a solution, esp. as the co-routines seem deprecated.
Can I achieve zero jitter added by the RTOS in some other way?
There is a somewhat-related thread at [Why tick is use in RTOS]; all other threads relate to the low-power tick-less mode.
Thanks for any advice.