PDF de programación - Instrumentación de Tiempo Real - Tema 3. Interrupciones

Imágen de pdf Instrumentación de Tiempo Real - Tema 3. Interrupciones

Instrumentación de Tiempo Real - Tema 3. Interrupcionesgráfica de visualizaciones

Publicado el 14 de Enero del 2017
971 visualizaciones desde el 14 de Enero del 2017
301,9 KB
14 paginas
Creado hace 18a (29/03/2006)
Instrumentación de Tiempo Real

UNIVERSIDAD DE CANTABRIA

Tema 1. Introducción
Tema 2. Recursos de acceso al hardware
Tema 3. Interrupciones
Tema 4. Puertas básicas de entrada/salida (I)
Tema 5. Recursos de temporización de bajo nivel
Tema 6. Multitarea en Ada
Tema 7. Puertas básicas de entrada/salida (II)

GRUPO DE COMPUTADORES Y TIEMPO REAL
DPTO. DE ELECTRÓNICA Y COMPUTADORES

© Mario Aldea Rivas

2/Mar/06

1

Conceptos fundamentales

• Interrupción: mecanismo mediante el cual es posible

interrumpir la ejecución del programa ejecutado por la CPU

UNIVERSIDAD DE CANTABRIA

• Tras la interrupción el programa permanece suspendido
mientras se ejecuta la rutina de servicio de interrupción
(ISR) (también denominada manejador de la interrupción)
Ejecución secuencial
del programa

...
A := B + 4;
Put (A);
C := 2 * PI * R;
if A > 0 then
A := 0;
else
B := B + 1;
end if;
...

Interrupción

Continua la
ejecución secuencial
del programa

Manejador
begin
código del
manejador;
end Manejador;

GRUPO DE COMPUTADORES Y TIEMPO REAL
DPTO. DE ELECTRÓNICA Y COMPUTADORES

© Mario Aldea Rivas

2/Mar/06

2

Conceptos fundamentales

(cont.)

UNIVERSIDAD DE CANTABRIA

Las interrupciones pueden ser de origen interno o externo a la
CPU:
• excepción: interrupción generada como consecuencia del

resultado de una ejecución de una instrucción
- P.e.: desbordamiento aritmético ("overflow"), división

por cero, etc.

• interrupción software:

- generadas expresamente por el programa con una

instrucción ensamblador (INT 4)

• interrupción hardware: generada por un dispositivo
- P.e.: expiración de un temporizador, nuevo dato

disponible en un dispositivo de E/S, etc.

GRUPO DE COMPUTADORES Y TIEMPO REAL
DPTO. DE ELECTRÓNICA Y COMPUTADORES

© Mario Aldea Rivas

2/Mar/06

3

Conceptos fundamentales

(cont.)

UNIVERSIDAD DE CANTABRIA

• Las distintas interrupciones que se pueden producir en un
computador se identifican mediante un número (tipo de la
interrupción)

• La tabla de vectores de interrupción establece el enlace

entre cada tipo de interrupción y su ISR asociada

Tabla de vectores
de interrupción

tipo de

interrupción

0

1

2

3

4

5

...

Manejador1
begin
...;
end Manejador1;

Manejador2
begin
...;
end Manejador2;

GRUPO DE COMPUTADORES Y TIEMPO REAL
DPTO. DE ELECTRÓNICA Y COMPUTADORES

© Mario Aldea Rivas

2/Mar/06

4

Aspectos hardware:

Ciclo de atención a interrupción

UNIVERSIDAD DE CANTABRIA

1. Se genera una interrupción, el procesador termina la ins-

trucción ensamblador que estaba ejecutando

Interrupción

PCPC
µΡ
Flags

...
mov 0x80616d3,%eax
movl $0xf,0x4(%esp)
mov %eax,(%esp)
sub $0x4,%esp
mov 0x4(%ebp),%edx
...

2. Se salva en el stack el estado del procesador (contador de

programa y registro de estado)

PCPC
µΡ
Flags

stack

PC
Flags
XX
XX

GRUPO DE COMPUTADORES Y TIEMPO REAL
DPTO. DE ELECTRÓNICA Y COMPUTADORES

© Mario Aldea Rivas

2/Mar/06

5

Aspectos hardware:

Ciclo de atención a interrupción

UNIVERSIDAD DE CANTABRIA

3. La CPU lee el tipo de interrupción y obtiene la dirección de

su ISR utilizando la tabla de vectores de interrupción
Tipo de

Tabla de vectores
de interrupción

interrupción

5

Bus de datos

PCPC
µΡ
Flags

Manejador5
begin
...;
end Manejador5;

4

5

6

4. Se carga la dirección de comienzo de la ISR en el PC y se

deshabilitan nuevas interrupciones

Deshabilita

interrupciones

PCPC
µΡ
Flags

Manejador5
begin
...;
end Manejador5;

GRUPO DE COMPUTADORES Y TIEMPO REAL
DPTO. DE ELECTRÓNICA Y COMPUTADORES

© Mario Aldea Rivas

2/Mar/06

6

Aspectos hardware:

Ciclo de atención a interrupción

UNIVERSIDAD DE CANTABRIA

5. Se ejecuta la ISR hasta llegar a la instrucción de retorno de

interrupción (RTI)

PCPC
µΡ
Flags

Manejador5
begin
...;
RTI;
end Manejador5;

6. La instrucción RTI recupera del stack el estado original de
la CPU, con lo que el procesador continua la ejecución del
programa interrumpido

stack

PC
Flags
XX
XX

PCPC
µΡ

Flags

...
mov 0x80616d3,%eax
movl $0xf,0x4(%esp)
mov %eax,(%esp)
sub $0x4,%esp
mov 0x4(%ebp),%edx
...

GRUPO DE COMPUTADORES Y TIEMPO REAL
DPTO. DE ELECTRÓNICA Y COMPUTADORES

© Mario Aldea Rivas

2/Mar/06

7

Aspectos hardware:

Controlador de interrupciones

UNIVERSIDAD DE CANTABRIA

µΡ

i

s
e
n
o
c
p
u
r
r
e
t
n

i


l

r
o
d
a
o
r
t
n
o
C

e
d

Temporizador

Líneas de requerimiento
de interrupción

Las líneas de requerimiento
de interrupción de cada
dispositivo no se conectan
directamente al procesador,
si no que lo hacen a través
del Circuito Controlador de
Interrupciones

GRUPO DE COMPUTADORES Y TIEMPO REAL
DPTO. DE ELECTRÓNICA Y COMPUTADORES

© Mario Aldea Rivas

2/Mar/06

8

Aspectos hardware: Tabla de
vectores de interrupción de un PC

UNIVERSIDAD DE CANTABRIA

Tipo de

interrupción

0

1

2

3

4

5

6

7

Temporizador

Teclado

PIC esclavo

COM2

COM1

Paral. 2/tarj. sonido

Disquete

Paralelo 1

8

9

10

11

12

13

14

15

RTC

Reservada

Reservada

Reservada

Ratón PS/2

Coprocesador

Disco Duro

Reservada

...

...

GRUPO DE COMPUTADORES Y TIEMPO REAL
DPTO. DE ELECTRÓNICA Y COMPUTADORES

© Mario Aldea Rivas

2/Mar/06

9

Gestión de interrupciones en
MaRTE OS

UNIVERSIDAD DE CANTABRIA

La gestión de interrupciones se realiza utilizando el paquete
MaRTE_Hardware_Interrupts. Este paquete incluye:

• constantes predefinidas para los 16 primeros tipos de

interrupción:

type Hardware_Interrupt is ...;

TIMER_INTERRUPT
CTLR2_INTERRUPT
SERIAL1_INTERRUPT
DISKETTE_INTERRUPT
RTC_INTERRUPT
RESERVED1_INTERRUPT
RESERVED3_INTERRUPT
FIXED_DISK_INTERRUPT

KEYBOARD_INTERRUPT
SERIAL2_INTERRUPT
PARALLEL2_INTERRUPT
PARALLEL1_INTERRUPT
SOFT_INTERRUPT
RESERVED2_INTERRUPT
COPROCESSOR_INTERRUPT
RESERVED4_INTERRUPT

GRUPO DE COMPUTADORES Y TIEMPO REAL
DPTO. DE ELECTRÓNICA Y COMPUTADORES

© Mario Aldea Rivas

2/Mar/06

10

Gestión de interrupciones en
MaRTE OS

(cont.)

UNIVERSIDAD DE CANTABRIA

• Definición del tipo de procedimiento manejador de

interrupción:

type Interrupt_Handler_Function is
access function (Area : in System.Address;
Intr : in Hardware_Interrupt)
return Handler_Return_Code;

• Posibles valores de retorno del procedimiento manejador:
POSIX_INTR_HANDLED_NOTIFY -- para informar al
-- sistema operativo de que el manejador ha atendido
-- la interrupción

POSIX_INTR_NOT_HANDLED -- para informar al sistema
-- operativo de que el manejador NO ha atendido la
-- interrupción

GRUPO DE COMPUTADORES Y TIEMPO REAL
DPTO. DE ELECTRÓNICA Y COMPUTADORES

© Mario Aldea Rivas

2/Mar/06

11

Gestión de interrupciones en
MaRTE OS

(cont.)

UNIVERSIDAD DE CANTABRIA

• Los manejadores de interrupción se ejecutan en el contexto

del sistema operativo

• Una buena práctica de programación consiste en hacer los

manejadores lo más cortos posibles

• Además, existen algunas limitaciones en las operaciones

que puede realizar un manejador de interrupción
- NO ejecutar operaciones potencialmente bloqueantes
- como regla general NO realizar operaciones de entrada

salida de texto (Put, Get):
- sólo podrían utilizarse los procedimientos "Put"
definidos en el paquete Basic_Console_IO (normalmente
para depuración)

GRUPO DE COMPUTADORES Y TIEMPO REAL
DPTO. DE ELECTRÓNICA Y COMPUTADORES

© Mario Aldea Rivas

2/Mar/06

12

Gestión de interrupciones en
MaRTE OS

(cont.)

UNIVERSIDAD DE CANTABRIA

Asociar un manejador con un tipo de interrupción:
function Associate
(Intr : in Hardware_Interrupt;
Handler : in Interrupt_Handler_Function;
Area : in System.Address;
Area_Size : in Size_T)
return Int;
-- Retorna 0 si no se ha producido ningún error
-- Cuando Area y Area_Size no se usan (lo normal):
-- Area => System.Null_Address
-- Area_Size => 0

function Disassociate
(Intr : in Hardware_Interrupt;
Handler : in Interrupt_Handler_Function)
return Int;
-- Retorna 0 si no se ha producido ningún error

GRUPO DE COMPUTADORES Y TIEMPO REAL
DPTO. DE ELECTRÓNICA Y COMPUTADORES

© Mario Aldea Rivas

2/Mar/06

13

Gestión de interrupciones en
MaRTE OS

(cont.)

UNIVERSIDAD DE CANTABRIA

Deshabilitar ("lock") y habilitar ("unlock") una fuente de
interrupción en el controlador de interrupciones:

function Lock (Intr : in Hardware_Interrupt)
return Int;
-- Retorna 0 si no se ha producido ningún error

function Unlock (Intr : in Hardware_Interrupt)
return Int;
-- Retorna 0 si no se ha producido ningún error

GRUPO DE COMPUTADORES Y TIEMPO REAL
DPTO. DE ELECTRÓNICA Y COMPUTADORES

© Mario Aldea Rivas

2/Mar/06

14

Ejemplo: Tarjeta A/D operando con
interrupciones

UNIVERSIDAD DE CANTABRIA

LoDato ($240)

HiDato ($241)

Control ($242)

Estado ($246)

D3 D2 D1 D0 X

X

X

X

D11 D10 D9 D8 D7 D6 D5 D4

X

B

X

X

X

X

X

X

X

X

X

X

X

X

IH

X

Vi

A/D

D11-D0

Dato

$FFF

$000

Vi

0V

+10V

• El bit IH del registro de control sirve para habilitar (1) o
deshabilitar (0) las interrupciones por fin de conversión
- la interrupción se deshabilita tras cada dato convertido,

por lo que habrá que rehabilitarla en el manejador

• La conversión de un nuevo dato se inicia escribiendo

cualquier valor en el registro Estado

GRUPO DE COMPUTADORES Y TIEMPO REAL
DPTO. DE ELECTRÓNICA Y COMPUTADORES

© Mario Aldea Rivas

2/Mar/06

15

Ejemplo: Tarjeta A/D operando con
interrupciones
(cont.)

UNIVERSIDAD DE CANTABRIA

with MaRTE_OS;
with Basic_Integer_Types; use Basic_Integer_Types;
with IO_Interface; use IO_Interface;
with MaRTE_Hardware_Interrupts;
use MaRTE_Hardware_Interrupts;
with Text_IO; use Text_IO;
with System;

procedure Lee_AD_Con_Interrupciones is

-- Direcciones de los registros de E/S del
-- convertidor A/D
BASE_AD : constant IO_Port := 16#240#;
Reg_LoDato : constant IO_Port := BASE_AD + 0;
Reg_HiDato : constant IO_Port := BASE_AD + 1;
Reg_
  • Links de descarga
http://lwp-l.com/pdf1080

Comentarios de: Instrumentación de Tiempo Real - Tema 3. Interrupciones (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad