How does interrupt handling work on the F28xx series?
Answers
-
Submitted by pete on Thu, 10/29/2015 - 21:25.
Good question. Properly configured interrupts are either serviced (if no other interrupt is in the process of being serviced) or left pending until the current interrupt service routine is completed. All interrupts have a unique but fixed priority set by the hardware. TI has ordered priorities so that lower valued interrupts have higher priority. If a given interrupt handler re-enables interrupts while processing the interrupt, any interrupts of higher priority will cause preemption of the current interrupt and invocation of the higher priority interrupt handler. When the higher priority handler is complete, control will be returned to the lower priority interrupt. To enable interrupts in a lower priority handler, you insert a VisSim extern function set to “enable_interrupts()” at the top of the page. The diagram below from the F28377D user guide shows priorities of interrupts on that chip. Priority decreases left to right, top to bottom:
0