Emulación en circuito


La emulación en circuito ( ICE ) es el uso de un dispositivo de hardware o un emulador en circuito que se utiliza para depurar el software de un sistema integrado . Opera utilizando un procesador con la capacidad adicional de soportar operaciones de depuración, así como para llevar a cabo la función principal del sistema. Particularmente para sistemas más antiguos, con procesadores limitados, esto generalmente implicaba reemplazar el procesador temporalmente con un emulador de hardware: una versión más poderosa aunque más costosa. Históricamente, tenía la forma de un procesador bond-out que tiene muchas señales internas con el fin de depurar. Estas señales proporcionan información sobre el estado del procesador.

Más recientemente, el término también cubre los depuradores de hardware basados ​​en Joint Test Action Group (JTAG) que brindan un acceso equivalente utilizando hardware de depuración en chip con chips de producción estándar. El uso de chips estándar en lugar de versiones integradas personalizadas hace que la tecnología sea ubicua y de bajo costo, y elimina la mayoría de las diferencias entre los entornos de desarrollo y tiempo de ejecución. En este caso común, el término emulador en circuito es un nombre inapropiado , a veces confuso, porque la emulación ya no está involucrada.

Los sistemas integrados presentan problemas especiales para los programadores porque generalmente carecen de teclados , monitores , unidades de disco y otras interfaces de usuario que están presentes en las computadoras. Estas deficiencias hacen que las herramientas de depuración de software en circuito sean esenciales para muchas tareas de desarrollo comunes.

Un emulador en circuito (ICE) proporciona una ventana al sistema integrado. El programador utiliza el emulador para cargar programas en el sistema integrado, ejecutarlos, recorrerlos lentamente y ver y cambiar los datos utilizados por el software del sistema.

Un emulador recibe su nombre porque emula (imita) la unidad central de procesamiento (CPU) de la computadora del sistema integrado. Tradicionalmente, tenía un enchufe que se inserta en el zócalo donde normalmente se colocaría el chip del circuito integrado de la CPU. La mayoría de los sistemas modernos utilizan la CPU del sistema de destino directamente, con acceso de depuración especial basado en JTAG. La emulación del procesador, o el acceso JTAG directo a él, le permite al ICE hacer todo lo que el procesador puede hacer, pero bajo el control de un desarrollador de software.

Los ICE conectan una terminal de computadora o una computadora personal (PC) al sistema integrado. El terminal o PC proporciona una interfaz de usuario interactiva para que el programador investigue y controle el sistema integrado. Por ejemplo, es rutinario tener un depurador a nivel de código fuente con una interfaz de ventana gráfica que se comunica a través de un adaptador JTAG (emulador) con un sistema de destino incorporado que no tiene una interfaz gráfica de usuario.