2017-12-19 41 views
-1

Mediatek에서 LinkIt Smart 7688 장치 용으로 개발 중입니다. 적어도 10ms 해상도 (1ms 권장)가 필요한 사용자 공간 응용 프로그램에서 시간 측정을해야합니다.LinkIT의 밀리 초 해상도 타이머 7688

그러나 모든 syscall은 1 초의 해상도로만 값을 반환했습니다. clock_gettime (모든 다른 시계를 시도 함) 및 초 단위의 해상도를 제공해야하는 gettimeofday은 그렇지 않습니다.

대상에 dmesg을 실행하면 커널이 1 초 미만의 해상도로 타임 스탬프를 표시하므로 클럭 소스를 두 번째 해상도 이하로 사용할 수 있다고 결론 내릴 수 있습니다. (이 경우가 아니라면 매우 고맙겠습니다 :)

Linkit Smart 7688 장치에서 1 초 미만의 해상도로 타임 스탬프를 얻으려면 어떻게해야합니까?

아마도 사용자 공간에서 사용할 수있는 올바른 클럭 소스를 선택하면 일부 커널 구성이 누락 될 수 있습니다. 나는 하나를 찾을 수 없었다.

+0

당신은이 사이트에 대한 드릴을 알아야한다 : 문제를 보여줍니다 코드를 보여줍니다. – sawdust

답변

0

만은 gettimeofday에 의해 반환되는 초를 사용하지 마십시오뿐만 아니라 (마이크로 초)

gettimeofday(&t0, 0); 
/* ... */ 
gettimeofday(&t1, 0); 
long elapsed = (t1.tv_sec-t0.tv_sec)*1000000 + t1.tv_usec-t0.tv_usec; 
+0

반환 된'struct timeval.tv_usec'는이 플랫폼에서 항상 0입니다. –