El chip se comporta de manera diferente en debug vs flash

0

Actualmente estoy trabajando en un programa para un chip de escala libre de 8 bits (MC9S08QG8) en CodeWarrior v10.3 que utiliza la captura de temporizador / período para convertir una frecuencia a un voltaje analógico.

Conseguí que la cosa funcionara bastante bien en el modo de depuración, pero noté que cuando simplemente coloco el archivo .abs en el objetivo para probar la versión de lanzamiento, se comporta como si el registro del temporizador estuviera sesgado.  En otras palabras, un período de 20 ms normalmente activará un DAC en modo de depuración (según lo previsto). Sin embargo, cuando el archivo se muestra directamente, el DAC se enciende a unos 17.4 ms. Lo mismo ocurre con otros casos; un evento que se supone que ocurre a 6.64ms ocurre a 5.75ms.

El código está basado en interrupciones. ¿Alguien sabe lo que es diferente en depuración frente a flash directo que podría causar esto? ¿Puedo desactivar algo en el modo de depuración para que se comporte como una versión de lanzamiento?

    
pregunta Drewster

1 respuesta

1

¿Cómo implementaste el tiempo? ¿Está utilizando un tiempo de hardware o tiene un ciclo de espera de compras que está sintonizado empíricamente? Este último se comportaría de manera diferente en el modo de depuración ya que el compilador agrega sobrecarga para recopilar información de depuración. En general, los procesadores ejecutan "más lento" en el modo de depuración, o para ser precisos: el mismo código se ejecuta más lento debido a la sobrecarga de depuración

    
respondido por el Hilmar

Lea otras preguntas en las etiquetas