Hallo zusammen, ich möchte gerne die Laufzeit einer von mir definierten Funktion wissen. Das ganze möchte ich unter C mit der IAR Workbench for ARM IDE realisieren. Es soll in etwa so aussehen: . . . //Timer starten meine_definierte_Funktion(); //Timer stoppen //Ausgabe der Laufzeit . . . Warum das ganze, ich möchte den gleichen Code auf einem ARM7 und einem Cortex-M3 ausführen. Dann die beiden Laufzeiten vergleichen, und so auch die Performance schließen. Für Vorschläge bzw. Anregungen wäre ich dankebar! Danke für die Mühe, Chris
Gast
#1553034
Installier dir die Demo von Keil µVision. Lass das ganze im Simulator laufen und mach Performance Analysis (integriert in der GUI). So ists am einfachsten. VG, /th.
Gast
#1553035
Meine Variante: IO-Pin setzen Funktion aufrufen IO-Pin rücksetzen ..da kann man schön mit dem Oszi messen.
Der Vorschlag von "Baster" finde ich super, das per GUI finde ich zu undurchsichtig, bzw. ich würde dann gern wissen wie genau das funktioniert. Da ist die Idee mit dem IO-Pin echt toll. Falls es noch weiter Ideen gibt, bitte posten. Danke euch beiden!
Lass einen Timer durchlaufen, und vergleiche den Zählerstand vor und nach dem Funktionsaufruf. Ich verwende dafür ein paar Makros, siehe Anhang. Das sieht dann zum Beispiel so aus:
1 | |
2 | |
3 | |
Ausgabe:
1 | |
Beim Cortex-M3 kannst du dir über den System Timer (SysTick) die genaue Anzahl der benötigten Takte ausgeben lassen. Hier mal meine Funktionen vom STM32
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
Chris __ schrieb:
> Falls es noch weiter Ideen gibt, bitte posten.
Beim Cortex-M3 gibt's auch ein cycle count Register.
Gruß
Marcus
Vielen vielen Danke alle zusammen! Da habe ich ja jetzt viel zum testen, ein super Forum ist das einfach!! Gruß Chris
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.