41,6 → 41,8 |
#include "kernel/kern.h" |
#include "ll/i386/cons.h" |
|
#include "ll/i386/advtimer.h" |
|
#include "drivers/keyb.h" |
|
#define UPDATE_PERIOD 10000 |
64,17 → 66,25 |
TASK Update(void *arg) |
{ |
struct timespec actual_timer; |
struct timespec s_test,e_test; |
|
long nsec,sec,min,hrs,day; |
|
sys_gettime(&s_test); |
sys_gettime(&e_test); |
SUBTIMESPEC(&e_test,&s_test,&s_test); |
signed long long start,end,res; |
struct timespec s_test; |
|
task_nopreempt(); |
|
while (1) { |
|
rdtscll(start); |
sys_gettime(&actual_timer); |
rdtscll(end); |
res = end - start; |
rdtscll(start); |
rdtscll(end); |
res -= (end - start); |
s_test.tv_nsec = res * 1000000 / clk_per_msec; |
|
nsec = actual_timer.tv_nsec; |
sec = actual_timer.tv_sec; |
min = sec / 60; |
99,7 → 109,7 |
printf_xy(0,9,WHITE,"CMOS last delta Clk/msec: %12ld",(long)last_delta_clk_per_msec); |
printf_xy(0,10,WHITE,"CMOS total delta Clk/msec: %12ld",(long)total_delta_clk_per_msec); |
|
printf_xy(0,12,WHITE,"Timer Access Delay: %12ld ns",s_test.tv_nsec/2); |
printf_xy(0,12,WHITE,"Timer Access Delay: %12ld ns",s_test.tv_nsec); |
|
task_endcycle(); |
|