Tabla de vectores de interrupción
Una tabla en una dirección conocida donde el procesador consulta qué rutina ejecutar para cada interrupción.
Cuando un temporizador, una UART o un fallo provoca una interrupción, el procesador solo conoce un número. Ese número apunta a una entrada de la tabla, y en ella está la dirección de la rutina de servicio (ISR). El Intel 8086 ponía la tabla en la dirección 0, con 256 entradas de cuatro bytes; ARM Cortex-M la coloca al principio de la flash, donde la primera palabra es el valor inicial del puntero de pila y la segunda el vector de reset, lo primero que se ejecuta tras el encendido.
El código de arranque y el script del enlazador rellenan la tabla, normalmente con un manejador por defecto débil que se queda girando para siempre. Si olvidas definir una rutina, la interrupción acaba ahí y la depuración empieza preguntándose por qué el programa se ha congelado. Las tablas reubicables (VTOR) permiten que un bootloader y una aplicación tengan cada uno la suya.