我是靠谱客的博主 清爽篮球,最近开发中收集的这篇文章主要介绍驱动开发基础 -- linux中msleep精度比较差,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

转自超哥原话:

启江那边反馈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精度比较差所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部