hrtimer比我编程的更快

时间:2014-10-11 16:57:32

标签: android c timer callback kernel

我正在尝试设置一个hrtimer来以绝对间隔生成句点函数回调。

将计时器初始化为

hrtimer_init(&p->rt_track.rt_period_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); 

功能分配正在

完成
p->rt_track.rt_period_timer.function = new_period_actions; 

函数原型是

enum hrtimer_restart new_period_actions(struct hrtimer *timer); 

将计时器设为

hrtimer_start(&p->rt_track.rt_period_timer, ktime_set(t.tv_sec, t.tv_nsec), HRTIMER_MODE_REL); 

即使timepec t = =(10秒,0 nsecs)(我正在测试),计时器在几毫秒内继续运行会导致内核因系统压倒性而崩溃。

我想通过编程timespec t来控制定时器回调持续时间。

有人可以告诉我,我可能做错了吗?

1 个答案:

答案 0 :(得分:0)

使用定时器转发解决了它

now = hrtimer_cb_get_time(timer);

hrtimer_forward(timer, now,ktime_set(rtt->T.tv_sec,rtt->T.tv_nsec) );