This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: measure the execution time of each thread


On 04/24/2011 04:22 PM, moktar_bouain wrote:

You don't want to modify that code, just look at how it computes time
at a nanosecond scale.
Look at the function show_time_in_us() which uses time values
based on the function HAL_CLOCK_READ() that reads the system timer
(whatever that may be) and calculates time to the most accurate
value available in the system.  This is based on the raw clock
(often the hardware system clock) that's used to run the system
'tick' timer.  On most systems, this value is accurate to micro-seconds,
sometimes even nano-seconds.

Hi Gary, I found the function gettimeofday() which returns the time in us. I create a simple application with eCos containing 1 thread,i like to measure the execution time(us) of the thread.

void taska(cyg_addrword_t data)
{
struct timeval tv1,tv2;
long long diff;

while(1)
{
gettimeofday (&tv1, NULL);

cyg_mutex_lock(&cliblock);
printf("TASKA \n");
cyg_mutex_unlock(&cliblock);

cyg_thread_delay(2);

gettimeofday (&tv2, NULL);
diff=(tv2.tv_sec-tv1.tv_sec) * 1000000 + (tv2.tv_usec-tv1.tv_usec);

printf("Time tv1 is %d\n",tv1.tv_usec);
printf("Time tv2 is %d\n",tv2.tv_usec);
printf("The diff is =%d usec\n",diff);
};
}

when i run this application in Tsim(simulator of Leon3):
Time tv1 is 286326803
Time tv2 is 286326801
The diff is -1 usec
Can you tell me what the fault in my program?

Looks like HAL_CLOCK_READ() isn't working on your hardware. What's your target hardware? Is it part of the public eCos tree?

--
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------

--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]