调用 hrtimer/timer_create() 时使用了哪个硬件定时器?
Which HW timer is used on call to hrtimer/timer_create()?
我为硬件计时器实现了一个驱动程序。
然而,似乎已经有硬件定时器的接口,所以我不确定是否真的需要这样的驱动程序。我在内核和用户空间中看到以下内容:
内核中的hrtimer:
int hrtimer_start(struct hrtimer *timer, ktime_t time,
enum hrtimer_mode mode);
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 这应该会提供更多信息。
我为硬件计时器实现了一个驱动程序。
然而,似乎已经有硬件定时器的接口,所以我不确定是否真的需要这样的驱动程序。我在内核和用户空间中看到以下内容:
内核中的hrtimer:
int hrtimer_start(struct hrtimer *timer, ktime_t time, enum hrtimer_mode mode);
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 这应该会提供更多信息。