Diferencia entre revisiones de «Debug Module (DBG)(128k)- MC9S08QE128»

De Wikitronica
Saltar a: navegación, buscar
Línea 641: Línea 641:
 
<br>
 
<br>
  
====Registro FIFO<br>====
+
====Registro FIFO (Parte Alta DBGCFH)<br><br>====
 +
Los bits de datos de alta FIFO proporcionan acceso a los bits [15:08] de datos en la FIFO. Este registro no se utiliza en el Modo de Solo evento y leerá un $ 00 para palabras FIFO válidos.
 +
<br>
 +
{| border="2" style="padding: 0.5em; border: 1px #aaa solid; border-collapse: collapse;background:#FFFFFF" cellpadding="6"
 +
|- valign="bottom" style="background:#FFFFFF" ;
 +
 
 +
!<font color="black"> Función de campo </font>
 +
!<font color="black"> 7 </font>
 +
!<font color="black"> 6 </font>
 +
!<font color="black"> 5 </font>
 +
!<font color="black"> 4 </font>
 +
!<font color="black"> 3 </font>
 +
!<font color="black"> 2 </font>
 +
!<font color="black"> 1 </font>
 +
!<font color="black"> 0 </font>
 +
|-
 +
|align="center"|Lectura
 +
|align="center"|Bit 15
 +
|align="center"|Bit 14
 +
|align="center"|Bit 13
 +
|align="center"|Bit 12
 +
|align="center"|Bit 11
 +
|align="center"|Bit 10
 +
|align="center"|Bit 9
 +
|align="center"|Bit 8
 +
|-
 +
|align="center"|Escritura
 +
|align="center"|x
 +
|align="center"|x
 +
|align="center"|x
 +
|align="center"|x
 +
|align="center"|x
 +
|align="center"|x
 +
|align="center"|x
 +
|align="center"|x
 +
|-
 +
|align="center"|Power-on Reset
 +
|align="center"|0
 +
|align="center"|0
 +
|align="center"|0
 +
|align="center"|0
 +
|align="center"|0
 +
|align="center"|0
 +
|align="center"|0
 +
|align="center"|0
 +
|-
 +
|align="center"|Reinicio End-Run
 +
|align="center"|U
 +
|align="center"|U
 +
|align="center"|U
 +
|align="center"|U
 +
|align="center"|U
 +
|align="center"|U
 +
|align="center"|U
 +
|align="center"|U
 +
|}
 +
<br>
 +
 
 +
<b>Registro FIFO (Parte Baja DBGCFL)</b><br><br>
 +
los bits bajos de FIFO, contienen el byte menos significativo de la FIFO. Cuando se leen palabras por FIFO, primero lee DBGFX y DBGFH, antes leer DBGFL, porque este causa que el apuntador de FIFO avance a la siguiente dirección. No es necesario en el Modo de solo evento.
 +
<br>
 +
{| border="2" style="padding: 0.5em; border: 1px #aaa solid; border-collapse: collapse;background:#FFFFFF" cellpadding="6"
 +
|- valign="bottom" style="background:#FFFFFF" ;
 +
 
 +
!<font color="black"> Función de campo </font>
 +
!<font color="black"> 7 </font>
 +
!<font color="black"> 6 </font>
 +
!<font color="black"> 5 </font>
 +
!<font color="black"> 4 </font>
 +
!<font color="black"> 3 </font>
 +
!<font color="black"> 2 </font>
 +
!<font color="black"> 1 </font>
 +
!<font color="black"> 0 </font>
 +
|-
 +
|align="center"|Lectura
 +
|align="center"|Bit 7
 +
|align="center"|Bit 6
 +
|align="center"|Bit 5
 +
|align="center"|Bit 4
 +
|align="center"|Bit 3
 +
|align="center"|Bit 2
 +
|align="center"|Bit 1
 +
|align="center"|Bit 0
 +
|-
 +
|align="center"|Escritura
 +
|align="center"|x
 +
|align="center"|x
 +
|align="center"|x
 +
|align="center"|x
 +
|align="center"|x
 +
|align="center"|x
 +
|align="center"|x
 +
|align="center"|x
 +
|-
 +
|align="center"|Power-on Reset
 +
|align="center"|0
 +
|align="center"|0
 +
|align="center"|0
 +
|align="center"|0
 +
|align="center"|0
 +
|align="center"|0
 +
|align="center"|0
 +
|align="center"|0
 +
|-
 +
|align="center"|Reinicio End-Run
 +
|align="center"|U
 +
|align="center"|U
 +
|align="center"|U
 +
|align="center"|U
 +
|align="center"|U
 +
|align="center"|U
 +
|align="center"|U
 +
|align="center"|U
 +
|}
 +
<br>

Revisión del 23:47 15 nov 2012

Módulo de Debug (DBG):

El Módulo de Depuración o ‘Debug Module’ DBG forma parte del desarrollo de sistemas de apoyo del microcontrolador. Si bien el control de depuración de respaldo ‘Background Debug Controller’ (BDC) es la interfaz de depuración primaria del MC9S08QE128, el módulo en circuito DBG opera de manera análoga a éste: es no intrusivo, permite el acceso a los datos de la memoria y mantiene las características tradicionales de depuración como modificar el registro de la CPU, puntos de interrupción, y traza de una sola instrucción.

El módulo DBG, proporciona una interfaz para activar y capturar de forma selectiva, la información del bus. De este modo, implementando un sistema externo se puede reconstruir lo que ocurre en la MCU ciclo a ciclo, sin necesidad de acceder externamente a las direcciones ni datos.


Conceptos

La palabra Debug en el área de programación se refiere a la identificación, eliminación y corrección de fallos o errores en el programa.(2*).

Por tanto al referirse a un Bug dentro del programa, se habla de errores menores o graves que afectan al sistema y la programación y afecta su efectividad y calidad.

Características Generales

El DBG emplea un chip para la emulación en circuito (ICE) con las siguientes características:

Tabla de Características Generales del DBG
Característica principal Descripción
1 Tres comparadores A,B y C con la posibilidad de señalar direcciones en hasta 128 Kbytes de espacio de memoria
  • Modo Dual: A y B son usados para comparar direcciones
  • Modo Total: A compara direcciones y B compara datos
  • Modo de Captura de Lazo1 (Loop1): C se utiliza para realizar el seguimiento del evento COF más reciente capturado en FIFO
  • A, B y C pueden ser usados como activadores (triggers) o puntos de parada
  • C puede ser empleado como un normal punto de parada desde hardware
2 Nueve modos de disparo o activación (triggers)
  • A
  • A or B
  • A and B (en Modo Total)
  • A entonces B
  • A y not B (en Modo Total)
  • B único evento (guardar datos)
  • A luego B único evento (guardar datos)
  • Dentro del rango de direcciones: A ≤ Dirección ≤ B
  • Fuera del rango de direcciones: Dirección < Α or(lógico) Dirección > B
3 Organización de la data según FIFO (first in, first out)para almacenamiento de la información del cambio de flujo de data y/o eventos
  • Dirección de origen de saltos condicionales tomados
  • Cáculo de dirección destino para instrucciones de salto indirecto tipo JMP y JSR
  • Cálculo de dirección destino para interrupciones, instrucciones tipo RTI, RTC y RTS
  • Organización de los datos asociados a los modos del disparador o activador de eventos B
4 Capacidad de comenzar rastreo desde el reinicio o terminar el rastreo hasta el reinicio
  • End -Trace / Begin - Trace
5 Etiqueta y forza puntos de parada (Breakpoints) ---
6 No posee, ni depende de los siguientes items:
  • Conexión a señales externas
  • Fuentes de interrupción
  • Especificaciones particulares de alimentación


Ventajas del DBG

¿Para qué se implementa el DBG?

¡Fácil! Permite poder programar el seguimiento e identificación de errores de mi sistema en tiempo real. Representa una medida de prevención de errores cuando se trata de sistemas o programas complejos y extensos. También permite conocer el estado de los resgistros y datos, los cuales soporta hasta 128KBytes en espacio de memoria.

El Módulo de Debug opera de modo no intrusivo con un solo pin, no compromete grandes gastos de potencia ni recursos de hardware. Además ofrece múltiples posibilidades de aplicación de 'BREAK POINTS' (puntos de parada o de prueba): por Posición de PC, por Condicionales (A=B, A>B,A<B, entre otros.), lo cual permitirá la identificación de errores en las áreas del sistema de programa deseadas.

En conjunto con el BDM representa una herramienta para asegurar la calidad del programa.

Modos de Operación

Diagrama de la Estructura del Módulo DBG


EL modulo DBG puede ser habilitado en todos los modos funcionales del MCU. Es deshabilitado si el MCU es asegurado y los comparadores son deshabilitados cuando se ejecuta el comando para modo BDM.


El bus de reloj al DBG puede abrirse o cerrarse usando el bit SCGC2 del DBG. Este bit es puesto en alta (1) luego de cada reinicio, lo cual habilita el bus. Y en caso de que no se requiera el uso del módulo y para conservar la energía, este bit es puesto en nivel bajo (0).




Mapa de Memoria

La siguiente tabla muestra detalladamente los registros de los cuales dispone el módulo y de los cuales puede disponer el usuario final. Además se indica el área de memoria al cual corresponden y el tipo de acceso a los mismos:

Dirección Uso Acceso
Base + $0000 Comparador A (Parte Alta DBGCAH) Lectura/Escritura
Base + $0001 Comparador A (Parte Baja DBGCAL) Lectura/Escritura
Base + $0002 Comparador B (Parte Alta DBGCBH) Lectura/Escritura
Base + $0003 Comparador B (Parte Baja DBGCBL) Lectura/Escritura
Base + $0004 Comparador C (Parte Alta DBGCCH) Lectura/Escritura
Base + $0005 Comparador C (Parte Baja DBGCCL) Lectura/Escritura
Base + $0006 Registro FIFO (Parte Alta DBGFH) Solo Lectura
Base + $0007 Registro FIFO (Parte Baja DBGFL) Solo Lectura
Base + $0008 Registro de Extensión Comparador A (DBGCAX) Lectura/Escritura
Base + $0009 Registro de Extensión Comparador B (DBGCBX) Lectura/Escritura
Base + $000A Registro de Extensión Comparador C (DBGCCX) Lectura/Escritura
Base + $000B Registro de Información Extendida FIFO (DBGCFX) Solo Lectura
Base + $000C Registro de Control (DBGC) Lectura/Escritura
Base + $000D Registro de Disparador (Trigger -DBGT-) Lectura/Escritura
Base + $000E Registro de Estado (DBGS) Solo Lectura
Base + $000F Registro de Conteo FIFO (DBGCNT) Solo Lectura


Registros

Cada registro disponible para el usuario final tiene una función específica, bien sea para la compararción de datos o direcciónes o para la organización de los mismos. Se presenta a continuación una herramienta de rápida referencia a cada tipo de registro y sus características, ordenados por orden de dirección:

Comparador A (Parte Alta DBGCAH)

Compara los bits de control [15:8]; si en A se compara la dirección del bus con un 1 ó 0 lógico.

Función de campo 7 6 5 4 3 2 1 0
Lectura Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8
Escritura " " " " " " " "
Power-on Reset 1 1 1 1 1 1 1 1
Reinicio End-Run U U U U U U U U
[15:8]Compara la dirección con 0 lógico 0 0 0 0 0 0 0 0
[15:8]Compara la dirección con 1 lógico 1 1 1 1 1 1 1 1



Comparador A (Parte Baja DBGCAL)

Compara los bits de control [7:0]; si en A se compara la dirección del bus con un 1 ó 0 lógico.

Función de campo 7 6 5 4 3 2 1 0
Lectura Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Escritura " " " " " " " "
Power-on Reset 1 1 1 1 1 1 1 0
Reinicio End-Run U U U U U U U U
[7:0]Compara la dirección con 0 lógico 0 0 0 0 0 0 0 0
[7:0]Compara la dirección con 1 lógico 1 1 1 1 1 1 1 1


Comparador B (Parte Alta DBGCBH)

Compara los bits de control [15:8]; si en B se compara la dirección del bus con un 1 ó 0 lógico. no es usado en MODO TOTAL

Función de campo 7 6 5 4 3 2 1 0
Lectura Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8
Escritura " " " " " " " "
Power-on Reset 0 0 0 0 0 0 0 0
Reinicio End-Run U U U U U U U U
[15:8]Compara la dirección con 0 lógico 0 0 0 0 0 0 0 0
[15:8]Compara la dirección con 1 lógico 1 1 1 1 1 1 1 1


Comparador B (Parte Baja DBGCBL)

Compara los bits de control [7:0]; si en B se compara la dirección del bus con un 1 ó 0 lógico.

Función de campo 7 6 5 4 3 2 1 0
Lectura Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Escritura " " " " " " " "
Power-on Reset 1 1 1 1 1 1 1 0
Reinicio End-Run U U U U U U U U
[7:0]Compara la dirección con 0 lógico/con dato en Modo total 0 0 0 0 0 0 0 0
[7:0]Compara la dirección con 1 lógico/con dato en Modo total 1 1 1 1 1 1 1 1


Comparador C (Parte Alta DBGCCH)

Compara los bits de control [15:8]; si en C se compara la dirección del bus con un 1 ó 0 lógico.

Función de campo 7 6 5 4 3 2 1 0
Lectura Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8
Escritura " " " " " " " "
Power-on Reset 0 0 0 0 0 0 0 0
Reinicio End-Run U U U U U U U U
[15:8]Compara la dirección con 0 lógico 0 0 0 0 0 0 0 0
[15:8]Compara la dirección con 1 lógico 1 1 1 1 1 1 1 1


Comparador C (Parte Baja DBGCCL)

Compara los bits de control [7:0]; si en C se compara la dirección del bus con un 1 ó 0 lógico.

Función de campo 7 6 5 4 3 2 1 0
Lectura Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Escritura " " " " " " " "
Power-on Reset 0 0 0 0 0 0 0 0
Reinicio End-Run U U U U U U U U
[7:0]Compara la dirección con 0 lógico/con dato en Modo total 0 0 0 0 0 0 0 0
[7:0]Compara la dirección con 1 lógico/con dato en Modo total 1 1 1 1 1 1 1 1


Registro FIFO (Parte Alta DBGCFH)

Los bits de datos de alta FIFO proporcionan acceso a los bits [15:08] de datos en la FIFO. Este registro no se utiliza en el Modo de Solo evento y leerá un $ 00 para palabras FIFO válidos.

Función de campo 7 6 5 4 3 2 1 0
Lectura Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8
Escritura x x x x x x x x
Power-on Reset 0 0 0 0 0 0 0 0
Reinicio End-Run U U U U U U U U


Registro FIFO (Parte Baja DBGCFL)

los bits bajos de FIFO, contienen el byte menos significativo de la FIFO. Cuando se leen palabras por FIFO, primero lee DBGFX y DBGFH, antes leer DBGFL, porque este causa que el apuntador de FIFO avance a la siguiente dirección. No es necesario en el Modo de solo evento.

Función de campo 7 6 5 4 3 2 1 0
Lectura Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Escritura x x x x x x x x
Power-on Reset 0 0 0 0 0 0 0 0
Reinicio End-Run U U U U U U U U