Actualizado el 21 de Marzo del 2018 (Publicado el 9 de Noviembre del 2017)
790 visualizaciones desde el 9 de Noviembre del 2017
162,1 KB
10 paginas
Creado hace 15a (15/07/2009)
BREAK
MODULE
(Módulo de Break
– Point)
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
Que es el Break Module??
Es el módulo encargado de permitir la función “BREAK”, capaz de generar
una interrupción que detenga el flujo normal del programa en una dirección
definida a entrar en el programa “background”.
En la práctica, esto es muy utilizado para generar lo que se conoce como
“Break – Point” o punto de quiebre en el programa del usuario durante la
emulación del mismo. Esta característica exclusiva de la flia. HC908, permite
la implemetación de numerosos metodos de depuración de programas y
herramientas de emulación poderosas sin dejar de ser por ello, económicas.
Cuando nos referimos al programa “background”, debemos entender a este
como una rutina o programa completo, que normalmente NO SE EJECUTA,
salvo que se cumplan con las condiciones para generar un “Break – Point”
que permitan saltar a esta rutina.
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
Que es el Break Module……
Generalmente, esta función es utilizada para generar rutinas de Debbuging (depuración) internas que
permitan un rápido desarrollo o depuración ante determinadas circunstancias.
Este módulo es utilizado como complemento por el programa “Monitor” construido en la sección de
“Monitor ROM” de los HC908.
A diferencia de otras familias de microcontroladores, la HC908 FLASH de Freescale, al contar con
este módulo y la ROM monitor, permite disponer de herramientas de Emulación en TIEMPO REAL a
precios muy accesibles que otras familias / marcas NO lo poseen.
Ahora veamos como funciona este módulo………
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
BREAK MODULE
System
Integration
Module
(SIM)
LVI
IRQ
COP
BREAK
68HC08
CPU
RESET
Timer
Interface
Module
(TIM)
Direct
Memory
Access
Module
(DMA)
Internal Bus (IBUS)
Serial
Peripheral
Interface
(SPI)
Random
Access
Memory
(RAM)
Electronically
Programmable
Memory
(EPROM)
Monitor
ROM
Clock
Generation
Module
(CGM)
Serial
Communications
Interface
(SCI)
•
•
•
•
Registros I/O accesibles durante el “Break Interrupt”
El CPU puede generar un “Break Interrupt” (Adress Match)
Generación por Software de “Break Interrupts”
Deshabilitación del COP “Watchdog” durante un “Break Interrupt”
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
Operación del Break Module
• Cuando el Bus de direcciones interno coincide con el valor en el “break address registers”
• El Break module suministra un señal de breakpoint (BKPT) al SIM
• Después de completar la instrucción del CPU en curso…
– El SIM provoca que el CPU cargue la instrucción SWI
Carga el PC con el SWI vectors $FFFC y $FFFD ($FEFC y $FEFD en “Monitor Mode”)
– Ejecuta la rutina de servicio del “Break Interrupt”
– La instrucción Return from Interrupt (RTI) en la rutina de break…..
• Finaliza el “break interrupt”
• Retorna al MCU a su operación normal
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
Diagrama en Bloques del Break Module
IAB[15:8]
BREAK ADDRESS REGISTER HIGH
8-BIT COMPARATOR
IAB[15:0]
8-BIT COMPARATOR
BREAK ADDRESS REGISTER LOW
IAB[7:0]
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
CONTROL
BKPT
(al SIM)
PEDIDO DE BREAK AL SIM !!
ING. DANIEL DI LELLA
Eventos que llevan a un “Break interrupt”
•
•
“Dirección generada por el CPU” (la dirección en el program counter (PC)) coincide con el
contenido del “Break Address Registers”.
El Software escribe un “1” lógico al bit “BRKA” en el “break status and control
register” (BRKSCR).
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
Estado y habilitación del Break
READ:
BRKE BRKA
BRKSCR
WRITE:
RESET:
0
0
0
0
0 0 0 0
0
0
0
0
0
0
Break Status and Control Register (BRKSCR)
• Break Enable (BRKE)
– Habilita el “Break” para coincidencia del break address register
– Se limpia por la escritura de un cero lógico
1 = Break habilitado para coincidencia de “16-bit address”
0 = Break deshabilitado para coincidencia de “16-bit address”
• Break Active (BRKA)
– El flag de estado se setea cuando un “break address match” ocurre.
– Escribiendo un “1” lógico genera un “break interupt”
– Se limpia por la escritura de cero lógico antes de salir de la rutina de break.
1 = Break address match
0 = No break address match
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
Break Address Registers
BRKH
READ:
WRITE:
BIT 15 BIT 14 BIT13 BIT 12 BIT 11 BIT 10 BIT 9 BIT 8
RESET:
0
0
0
0
0
0
0
0
BRKL
READ:
WRITE:
BIT 7
BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0
RESET:
0
0
0
0
0
0
0
0
Break Addres Register (BRKH:BRKL)
• Contiene el byte high y low de la dirección elegida de breakpoint
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
Información Adicional
- Módulos afectados durante un Break Interrupts -
Central Processor Unit (CPU)
• CPU comienza con el Break Interrupt
• Comienza después de completar la instrucción del CPU en progreso
• Carga el registro de instrucción con la instrucción SWI
• Carga el “Program Counter (PC)” con $FFFC:$FFFD ($FEFC:$FEFD en monitor mode)
Timer Interface Module (TIM)
• Timer Counter es detenido
Computer Operating Properly (COP)
• COP es desabilitado cuando VDD + VHI es preseteado en el pin RST o IRQ !!!!
FIN CAPITULO 13 !!
Curso de Microcontroladores
Familia HC908 Flash de Freescale
Parte II
ING. DANIEL DI LELLA
Comentarios de: HC908 FLASH, BREAK MODULE (Módulo de Break-Point) (0)
No hay comentarios