注:本文论述的情况是内核默认未开启高精度定时器。

不建议这么用,需要较高精度的定时器可参考本博客后面的文章。

一、先上结论

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

相关文章:

  • 2021-04-06
  • 2021-12-12
  • 2023-03-09
  • 2021-08-15
  • 2021-09-12
  • 2021-09-30
  • 2022-12-23
  • 2021-09-19
猜你喜欢
  • 2021-10-31
  • 2022-12-23
  • 2021-09-27
  • 2021-06-02
  • 2022-12-23
  • 2021-11-21
相关资源
相似解决方案