Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12615 Discussions

Measure time in NIOS application

ZVere
Beginner
763 Views

Hello,

I used the following code to measure 1usec in baremetal NIOS application. 

PERF_RESET (NIOS_PERFORMANCE_COUNTER_BASE);
PERF_START_MEASURING (NIOS_PERFORMANCE_COUNTER_BASE);
PERF_BEGIN (NIOS_PERFORMANCE_COUNTER_BASE,MY_PERF_ID);
usleep (1);
PERF_END (NIOS_PERFORMANCE_COUNTER_BASE,MY_PERF_ID);
time = perf_get_section_time (NIOS_PERFORMANCE_COUNTER_BASE, MY_PERF_ID);

 

 But according to the clock value, the time is ~2usec, not ~1. 

Can you please tell what is wrong in my code ?

 

Thank you in advance,

Zvika 

0 Kudos
5 Replies
EricMunYew_C_Intel
Moderator
735 Views

The return value is clock cycle, not usec.

2 means your measured result is 2 clock cycles.


0 Kudos
ZVere
Beginner
724 Views

Hello,

 

I'm aware the time is measured in clocks. 

After converting clocks to usec, the measured time is ~2usec. 

But the delay is exactly 1usec ( usleep(1) )

Is there an alternative for measuring the clock cycles ?

 

Thank you,

Zvika 

0 Kudos
EricMunYew_C_Intel
Moderator
705 Views

Your code is measuring the number of clock cycles to finish execute usleep(1), not measuring the delay.


0 Kudos
ZVere
Beginner
668 Views

Hello,

 

Thank you for your reply.

How can I measure exactly the time a specified code is running ? (in clocks) 

For example: If the code is usleep (1), I expect that NofClocks * Frequency ~ 1usec

 

Best regards,

Zvika 

0 Kudos
EricMunYew_C_Intel
Moderator
630 Views
0 Kudos
Reply