Forum: Mikrocontroller und Digitale Elektronik [ARM] Zeitbedarf messen (code benchmark)


von Paule (Gast)


Lesenswert?

Hallo Mikros!

Meine Entwicklungsumgebung umfasst:
- ARM7CPU (AT91SAM7X256)
- Eclipse
- GCC 4.x
- J-Link Pro

Nun möchte ich gern diverse Code-Zeilen bzw. Schnippsel mal laufen 
lassen, um herauszufinden, wie sie sich laufzeittechnisch verhalten und 
mit welchen Reaktionszeiten man in etwa rechnen darf.

Am liebsten wäre es mir, den Prozessorzyklus auszulesen. Geht vermutlich 
nicht über Master Clock (MCK) oder PLL, oder etwa doch?

Was könnte man andernfalls nutzen? Evtl. den Real-Time Timer (RTT)?

Danke fürs Lesen,
Paule
von Bastler (Gast)


Lesenswert?

Einfaches Hilfsmittel:

Am Anfang der Funktion ein Pin setzen und am Ende zurücksetzen.
Oszi dran, fertig!

So sieht man auch Schwankungen recht schön.
von Paule (Gast)


Lesenswert?

Hallo Bastler,

diese Idee ist gut. Allerdings weiß ich noch nicht, ob ich damit meine 
Betrachtungen hinbekomme. Muss dann die gesamte Zeit ein Oszi in 
Beschlag nehmen.

Bin also noch für Software-Ideen offen :)

Grüße,
Paule
von 123 (Gast)


Lesenswert?

einen timer starten, gibts da nicht im SYSTEM block einen?
vor dem start auslesen, am ende wieder, delta berechnen, und du hast die 
zeit.

und du brauchst keine fall unterscheidung zu machen, einfach nur 
abziehen. wiso, zweier kompliment und überlauf bei 32bit zahlen.

wenn das nicht zu ungenau ist von der timer auflösung.

ggf auch hundert oder mehr durchläufe messen.

SAM7 hat keinen CACH? wenn ja wird die davon ggf beeinflusst.
von Paule (Gast)


Lesenswert?

Hallo 123!

Ich hab mir mal den RTT (real-time timer) angeschaut. Dessen Auflösung 
ist allerdings auf 91,5 µs beschränkt.

Wahrscheinlich werd ich doch mit dem Oszi vorlieb nehmen müssen :(
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.