¿Cómo funciona openOCD?

La depuración de hardware es diferente a la depuración de sus aplicaciones de software habituales. La razón es que el código generalmente se ejecuta en algo que no tiene muchas capacidades para soportar un sistema operativo lo suficientemente grande que se encargará de los registros, volcados de memoria y similares.

Por lo tanto, los microprocesadores y controladores generalmente tienen un conjunto de pines de hardware (llamados puntos de acceso de prueba, también conocidos como TAP) que se pueden usar para ver lo que está sucediendo en los diferentes tipos de memorias (registros, flash, sram, etc.). Una vez que tiene acceso a los recuerdos en tiempo real, es fácil depurar usando una herramienta como gdb.

Ahora tenemos que conectar los TAP en el microcontrolador a la computadora mediante USB (o un puerto paralelo). Para convertir entre los TAP (que generalmente admiten un estándar llamado JTAG) y los formatos de datos USB, necesitamos una placa intermedia. Esto se llama dongle. OpenOCD admite tales dongles.

Entonces, al final del día, OpenOCD es responsable de hablar con un dongle o una placa intermedia que sepa cómo comunicarse con los pines de depuración en un microcontrolador.