Ich arbeite mit einem STM32F4 Discovery Board und möchte berechnen, wie viel Zeit für einige Aufgaben benötigt wird. Ich verwende Atollic mit einem SW4STM32-Debugger. Ich kann nicht herausfinden, wie es geht.
Ich habe etwas über das Senden von Nachrichten an die Konsole und das anschließende Messen dieser Zeit gelesen, weiß aber nicht, wie ich Nachrichten an die Konsole senden soll. Kannst du mir helfen? Danke!
Zusätzlich zu anderen Antworten können Sie ein Oszilloskop verwenden, wenn Sie eines haben.
Stellen Sie zu Beginn Ihrer Aufgabe einen unbenutzten Pin (oder eine LED usw.) hoch. Setzen Sie es dann direkt nach Abschluss der Aufgabe auf niedrig. Das O-Scope kann Ihnen die Dauer anzeigen.
1) Verwenden Sie den in Ihrem Compiler enthaltenen Profiler (falls vorhanden)
2) Verwenden Sie einen der Timer, starten Sie den Timer direkt vor und nach dem Code, den Sie zeitlich festlegen möchten.
3) Sehen Sie sich den Assemblercode an und beginnen Sie mit dem Zählen der Taktzyklen , indem Sie sie im Programmierhandbuch finden und herausfinden, wie viele Taktzyklen verwendet werden, erhalten Sie die Gesamtzahl der Taktzyklen und multiplizieren Sie sie mit der Kernfrequenz.
Normalerweise schalte ich einen Stift um und messe die Zeit mit einem Oszilloskop. Dies ist die am wenigsten fehleranfällige Methode. Wenn Sie dies im Code tun möchten, würde ich vorschlagen, den Systick-Timer auf Mikrosekunden-Präzision einzustellen (SystemCoreClock / 1000000). Dies hat jedoch immer eine Drift, abhängig von der Hauptkristallpräzision, so dass Sie rtc verwenden möchten, um genau zu zählen, wie viele Zyklen Sie in 1s erhalten, und dann Ihre Ergebnisse entsprechend zu skalieren.
Tut
Rohr
Oldtimer
Oldtimer
Oldtimer