martes, 19 de agosto de 2008

StopWatch.

El StopWatch es una herramienta muy poderosa que nos ofrece el simulador MPSIM integrado en MPLAB.

Consiste, básicamente, en la medición del tiempo y ciclos de instrucción, será de gran utilidad a la hora de saber cuanto tiempo tarda un trozo concreto de código, una subrutina o partes del código que dependen de un tiempo de ejecución crítico para un buen funcionamiento.

Esta herramienta se puede activar en el apartado Debugger del menú de herramientas y posteriormente seleccionamos StopWatch.



Otro apartado importante de esta herramienta es que, ofrece tanto tiempos parciales como el total ejecutado hasta el momento de la parada de la ejecución del programa.

Esto es importante ya que podremos contar cuanto tiempo transcurre en una porción concreta de código sin perder el tiempo total ejecutado hasta ese momento.

La forma de usar el StopWatch es bastante sencillo, consta de dos botones que explicaremos a continuación:
  • Synch: Al pulsar este botón, el tiempo se sincronizará con el tiempo total, es decir, ambas ventanas de Stopwatch y Total Simulated marcarán el mismo valor, en este caso, el tiempo total hasta ese momento de la ejecución del código.
  • Zero: Este es el botón que seguramente más usaremos de esta herramienta, ya que nos permitirá medir tiempos parciales de nuestro código, es decir, al llegar a una porción determinada de nuestro código que queremos medir, pulsaremos sobre Zero para poner a cero el tiempo de la ventana StopWatch, de esta forma sabremos cuanto tiempo tarda en ejecutarse dicha porción de código.
Una de las cosas importantes a tener en cuenta al usar esta herramienta, es tener bien configurado el reloj principal de nuestro proyecto, éste está referenciado por la ventana Processor Frequency (MHz), que por defecto es de 20 Mhz.

Si no configuramos bien el oscilador principal de nuestro sistema, no funcionará correctamente nuestro código en un entorno real y seguramente será motivo de más de un dolor de cabeza.

Para saber como se puede cambiar la frecuencia del oscilador principal, esta el tema Arrancar MPSIM.

El compañero de trabajo de esta herramienta, StopWatch, son los breakpoint, con ellos, podremos medir tiempos parciales de una forma bastante rápida.

Por ejemplo, nos basaremos en el Ejemplo 9 del apartado de Ejemplos de la categoría de Baseline PIC, para mostrar lo fácil que es usar esta herramienta y lo útil que puede llegar a ser.

En el Ejemplo 9, existe una subrutina de retardo, para medir exactamente en MPSIM lo que tarda, usaremos el StopWatch y breakpoints.

Los breakpoints los pondremos a la llamada de la subrutina de retardo y a la instrucción siguiente de salir de la subrutina, así podremos medir exactamente cuanto tiempo tarda.




A la hora de simular, pulsaremos sobre RUN ya que lo que queremos obtener es el tiempo de la subrutina emplea en su ejecución.

Al pulsar RUN, el programa se ejecutará y se parará en el primer breakpoint, donde el StopWatch mostrará la siguiente información:



Donde se puede observar que se ha consumido hasta el momento 8 us, en este punto es donde queremos medir el tiempo que consume la subrutina, por lo tanto, mediremos un tiempo parcial, para ello, pulsaremos sobre el botón de Zero para poner a cero el contador de tiempos parciales.



Una vez puesto a cero el contador de tiempos parciales, reanudaremos la simulación pulsando sobre RUN nuevamente, esto hará que el código se vuelva a detener en la siguiente instrucción justamente después de terminar la subrutina, por lo que el StopWatch nos mostrará el tiempo que se ha consumido en la subrutina:



Cuando se detiene la simulación del código, podemos ver que la subrutina de retardo consume 50 us de tiempo, éste es el tiempo parcial que hemos medido pero el StopWatch también ofrece el tiempo total ejecutado hasta el momento de la parada del código, en este caso se han consumido 58 us hasta ese momento.

En resumen, el StopWatch es una herramienta muy valiosa para el diseñador ya que nos permite saber con exactitud el tiempo que los ciclos de máquina que consume nuestro código, ya sea parcialmente o de una forma total.



Se puede observar en el siguiente vídeo todo lo explicado anteriormente:





NOTA: Simplemente recordar que para usar de forma adecuada esta herramienta llamada StopWatch, se debe configurar la frecuencia del oscilador principal adecuadamente a la velocidad de nuestro proyecto.



2 comentarios:

Anónimo dijo...

gracias por la informacion bien escrita y con el video todo eso entendi como simular es bueno ver personas que colocan lo que saben para cualuiera

Unknown dijo...

Buenas:

Me alegro que te haya servido de utilidad la información que aquí exponemos.

Gracias por tu comentario.