On Tue, Oct 27, 2020 at 10:03 AM Matias N. <mat...@imap.cc> wrote:

> Hi Nathan,
> as I mentioned in my previous email, this isn't about overhead, is about
> other ISRs delaying mine.


I didn't see your reply until after, but Zero Latency Interrupts should
more aptly be called Zero Jitter Interrupt, because jitter is what you
would see on an oscilloscope if you turn on a GPIO on entry to the ISR,
turn it off on exit from the ISR, and scope that together with whatever
signal triggers the interrupt. Sometimes you'll see your interrupt begin
very closely to the trigger and other times you'll see a delay. This is due
to other interrupts and critical sections that happen to be executing at
the time of the trigger. What Zero Latency Interrupts do is run immediately
without caring about other interrupts, critical sections, etc. In fact
they'll interrupt them immediately, eliminating that jitter I mentioned. It
is a lot more work to setup these zero latency interrupts so I only use it
for the most crucial things and I do everything else "in" the OS.

This happens only so often if I'm unlucky, so it isn't like it breaks the
> communication completely.
> But I would like to trust the communication more and know that if I start
> processing ISRs from more peripherals
> I'm not increasing the chances for communication to break.
>
> I don't see other way around using high-priority interrupts interrupting
> lower-priority ones to achieve that.


I guess this goes back to what Greg pointed out, which was done in TizenRT.
I don't have the link handy (on my phone) but Greg posted it earlier in
this thread.

Nathan

Reply via email to