我正在尝试设置一个 hrtimer 以绝对间隔生成周期函数回调。
将计时器初始化为
hrtimer_init(&p->rt_track.rt_period_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
函数分配的完成方式为
p->rt_track.rt_period_timer.function = new_period_actions;
函数原型(prototype)为
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);
即使 timespec t = (10 secs , 0 ns) (当我测试时),计时器仍会在几毫秒内继续运行,我猜会导致内核因压倒系统而崩溃。
我想通过编程 timespec t 来控制计时器回调持续时间。
有人可以告诉我我可能做错了什么吗?
最佳答案
使用定时器转发解决了这个问题
now = hrtimer_cb_get_time(timer);
hrtimer_forward(timer, now,ktime_set(rtt->T.tv_sec,rtt->T.tv_nsec) );
关于android - hrtimer 的触发时间比我设定的要早,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26317035/