¿Qué es exactamente un emulador de Flash y cómo funciona?

Leí sobre un emulador de flash . ¿Alguien puede decirme qué es exactamente un emulador de flash y explicar cómo funciona? ¿Es sinónimo de un emulador en circuito?

Según mi experiencia, parece ser solo un término utilizado por TI para programador + depurador. No es un emulador en circuito habitual en el que se emula el chip real, ya que utiliza funciones de depuración del chip de destino.

Respuestas (1)

Un emulador de Flash se utiliza en un sistema que normalmente mantiene su código de programa en un chip de memoria FLASH.

El emulador es una pequeña pieza de hardware que sustituye al chip de memoria FLASH normal de una manera que desactiva el FLASH normal y reemplaza su funcionalidad. A veces, el chip FLASH normal se desconecta y el emulador se conecta al zócalo del chip. Otras veces, la placa de destino tendrá un conector especial al que se conecta el emulador. El acto de enchufar el emulador deshabilita el FLASH normal y habilita el emulador. Un tercer tipo común es conectar el emulador a través de un clip de chip que sujeta el chip FLASH en la placa de destino.

Si el emulador pretende ser el FLASH de la placa que se está probando, debe suministrar memoria que pueda contener código de programa para el procesador de la placa. Esta memoria generalmente tiene la forma de RAM dentro del adaptador que tiene hardware de unión entre ella y la interfaz FLASH para convertir el protocolo de interfaz de lectura/escritura FLASH normal al requerido para acceder a esta RAM. De esta manera, el procesador en la placa de destino puede obtener y ejecutar el código contenido en la RAM del emulador.

La RAM del emulador también tiene un puerto doble a una interfaz accesible del host para que se pueda cargar el contenido de la RAM. El host suele ser una computadora tipo PC con herramientas de compilador cruzado, ensamblador y enlazador que es capaz de producir imágenes de programa para la MCU de destino. Luego, la computadora host accede al emulador de Flash para que el código se pueda ejecutar y probar en la MCU de destino. La interfaz entre la computadora host y el emulador puede ser una variedad de tipos diferentes, incluidos puerto paralelo, USB, serie o Ethernet. Las interfaces USB son de uso común hoy en día.

En estos días, en el mundo de MCU integrado, el uso de emuladores Flash reales como se describe se está volviendo bastante poco común. Casi todas las MCU principales tienen memoria FLASH integrada y hardware de depuración integrado que permite cargar la FLASH de forma remota. El hardware de depuración se utiliza para permitir la prueba del código a medida que se ejecuta. La interfaz de depuración de la MCU es un conjunto especializado de pines que se conectan a un módulo especial de descarga/depuración. La computadora host normalmente está conectada a este módulo de depuración a través de USB o Ethernet y se utiliza un software dedicado especial en el host para realizar la programación FLASH y operar la interfaz de depuración en la MCU de destino.

Gracias por las explicaciones. Me aclara muchas dudas que tenia.
Puede valer la pena señalar que los emuladores de flash pueden diferir en el nivel de "realismo" que ofrecen. Dado que algunos aspectos del comportamiento del chip flash pueden variar arbitrariamente con la edad, es posible diseñar un emulador para que cualquier cosa que tenga una posibilidad real de funcionar en un chip real funcione en el emulador, o para que cualquier cosa que tenga una posibilidad real de funcionar. fallar en un chip real fallará en el emulador. Algunos emuladores pueden proporcionar un medio para "ajustar" el comportamiento simulado, pero no he analizado los detalles de ningún emulador fácilmente disponible.