Información de contexto ¿Ahorro en microcontroladores?

0

Realizo una búsqueda del método de guardado de información de contexto en microcontroladores (especialmente PIC), y lo único que encontré es una patente del "microprocesador resistente a la manipulación indebida". De acuerdo con la patente, un microprocesador guarda una información de contexto para un programa cuya ejecución debe interrumpirse y la ejecución de ese programa se puede reiniciar restaurando el estado de ejecución desde la información de contexto guardada.

enlace: enlace

¿Es esto lo que estoy buscando? Y si esto es correcto y he entendido bien, este método se usa, por ejemplo, en interrupciones cuando guarda los valores de registro que necesita y probablemente la rutina de interrupción puede cambiar y cuando regresa a la ejecución normal del programa, recupera los datos guardados. ¿valores? ¿O cuando aparece un valor en la pila que indica una dirección que comienza un fragmento de código y cuando regresa de una instrucción de llamada, recupera esta dirección?

    
pregunta 20317

1 respuesta

2

¿Solicita "guardar contexto", pero parece que no sabe qué significa ese término en su contexto?

El significado con el que estoy más familiarizado es en el contexto de interrupciones y cambio de tareas, donde todo en el que se basa el programa principal o una tarea se guarda en la RAM, para ser restaurado más adelante. En la mayoría de los casos, esto equivale a empujar todos los registros en la pila, para que puedan aparecer más tarde.

Las cosas pueden ponerse difíciles cuando hay un contexto fuera de los registros de la CPU que puede ser utilizado por la interrupción (o por otras tareas), por lo que también debe guardarse. Piense, por ejemplo, en los registros de coprocesadores de punto flotante.

En un antiguo PIC de 12 y 14 bits, guardar el contexto para una interrupción es un poco complicado, pero se explica en la hoja de datos, es mejor leerlo allí. Tenga en cuenta que en estos chips, varios registros mapeados en memoria también pueden ser contextuales, como el registro de direccionamiento indirecto. Si su rutina de interrupción utiliza dichos registros, probablemente también deberán guardarse (y restaurarse).

El intercambio de contexto real para el cambio de tarea no es posible en estos PIC, porque la pila no se puede cambiar. Hay algunos trucos sucios que logran el mismo efecto (como no usar la pila de hardware), pero a un costo.

Los 18F PIC y IIRC, los chips de rango medio mejorados también tienen una pila que se puede leer y escribir, por lo que es posible el cambio de contexto real, pero es tedioso. Si desea realizar múltiples tareas, busque mejor una CPU que tenga una pila asignada en memoria. (Hoy en día, una Cortex sería una opción obvia).

    
respondido por el Wouter van Ooijen

Lea otras preguntas en las etiquetas