응용 프로그램이 타이머 및 환경에서 수행하고자하는 작업에 따라 다릅니다. 나는 그 특정 칩과 작동하지 않았기 때문에, 당신에게 말할 수 없다. 어떻게 레지스터를 사용 하는가?
작업 전후에 카운터를 읽고이 두 카운터의 차이를 확인할 수있는 타임 스탬프와 같은 함수가 있으면 VxWorks 보드 지원 패키지는 sysTimestamp 함수 제품군을 통해 해당 기능을 제공합니다. 설명서를 참조하십시오.
그러나, SYSTIMESTAMP 당신의 요구 사항을 충족하지 않는,하지만 여전히 및 코드가 (사용자 공간 AKA RTP 대) 커널 공간에서 실행되는 현재 시간을 읽어 레지스터에 액세스하려면 당신은 단순히 필요 다른 한편으로는, 응용 프로그램이 RTP의 컨텍스트에서 실행하는 경우 타임 스탬프를 반환하는 함수 ...
uint64 myTimestamp() {
uint64 ts;
ts = *read & massage the register*
*deal with overflows, etc... *
return ts;
}
을 정의 할 상황이 훨씬 창에서 프로세스처럼, rtPS 서비스 이후 더 복잡, 돈 ' 하드웨어 기능에 직접 액세스 할 수 있습니다.
물리적 커널 메모리 페이지를 RTP에 매핑하여 레지스터에 직접 액세스 할 수 있습니다. 시스템의 보호 메커니즘에 구멍을 열었으므로 매우 낙심했습니다. 특히 timestamp 레지스터를 읽는 사용자 정의 시스템 호출을 구현할 수도 있습니다.
이 두 가지 솔루션 모두 vxWorks에서 중급 이상의 기술이 필요합니다.