Daniel Mangum determinó que, al depurar el nRF54LM20 basado en Cortex-M33, GDB devolvía valores desactualizados y almacenados en caché después de ciertas operaciones. Mientras que el comando ReadMemAP de JLinkGDBServer devolvía el resultado correcto, el comando x normal de GDB seguía mostrando valores antiguos. Se consideró que el problema se debía al almacenamiento en caché del software de J-Link, ya que las lecturas directas desde el puerto de acceso AHB-AP funcionaban correctamente. El problema se solucionó al desactivar el almacenamiento en caché de J-Link.
Por qué es importante
Este hallazgo muestra que los valores de memoria visibles durante la depuración de microcontroladores no siempre pueden reflejar el estado real del dispositivo. Que las herramientas que acceden a los mismos datos devuelvan resultados diferentes puede dificultar la distinción entre un problema de hardware y uno de la cadena de depuración, lo que puede conducir a un diagnóstico incorrecto. Comparar las lecturas directas de AHB-AP con la salida de GDB proporciona a los desarrolladores un punto de control concreto para comprobar este tipo de inconsistencias. Aunque desactivar el almacenamiento en caché soluciona el problema, el hecho de que siga siendo una solución temporal validada y no una corrección de software permanente deja abierta la cuestión de cómo se abordará este comportamiento en el lado de J-Link.