美文网首页
读书笔记:LLD3(4)内核定时器

读书笔记:LLD3(4)内核定时器

作者: rlkbk | 来源:发表于2016-04-15 23:40 被阅读0次

内核定时器可用来在未来的某个时间点(基于时钟滴答)调度执行的某个函数。

当定时器运行时,调度定时器的进程可能正在休眠或在其他处理器上执行,或干脆已经退出。

定时器运行在软中断的上下文中,也是一种原子上下文。

进程上下文之外(原子上下文)必须遵守的规则:

不允许访问用户空间。因为没有进程上下文,无法将任何特定进程与用户空间关联起来。

current指针在原子模式下没有任何意义,也是不可用的。因为相关代码和被中断的进程没有任何关联。

不能执行休眠或调度。原子代码不可以调用schedule或者wait_event,也不能调用任何可能引起休眠的函数。

内核代码可以调用in_interrpt()来判断自己是否处于中断上下文。

定时器API:

#include <linux/timer.h>

struct timer_list{

          /* ...*/

          unsigned long expires;

          void  (*function)(unsigned long);

          unsigned long data;

};

void init_timer(struct timer_list *timer);

struct timer_list  TIMER_INITIALIZE(_function, _expires, _data);

void add_timer(struct timer_list * timer);

int  del_timer(struct timer_list *timer);

相关文章

  • 读书笔记:LLD3(4)内核定时器

    内核定时器可用来在未来的某个时间点(基于时钟滴答)调度执行的某个函数。 当定时器运行时,调度定时器的进程可能正在休...

  • 时间、延迟与定时器

    1、内核计数器 时间戳计数器(TSC) 2、延迟 3、内核定时器 4、tasklet(小任务) 5、工作...

  • 18-内存管理 01(定时器)

    一、定时器 NSProxy 二、GCD定时器 GCD定时器操作的系统内核,比NSTimer准时;当有scrollv...

  • 2018-07-26 定时器

    linux内核分析笔记----定时器和时间管理

  • SysTick定时器以及delay延迟函数(寄存器版)解析

    一、什么是SysTick 1、Systick定时器也叫滴答定时器或者系统定时器,是一个24位的内核级别的倒计数定时...

  • Linux 设备驱动之内核定时器 2020-02-20

    该内核定时器的实现是基于低精度定时器实现,高精度定时器的实现代码更为复杂,将在其他章节做相应介绍struct ti...

  • SysTick.

    SysTick: 系统定时器,24位,只能递减,存在于内核中,嵌套在NVIC中,所有的Cortex-M内核的单片机...

  • 9.20

    SysTick:系统定时器,24位,只能递减,存在于内核,嵌套在NVIC中,所有的Cortex-M内核的单片机都具...

  • 芯灵思SinlinxA33开发板Linux内核定时器编程

    Linux 内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制,其实现位于 ...

  • 内核定时器

    定时器的使用 1、定义定时器结构体timer_list。 2、设置超时时间,定义定时器处理函数和传参。 3、激活定...

网友评论

      本文标题:读书笔记:LLD3(4)内核定时器

      本文链接:https://www.haomeiwen.com/subject/cjinlttx.html