5 votos

Cálculo del tiempo empleado por una función en aplicaciones de microcontroladores

Me gustaría escribir un perfilador simple para mi microcontrolador STM32F100VE. He visto que puedo incluir time.h y en función de las funciones estándar de c puedo usarlo, pero estaba confundido acerca de _CLOCKS_PER_SEC_ 1000. No estoy seguro de si ese enfoque funcionará o no.

¿Cómo se intentaría medir el tiempo que tardaba una función en la aplicación de microcontrolador?

4voto

SomeEE Puntos 923

La maniobra más básica de funciones complicadas es la de utilizar los cronómetros de a bordo.

Dependiendo de cómo haya configurado, se puede conseguir a contar exactamente con el número de ciclos de reloj que se necesita para una cierta función a ejecutar. Simplemente leer el temporizador antes de que la llamada a la función y, a continuación, de nuevo después de la llamada a la función.

Usted tendrá que mirar a través de la asamblea de código para saber cuánto tiempo para quitarse el temporizador para la lectura de llamadas, pero si es una larga función o si no te importa ser por un par de ciclos de reloj, a continuación, está bien.

El único error en la conversión de ciclos de reloj, de nuevo es el posible error en el reloj del sistema a la frecuencia de oscilación. De nuevo, esto será insignificante para las funciones que requieren gran cantidad de tiempo para ejecutar.

Suena como en el caso de que quieras algo en torno a 30Hz (30 FPS), que es un tiempo muy largo en comparación con el tiempo de ciclo de reloj del procesador.

1voto

user39653 Puntos 144

Si se trata de una función pequeña, puede mirar el desmontaje y contar las instrucciones.

1voto

avinash Puntos 26

¿Necesita usar esa información en su software también, o solo la necesita para propósitos de depuración / desarrollo? Si es el segundo (supongo que lo es, ya que su objetivo principal es perfilar), simplemente alternar una salida al principio y al final de la función, y medir el tiempo con un osciloscopio podría ser la medida más rápida, fácil y precisa. .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X