Contenido
Relacionado: partes principales de un sistema robotico.
- Modos de Operación de la CPU
- Unidad de Protección de Memoria (MPU)
- Excepciones
- Programación de Llamadas al Sistema
- Ejercicios
Modos de Operación de la CPU
- Modos de operación:
- Supervisor: permite ejecutar todas las instrucciones.
- Usuario: restringido a instrucciones de usuario, sin acceso a instrucciones privilegiadas (
STI,CLI,IN,OUT, etc.).
- Al iniciar, la CPU siempre está en modo supervisor.
- Cambio de modo:
- SVC: cambia de usuario a supervisor, almacenando el estado en la pila de supervisor y ajustando la IP a un valor fijo (
0x0006). - SRET: cambia de supervisor a usuario, restaurando el SP, IP y registro de estado.
- SVC: cambia de usuario a supervisor, almacenando el estado en la pila de supervisor y ajustando la IP a un valor fijo (
Unidad de Protección de Memoria (MPU)
- La MPU bloquea el acceso a regiones de memoria, configurado con los registros
MEMPTSTARTyMEMPTEND. - Registro MEMPTSTART:
- Protección activada:
1para habilitar,0para deshabilitar. - Modo de escritura:
1para permitir escritura en modo usuario/supervisor. - Dirección de inicio calculada como
START_ADDRESS * 16.
- Protección activada:
- Registro MEMPTEND define el final de la región de memoria protegida.
Excepciones
- Las excepciones ocurren al ejecutar una instrucción y se manejan solo en modo usuario.
- Tipos de excepciones:
DIVIDE_BY_ZERO: divisor en una instruccióndives cero.INSTRUCTION_FETCH_ERROR: error al buscar la siguiente instrucción.MEMORY_ACCESS_ERROR: acceso a posición de memoria prohibida.UNKNOWN_OPCODE: código de operación desconocido.ILLEGAL_INSTRUCTION: instrucción privilegiada en modo usuario.STACK_ACCESS_ERROR: error de acceso a la pila.
- Frame de excepción:
- Almacena información sobre la excepción: tipo, posición de memoria, SP y registro de estado al momento de la excepción.
Programación de Llamadas al Sistema
- En sistemas convencionales, las aplicaciones corren en modo usuario y el kernel en modo supervisor.
- Las aplicaciones solicitan servicios mediante instrucciones de sistema (como
TRAPen simuladores). - Rutina de manejo de llamadas al sistema:
- Cada llamada puede manejar múltiples servicios con parámetros variables.
- Los parámetros se pasan por registros, pila o ubicaciones de memoria fijas.
- Ejemplo: añadir una llamada al sistema
print_pixelpara colorear un píxel específico.- Parámetros:
A: número de llamada (2)BH: coordenada XBL: coordenada YCL: color
- Parámetros:
Ejercicios
- Añadir la llamada al sistema
print_pixelal programa de ejemplo. - Implementar el código del sistema y el envoltorio de usuario para
print_pixel.