Departamento de Arquitectura y Tecnología de Computadores Universidad del País Vasco / Euskal Herriko Unibertsitatea Master Oficial en Ingeniería de Sistemas Empotrados 2010-11 Introducción al tiempo real en sistemas empotrados Tema 2: Soporte de interrupciones Ejercicios 1 Un sistema se controla mediante interupciones vectorizadas. Cuando se produce una interrupción, el PIC suministra a la CPU un vector de 3 bits (xyz) identificando la interrupción, a partir del cual la CPU genera una dirección de 16 bits con el patrón 1111 1111 1110 xyz0 donde x, y, z son los bits del vector. De esta forma, el sistema operativo almacena las rutinas de servicio de las interrupciones (ISR) en cualquier lugar de la memoria, apuntando las direcciones de comienzo de las ISRs desde las posiciones direccionadas con el patrón (tabla de vectores de interrupciones). Obsérvese que la memoria es direccionable a nivel de byte y que todas las direcciones son de 16 bits. Se destinan 32 bytes para almacenar la tabla de VIs, por lo que éste es capaz de apuntar a 16 direcciones (vectores de interrupción). El sistema operativo utiliza también la tabla de VIs para apuntar a la ubicación de las rutinas de servicio a excepciones y de las rutinas que ejecutan las llamadas al sistema. Por ejemplo, la dirección de la llamada al sistema SC_1() se almacena en la dirección: 1111 1111 1111 0000 Se pide que representes un esquema con el direccionamiento y la ubicación de la tabla de VIs. Supón como ejemplo que la rutina de servicio de la interrupción vectorizada 010 está cargada en la posición hexadecimal 7FF0, y que el código de la llamada al sistema SC_1() está cargado en la 38FE. Representa sobre el esquema la ubicación y el direccionamiento de estas rutinas ejemplo. 2 En el sistema descrito en el ejercicio anterior se establece que las interrupciones son prioritarias sobre las llamadas al sistema. Supón que un programa P está ejecutando una subrutina S que a su vez ha invocado la llamada al sistema SC_1(). Durante la ejecución de SC_1() se produce la interrupción 010. Describe las sucesivas etapas por las que pasa el estado de la pila de este programa desde antes de la llamada a SC_1() hasta que ésta finaliza. Alberto Lafuente. Departamento de ATC – UPV-EHU