Interrupt Priority Grouping; Exception Entry And Return - Texas Instruments Concerto F28M35 Series Technical Reference Manual

Table of Contents

Advertisement

Exception Model
When the processor is executing an exception handler, the exception handler is preempted if a higher
priority exception occurs. If an exception occurs with the same priority as the exception being handled, the
handler is not preempted, irrespective of the exception number. However, the status of the new interrupt
changes to pending.

24.7.6 Interrupt Priority Grouping

To increase priority control in systems with interrupts, the NVIC supports priority grouping. This grouping
divides each interrupt priority register entry into two fields:
An upper field that defines the group priority
A lower field that defines a subpriority within the group
Only the group priority determines preemption of interrupt exceptions. When the processor is executing an
interrupt exception handler, another interrupt with the same group priority as the interrupt being handled
does not preempt the handler.
If multiple pending interrupts have the same group priority, the subpriority field determines the order in
which they are processed. If multiple pending interrupts have the same group priority and subpriority, the
interrupt with the lowest IRQ number is processed first.
For information about splitting the interrupt priority fields into group priority and subpriority, see Application
Interrupt and Reset Control (APINT) section in the the Cortex-M3 Peripherals chapter.

24.7.7 Exception Entry and Return

Descriptions of exception handling use the following terms:
Preemption. When the processor is executing an exception handler, an exception can preempt the
exception handler if its priority is higher than the priority of the exception being handled. See
Section 24.7.6
another, the exceptions are called nested exceptions. See
Return. Return occurs when the exception handler is completed, and there is no pending exception
with sufficient priority to be serviced and the completed exception handler was not handling a late-
arriving exception. The processor pops the stack and restores the processor state to the state it had
before the interrupt occurred. See
Tail-Chaining. This mechanism speeds up exception servicing. On completion of an exception
handler, if there is a pending exception that meets the requirements for exception entry, the stack pop
is skipped and control transfers to the new exception handler.
Late-Arriving. This mechanism speeds up preemption. If a higher priority exception occurs during
state saving for a previous exception, the processor switches to handle the higher priority exception
and initiates the vector fetch for that exception. State saving is not affected by late arrival because the
state saved is the same for both exceptions. Therefore, the state saving continues uninterrupted. The
processor can accept a late arriving exception until the first instruction of the exception handler of the
original exception enters the execute stage of the processor. On return from the exception handler of
the late-arriving exception, the normal tail-chaining rules apply.
24.7.7.1 Exception Entry
Exception entry occurs when there is a pending exception with sufficient priority and either the processor
is in Thread mode or the new exception is of higher priority than the exception being handled, in which
case the new exception preempts the original exception.
When one exception preempts another, the exceptions are nested.
Sufficient priority means the exception has more priority than any limits set by the mask registers (see the
Priority Mask Register (PRIMASK), Fault Mask Register (FAULTMASK), and Base Priority Mask Register
(BASEPRI). An exception with less priority than this is pending but is not handled by the processor.
When the processor takes an exception, unless the exception is a tail-chained or a late-arriving exception,
the processor pushes information onto the current stack. This operation is referred to as stacking and the
structure of eight data words is referred to as stack frame.
1590
Cortex-M3 Processor
for more information about preemption by an interrupt. When one exception preempts
Section 24.7.7.2
Copyright © 2012–2019, Texas Instruments Incorporated
Section 24.7.7.1
for more information.
for more information.
SPRUH22I – April 2012 – Revised November 2019
www.ti.com
Submit Documentation Feedback

Advertisement

Table of Contents
loading

Table of Contents