概述
转自超哥原话:
启江那边反馈msleep精度比较差的问题。我分析了下:
因为msleep依赖于jiffies,也就是依赖于CONFIG_HZ值,如果CONFIG_HZ=100,那精度就是10ms,即使msleep(1)希望休眠1ms,实际上休眠时间 >=10ms.
内核中有接口usleep_range,可以实现us微秒级的休眠:
#include <linux/delay.h>
void usleep_range(unsigned long min, unsigned long max);
单位是us微秒级,如需要休眠1ms, usleep_range(1000,1000)即可
另外内核也提供了ns纳秒级的的休眠,hrtimer_nanosleep,也可以使用。
如果us微秒
够用,用usleep_range就好,接口最简单。
最后
以上就是清爽篮球为你收集整理的驱动开发基础 -- linux中msleep精度比较差的全部内容,希望文章能够帮你解决驱动开发基础 -- linux中msleep精度比较差所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复