Ich versuche die Taktzyklen zu messen, die benötigt werden, um ein Stück Code auf dem TMS32064x + DSP auszuführen, der mit dem OMAP ZOOM 3430 MDK geliefert wird. Ich schaue mir das "Programmer's Guide" des DSP-Chips an und es steht, dass der DSP die clock() -Funktion unterstützt.Ist time.h Uhr() auf meiner Hardware kaputt?
Was ich tue, ist wirklich einfach, ich
nurstart = clock();
for (i=0;i<100;i++){
/* do something here */
}
stop = clock();
total = stop - start;
und dann die Werte setzt von „Start“, „Stop“ und „total“ auf einen zuvor zugewiesene gemeinsam genutzten Speicher mit dem ARM-Prozessor. Dann drucke ich es einfach auf den Bildschirm auf der ARM-Seite.
Das Problem ist, in meinen ersten Ausführen, bekomme ich immer den gleichen "Gesamt" -Wert, und dann in meinen nächsten Läufen bekomme ich immer 0! Die Werte "Start" und "Stop" gehen mit dem Wert "total" einher.
Das Seltsamste ist, dass sie einem kleinen Muster zu folgen scheinen! Ich habe die Ausgabe unter:
# ./sampleapp
Total = 63744
Start clock() value = 0x000000f9
Stop clock() value = 0x0000f9f9
# ./sampleapp
Total = 4177526784
Start clock() value = 0x00f9f9f9
Stop clock() value = 0xf9f9f9f9
# ./sampleapp
Total clock cyles = 0
Start clock() value = 0xf9f9f9f9
Stop clock() value = 0xf9f9f9f9
Apparantly, Uhr() nicht gut funktioniert, aber ich bin nicht sicher, ob dies wegen etwas, was ich falsch gemacht oder weil diese Art der Sache ist nicht mit der Hardware unterstützt Ich habe. Irgendwelche Ideen, warum das passieren könnte?
Sind Sie absolut sicher, dass die Uhr diese Werte zurückgibt? Vielleicht sehen Sie sich gerade ein Problem beim Zugriff auf den gemeinsamen Speicher an? – Vicky
Um dies zu überprüfen, ändere ich einfach einen der Rückgabewerte, sagen wir "Start", auf einen vordefinierten Wert oder auf den Shared-Memory-Adresse Wert und ich bekomme das richtige auf dem Bildschirm. –
Hat TI irgendwelche Beispiele? Ich denke, mit einigen ihrer anderen CODEC-Beispiele haben sie auch eine verstrichene Ausführungszeit berechnet. Ich kann mich nicht erinnern, ob sie die Uhr() api benutzt haben. Aber es scheint in dem Codierungscodierungscodierer oder Codierer zu funktionieren. – simon