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

Measure time in NIOS application

ZVere
Beginner
451 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
423 Views

The return value is clock cycle, not usec.

2 means your measured result is 2 clock cycles.


ZVere
Beginner
412 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 

EricMunYew_C_Intel
Moderator
393 Views

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


ZVere
Beginner
356 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 

EricMunYew_C_Intel
Moderator
318 Views
Reply