Sistemas Empotrados: Tema 4 - Excepciones

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿Cuál es la función principal del registro LR en la gestión de excepciones?

  • Almacenar la dirección de retorno. (correct)
  • Guardar el estado del procesador.
  • Modificar el modo de ejecución.
  • Gestionar interrupciones temporales.

¿Cuál de los siguientes pasos se realiza al gestionar una excepción?

  • Regresar al modo anterior sin guardar el contexto.
  • Guardar solo el registro LR.
  • Copiar CPSR en SPSR_mode. (correct)
  • Modificar solo el CPSR.

En el modo FIQ, ¿qué acción se realiza con respecto a los registros?

  • Se eliminan todos los registros antiguos.
  • No se usa ningún registro.
  • Se mapea el banco de registros apropiado. (correct)
  • Se reinician los registros a valores predeterminados.

¿Qué significa CPSR en la gestión de excepciones?

<p>Control Program Status Register. (B)</p> Signup and view all the answers

¿Qué se hace después de copiar CPSR en SPSR_mode?

<p>Se cambia el modo de ejecución. (D)</p> Signup and view all the answers

¿Qué representa el término 'context switching' en el manejo de excepciones?

<p>Guardar y restaurar el estado de los registros. (A)</p> Signup and view all the answers

¿Cuál es el propósito de la dirección de retorno que se almacena en LR_mode?

<p>Para ajustar el flujo del programa. (D)</p> Signup and view all the answers

¿Qué ocurre si no se gestionan correctamente las excepciones?

<p>Se pueden perder datos críticos. (A)</p> Signup and view all the answers

¿Qué operación se realiza para cambiar al modo de ejecución previo a la excepción?

<p>Copiar SPSR_mode en CPSR (B)</p> Signup and view all the answers

¿Cuál es uno de los tipos de excepciones que se pueden manejar en el sistema?

<p>IRQ (B)</p> Signup and view all the answers

¿Qué se debe hacer con el valor de LR al retornar del manejador de una excepción?

<p>Corregir el valor de LR (B)</p> Signup and view all the answers

¿Qué instrucción se utiliza para recuperar el contexto de la pila en el manejador de excepciones?

<p>ldmfd sp!, {r0-r3, pc} (C)</p> Signup and view all the answers

Al declarar un manejador de excepciones en C, ¿qué elementos son necesarios incluir?

<p>Attribute para el manejador y tipo de excepción (A)</p> Signup and view all the answers

¿Cuál es la dirección de retorno durante la excepción que se establece en PC?

<p>LR_mode (B)</p> Signup and view all the answers

¿Qué tipo de intervención se refiere a 'Gestionar interrupciones no anidadas'?

<p>Interrupciones que no pueden ser interrumpidas por otras (B)</p> Signup and view all the answers

En un sistema, ¿qué significa 'Instrucción no definida' en el contexto de excepciones?

<p>Una instrucción causada por un coprocesador faltante (A)</p> Signup and view all the answers

Cuando se cambia del estado Thumb al estado ARM, ¿qué ocurre con las IRQ y FIQ?

<p>Se deshabilitan según el nuevo modo (A)</p> Signup and view all the answers

¿Qué registro se utiliza para guardar la dirección de retorno al salir del modo FIQ?

<p>lr_fiq (D)</p> Signup and view all the answers

En el contexto de gestión de excepciones, ¿cuál es el primer paso que realiza el procesador al cambiar de modo?

<p>Mapear el banco de registros adecuado (D)</p> Signup and view all the answers

¿Qué se debe fijar en el PC al cambiar a un nuevo modo en el procesador?

<p>La dirección del vector correspondiente al nuevo modo (D)</p> Signup and view all the answers

Al gestionar excepciones, ¿cuál es el propósito de la coordinación entre los registros en modo User y en modo FIQ?

<p>Para permitir un cambio rápido entre modos sin pérdida de datos (B)</p> Signup and view all the answers

¿Qué significa el término 'context switching' en la gestión de excepciones?

<p>Almacenar el estado actual del procesador y cargar uno nuevo (B)</p> Signup and view all the answers

Durante el manejo de interrupciones, ¿cuál es el rol del registro cpsr?

<p>Contener indicadores de proceso como NZCV (D)</p> Signup and view all the answers

Flashcards

Manejo de excepciones

Proceso para responder a eventos inesperados o errores durante la ejecución de un programa.

ISR (Interrupt Service Routine)

Función que se ejecuta en respuesta a una interrupción.

Vector de interrupciones

Tabla que contiene las direcciones de inicio de las rutinas de servicio de interrupción (ISR) para diferentes tipos de interrupciones.

Instrucción no definida

Error que indica que se intenta ejecutar una instrucción inválida, o para un coprocesador no presente/responsivo.

Signup and view all the flashcards

Modo SVC

Modo de operación del procesador para iniciar el sistema.

Signup and view all the flashcards

Retorno de una excepción

Proceso de volver a la ejecución normal después de manejar una excepción.

Signup and view all the flashcards

Manejo de IRQ

Manejo de interrupciones de solicitudes de interrupción.

Signup and view all the flashcards

attribute ((interrupt))

Atributo en C para declarar una función como manejador de interrupción.

Signup and view all the flashcards

Dirección de retorno

Lugar donde el procesador vuelve después de una interrupción o llamada a una función.

Signup and view all the flashcards

Registros de propósito general

Almacenan datos y resultados de cálculos.

Signup and view all the flashcards

Registro LR (Link Register)

Guarda la dirección de retorno de llamadas a subrutinas o funciones.

Signup and view all the flashcards

Registro PC (Program Counter)

Contiene la dirección de la siguiente instrucción a ejecutar.

Signup and view all the flashcards

Modo de excepción

Estado especial que el procesador adopta al ocurrir una interrupción, error o excepción.

Signup and view all the flashcards

CPSR (Current Program Status Register)

Registra el estado del programa actual, incluyendo modo de ejecución y banderas.

Signup and view all the flashcards

SPSR (Saved Program Status Register)

Guarda el registro CPSR para un modo de excepción específico.

Signup and view all the flashcards

Gestión de excepciones

Mecanismo para controlar situaciones especiales, como interrupciones o errores.

Signup and view all the flashcards

Cambio de modo ARM

El procesador cambia de un modo de 16 bits (Thumb) a uno de 32 bits (ARM), utilizando diferentes bancos de registros.

Signup and view all the flashcards

Bancos de registros

El procesador tiene varios conjuntos de registros, según el modo de operación (User, FIQ, etc.). Cambia entre ellos.

Signup and view all the flashcards

Deshabilitar IRQ/FIQ

En un cambio de modo, se apagan las interrupciones IRQ y FIQ, para evitar interferencias.

Signup and view all the flashcards

Dirección de retorno (LR)

La dirección donde el procesador debe volver después del cambio de modo se guarda en LR_mode.

Signup and view all the flashcards

Nuevo PC (r15)

El procesador configura la instrucción inicial (PC) en el modo de procesador al que está cambiado.

Signup and view all the flashcards

Mapeo de registros

El procesador selecciona el conjunto correcto de registros acorde al nuevo modo operativo.

Signup and view all the flashcards

Servicio de excepción (r0)

Después del cambio, estos registros (r0, r1,etc.) tendrán valores dependiendo del servicio de la excepción.

Signup and view all the flashcards

cpsr/spsr

Registros que almacenan información de control y estado del procesador, incluyendo el modo del procesador.

Signup and view all the flashcards

Study Notes

Sistemas Empotrados: Tema 4 - Excepciones e interrupciones, Lección 10 - Excepciones

  • Concepto de excepción: Cualquier evento que causa la interrupción del flujo normal de ejecución de un programa. Puede implicar un cambio al modo de ejecución privilegiado.
  • Clasificación de excepciones:
    • Condiciones de error: Pueden ser recuperables o no recuperables. Incluyen errores como instrucciones no definidas, errores de datos o fallos de prefetch/página.
    • Interrupciones: Paralizan la aplicación para ejecutar una tarea específica (servicios de sistema o dispositivos).
    • Llamadas al sistema: Manejan las peticiones de servicios de la aplicación.
    • Interrupciones: Manejan las peticiones de servicios de dispositivos.

Modos de ejecución y registros asociados:

  • Modos de ejecución: Distintos modos de operación del procesador (User, FIQ, IRQ, Supervisor, Undefined, Abort, SVC). Cada modo tiene un banco de registros propio.
  • Registros: Cada modo tiene un conjunto específico de registros. Existen registros como los de uso general (r0-r15), el contador de programa (PC), el registro de estado de programa (CPSR), y el registro de estado de programa guardado (SPSR), cada uno con un función específica.
  • Cambios de contexto: Los cambios de contexto se agilizan utilizando diferentes bancos de registros para distintos modos de ejecución.

Excepciones y sus modos de ejecución asociados:

  • Reset: Reinicio del sistema.
  • Data abort: Error de acceso a datos.
  • FIQ (Fast Interrupt Request): Peticiones de interrupción rápida.
  • IRQ (Interrupt Request): Peticiones para interrupciones normales.
  • Prefetch abort: Error de acceso a instrucciones.
  • Software interrupt: Llamada a servicio de software.
  • Undefined instruction: Instrucciones inválidas.

Tabla de vectores:

  • Organización: La tabla de vectores define la ubicación de los manejadores de las excepciones y contiene las direcciones de las rutinas de manejo para cada tipo de excepción (reset, undefined instruction, prefetch abort, data abort, IRQ, FIQ, etc.).
  • Saltos: Cada entrada en la tabla de vectores es una instrucción ejecutable que normalmente realiza un salto (branch) a la rutina de manejo correspondiente.
  • Prioridades: Las excepciones tienen diferentes prioridades para la atención.

Gestión de excepciones

  • Flujo del procesador: El procesador sigue estos pasos para la atención:
    • Mapea el banco de registros apropiado.
    • Copia el registro de estado de programa (CPSR) en el registro de estado guardado (SPSR) del nuevo modo.
    • Modifica el CPSR según el nuevo modo de ejecución.
    • Establece o deshabilita las interrupciones IRQ y FIQ según el nuevo modo de ejecución.
    • Guarda la dirección de retorno en el registro LR (Link Register).
    • Cambia el valor de la unidad de control de programa (PC) a la dirección del manejador de salto correspondiente
  • Tipos de excepciones: Las excepciones incluyen reset, undefined instructions, prefetch/data aborts, FIQ, IRQ, y más.

Retorno del manejador de una excepción:

  • Restablecimiento del modo: Para el retorno al estado anterior, se restaura el modo de ejecución anterior (copiando el SPSR al CPSR) y la dirección de retorno del PC (LR_mode).
  • Saltos a las rutinas de manejo: Pueden existir diferentes opciones para regresar, dependiendo del tipo de manejador. Algunos requieren instrucciones de subrutina simples; otros, para el manejo completo del contexto, usan instrucciones de pila (push/pop).

Manejo de excepciones en C (GNU):

  • Atributo attribute ((interrupt (""))): Se utiliza para declarar una función manejadora de excepciones en código C para que el compilador la maneje correctamente. <tipo> indica el tipo de excepción.

Interrupciones

  • Tipos: IRQ y FIQ.
  • Utilidad: Permiten que el procesador deje de ejecutar la tarea actual y atienda una solicitud de un dispositivo o programa externo. Esto incluye tareas como la llegada de un paquete de red al sistema o una entrada de un periférico como un teclado.
  • Prioridades: Se establece un orden de prioridad para la atención de las interrupciones.
  • HW controlador de interrupciones: Asisten en la rápida identificación de la fuente de interrupción para minimizar la pérdida de tiempo.

Abosrt:

  • Definición: Una excepción que ocurre cuando el procesador intenta acceder a un dato o a una instrucción a través de una dirección que no está dentro del mapa de memoria de direcciones válidas.

Instrucción no definida:

  • Definición: Se produce cuando el procesador encuentra una instrucción desconocida en el código. Habitualmente, se debe a que el procesador no reconoce una instrucción en particular.
  • Utilidad: Ayuda a la compatibilidad de software en microprocesadores.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser