Un puerto de depuración es una interfaz de diagnóstico (similar a un puerto de computadora ) incluida en un sistema electrónico o circuito integrado para ayudar en el diseño , la fabricación , el desarrollo , el arranque , la configuración , la depuración y la programación interna del sistema posterior a la venta . En términos generales, un puerto de depuración no es necesario para la función de uso final y, a menudo, está oculto o deshabilitado en los productos terminados.
Cuando se constituye en un sistema crítico de seguridad o de alta disponibilidad , un puerto de depuración puede continuar funcionando como un monitor del sistema para la validación de la integridad en el producto terminado. En productos electrónicos de bajo costo o de gran volumen, los puertos de depuración a veces se dejan habilitados para evitar costos de cambios de diseño y pueden ser utilizados por modders y hackers para obtener el control del dispositivo o acceso a funcionalidad adicional.
Los microprocesadores son dispositivos excepcionalmente complejos que comúnmente contienen más de mil millones de transistores internamente y a veces superan más de un billón. [1]
Los microcontroladores son generalmente más pequeños que las CPU convencionales, pero ahora han evolucionado tanto hacia el territorio del sistema en un chip (SoC), que un MCU puede ser casi el único chip complejo que queda en una placa de aplicación de uso final (con chips adicionales dedicados a funciones eléctricas especializadas como cambio de nivel y protección ESD mejorada ).
Los MCU SoC generalmente utilizan memoria flash interna como almacén de programas y también pueden contener fusibles de configuración internos basados en EEPROM cuya configuración correcta es esencial para que el MCU se encienda en el modo operativo correcto; el puerto de depuración puede ser la única forma de configurar inicialmente el árbol de reloj o de cargar el primer programa de software después de la fabricación.
Desde aproximadamente 2010, una amplia clase de MCU ahora tienen periféricos USB integrados con actualización de firmware del dispositivo (DFU) en la ROM de fábrica. [2] Esta clase de MCU atrae a los aficionados que no desean invertir en las herramientas de hardware necesarias para acceder a puertos de depuración especializados como JTAG .
Estos dispositivos están diseñados para resistir el bloqueo . Una carga de firmware defectuosa se recupera fácilmente manteniendo un pin especial en el estado activo, lo que hizo que el chip se iniciara utilizando su ROM de fábrica interna , lo que hace que una interfaz de programación esté disponible a través de su controlador USB incorporado. DFU puede verse como una forma de puerto de depuración implementado en software en lugar de hardware. Sin embargo, esto anula en gran medida la funcionalidad de depuración de un puerto de depuración de hardware dedicado, ya que es inherentemente frágil para depurar software que también implementa su interfaz de depuración, pero solo cuando funciona correctamente.