1. usleep_range() 函数实际上是基于高分辨率定时器(HRT)实现的,并且 usleep_range() 函数与 usleep() 函数具有不同的实现机制。事实上,usleep_range() 函数是 usleep() 函数的改进版,它可以提供精度更高的延时,并允许在指定时间范围内浮动而不是固定延迟。
2. usleep() 函数确实不是基于高分辨率定时器 (HRT) 的实现,而是使用 clock_nanosleep() 函数来实现的。 clock_nanosleep() 函数可以提供较高分辨率的计时器,但并不能像 HRT 那样具有纳秒级别的精度。因此,我们可以将 clock_nanosleep() 函数视为一种提供微秒级别的高分辨率定时器方案。
需要注意的是,使用 usleep() 或 clock_nanosleep() 函数等系统调用时,由于需要进行切换到内核态,有一定的延迟,因此在程序性能要求高,需要尽量避免使用这种方法延时。这种情况下,最好使用基于 HRT 的定时器方案,例如 schedule_hrtimeout() 函数和 hrtimer_* 系列函数
3. udelay() 函数:该函数使用 HRT 实现微秒级别的延时,与 usleep_range() 函数类似,但不保证最小延时和最大延时之间存在一个范围