调用 hrtimer/timer_create() 时使用了哪个硬件定时器?

Which HW timer is used on call to hrtimer/timer_create()?

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

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

  1. 内核中的hrtimer:

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

     int timer_create(clockid_t clockid, struct sigevent *sevp, timer_t *timerid)
    

但是,我在这些 API 中没有看到任何提及实际硬件计时器编号的内容。

那么,在调用这些 API 时实际使用了哪个硬件计时器编号?

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

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

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