linux 高分辨率定时器(HRT)延时函数

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() 函数类似,但不保证最小延时和最大延时之间存在一个范围

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值