Hi, thanks. Will take a look. On Thu, May 4, 2023 at 1:25 PM Nathan Hartman <hartman.nat...@gmail.com> wrote:
> On Thu, May 4, 2023 at 7:11 AM Nathan Hartman <hartman.nat...@gmail.com> > wrote: > > > On Thu, May 4, 2023 at 5:46 AM Jernej Turnsek <jernej.turn...@gmail.com> > > wrote: > > > >> I am developing a driver which is processing peripheral interrupts every > >> 6.4 microseconds and every 16th interrupt calling notify function from > HP > >> work queue. But scheduling workqueue does lock interrupts (through > >> critical > >> section) up to 20us sometimes, causing my peripheral missing interrupts. > >> The same thing occurs if calling the notify function with nxsem_post > >> directly from ISR. DMA is not an option. I am working with the NXP > RT1064 > >> board. How can I wake the read function without locking interrupts? > >> Thanks. > >> > > That chip is Arm Cortex M7. I think zero-latency interrupts are supported > > on that. If so, you could try to use that to service the 6.4us interrupt. > > > > Zero-latency interrupts cannot use OS services because they exist outside > > the OS. Therefore, to rendezvous with the hp queue, each 16th interrupt, > > trigger an otherwise unused interrupt vector, which will be serviced by a > > "normal" ISR, which can in turn hand off the data to the hp queue. > > > > There's a page about this somewhere... > > > > > I found it in the old wiki: > > > https://cwiki.apache.org/confluence/display/NUTTX/High+Performance%2C+Zero+Latency+Interrupts > > I don't see it in the repo Documentation. This is an important thing that > should be in the repo. > > Cheers > Nathan >