Content deleted Content added
m no |
comma |
||
(44 intermediate revisions by 35 users not shown) | |||
Line 1:
{{short description|Data structure}}
{{about|the general concept|its implementation found in x86 processors|Interrupt descriptor table}}
[[File:X86 Interrupt Vector Table.svg|thumb]]
An '''interrupt vector table''' ('''IVT''') is a [[data structure]] that associates a list of [[interrupt handler]]s with a list of [[interrupt request]]s in a table of
==Background==
Most processors have an interrupt vector table, including chips from [[Intel]], [[AMD]], [[Infineon Technologies|Infineon]], Microchip<ref>[http://ww1.microchip.com/downloads/en/DeviceDoc/70189c.pdf "dsPIC33F Family Reference Manual"] section 29.1.1 Interrupt Vector Table
</ref> [[AVR microcontrollers|Atmel]],<ref>[http://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html "AVR Libc User Manual"] section: Introduction to avr-libc's interrupt handling</ref>
==Interrupt
{{main|Interrupt handler}}
===Handling
An interrupt vector table is used in the three most popular methods of finding the starting address of the interrupt service routine:
Line 18 ⟶ 19:
===="Predefined"====
The "predefined" method loads the [[program counter]] (PC) directly with the address of some entry inside the interrupt vector table. The [[jump table]] itself contains executable code. While in principle an extremely short interrupt handler could be stored entirely inside the interrupt vector table, in practice the code at each
===="Fetch"====
The "fetch" method loads the PC indirectly, using the address of some entry inside the interrupt vector table to pull an address out of that table, and then loading the PC with that address.<ref name="huang" /> Each and every entry of the IVT is the address of an interrupt service routine. All Motorola/Freescale microcontrollers use the fetch method.<ref name="huang" />
===="Interrupt
When the CPU is
== See also ==
* [[Interrupt
== References ==
Line 42 ⟶ 39:
== External links ==
*[http://developer.intel.com/design/pentium/manuals/ Intel® Architecture Software Developer's Manual, Volume 3: System Programming Guide] {{Webarchive|url=https://web.archive.org/web/20090216132436/http://developer.intel.com/design/pentium/manuals/ |date=2009-02-16 }}
** [https://web.archive.org/web/20081221050950/http://download.intel.com/design/processor/manuals/253668.pdf Intel
*
[[Category:Interrupts]]
|