Interrupt priorities within a level in Processor Expert

Showing results for 
Search instead for 
Did you mean: 

Interrupt priorities within a level in Processor Expert

Contributor I

CodeWarrior: 7.1
CPU: MCF54452


when I set up the interrupt priority for a bean in Processor Expert and I choose, say:
"level 6, priority within level 0"
I would expect the interrupt to be set to level 0 and assigned level 6 on top of other interrupt sources that share the same level.
Instead, if I hit a breakpoint at the beginning of the interrupt service routine, I can see that the priority in the Status Register is indeed 6 and not 0.
Is that what I'm meant to see when using the Processor Expert configuration?


Message Edited by ZiglioNZ on 2009-01-11 10:18 PM
Labels (1)
0 Kudos
3 Replies

Senior Contributor II
Unless I totally misunderstand, I think you want to parse "level 6, priority within level 0" as:
  interrupt level is 6
  interrupt priority (within level 6) is 0
I found the following post useful to explain the differences between levels (very important, allowing or preventing interrupts to/from preempting other interrupts) and priorities (not so important, imho, breaking ties between interrupts of the same level initially pending concurrently).
0 Kudos

Contributor I
Thank you Rich,

that makes more sense. But still, if I set up two interrupt sources to the same level, under Processor Expert they would appear to have the same priority 0 within the level.
I understand that if two sources are assigned the same level, then the one with greater source number is processed first (and that should be the priority within a level).
Thanks for the link, I didn't know that priorities, unlike levels, wouldn't preempt each other.

Message Edited by ZiglioNZ on 2009-01-11 10:17 PM

Message Edited by ZiglioNZ on 2009-01-11 10:17 PM
0 Kudos

Senior Contributor III
In MCF54455RM datasheet I have found the following information:
"When multiple interrupt requests are programmed to the same level number, they are processed in a descending request number order. As an example, if requests 63, 62, 2, and 1 are programmed to a common level, request 63 is processed first, then request 62, then request 2, and finally request 1."
Therefore please for more details go to the chapter "16.2.9Interrupt Control Register (ICR0n, ICR1n, (n = 00, 01, 02, ..., 63))" in the datasheet.
Unfortunately the representation of "Interrupt priority" property in Processor Expert does not exactly refer to the datasheet in this case, because the MCF54452 does not support priority within a level. As workaround please ignore the text "priority within level 0" in the "Interrupt priority" property.

best regards
Vojtech Filip
Processor Expert Support Team

0 Kudos