在调用hrtimer / timer_create()时使用哪个HW定时器?

时间:2018-01-11 10:03:42

标签: timer linux-device-driver hardware

我为HW计时器实现了一个驱动程序。

然而,似乎HW计时器已有接口,所以我不确定是否真的需要这样的驱动程序。我在内核和用户空间中看到以下内容:

  1. 内核中的hrtimer:

    int hrtimer_start(struct hrtimer *timer, ktime_t time,
                  enum hrtimer_mode mode);
    
  2. 用户空间中的
  3. timer_create():

     int timer_create(clockid_t clockid, struct sigevent *sevp, timer_t *timerid)
    
  4. 然而,我没有在这些API中看到任何实际的HW计时器编号。

    那么,在调用这些API时实际使用了哪个HW定时器号?

    例如,在调用timer_create()时,使用了哪个HW定时器?

1 个答案:

答案 0 :(得分:1)

timer_create()系统调用在内部使用hrtimer(hrtimer是一个高分辨率计时器)。

在你的电路板文件的MACHINE_START()宏中,我们传递一个定时器,它将用于时钟事件,这个时钟由hrtimer使用。 也请参考http://elinux.org/High_Resolution_Timers这应该提供更多信息。