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
LPC1700 Microcontroller Slide 25
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