Lecture 10 - Exception Handling
Lecture 10 - Exception Handling
• It works out well if there are only 2 I/O devices and/or peripheral units for
an entire system that need attention from the ARM core. However, this is
usually not the case!!!
• What if there are multiple ( > 2) sources (I/O devices or peripherals) that
can cause an interrupt to the ARM core?
Vectored IRQ
• Vectored IRQ’s, which include all interrupt requests that are
not classified as FIQs, have a programmable interrupt priority.
• The VIC ORs the requests from all of the vectored IRQs to
produce the IRQ signal to the ARM processor. The IRQ service
routine can start by reading a register from the VIC and
jumping to the address supplied by that register.
Vectored Interrupt Controller (VIC)
• VIC is a specialized hardware component
The fastest possible FIQ latency is achieved when only one request
is classified as FIQ, because then the FIQ service routine can simply
start dealing with that device.
But if more than one request is assigned to the FIQ class, the FIQ
service routine can read a word from the VIC that identifies which
FIQ source(s) is (are) requesting an interrupt.
Vectored Interrupt Controller
• VIC is a memory-mapped device (addressable)