Existe lo que JTAG 'significa' y existe lo que JTAG 'es'. Como otros han señalado JTAG 'es' una interfaz de bus estándar de la industria para la fabricación de pruebas, como en J Øint T est A cción G rupo.
Lo que JTAG 'significa' para un desarrollador de software integrado es la interfaz de depuración en el SoC / microprocesador para la depuración externa del software integrado que se ejecuta en el chip. Casi todas las CPU / SoC en el mercado usan la interfaz JTAG no solo para pruebas de fabricación, sino también para soporte de depuración de software. Encontrará una interfaz JTAG en todo, desde CPU de clase de servidor x86 hasta enrutadores WiFi domésticos de menos de $ 50. Con el hardware de interfaz correcto y el software adecuado, estas interfaces le otorgarán la capacidad de leer / escribir memoria, establecer puntos de interrupción y código de un solo paso.
La clave, por supuesto, es obtener el hardware y el software correctos. Aunque la interfaz JTAG básica está estandarizada, es posible que las funciones de depuración de software específicas disponibles en un dispositivo no lo estén. JTAG es como TCP / IP. Existe en el medio de la pila de aplicaciones. Necesita la capa física correcta para comunicarse con el equipo (es decir, ¿qué quiere decir que esta cosa usa 10-Base-2?!?!?), Y necesita el software de aplicación correcto encima (¿qué quiere decir que necesito un Gopher? ¡¿¡¿¡¿cliente?!?!?!). Sin embargo, la fortaleza del ecosistema ARM ha llevado a cierto grado de estandarización allí (ver OpenOCD).
También preguntaste sobre el uso de JTAG para programar flash. Sí, algunos programas lo usan también para ese propósito. El SoC puede proporcionar funciones JTAG para leer / escribir desde espacios de direcciones de memoria de la CPU, puede proporcionar acceso directo a controladores flash y, como mínimo, JTAG proporciona acceso sin formato de bajo nivel a los pines de E / S en el borde del chip (esto fue el propósito original de JTAG, para permitir la prueba de continuidad de las interconexiones de chip a chip durante la prueba de fabricación, es decir, 'escaneo de límites JTAG'). Cualquiera de estas instalaciones podría ser utilizado por programadores inteligentes para manejar las señales necesarias para reprogramar un chip flash en caso de que un dispositivo se "bloquee" accidentalmente.