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

De Wikitronica
Saltar a: navegación, buscar
(Registro de Conteo FIFO (DBGCNT))
 
Línea 32: Línea 32:
 
|- align="left"
 
|- align="left"
 
! 1
 
! 1
|Tres comparadores A,B y C con la posibilidad de señalar direcciones en hasta 128 Kbytes de espacio de memoria ||
+
|Tres comparadores A,B y C con la posibilidad de señalar direcciones en hasta 128 Kbytes de espacio de memoria. ||
* <nowiki> Modo Dual: A y B son usados para comparar direcciones </nowiki>  
+
* <nowiki> Modo Dual: A y B son usados para comparar direcciones. </nowiki>  
* <nowiki> Modo Total: A compara direcciones y B compara datos</nowiki>
+
* <nowiki> Modo Total: A compara direcciones y B compara datos.</nowiki>
* <nowiki> Modo de Captura de Lazo1 (Loop1): C se utiliza para realizar el seguimiento del evento COF más reciente capturado en FIFO</nowiki>  
+
* <nowiki> Modo de Captura de Lazo1 (Loop1): C se utiliza para realizar el seguimiento del evento COF más reciente capturado en FIFO.</nowiki>  
* <nowiki> A, B y C pueden ser usados como activadores (triggers) o puntos de parada</nowiki>  
+
* <nowiki> A, B y C pueden ser usados como activadores (triggers) o puntos de parada.</nowiki>  
* <nowiki> C puede ser empleado como un normal punto de parada desde hardware</nowiki>  
+
* <nowiki> C puede ser empleado como un normal punto de parada desde hardware.</nowiki>  
 
|- align="left"
 
|- align="left"
 
! 2
 
! 2
 
| Nueve modos de disparo o activación (triggers) ||
 
| Nueve modos de disparo o activación (triggers) ||
* <nowiki> A </nowiki>  
+
* <nowiki> A. </nowiki>  
* <nowiki> A or B</nowiki>  
+
* <nowiki> A or B.</nowiki>  
* <nowiki> A and B (en Modo Total) </nowiki>  
+
* <nowiki> A and B (en Modo Total). </nowiki>  
* <nowiki> A entonces B </nowiki>
+
* <nowiki> A entonces B. </nowiki>
* <nowiki> A y not B (en Modo Total)</nowiki>  
+
* <nowiki> A y not B (en Modo Total).</nowiki>  
* <nowiki> B único evento (guardar datos) </nowiki>  
+
* <nowiki> B único evento (guardar datos). </nowiki>  
* <nowiki> A luego B único evento (guardar datos) </nowiki>  
+
* <nowiki> A luego B único evento (guardar datos). </nowiki>  
* <nowiki> Dentro del rango de direcciones: A ≤ Dirección ≤ B </nowiki>  
+
* <nowiki> Dentro del rango de direcciones: A ≤ Dirección ≤ B. </nowiki>  
* <nowiki> Fuera del rango de direcciones: Dirección < Α or(lógico) Dirección > B </nowiki>
+
* <nowiki> Fuera del rango de direcciones: Dirección < Α or(lógico) Dirección > B. </nowiki>
 
|- align="left"  
 
|- align="left"  
 
! 3
 
! 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 ||
+
| 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. ||
* <nowiki> Dirección de origen de saltos condicionales tomados </nowiki>
+
* <nowiki> Dirección de origen de saltos condicionales tomados. </nowiki>
* <nowiki> Cáculo de dirección destino para instrucciones de salto indirecto tipo JMP y JSR </nowiki>
+
* <nowiki> Cálculo de dirección destino para instrucciones de salto indirecto tipo JMP y JSR. </nowiki>
* <nowiki> Cálculo de dirección destino para interrupciones, instrucciones tipo RTI, RTC y RTS  </nowiki>
+
* <nowiki> Cálculo de dirección destino para interrupciones, instrucciones tipo RTI, RTC y RTS. </nowiki>
* <nowiki> Organización de los datos asociados a los modos del disparador o activador de eventos B </nowiki>  
+
* <nowiki> Organización de los datos asociados a los modos del disparador o activador de eventos B. </nowiki>  
 
|- align="left"
 
|- align="left"
 
! 4
 
! 4
| Capacidad de comenzar rastreo desde el reinicio o terminar el rastreo hasta el reinicio ||
+
| Capacidad de comenzar rastreo desde el reinicio o terminar el rastreo hasta el reinicio.||
*<nowiki> End -Trace / Begin - Trace</nowiki>
+
*<nowiki> End -Trace / Begin - Trace.</nowiki>
 
|- align="left"
 
|- align="left"
 
! 5
 
! 5
| Etiqueta y forza puntos de parada (Breakpoints)||      ---
+
| Etiqueta y forza puntos de parada (Breakpoints).||      ---
 
|- align="left"
 
|- align="left"
 
! 6
 
! 6
 
| No posee, ni depende de los siguientes items:||
 
| No posee, ni depende de los siguientes items:||
* <nowiki> Conexión a señales externas </nowiki>  
+
* <nowiki> Conexión a señales externas. </nowiki>  
* <nowiki> Fuentes de interrupción </nowiki>  
+
* <nowiki> Fuentes de interrupción. </nowiki>  
* <nowiki> Especificaciones particulares de alimentación </nowiki>  
+
* <nowiki> Especificaciones particulares de alimentación. </nowiki>  
 
|}
 
|}
  
Línea 76: Línea 76:
  
 
¿Para qué se implementa el 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.</p>
+
¡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 registros y datos, los cuales soporta hasta 128 KBytes en espacio de memoria.</p>
 
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.
 
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.
 
<br><br>
 
<br><br>
Línea 101: Línea 101:
 
!<font color="white">Acceso</font>
 
!<font color="white">Acceso</font>
 
|-
 
|-
|align="center"|Base + $0000
+
|align="center"|Base + $0000.
|align="center"|Comparador A (Parte Alta DBGCAH)
+
|align="center"|Comparador A (Parte Alta DBGCAH).
|align="center"|Lectura/Escritura
+
|align="center"|Lectura/Escritura.
 
|-
 
|-
|align="center"|Base + $0001
+
|align="center"|Base + $0001.
|align="center"|Comparador A (Parte Baja DBGCAL)
+
|align="center"|Comparador A (Parte Baja DBGCAL).
|align="center"|Lectura/Escritura
+
|align="center"|Lectura/Escritura.
 
|-
 
|-
|align="center"|Base + $0002
+
|align="center"|Base + $0002.
|align="center"|Comparador B (Parte Alta DBGCBH)
+
|align="center"|Comparador B (Parte Alta DBGCBH).
|align="center"|Lectura/Escritura
+
|align="center"|Lectura/Escritura.
 
|-
 
|-
|align="center"|Base + $0003
+
|align="center"|Base + $0003.
|align="center"|Comparador B (Parte Baja DBGCBL)
+
|align="center"|Comparador B (Parte Baja DBGCBL).
|align="center"|Lectura/Escritura
+
|align="center"|Lectura/Escritura.
 
|-
 
|-
|align="center"|Base + $0004
+
|align="center"|Base + $0004.
|align="center"|Comparador C (Parte Alta DBGCCH)
+
|align="center"|Comparador C (Parte Alta DBGCCH).
|align="center"|Lectura/Escritura
+
|align="center"|Lectura/Escritura.
 
|-
 
|-
|align="center"|Base + $0005
+
|align="center"|Base + $0005.
|align="center"|Comparador C (Parte Baja DBGCCL)
+
|align="center"|Comparador C (Parte Baja DBGCCL).
|align="center"|Lectura/Escritura
+
|align="center"|Lectura/Escritura.
 
|-
 
|-
|align="center"|Base + $0006
+
|align="center"|Base + $0006.
|align="center"|Registro FIFO (Parte Alta DBGFH)
+
|align="center"|Registro FIFO (Parte Alta DBGFH).
|align="center"|Solo Lectura
+
|align="center"|Solo Lectura.
 
|-
 
|-
|align="center"|Base + $0007
+
|align="center"|Base + $0007.
|align="center"|Registro FIFO (Parte Baja DBGFL)
+
|align="center"|Registro FIFO (Parte Baja DBGFL).
|align="center"|Solo Lectura
+
|align="center"|Solo Lectura.
 
|-
 
|-
|align="center"|Base + $0008
+
|align="center"|Base + $0008.
|align="center"|Registro de Extensión Comparador A (DBGCAX)
+
|align="center"|Registro de Extensión Comparador A (DBGCAX).
|align="center"|Lectura/Escritura
+
|align="center"|Lectura/Escritura.
 
|-
 
|-
|align="center"|Base + $0009
+
|align="center"|Base + $0009.
|align="center"|Registro de Extensión Comparador B (DBGCBX)
+
|align="center"|Registro de Extensión Comparador B (DBGCBX).
|align="center"|Lectura/Escritura
+
|align="center"|Lectura/Escritura.
 
|-
 
|-
|align="center"|Base + $000A
+
|align="center"|Base + $000A.
|align="center"|Registro de Extensión Comparador C (DBGCCX)
+
|align="center"|Registro de Extensión Comparador C (DBGCCX).
|align="center"|Lectura/Escritura
+
|align="center"|Lectura/Escritura.
 
|-
 
|-
|align="center"|Base + $000B
+
|align="center"|Base + $000B.
|align="center"|Registro de Información Extendida FIFO (DBGCFX)
+
|align="center"|Registro de Información Extendida FIFO (DBGCFX).
|align="center"|Solo Lectura
+
|align="center"|Solo Lectura.
 
|-
 
|-
|align="center"|Base + $000C
+
|align="center"|Base + $000C.
|align="center"|Registro de Control (DBGC)
+
|align="center"|Registro de Control (DBGC).
|align="center"|Lectura/Escritura
+
|align="center"|Lectura/Escritura.
 
|-
 
|-
|align="center"|Base + $000D
+
|align="center"|Base + $000D.
|align="center"|Registro de Disparador (Trigger -DBGT-)
+
|align="center"|Registro de Disparador (Trigger -DBGT-).
|align="center"|Lectura/Escritura
+
|align="center"|Lectura/Escritura.
 
|-
 
|-
|align="center"|Base + $000E
+
|align="center"|Base + $000E.
|align="center"|Registro de Estado (DBGS)
+
|align="center"|Registro de Estado (DBGS).
|align="center"|Solo Lectura
+
|align="center"|Solo Lectura.
 
|-
 
|-
|align="center"|Base + $000F
+
|align="center"|Base + $000F.
|align="center"|Registro de Conteo FIFO (DBGCNT)
+
|align="center"|Registro de Conteo FIFO (DBGCNT).
|align="center"|Solo Lectura
+
|align="center"|Solo Lectura.
 
|}
 
|}
  
Línea 170: Línea 170:
 
==Registros==
 
==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:  
+
Cada registro disponible para el usuario final tiene una función específica, bien sea para la comparación de datos o direcciones 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:  
 
<br><br>
 
<br><br>
 
====Comparador A (Parte Alta DBGCAH)<br><br>====
 
====Comparador A (Parte Alta DBGCAH)<br><br>====
Línea 188: Línea 188:
 
!<font color="black"> 0 </font>
 
!<font color="black"> 0 </font>
 
|-
 
|-
|align="center"|Lectura
+
|align="center"|Lectura.
 
|align="center"|Bit 15
 
|align="center"|Bit 15
 
|align="center"|Bit 14
 
|align="center"|Bit 14
Línea 198: Línea 198:
 
|align="center"|Bit 8
 
|align="center"|Bit 8
 
|-
 
|-
|align="center"|Escritura
+
|align="center"|Escritura.
 
|align="center"|"
 
|align="center"|"
 
|align="center"|"
 
|align="center"|"
Línea 208: Línea 208:
 
|align="center"|"
 
|align="center"|"
 
|-
 
|-
|align="center"|Power-on Reset
+
|align="center"|Power-on Reset.
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
Línea 218: Línea 218:
 
|align="center"|1
 
|align="center"|1
 
|-
 
|-
|align="center"|Reinicio End-Run
+
|align="center"|Reinicio End-Run.
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
Línea 228: Línea 228:
 
|align="center"|U
 
|align="center"|U
 
|-
 
|-
|align="center"|[15:8]Compara la dirección con 0 lógico  
+
|align="center"|[15:8]Compara la dirección con 0 lógico.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
Línea 238: Línea 238:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|[15:8]Compara la dirección con 1 lógico  
+
|align="center"|[15:8]Compara la dirección con 1 lógico.
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
Línea 266: Línea 266:
 
!<font color="black"> 0 </font>
 
!<font color="black"> 0 </font>
 
|-
 
|-
|align="center"|Lectura
+
|align="center"|Lectura.
 
|align="center"|Bit 7
 
|align="center"|Bit 7
 
|align="center"|Bit 6
 
|align="center"|Bit 6
Línea 276: Línea 276:
 
|align="center"|Bit 0
 
|align="center"|Bit 0
 
|-
 
|-
|align="center"|Escritura
+
|align="center"|Escritura.
 
|align="center"|"
 
|align="center"|"
 
|align="center"|"
 
|align="center"|"
Línea 286: Línea 286:
 
|align="center"|"
 
|align="center"|"
 
|-
 
|-
|align="center"|Power-on Reset
+
|align="center"|Power-on Reset.
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
Línea 296: Línea 296:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|Reinicio End-Run
+
|align="center"|Reinicio End-Run.
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
Línea 306: Línea 306:
 
|align="center"|U
 
|align="center"|U
 
|-
 
|-
|align="center"|[7:0]Compara la dirección con 0 lógico  
+
|align="center"|[7:0]Compara la dirección con 0 lógico.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
Línea 316: Línea 316:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|[7:0]Compara la dirección con 1 lógico  
+
|align="center"|[7:0]Compara la dirección con 1 lógico.
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
Línea 344: Línea 344:
 
!<font color="black"> 0 </font>
 
!<font color="black"> 0 </font>
 
|-
 
|-
|align="center"|Lectura
+
|align="center"|Lectura.
 
|align="center"|Bit 15
 
|align="center"|Bit 15
 
|align="center"|Bit 14
 
|align="center"|Bit 14
Línea 354: Línea 354:
 
|align="center"|Bit 8
 
|align="center"|Bit 8
 
|-
 
|-
|align="center"|Escritura
+
|align="center"|Escritura.
 
|align="center"|"
 
|align="center"|"
 
|align="center"|"
 
|align="center"|"
Línea 364: Línea 364:
 
|align="center"|"
 
|align="center"|"
 
|-
 
|-
|align="center"|Power-on Reset
+
|align="center"|Power-on Reset.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
Línea 374: Línea 374:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|Reinicio End-Run
+
|align="center"|Reinicio End-Run.
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
Línea 384: Línea 384:
 
|align="center"|U
 
|align="center"|U
 
|-
 
|-
|align="center"|[15:8]Compara la dirección con 0 lógico  
+
|align="center"|[15:8]Compara la dirección con 0 lógico.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
Línea 394: Línea 394:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|[15:8]Compara la dirección con 1 lógico  
+
|align="center"|[15:8]Compara la dirección con 1 lógico.
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
Línea 422: Línea 422:
 
!<font color="black"> 0 </font>
 
!<font color="black"> 0 </font>
 
|-
 
|-
|align="center"|Lectura
+
|align="center"|Lectura.
 
|align="center"|Bit 7
 
|align="center"|Bit 7
 
|align="center"|Bit 6
 
|align="center"|Bit 6
Línea 432: Línea 432:
 
|align="center"|Bit 0
 
|align="center"|Bit 0
 
|-
 
|-
|align="center"|Escritura
+
|align="center"|Escritura.
 
|align="center"|"
 
|align="center"|"
 
|align="center"|"
 
|align="center"|"
Línea 442: Línea 442:
 
|align="center"|"
 
|align="center"|"
 
|-
 
|-
|align="center"|Power-on Reset
+
|align="center"|Power-on Reset.
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
Línea 452: Línea 452:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|Reinicio End-Run
+
|align="center"|Reinicio End-Run.
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
Línea 462: Línea 462:
 
|align="center"|U
 
|align="center"|U
 
|-
 
|-
|align="center"|[7:0]Compara la dirección con 0 lógico/con dato en Modo total
+
|align="center"|[7:0]Compara la dirección con 0 lógico/con dato en Modo total.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
Línea 472: Línea 472:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|[7:0]Compara la dirección con 1 lógico/con dato en Modo total
+
|align="center"|[7:0]Compara la dirección con 1 lógico/con dato en Modo total.
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
Línea 500: Línea 500:
 
!<font color="black"> 0 </font>
 
!<font color="black"> 0 </font>
 
|-
 
|-
|align="center"|Lectura
+
|align="center"|Lectura.
 
|align="center"|Bit 15
 
|align="center"|Bit 15
 
|align="center"|Bit 14
 
|align="center"|Bit 14
Línea 510: Línea 510:
 
|align="center"|Bit 8
 
|align="center"|Bit 8
 
|-
 
|-
|align="center"|Escritura
+
|align="center"|Escritura.
 
|align="center"|"
 
|align="center"|"
 
|align="center"|"
 
|align="center"|"
Línea 520: Línea 520:
 
|align="center"|"
 
|align="center"|"
 
|-
 
|-
|align="center"|Power-on Reset
+
|align="center"|Power-on Reset.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
Línea 530: Línea 530:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|Reinicio End-Run
+
|align="center"|Reinicio End-Run.
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
Línea 540: Línea 540:
 
|align="center"|U
 
|align="center"|U
 
|-
 
|-
|align="center"|[15:8]Compara la dirección con 0 lógico  
+
|align="center"|[15:8]Compara la dirección con 0 lógico.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
Línea 550: Línea 550:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|[15:8]Compara la dirección con 1 lógico  
+
|align="center"|[15:8]Compara la dirección con 1 lógico.
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
Línea 579: Línea 579:
 
!<font color="black"> 0 </font>
 
!<font color="black"> 0 </font>
 
|-
 
|-
|align="center"|Lectura
+
|align="center"|Lectura.
 +
 
 
|align="center"|Bit 7
 
|align="center"|Bit 7
 
|align="center"|Bit 6
 
|align="center"|Bit 6
Línea 589: Línea 590:
 
|align="center"|Bit 0
 
|align="center"|Bit 0
 
|-
 
|-
|align="center"|Escritura
+
|align="center"|Escritura.
 
|align="center"|"
 
|align="center"|"
 
|align="center"|"
 
|align="center"|"
Línea 599: Línea 600:
 
|align="center"|"
 
|align="center"|"
 
|-
 
|-
|align="center"|Power-on Reset
+
|align="center"|Power-on Reset.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
Línea 609: Línea 610:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|Reinicio End-Run
+
|align="center"|Reinicio End-Run.
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
Línea 619: Línea 620:
 
|align="center"|U
 
|align="center"|U
 
|-
 
|-
|align="center"|[7:0]Compara la dirección con 0 lógico/con dato en Modo total
+
|align="center"|[7:0]Compara la dirección con 0 lógico/con dato en Modo total.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
Línea 629: Línea 630:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|[7:0]Compara la dirección con 1 lógico/con dato en Modo total
+
|align="center"|[7:0]Compara la dirección con 1 lógico/con dato en Modo total.
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
Línea 658: Línea 659:
 
!<font color="black"> 0 </font>
 
!<font color="black"> 0 </font>
 
|-
 
|-
|align="center"|Lectura
+
|align="center"|Lectura.
 
|align="center"|Bit 15
 
|align="center"|Bit 15
 
|align="center"|Bit 14
 
|align="center"|Bit 14
Línea 668: Línea 669:
 
|align="center"|Bit 8
 
|align="center"|Bit 8
 
|-
 
|-
|align="center"|Escritura
+
|align="center"|Escritura.
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
Línea 678: Línea 679:
 
|align="center"|x
 
|align="center"|x
 
|-
 
|-
|align="center"|Power-on Reset
+
|align="center"|Power-on Reset.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
Línea 688: Línea 689:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|Reinicio End-Run
+
|align="center"|Reinicio End-Run.
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
Línea 717: Línea 718:
 
!<font color="black"> 0 </font>
 
!<font color="black"> 0 </font>
 
|-
 
|-
|align="center"|Lectura
+
|align="center"|Lectura.
 
|align="center"|Bit 7
 
|align="center"|Bit 7
 
|align="center"|Bit 6
 
|align="center"|Bit 6
Línea 737: Línea 738:
 
|align="center"|x
 
|align="center"|x
 
|-
 
|-
|align="center"|Power-on Reset
+
|align="center"|Power-on Reset.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
Línea 747: Línea 748:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|Reinicio End-Run
+
|align="center"|Reinicio End-Run.
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
Línea 780: Línea 781:
 
!<font color="black"> 0 </font>
 
!<font color="black"> 0 </font>
 
|-
 
|-
|align="center"|Lectura
+
|align="center"|Lectura.
 
|align="center"|RWAEN
 
|align="center"|RWAEN
 
|align="center"|RWA
 
|align="center"|RWA
Línea 790: Línea 791:
 
|align="center"|Bit 16
 
|align="center"|Bit 16
 
|-
 
|-
|align="center"|Escritura
+
|align="center"|Escritura.
 
|align="center"|RWAEN
 
|align="center"|RWAEN
 
|align="center"|RWA
 
|align="center"|RWA
Línea 800: Línea 801:
 
|align="center"|Bit 16
 
|align="center"|Bit 16
 
|-
 
|-
|align="center"|Power-on Reset
+
|align="center"|Power-on Reset.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
Línea 810: Línea 811:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|Reinicio End-Run
+
|align="center"|Reinicio End-Run.
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
Línea 821: Línea 822:
 
|-
 
|-
 
|align="center"|Funciones por Bits
 
|align="center"|Funciones por Bits
|align="center"|Usado R/W en <div>comparación =1</div> No Usado R/W en <div> comparación =0</div>
+
|align="center"|Usado R/W en <div>comparación =1</div> No Usado R/W en <div> comparación =0.</div>
|align="center"|Se comparará: <div>Ciclo de Escritura =0</div> Ciclo de Lectura=1
+
|align="center"|Se comparará: <div>Ciclo de Escritura =0.</div> Ciclo de Lectura=1.
 
|align="center"|* =0 <div> ** =1 </div>
 
|align="center"|* =0 <div> ** =1 </div>
 
|align="center"|x
 
|align="center"|x
Línea 828: Línea 829:
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
|align="center"|Comparar bit con:<div>1 lógico =1</div> 0 lógico =0
+
|align="center"|Comparar bit con:<div>1 lógico =1</div> 0 lógico =0.
 
|}
 
|}
 
<br>
 
<br>
Línea 855: Línea 856:
 
!<font color="black"> 0 </font>
 
!<font color="black"> 0 </font>
 
|-
 
|-
|align="center"|Lectura
+
|align="center"|Lectura.
 
|align="center"|PPACC
 
|align="center"|PPACC
 
|align="center"|0
 
|align="center"|0
Línea 865: Línea 866:
 
|align="center"|Bit 16
 
|align="center"|Bit 16
 
|-
 
|-
|align="center"|Escritura
+
|align="center"|Escritura.
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
Línea 875: Línea 876:
 
|align="center"|x
 
|align="center"|x
 
|-
 
|-
|align="center"|Power-on Reset
+
|align="center"|Power-on Reset.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
Línea 885: Línea 886:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|Reinicio End-Run
+
|align="center"|Reinicio End-Run.
 
|align="center"|U
 
|align="center"|U
 
|align="center"|0
 
|align="center"|0
Línea 895: Línea 896:
 
|align="center"|U
 
|align="center"|U
 
|-
 
|-
|align="center"|Funciones por Bits
+
|align="center"|Funciones por Bits.
|align="center"|Dato de solo evento <div>=1</div> Dirección de memoria <div> flash =0</div>
+
|align="center"|Dato de solo evento. <div>=1</div> Dirección de memoria. <div> flash =0.</div>
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
Línea 930: Línea 931:
 
!<font color="black"> 0 </font>
 
!<font color="black"> 0 </font>
 
|-
 
|-
|align="center"|Lectura
+
|align="center"|Lectura.
|align="center"|DBGEN
+
 
|align="center"|ARM
+
|align="center"|DBGEN.
|align="center"|TAG
+
|align="center"|ARM.
|align="center"|BRKEN
+
|align="center"|TAG.
 +
|align="center"|BRKEN.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
|align="center"|LOOP1
+
|align="center"|LOOP1.
 +
 
 
|-
 
|-
|align="center"|Escritura
+
|align="center"|Escritura.
|align="center"|DBGEN
+
|align="center"|DBGEN.
|align="center"|ARM
+
|align="center"|ARM.
|align="center"|TAG
+
 
|align="center"|BRKEN
+
|align="center"|TAG.
 +
|align="center"|BRKEN.
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
|align="center"|LOOP1
+
|align="center"|LOOP1.
 
|-
 
|-
|align="center"|Power-on Reset
+
|align="center"|Power-on Reset.
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
 
|align="center"|1
Línea 960: Línea 964:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|Reinicio End-Run
+
|align="center"|Reinicio End-Run.
 
|align="center"|U
 
|align="center"|U
 
|align="center"|0
 
|align="center"|0
Línea 970: Línea 974:
 
|align="center"|U
 
|align="center"|U
 
|-
 
|-
|align="center"|Funciones por Bits
+
|align="center"|Funciones por Bits.
|align="center"|DBG Habilitado<div>=1</div> DBG no habilitado <div>  =0</div>
+
|align="center"|DBG Habilitado<div>=1.</div> DBG no habilitado. <div>  =0</div>
|align="center"|Depurador armado<div>=1</div> DBG no armado <div>  =0</div>
+
|align="center"|Depurador armado<div>=1.</div> DBG no armado. <div>  =0</div>
|align="center"|Force requerido <div>=0</div> Tag requerido <div>  =0</div>
+
|align="center"|Force requerido <div>=0.</div> Tag requerido. <div>  =0</div>
|align="center"|Parada de CPU habilitada <div>=1</div> Parada de CPU no habilitada <div>  =0</div>
+
|align="center"|Parada de CPU habilitada.<div>=1</div> Parada de CPU no habilitada. <div>  =0</div>
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
|align="center"|Modo captura normal<div>=0</div> Modo Loop1 <div>=1</div>
+
|align="center"|Modo captura normal.<div>=0</div> Modo Loop1. <div>=1</div>
 
|}
 
|}
 
<br>
 
<br>
Línea 1002: Línea 1006:
 
!<font color="black"> 0 </font>
 
!<font color="black"> 0 </font>
 
|-
 
|-
|align="center"|Lectura
+
|align="center"|Lectura.
|align="center"|TRGSEL
+
|align="center"|TRGSEL.
|align="center"|BEGIN
+
|align="center"|BEGIN.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
|align="center"|TRG
+
|align="center"|TRG.
|align="center"|TRG
+
|align="center"|TRG.
|align="center"|TRG
+
|align="center"|TRG.
|align="center"|TRG
+
 
 +
|align="center"|TRG.
 
|-
 
|-
|align="center"|Escritura
+
|align="center"|Escritura.
|align="center"|TRGSEL
+
|align="center"|TRGSEL.
|align="center"|BEGIN
+
|align="center"|BEGIN.
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
|align="center"|TRG
+
|align="center"|TRG.
|align="center"|TRG
+
|align="center"|TRG.
|align="center"|TRG
+
|align="center"|TRG.
|align="center"|TRG
+
|align="center"|TRG.
 
|-
 
|-
|align="center"|Power-on Reset
+
|align="center"|Power-on Reset.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|1
 
|align="center"|1
Línea 1032: Línea 1037:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|Reinicio End-Run
+
|align="center"|Reinicio End-Run.
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
Línea 1042: Línea 1047:
 
|align="center"|U
 
|align="center"|U
 
|-
 
|-
|align="center"|Funciones por Bits
+
|align="center"|Funciones por Bits.
|align="center"|Activo en cualquier comparación<div> de dirección de acceso</div><div>=1</div> Activo si es ejecutado<div> el código de operación =0</div>
+
|align="center"|Activo en cualquier comparación<div> de dirección de acceso</div><div>=1.</div> Activo si es ejecutado<div> el código de operación =0.</div>
|align="center"|Activo al final de almacenar data<div>=0</div> Activo antes de almacenar data<div>  =1</div>
+
|align="center"|Activo al final de almacenar data<div>=0.</div> Activo antes de almacenar data<div>  =1.</div>
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
Línea 1074: Línea 1079:
 
!<font color="black"> 0 </font>
 
!<font color="black"> 0 </font>
 
|-
 
|-
|align="center"|Lectura
+
|align="center"|Lectura.
|align="center"|AF
+
|align="center"|AF.
|align="center"|BF
+
|align="center"|BF.
|align="center"|CF
+
|align="center"|CF.
 
|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"|ARMF
+
|align="center"|ARMF.
 
|-
 
|-
|align="center"|Escritura
+
|align="center"|Escritura.
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
Línea 1094: Línea 1099:
 
|align="center"|x
 
|align="center"|x
 
|-
 
|-
|align="center"|Power-on Reset
+
|align="center"|Power-on Reset.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|1
 
|align="center"|1
Línea 1104: Línea 1109:
 
|align="center"|1
 
|align="center"|1
 
|-
 
|-
|align="center"|Reinicio End-Run
+
|align="center"|Reinicio End-Run.
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
 
|align="center"|U
Línea 1114: Línea 1119:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|Funciones por Bits
+
|align="center"|Funciones por Bits.
|align="center"|A hizo match<div>=1</div> si no <div> =0</div>
+
|align="center"|A hizo match<div>=1.</div> si no <div> =0.</div>
|align="center"|B hizo match<div>=1</div> si no <div> =0</div>
+
|align="center"|B hizo match<div>=1.</div> si no <div> =0.</div>
|align="center"|C hizo match<div>=1</div> si no <div> =0</div>
+
|align="center"|C hizo match<div>=1.</div> si no <div> =0.</div>
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
Línea 1145: Línea 1150:
 
!<font color="black"> 0 </font>
 
!<font color="black"> 0 </font>
 
|-
 
|-
|align="center"|Lectura
+
|align="center"|Lectura.
 
|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"|CNT
+
|align="center"|CNT.
|align="center"|CNT
+
|align="center"|CNT.
|align="center"|CNT
+
|align="center"|CNT.
|align="center"|CNT
+
|align="center"|CNT.
 
|-
 
|-
|align="center"|Escritura
+
|align="center"|Escritura.
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
 
|align="center"|x
Línea 1165: Línea 1170:
 
|align="center"|x
 
|align="center"|x
 
|-
 
|-
|align="center"|Power-on Reset
+
|align="center"|Power-on Reset.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
Línea 1175: Línea 1180:
 
|align="center"|0
 
|align="center"|0
 
|-
 
|-
|align="center"|Reinicio End-Run
+
|align="center"|Reinicio End-Run.
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
 
|align="center"|0
Línea 1185: Línea 1190:
 
|align="center"|U
 
|align="center"|U
 
|-
 
|-
|align="center"|Funciones por Bits
+
|align="center"|Funciones por Bits.
 
|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"|# de palabras válidas
+
|align="center"|# de palabras válidas.
|align="center"|# de palabras válidas
+
|align="center"|# de palabras válidas.
|align="center"|# de palabras válidas
+
|align="center"|# de palabras válidas.
|align="center"|# de palabras válidas
+
|align="center"|# de palabras válidas.
 
|}
 
|}
 
<br>
 
<br>

Revisión actual del 22:29 5 dic 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.

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álculo 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 registros y datos, los cuales soporta hasta 128 KBytes 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 (ver ICS (Configuración Reloj Interno) - MC9S08QE128). 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 comparación de datos o direcciones 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


Registros de Extensión de los Comparadores A (DBGCAX) ,B (DBGCBX) y C(DBGCCX)

RWAEN: controla si está habilitado lectura/escritura para A/ B (Modo total)/C. for Comparator A.
RWA:tiene la misma función que RWAEN pero no es usado si RWAEN=0.
PAGSEL: controla si el comparador A esta calificado con la señal interna(mmu_ppage_sel, la cual indica un acceso extendido.


Función de campo 7 6 5 4 3 2 1 0
Lectura. RWAEN RWA PAGSEL 0 0 0 0 Bit 16
Escritura. RWAEN RWA PAGSEL x x x x Bit 16
Power-on Reset. 0 0 0 0 0 0 0 0
Reinicio End-Run. U U U 0 0 0 0 U
Funciones por Bits Usado R/W en
comparación =1
No Usado R/W en
comparación =0.
Se comparará:
Ciclo de Escritura =0.
Ciclo de Lectura=1.
* =0
** =1
x x x x Comparar bit con:
1 lógico =1
0 lógico =0.


-* =0 . Corresponde a una dirección de la CPU de 17 bits con un cero en el bit 16 ó una dirección lineal de 17 bits del apuntador.

-**=1 . Corresponde a una comparación de una dirección de la memoria flash.


Registro de Información Extendida FIFO (DBGCFX)

PPACC:Este bit indica si la información capturada en la palabra actual es FIFO y está asociada con un acceso extendido a través del mecanismo ppage o no. Esto está indicado por la señal interior cuando mmu_ppage_sel= 1, el acceso es a través del mecanismo de ppage.

Función de campo 7 6 5 4 3 2 1 0
Lectura. PPACC 0 0 0 0 0 0 Bit 16
Escritura. x x x x x x x x
Power-on Reset. 0 0 0 0 0 0 0 0
Reinicio End-Run. U 0 0 0 0 0 0 U
Funciones por Bits. Dato de solo evento.
=1
Dirección de memoria.
flash =0.
x x x x x x Bit más significativo de la
dirección de 17 bits del núcleo.


Registro de Control (DBGC)

DBGEN: habilita el módulo DBG.
ARM: controla si el depurador está comparando y almacenando dato en FIFO
TAG: controla si el depurador o punto de parada en el comparador C será requerido como una etiqueta o un punto de parada forzado al CPU. No es usado si BRKEN = 0.
BRKEN: controla si el depurador requerirá un punto de parada al final de una corrida en el CPU.
LOOP1: selecciona el modo de captura normal o por lazo. No es usado en modo de solo evento.


Función de campo 7 6 5 4 3 2 1 0
Lectura. DBGEN. ARM. TAG. BRKEN. 0 0 0 LOOP1.
Escritura. DBGEN. ARM. TAG. BRKEN. x x x LOOP1.
Power-on Reset. 1 1 0 0 0 0 0 0
Reinicio End-Run. U 0 U 0 0 0 0 U
Funciones por Bits. DBG Habilitado
=1.
DBG no habilitado.
=0
Depurador armado
=1.
DBG no armado.
=0
Force requerido
=0.
Tag requerido.
=0
Parada de CPU habilitada.
=1
Parada de CPU no habilitada.
=0
x x x Modo captura normal.
=0
Modo Loop1.
=1


Registro de Disparador (Trigger - DBGT)

TRGSEL: determina la condición de disparo de los comparadores.
BEGIN: controla si el disparador empieza o termina de almacenar la data en FIFO
TRG: selecciona el modo de operación de disparo del módulo.


Función de campo 7 6 5 4 3 2 1 0
Lectura. TRGSEL. BEGIN. 0 0 TRG. TRG. TRG. TRG.
Escritura. TRGSEL. BEGIN. x x TRG. TRG. TRG. TRG.
Power-on Reset. 0 1 0 0 0 0 0 0
Reinicio End-Run. U U 0 0 U U U U
Funciones por Bits. Activo en cualquier comparación
de dirección de acceso
=1.
Activo si es ejecutado
el código de operación =0.
Activo al final de almacenar data
=0.
Activo antes de almacenar data
=1.
x x Modo de DBG Modo de DBG Modo de DBG Modo de DBG


Registro de Estado (DBGS)

AF: indica si el comparador A realizó coincidencia.
BF: indica si el comparador B realizó coincidencia.
CF: indica si el comparador C realizó coincidencia.
ARMF: indica si el depurador espera por activación o por FIFO.


Función de campo 7 6 5 4 3 2 1 0
Lectura. AF. BF. CF. 0 0 0 0 ARMF.
Escritura. x x x x x x x x
Power-on Reset. 0 1 0 0 0 0 0 1
Reinicio End-Run. U U U 0 0 0 0 0
Funciones por Bits. A hizo match
=1.
si no
=0.
B hizo match
=1.
si no
=0.
C hizo match
=1.
si no
=0.
x x x Depurador armado
=1
si no
=0


Registro de Conteo FIFO (DBGCNT)

CNT: este conjunto de bit indican la cantidad de data válida almacenada por FIFO. Se detendrá cada 8 palabras válidas.


Función de campo 7 6 5 4 3 2 1 0
Lectura. 0 0 0 0 CNT. CNT. CNT. CNT.
Escritura. x x x x x x x x
Power-on Reset. 0 0 0 0 0 0 0 0
Reinicio End-Run. 0 0 0 0 U U U U
Funciones por Bits. x x x x # de palabras válidas. # de palabras válidas. # de palabras válidas. # de palabras válidas.


Funcionamiento del Módulo

Mapa de funcionamiento.PNG


FIFO - Almacenamiento de datos

Toda la data almacenada en FIFO cambiará de flujo de dirección para cualquier modo de operación excepto para el Modo de solo evento. En éste modo sólo el valor del bus de datos es almacenado. Por otra parte, la dirección guardada en FIFO estará determinada por el cambio de flujo de indicadores desde el núcleo.


  • La señal de Core_Cof(1), indica que la corriente dirección es el destino de dirección de algún salto o instrucción indirecta tipo JSR o JMP.
  • La señal Core_Cof(0) indica que un salto condicional fue tomado y a su vez la fuente de la dirección del sato fue almacenada.


Almacenamiento de data al inicio de Disparo y al final de Disparo

Inicio de Disparo: Este tipo de almacenamiento puede ser usado en cualquier modo de operación. Una vez que que el Módulo DBG es habilitado, la data no se almacena hasta que coincide con la condición de disparo. Así el módulo se encontrará armado hasta que haya almacenado palabras en la FIFO.

Final de Disparo: es usado en todos los modos de operación exceptuando el modo de solo evento.Una vez que que el Módulo DBG es habilitado, la data no se almacena hasta que coincide con la condición de disparo.


  • Si la señal core_cof[1]es acertada, la dirección actual es almacenada en FIFO.
  • Si la señal core_cof[0] es acertada, la dirección registrada durante el previo ciclo, es decrementada en 2 y almacenada.


Resets

El módulo DBG no puede causar el reinicio del MCU. Existen dos modos de respuesta a reinicios, dependiendo de las características previas al evento que produjo el reinicio:

Las condiciones para empezar la traza por defecto son:

  • DBGCAX=0x00; _ // No hay Extensión de Dirección.
  • DBGCAH=0xFF; _ // Parte Alta de la Dirección del Bus.
  • DBGCAL=0xFE; _ // El Comparador A es puesto en alta para coincidir cuando aparezca la dirección de CPU 0xFFFE aparezca durante el vector de búsqueda.
  • DBGC=0xC0; _ // Para habilitar el Módulo y el armado del mismo.
  • DBGT=0x40; _ // Selecciona el tipo de disparo y el modo de operación.


Referencias y Enlaces