Depuración de un solo paso y valor del contador del temporizador

3

Estoy depurando con cortex m7, encontré que cuando detengo la CPU, el valor del contador del temporizador sigue aumentando. Después de leer el manual de referencia, encontré un registro que puede detener el avance del reloj del temporizador cuando el depurador detiene la CPU. Sin embargo, incluso si configuro este registro, todavía tengo aumentos de valor de contador para aproximadamente 15 en un solo paso de desmontaje (el temporizador es igual al de la CPU). ¿Es lo mismo para todos los microcontroladores? ¿Entonces solo puedo ver el comportamiento correcto en el simulador? ¡Gracias!

    
pregunta iouzzr

1 respuesta

4

Este tipo de detalle varía considerablemente entre los microcontroladores. Esto tiene que ver específicamente con la forma exacta en que se implementa la depuración y el paso a paso.

Los fabricantes no quieren agregar una gran cantidad de hardware solo para la depuración, ya que esto dificulta el caso en el que una gran empresa quiere comprar 100 k piezas a la vez para una ejecución de producción. Como resultado, existen todo tipo de esquemas inteligentes para reutilizar el hardware existente. Un esquema común es hacer que la parte ejecute un código especial para ayudar a implementar la interfaz de depuración. Para el procesador, esto es solo código, por lo que los contadores y similares siguen funcionando.

El interruptor para detener el contador durante un solo paso en su caso probablemente solo signifique que los periféricos están apagados cuando el chip está inactivo, no cuando el código de depuración se está ejecutando y se está comunicando con el depurador. En su caso, es posible que este código de depuración lleve 15 ciclos por paso.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas