La interfaz del modo de depuración en segundo plano ( BDM ) es una interfaz electrónica que permite la depuración de sistemas integrados . En concreto, proporciona una funcionalidad de depuración en circuito en microcontroladores. Requiere un solo cable y electrónica especializada en el sistema que se está depurando. Aparece en muchos productos de Freescale Semiconductor . Los comandos en segundo plano se clasifican en dos tipos: comandos no intrusivos y comandos en segundo plano activos. Los comandos no intrusivos se pueden emitir mientras se ejecuta el programa de usuario, lo que incluye comandos de acceso a memoria. [1]
La interfaz permite que un host administre y consulte un objetivo . Se requiere hardware especializado en el dispositivo de destino. No se requiere hardware especial en el host; un simple pin de E/S bidireccional es suficiente.
Las señales que utiliza BDM para comunicar datos hacia y desde el objetivo son iniciadas por el procesador host. El host niega la línea de transmisión y luego
Al comienzo del siguiente bit, el host niega la línea de transmisión y el proceso se repite. Cada bit se comunica de esta manera.
En otras palabras, la creciente complejidad de los diseños de software y hardware actuales está dando lugar a nuevos enfoques para la depuración. Los fabricantes de silicio ofrecen cada vez más funciones de depuración en chip para la emulación de nuevos procesadores .
Esta capacidad, implementada en varios procesadores bajo nombres como modo de depuración en segundo plano (BDM), JTAG y emulación en circuito en chip, coloca funciones de depuración básicas en el propio chip. Con un puerto de depuración BDM (interfaz de 1 cable) o JTAG (JTAG estándar) , se controla y monitorea el microcontrolador únicamente a través de los servicios de depuración estables en chip.
Este modo de depuración se ejecuta incluso cuando el sistema de destino falla y permite a los desarrolladores continuar investigando la causa del fallo.
Un buen entorno de herramientas de desarrollo es importante para reducir el tiempo y el coste totales de desarrollo. Los usuarios quieren depurar su programa de aplicación en condiciones que imiten la configuración real de su sistema. Por ello, se requiere la capacidad de depurar un programa de usuario en un sistema de destino real. Esto se conoce como depuración en circuito . Además, la mayoría de los MCU nuevos tienen memoria no volátil, como la memoria flash, por lo que también se requiere código de programación en el sistema de destino. Esto se conoce como programación en circuito .
Para cumplir con los requisitos de programación y depuración en circuito, la familia HC08 tiene el modo de monitor y los HCS08 y RS08 utilizan un modo de depuración en segundo plano (BDM). El hardware de depuración en segundo plano del HCS08 consta de un controlador de depuración en segundo plano (BDC) y un módulo de depuración (DBG). El hardware de depuración en segundo plano del RS08 consta únicamente del controlador de depuración en segundo plano (BDC).
El host BDM puede enviar comandos con parámetros al objetivo. Algunos comandos permiten leer o escribir bloques de la memoria del objetivo, registros individuales de la CPU o registros que no están disponibles para el objetivo.
Algunos ejemplos incluyen:
READ_BYTE | Leer un byte de la memoria |
WRITE_BYTE | Escribe un byte en la memoria |
GO | Iniciar/reanudar la ejecución en la ubicación actual del contador del programa |
WRITE_PC | Escribe un valor en el contador del programa |
READ_PC | Leer el valor del contador del programa |
WRITE_X | Escribe un valor en el registro de índice |
READ_X | Leer el valor del registro de índice |
READ_SP | Leer el valor del puntero de la pila |
Según la parte de destino, el controlador BDM puede incluir un registro de punto de interrupción de hardware . El registro contiene un valor que indica una dirección en la memoria. Cuando la CPU de la parte de destino accede a esa ubicación en la memoria, el hardware BDM puede tomar el control de la parte de destino, detener la ejecución del programa y comenzar a funcionar en modo de fondo.