Arm Community
Site
Search
User
Site
Search
User
Support forums
Arm Development Studio forum
Interrupt priority levels:
Locked
Locked
Replies
2 replies
Subscribers
119 subscribers
Views
2647 views
Users
0 members are here
Options
Share
More actions
Related
How was your experience today?
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion
Interrupt priority levels:
David Clark
over 12 years ago
Note: This was originally posted on 16th June 2010 at
http://forums.arm.com
I feel this is probably documented somewhere, but I'm failing to find it, so here goes.
Let's say I have 2 interrupts/exceptions at the same priority level, and let's say they're both masked (due to PRIMASK, due to BASEPRI, etc...)
Let's say they both become pended, but they don't fire, because they're masked.
Now let's say the interrupts are unmasked simultaneously. What determines which interrupt will fire first?
Is there a table with a "pecking order" somewhere in the ARM documentation?
Does it depend on which arrived first? (Very unlikely)
Is it random / undefined? (Also extremely unlikely)
Just wondering how to understand what will happen in such a scenario.
As a more concrete example, I'm sitting here looking at a table showing the SVC exception at slot 11, and the PendSV exception at the "lower" slot 14; let's say:
they're both configured to be a certain level, the same level (let's say 0x80)
BASEPRI is now set to 0x40
Both PendSV and SVC become pending
BASEPRI is adjused back to 0
Is it clear in this scenario which exception handler will run first?
Thank you.
0
Quote