We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I am porting a bare metal application to the Keil MDK-PRO middleware so that we can use USB HOST.
I have nested interrupt handlers in the code, most take less than 25us to run. I have one interrupt handler though that can run as long as 1.5ms and I am hoping this will not disrupt the RTOS.
This long ISR allows higher priority ISR's to nest within it. I realize that this could cause the SYSTICK 1ms interrupt to "skip" a millisecond and I am hoping this will not cause any problems for the RTOS.
Rewriting this ISR would take a lot of work and I have limited time. Moving the code from the ISR to a RTOS Task would slow the response time down a lot (from ~100us at present to over 1ms).
Anyone have experience with running long ISR's and CMSIS-OS?
Are you sure you can't break your slow interrupt into two interrupts? Or into one interrupt and one (possibly very high-priority) worker thread?
Why is it so slow? Are you busylooping waiting for some result? Or doing lots of computations?