Interrupt Vector Table

An interrupt vector is a pointer to an interrupt handling subroutine.
An Interrupt Vector Table (IVT) is a table (list) which contains single interrupt vectors. Each interrupt corresponds to one interrupt vector. IVT may be:

  • placed in ROM - usually first-level IVTs: the jump to the right vector is done by hardware, no interrupt vectors can be changed at runtime.
  • placed in RAM - usually second-level IVTs: the jump to the right vector is done by software first-level interrupt handling subroutine. This implementation can be slower due to this software redirection to users routine.
    The interrupt vectors placed in RAM and not allocated by any bean can be changed at runtime using CPU bean methods (GetIntVect and SetIntVect).

    Notice: Interrupt vectors in RAM are available only in the HC(S)08 and HC(S)12 versions.

The type of the IVT (ROM/RAM) can be setup using the option Application Options | Interrupt Vector Table.

Each processor that can handle and process interrupts has a first-level IVT (in ROM). The second-level is used only when it is necessary (i.e. IVT is placed in RAM).

Processor Expert generates content of the whole IVT into the file vectors.c. The content of the file depends on the compiler syntax of the interrupt declarations.


 

 

[top of page]