概述
注:本文论述的情况是内核默认未开启高精度定时器。
不建议这么用,需要较高精度的定时器可参考本博客后面的文章。
一、先上结论
1、默认的HZ是100,usleep的最小时间是10ms;
2、将HZ修改为1000,usleep的最小时间更改为1ms。
二、如何修改HZ
1、在.config中修改CONFIG_HZ 不会生效。修改autoconf.h同样无效;
2、修改param.h中的USER_HZ和#else HZ 都是无效的;
3、最简单的方法:直接将param.h的HZ修改为1000:# define HZ 1000 //CONFIG_HZ
在这里修改的话。编译的时候会在timeconst.h(由脚本timeconst.pl自动生成的文件)报错(可将其注释掉)
#if HZ != 100
#error "kernel/timeconst.h has the wrong HZ value!"
#endif
注:默认情况下/aech/arm/Kconfig 中定义由HZ,类似以下程序,所以不需要自己添加这个条目。
4、可以这样修改:在arch/arm/Kconfig中添加(尚未验证)
config HZ
int
default 200 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 ||
ARCH_S5PV210 || ARCH_EXYNOS4
default AT91_TIMER_HZ if ARCH_AT91
default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE
default 100
这样可以修改默认值 200.为了能在menuconfig中修改这个值,可以添加字符串。修改成
config HZ
int "TIME HZ"
default 256 if ARCH_EBSA110 || ARCH_S3C24XX || ARCH_S5P64X0 ||
ARCH_S5PV210 || ARCH_EXYNOS4
default AT91_TIMER_HZ if ARCH_AT91
default SHMOBILE_TIMER_HZ if ARCH_SHMOBILE
default 100
注:参考链接http://blog.csdn.net/liujia2100/article/details/19010873
转载于:https://www.cnblogs.com/FarmPick/p/6096548.html
最后
以上就是无奈乐曲为你收集整理的HZ 和 usleep最小睡眠时间(低精度定时器)的全部内容,希望文章能够帮你解决HZ 和 usleep最小睡眠时间(低精度定时器)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复