Paso 1: Paso 1: JTAG periférico
El primer objetivo es desarrollar un periférico JTAG que nos permitirá interconectar el microcontrolador a prueba con el brazo y por lo tanto con la depuración de la aplicación.
JTAG es especialmente ideal para este diseño, ya que está ya bien establecido estándar se utiliza extensivamente para depurar microcontroladores de casi todos los vendedores. Por otra parte, para el desarrollador, tener una interfaz JTAG será muy útil cuando se intenta visualizar señales de bajo nivel desde el microcontrolador.
Los periféricos incluyen los siguientes registros:
- Registro de 0: Datos
- Registro 1: Control
- Registro 2: Longitud de la cadena
- Registro 3: Offset
- Registro 4: Estado (sólo lectura)
- Registro 5: Datos (sólo lectura)
Longitud de la cadena y la compensación siempre deben escribirse antes de escribir en el Control, ya que una escritura al Control iniciará la operación. El registro de Control incluye los siguientes campos:
- Instrucción [31:30]
- Longitud de Shifth [29:25]
- WriteToChain [24]
- ReadFromChain [23]
- Bits reservados [22:0]
Las instrucciones disponibles son:
- Reset -> código 0 x 00
- Análisis de DR -> código 0 x 01
- Exploración del IR -> código 0 x 02
El registro del estado indicará si hay datos para leer los datos hacia fuera y si el fifo de Ctrl es completo.
- Bit 0: Ctrl FIFO completo
- Bit 1: Datos para leer disponible.