Estoy trabajando con una placa de descubrimiento STM32F4 y quiero calcular cuánto tiempo lleva realizar algunas tareas. Estoy usando Atollic con un depurador SW4STM32. No puedo averiguar cómo hacerlo.
He leído algo sobre enviar mensajes a la consola y luego medir ese tiempo, pero no sé cómo enviar mensajes a la consola. ¿Me puedes ayudar? ¡Gracias!
Además de otras respuestas, puede usar un osciloscopio si tiene uno.
Al comienzo de su tarea, configure un pin no utilizado (o un LED, etc.) alto. Luego configúrelo bajo directamente después de que se complete la tarea. El o-scope puede mostrarle la duración.
1) Use el generador de perfiles incluido con su compilador (si tiene uno)
2) Use uno de los temporizadores, inicie el temporizador justo antes y después del código que desea cronometrar.
3) Mire el código ensamblador y comience a contar los ciclos de reloj buscándolos en el manual de programación y encontrando cuántos ciclos de reloj se utilizarán, obtenga el número total de ciclos de reloj y multiplíquelo por la frecuencia central.
Por lo general, alterno un pin y mido el tiempo usando un osciloscopio. Este es el método menos propenso a errores. Si desea hacerlo en código, le sugiero que use el temporizador systick configurado con una precisión de microsegundos (SystemCoreClock / 1000000). Sin embargo, esto siempre tiene una deriva dependiendo de la precisión del cristal principal, por lo que es posible que desee usar rtc para contar exactamente cuántos ciclos obtiene en 1s y luego escalar sus resultados en consecuencia.
Gesto de desaprobación
tubo
viejo contador de tiempo
viejo contador de tiempo
viejo contador de tiempo