?? oneshot_monitor.c
字號(hào):
/* * (C) Finite State Machine Labs Inc. 1999 business@fsmlabs.com * * Released under the terms of GPL 2. * Open RTLinux makes use of a patented process described in * US Patent 5,995,745. Use of this process is governed * by the Open RTLinux Patent License which can be obtained from * www.fsmlabs.com/PATENT or by sending email to * licensequestions@fsmlabs.com */#include <stdio.h>#include <errno.h>#include <sys/time.h>#include <sys/types.h>#include <fcntl.h>#include <unistd.h>#include <sys/ioctl.h>#include <rtl_fifo.h>#include <rtl_time.h>struct samp { hrtime_t min, max, total; hrtime_t period; int cnt;};int main(){ int fd0; int n; struct samp sm; FILE *f; int i = 0; if ((fd0 = open("/dev/rtf0", O_RDONLY)) < 0) { fprintf(stderr, "Error opening /dev/rtf0\n"); exit(1); } while (i < 50) { n = read(fd0, &sm, sizeof(sm));#define NS_TO_US(x) ((x)/(NSECS_PER_SEC/1000000)) if ( ((ulong) NS_TO_US((int) sm.min - (int) sm.period) < -30) || ((ulong) NS_TO_US((int) sm.max - (int) sm.period) > 30)) exit - 1; i++;#if 0 printf ("min: %5ldus \tavg: %5ldus \tmax: %5ldus \tperiod: %5ldus\n", (ulong) NS_TO_US((int) sm.min - (int) sm.period), (ulong) NS_TO_US(((int) sm.total / (int) sm.cnt) - (int) sm.period), (ulong) NS_TO_US((int) sm.max - (int) sm.period), (ulong) NS_TO_US((int) sm.period)); fflush(stdout); fprintf(f, "%d %ld %5ld %5ld %5ld\n", i, (ulong) NS_TO_US((int) sm.min /*-sm.period*/ ), (ulong) NS_TO_US(((int) sm.total / (int) sm.cnt) /*-sm.period*/ ), (ulong) NS_TO_US((int) sm.max /*-sm.period*/ ), (ulong) NS_TO_US((int) sm.period)); fflush(f);#endif } return 0;}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -