¿Qué es un rastreo del programa MCU?

5

He leído en algunos lugares acerca de la compatibilidad de Atmel con las trazas de programas en sus depuradores / MCU de gama alta. ¡Parece ser que algunos de los procesadores AVR32 pueden ser "rastreados" por el AVROne! programador / depurador. Consulte aquí o this pdf para las menciones de la característica.

Inicialmente pensé que esta era una característica específica de atmel, pero después de leer más, parece que su implementación de nanotrace es específica de atmel, mientras que el concepto de rastreo es común a muchos microcontroladores de gama alta.

¿Podría alguien explicarme qué es esto, por qué sería más útil que las técnicas de depuración tradicionales como el registro de depuración a través de UART o el paso a nivel de instrucción, y proporcionar algunos recursos sobre cómo usar esta función? No me importa mucho si los recursos son para los chips de atmel que mencioné, ya que no planeo usar la función en el futuro cercano, solo quiero ser informado y saber lo que puede hacer.

    
pregunta NickHalden

2 respuestas

6

Cuando rastrea un programa, el depurador registra saltos y ramas mientras el programa se está ejecutando. Esto significa que cuando detiene el programa o llega a un punto de interrupción, puede averiguar cómo llegó el programa a este punto. Algunos depuradores también pueden rastrear datos, lo que significa que puede ver el contenido histórico de las variables, no solo el valor actual. Así que con la depuración "normal" se puede ver que el programa se bloqueó debido a un error "dividir por cero" en la línea 432, pero con el rastreo se puede ver que la línea 432 se ejecutó porque la prueba en la línea 411 fue verdadera y la rama en 422 no se tomó y que la variable n era 12 y 13 antes de que finalmente se estableciera en cero.

    
respondido por el GT.
0

El NanoTrace es como un rastreo regular que se descarga en la memoria del chip en lugar del puerto AUX para que pueda leerlo con un depurador de bajo costo (lento). Si bien esto le permite gastar menos (~ $ 550) en el depurador, ralentiza el funcionamiento del microcontrolador de destino . Esto solo realmente se convertirá en un problema si está intentando depurar una operación de tiempo crítico. Para la mayoría de los aficionados, esto nunca es un problema.

Sin embargo, esto sería más rápido que el registro de depuración sobre UART y el paso a nivel de instrucción realmente no entra en la comparación (aunque generalmente se realiza también a través de la interfaz JTAG).

Básicamente, es una característica común de los microcontroladores con un nombre elegante.

    
respondido por el Samuel

Lea otras preguntas en las etiquetas