zoukankan      html  css  js  c++  java
  • 内核定时器

    时钟中断由系统的定时硬件以周期性的时间间隔产生,这个间隔(即频率)由内核根据HZ来确定,HZ是一个与体系结构无关的参数,可配置(50-1200),在X86平台,默认1000

    jiffies(unsigned long):每当时钟中断发生一次,全局变量jiffies就加1.因此jiffies记录了自linux启动后时钟中断发生的次数。

    unsigned long j=jiffies+jit_delay*HZ; (即增加jit_delay秒)

    struct timer_list { 
    struct list_head entry; //timer_list结构体链表的头部,内核使用了爱组织成双向链表
    unsigned long expires; //用于存放延时结束时间 ,超时的jiffies值
    void (*function)(unsigned long); //延时结束时执行的回调函数,注意这里传递一个无符号长整型数字
    unsigned long data; //常用于存储数据的指针
    struct tvec_base *base; //内核中使用
    };

    资料链接:

    http://blog.csdn.net/iletlet/article/details/6117280 timer_list结构体
    http://blog.chinaunix.net/space.php?uid=20543183&do=blog&id=1930794 Linux中断处理之时钟中断
    http://blog.chinaunix.net/space.php?uid=20648784 开源Linux
    http://blog.csdn.net/iLetLet
    http://blog.csdn.net/woniuguilai/article/details/6212018
    http://qin8.blog.163.com/blog/static/189699090201091133322816/
    http://www.ibm.com/developerworks/cn/linux/l-cn-clocks/index.html 时钟处理机制
    http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=driver&Number=385219&page=0&view=collapsed&sb=5&o=all&fpart=1&vc=1

    http://blog168.chinaunix.net/space.php?uid=25014876&do=blog&id=106572 非常棒的总结
    http://wenku.baidu.com/view/caefc5f67c1cfad6195fa70d.html

  • 相关阅读:
    Arduino nano的bootloader文件烧录
    arduino通信问题的学习与解决
    arduino中的serial .available()和serial.read()
    arduino 通过串口接收string,int类型数据
    Arduino读取串口数据并进行字符串分割
    Arduino 的读串口与写串口
    代理模式
    策略模式
    python中的深拷贝
    Python中的三个特殊函数
  • 原文地址:https://www.cnblogs.com/moonflow/p/2290385.html
Copyright © 2011-2022 走看看