Slide 1
Slide 2
Slide 3
Slide 4
Slide 5
Slide 6
Slide 7
Slide 8
Slide 9
Slide 10
Slide 11
Slide 12
Slide 13
Slide 14
Slide 15
Slide 16
Slide 17
Slide 18
Slide 19
Slide 20
Slide 21
Slide 22
Slide 23
Slide 24
Slide 25
Slide 26
Slide 27
Slide 28
Slide 29
Slide 30
Slide 31
Slide 32
Slide 33
Slide 34
Slide 35
Slide 36
Slide 37
Slide 38
Slide 39
Slide 40
Slide 41
Slide 42
Slide 43
Slide 44
Slide 45
Slide 46
Slide 47
Slide 48
Slide 49
Slide 50
Slide 51
Slide 52
Slide 53
Slide 54
Slide 55
Slide 56
Slide 57
Slide 58
Product List
A typical example of NVIC tail chaining can be related to automotive based applications. Automotive systems are highly interrupt driven, with routine actions like applying brakes and taking sharp turns being instances of interrupts. Fast and predictable response to such interrupts for the implementation of technology like anti-lock braking systems (ABS) and automatic stability control is critical for safe operation. These systems are especially complicated since many different such subsystems could deploy at any time. Tail-chaining technology in the NVIC supports interrupts that occur back-to-back, but there could be cases where an interrupt of higher priority could also occur during the stacking (Push) or state restore (Pop) stages of the interrupt being serviced. In traditional interrupt based systems, these stages need to complete before the pending interrupt can take over. As shown in the image, it would take around 30 clock cycles to jump from ISR1 to ISR2. The Cortex-M3 NVIC, on the other hand, provides deterministic response to these possibilities with support for late arrival and pre-emption. In case of the late arrival of a higher priority interrupt during the execution of the stack Push for a previous interrupt, the NVIC immediately fetches a new vector address to service the pending interrupt, as shown in this Figure. The interrupt latency in this case is just restricted to 6 clocks.
PTM Published on: 2011-11-02