Hi,
I'm currently writing code in which I have created critical sections by disabling channels which are of lower priority than a specified channel. Suppose 5 is the specified channel. Then all channels 5- 128 will be disabled while 0-4 channels will be serviced. I do not want to use _enable_IRQ and disable_IRQ calls to do the same.
I have an sci interrupt driven code driver which works fine. But doesn't work well when I create such critical section (according to the logic I described above). I'm assuming that the problematic section of the code is when I try to mask the interrupts using vimREG->REQMASKCLR0 and then unmask the interrupts using vimREG->REQMASKSET0.
I'm assuming that if any interrupts occur when the code is in critical section (interrupts are masked) then the IRQ will be queued. After the code exits the critical section, the pending interrupt will then trigger a IRQ interrupt service routine.
Please correct me if I am wrong.
-Umang