Sei sulla pagina 1di 11

RESETS

&
INTERRUPCIONES

EN EL CPU08

Curso de Microcontroladores
Familia HC908 Flash de Motorola
Parte II ING. DANIEL DI LELLA DDFAE For Motorola Products
Resets & Interrupciones

Los Resets inicializan al CPU a un estado conocido !!!!.

Todos los resets son manejados por medio del System Integration Module (S.I.M )
• Tipos de Resets:
– Power On – External Pin
– COP – LVI
– Illegal Address – Illegal Opcode

Las Interrupciones suspenden el procesamiento normal para que el CPU pueda realizar

algunos servicios requeridos !!!!.

• Fuentes de Interrupciones:
– IRQ external PIN – IRQ / KBI
– SCI – SPI
– TIM _ ADC
– CGM (PLL) – SWI

Curso de Microcontroladores
Familia HC908 Flash de Motorola
Parte II ING. DANIEL DI LELLA DDFAE For Motorola Products
Procesando Excepciones

Procesado de la excepción

1) Salva el Contexto (stacking)


Manejador de Excepciones
Programa de Aplicación
2) Busca la nueva dirección
(Tabla de Vectores)
3) Carga dirección en PC
Excepción

RTI

Restablece el antiguo Contexto !!!

Curso de Microcontroladores
Familia HC908 Flash de Motorola
Parte II ING. DANIEL DI LELLA DDFAE For Motorola Products
Procesando Excepciones

Resets e Interrupciones son excepciones del CPU (al proceso normal) , o sea “rompen”
con la secuencialidad normal de la ejecución de un programa.

Determinando que tipo de manejo se requiere, se llama al proceso de excepción.

El procesado de la excepción es manejado a traves de tareas discretas.


• Diferencias para el reconocimiento en el resets y las interrupciones
– Arbitraje
– Stacking (apilado)
– Busqueda de vectores.

Curso de Microcontroladores
Familia HC908 Flash de Motorola
Parte II ING. DANIEL DI LELLA DDFAE For Motorola Products
Procesando Excepciones
- Reconocimiento -

Detección de Reset o Interrupciones pendientes

Resets:
• Es reconocida y ejecutada inmediatamente una vez ingresada (no hay
sincronizmo, es una excepción “imperativa”).

Interrupciones:
• Es reconocida durante el último ciclo de la instrucción corriente.
– Al menos que ingrese durante el último ciclo
• Entonces será reconocida durante el último ciclo de la próxima
instrucción.
• Actua despues del último ciclo de la instrucción corriente.
• Hay sincronizmo.

Curso de Microcontroladores
Familia HC908 Flash de Motorola
Parte II ING. DANIEL DI LELLA DDFAE For Motorola Products
Procesando Excepciones
- Arbitraje -

Resets:

Determinación de igual y más alta prioridad


• No arbitraje !!

Interrupciones:
• Diferiendo prioridades
– Mas bajas que los resets

• Realizado por el SIM

Curso de Microcontroladores
Familia HC908 Flash de Motorola
Parte II ING. DANIEL DI LELLA DDFAE For Motorola Products
Procesando Excepciones
- Stacking (apilado) -
Salvando la información del CPU....

Resets:
• No se realiza stacking (apilado), ya que no
es necesario salvar registros. MAPA DEL STACK EN RAM

• Se resetea el estado del CPU (a estados (Registros del CPU)

conocidos)
Lower Address
Interrupciones:
I Condition Code Register
• Stacks (apila) registros del CPU R
N
– PC, X, A, CCR T Accumulator E
E T
• El registro “H” no es apilado para mantener Index Register X U
R
compatibilidad con HC705 !!. Usar R R
U Program Counter (H) N
instrucciones PULL H & PUSH H para ello. P
T Program Counter (L)

Higher Address
Curso de Microcontroladores
Familia HC908 Flash de Motorola
Parte II ING. DANIEL DI LELLA DDFAE For Motorola Products
Procesando Excepciones 68HC908GP32 Vector Table
- Busqueda de Vectores - $FFDC - $FFDD Timebase

$FFDE - $FFDF ADC conv. complete


Más baja
prioridad !!! $FFE0 - $FFE1 Keyboard pins

RESETS: $FFE2 - $FFE3 SCI Tx Empty /complete


$FFE4 - $FFE5 SCI Rx full/idle
Todas usan el mismo vector (igual dirección)
$FFE6 - $FFE7 SCI Errors
• Puede determinarse la fuente del Reset examinando
un registro del SIM ( SIM Reset Status Register ) SRSR $FFE8 - $FFE9 SPI Tx Empty

$FFEA - $FFEB SPI Rx full/over/fault

$FFEC - $FFED TIM2 Overflow


Interrupciones:
$FFEE - $FFEF TIM2 Channel 1
• El Vector depende de la fuente de interrupción !!! $FFF0 - $FFF1 TIM2 Channel 0

$FFF2 - $FFF3 TIM1 overflow


$FFF4 - $FFF5 TIM1 Channel 1
$FFF6 - $FFF7 TIM1 Channel 0

$FFF8 - $FFF9 CGM (PLL)

$FFFA - $FFFB IRQ pin


Más alta
prioridad !!! $FFFC - $FFFD SWI Instruction
Curso de Microcontroladores $FFFE - $FFFF RESET
Familia HC908 Flash de Motorola
Parte II ING. DANIEL DI LELLA DDFAE For Motorola Products
Procesando el RESET
Diagrama de Flujo del proceso RESET

Seteo I-bit en CCR para prevenir interrupciones

Reset de registros internos. Incluye CPU y registros


de los sub módulos. Ver registros individualmente
para el estado de reset.

Carga el Stack Pointer con $00FF

Monitor
Usuario
Modo?

Busqueda Reset Vector desde Busqueda del Reset vector


$FFFE - $FFFF desde $FEFE-$FEFF

Carga el PC con el contenido


del Reset Vector

Comienzo
Curso de Microcontroladores ejecución
Familia HC908 Flash de Motorola
Parte II ING. DANIEL DI LELLA DDFAE For Motorola Products
Procesando la Interrupción
Interrupción 1 Diagrama de Flujo del proceso

Ultimo ciclo de la instrucción Completa la busqueda de la próxima


corriente
intrucción ( NO usada )
Completa la busqueda de la Nota: Index register H no se
próxima instrucción (redund) Repone el C. C. R desde el stack
salva en el stack en

RTI
Stakeo del Program Counter Repone el Acumulador desde el stack
forma automática .
Repone el Index Register X del stack
Stackeo del Index Register X

Repone el PC desde el stack


Stackeo del Acumulador
El I-bit se limpia por la
Busqueda de la próxima instrucción
Stackeo del C . C. R.
reposición del C.C.R. Desde
Seteo del I bit para prevenir el stack (al ejecutar la
Interrupciones.
si Interrupción instrucción RTI)
Busqueda del Vector 1 Pendiente?
Carga el PC con el contenido
delvector
no
Comienzo la ejecución del
servicio de la interrupción Primer ciclo de la próxima instrucción

Curso de Microcontroladores
Familia HC908 Flash de Motorola
Parte II ING. DANIEL DI LELLA DDFAE For Motorola Products
Enmascaramiento (Masking)

Habilitación / Deshabilitación del procesamiento de excepciones.

Resets:
• NO puede ser enmascarado (No puede ser impedido!!!.)

Interrupciones:
• Pueden ser enmascaradas (pueden ser impedidas !!!)
• I bit habilita/deshabilita TODAS las interrupciones a procesar
• Mascaras Locales en periféricos que permiten enmascarar individualmente
interrupciones.
• Disparo de Interrupciones Externas por Flanco o por Flanco & Nivel.

Fin Capítulo 6 !!

Curso de Microcontroladores
Familia HC908 Flash de Motorola
Parte II ING. DANIEL DI LELLA DDFAE For Motorola Products

Potrebbero piacerti anche