>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? -- View this message in context: http://old.nabble.com/measure-the-execution-time-of-each-thread-tp31407684p31468181.html Sent from the Sourceware - ecos-discuss mailing list archive at Nabble.com. -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss