¿Tendré un mejor rendimiento de depuración utilizando un depurador externo?

0

Actualmente estoy usando un kit de evaluación LaunchPad Tiva C Series (TM4C123G) y he comenzado a experimentar con RTX RTOS de Keil. Utilizo el depurador ICDI Stellaris integrado para mis tareas de depuración, pero a medida que agrego más funciones y puntos de interrupción y comienzo a monitorear arreglos relativamente grandes, observo que mi monitoreo en uVision realmente disminuye, lo que supongo es de esperar.

Mi pregunta es: ¿Tendría algún beneficio en el rendimiento (por ejemplo, más puntos de interrupción, monitoreo más rápido) al cambiar de ICDI a una interfaz JTAG / SWD externa como un depurador J-Link Edu?

La razón por la que pregunto es porque estoy pensando en comprar uno eventualmente para PCB reales, pero me gustaría saber si me beneficiaría ahora. Espero que la pregunta sea clara, gracias!

    
pregunta user33355

1 respuesta

2

El número de puntos de interrupción rápidos está limitado por el objetivo. El microcontrolador Tiva ™ TM4C123GH6PM que se usa en su placa admite hasta 8 puntos de interrupción de hardware.

Si establece más de esos, terminará con puntos de interrupción de software que funcionan de manera diferente. Hay diferentes enfoques, especialmente cuando se ejecuta desde flash. Un enfoque común es insertar una instrucción de captura, algunas arquitecturas ofrecen instrucciones especiales de punto de interrupción, por ejemplo, el ARMv7-M tiene el BKPT :

  

BKPT # < imm8 >

     

El punto de interrupción hace que se produzca una excepción DebugMonitor o una detención de depuración en función de la configuración de la depuración   apoyo.

     

< imm8 > Especifica un valor de 8 bits que se almacena en la instrucción. Este valor es ignorado por el hardware ARM,   pero puede ser utilizado por un depurador para almacenar información adicional sobre el punto de interrupción.

Ahora es fácil insertar estas instrucciones en el código que se ejecuta dentro de la RAM, pero para el código que se ejecuta desde flash, debe reprogramar el sector en el que estableció el punto de interrupción. Esto es lo que soporta la unidad J-Link, otros como los depuradores de Lauterbach también. Éstos tienen la ventaja adicional de que también pueden configurarse en flash externo (si es compatible con el depurador), que no siempre es compatible con los puntos de interrupción de hardware. La instrucción de punto de interrupción causará una excepción, que luego será detectada por el depurador.

Un enfoque diferente que es mucho más lento es que el depurador cambia a un solo paso automático y se compara en cada paso si se ha alcanzado un punto de interrupción. Esto ralentiza la ejecución bastante dramáticamente y la velocidad está limitada por el reloj JTAG / SWD, mientras más lento sea el reloj de depuración, más lenta será la ejecución.

Si llegas a estas limitaciones, el proceso de depuración siempre se ralentizará, pero la intensidad depende del depurador utilizado. Algunos dependen únicamente del software, por lo que se vuelve aún más lento. Otros implementarán los puntos de interrupción del software en el hardware del front-end de depuración, para que no tenga que preguntar a la PC todo el tiempo.

La transferencia de matrices grandes es principalmente una función del reloj de depuración, pero si su velocidad de depuración excede la interfaz de la PC al depurador, una sonda de depuración con búferes internos ayudará. Puede leer la matriz en el búfer a alta velocidad y transmitirla a la PC a menor velocidad.

Dicho esto, supongo que la mayoría de las sondas de depuración a bordo tienen una capacidad muy limitada. Por lo tanto, es probable que actúen como un relé para la PC que implementa todo el protocolo de depuración en el controlador. Un depurador de pleno derecho implementará el protocolo en el firmware y usará el ancho de banda disponible para la PC de manera más eficiente. Así que diría que un depurador "real" probablemente aumentará la velocidad del proceso de depuración y hará que sea una experiencia más placentera.

Estoy trabajando con un depurador de Lauterbach y es tan poderoso y flexible que solo estoy rascando la superficie de las capacidades.

    
respondido por el Arsenal

Lea otras preguntas en las etiquetas