日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux 内核定时器使用 二 高精度定时器 hrtimer 的用例

發(fā)布時間:2025/4/5 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 内核定时器使用 二 高精度定时器 hrtimer 的用例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

之前介紹了timer_list內(nèi)核定時器,它的精度在毫秒級別,再高一點它就無能為力了,所幸內(nèi)核提供了高精度定時器 hrtimer。

源文件在linux/kernel/hrtimer.c中。接口簡單。下面介紹一下相關接口

1. 定時器定義與綁定超時回調(diào)函數(shù) static struct hrtimer timer;/* 設置回調(diào)函數(shù) */ timer.function = hrtimer_hander;2. 定時器初始化 /** 參數(shù)timer是hrtimer指針,* 參數(shù)clock_id有如下常用幾種選項:* CLOCK_REALTIME //實時時間,如果系統(tǒng)時間變了,定時器也會變* CLOCK_MONOTONIC //遞增時間,不受系統(tǒng)影響* 參數(shù)mode有如下幾種選項:* HRTIMER_MODE_ABS = 0x0, /* 絕對模式 */HRTIMER_MODE_REL = 0x1, /* 相對模式 */HRTIMER_MODE_PINNED = 0x02, /* 和CPU綁定 */HRTIMER_MODE_ABS_PINNED = 0x02, /* 第一種和第三種的結合 */HRTIMER_MODE_REL_PINNED = 0x03, /* 第二種和第三種的結合 */*/ void hrtimer_init(struct hrtimer *timer, clockid_t clock_id, enum hrtimer_mode mode);3. 定時器啟動 /** 參數(shù)timer是hrtimer指針* 參數(shù)tim是時間,可以使用ktime_set()函數(shù)設置時間,* 參數(shù)mode和初始化的mode參數(shù)一致*/ hrtimer_start(struct hrtimer *timer, ktime_t tim, const enum hrtimer_mode mode);4. 設置時間 /** 單位為秒和納秒組合*/ ktime_t ktime_set(const long secs, const unsigned long nsecs);/* 設置超時時間,當定時器超時后可以用該函數(shù)設置下一次超時時間 */ hrtimer_forward_now(struct hrtimer *timer, ktime_t interval)5. 注意事項: 定時器超時后會調(diào)用回調(diào)函數(shù),回調(diào)函數(shù)結構類似這樣: enum hrtimer_restart (*function)(struct hrtimer *);enum hrtimer_restart {HRTIMER_NORESTART, /* 不重啟定時器 */HRTIMER_RESTART, /* 重啟定時器 */ }; 在回調(diào)函數(shù)返回前要手動設置下一次超時時間。 另外,回調(diào)函數(shù)執(zhí)行時間不宜過長,因為是在中斷上下文中,如果有什么任務的話,最好使用工作隊列等機制。6. 關閉定時器 int hrtimer_cancel(struct hrtimer *timer);簡單用例: /** Description : 高精度定時器用例* Author : mason* Date : 201808*/#include <linux/module.h> #include <linux/kernel.h> #include <linux/hrtimer.h> #include <linux/jiffies.h>static struct hrtimer timer; ktime_t kt;/* 定時器回調(diào)函數(shù) */ static enum hrtimer_restart hrtimer_hander(struct hrtimer *timer) {printk("hrtimer up\r\n");/* 設置下次過期時間 */kt = ktime_set(3,0); hrtimer_forward_now(timer, kt);/* 該參數(shù)將重新啟動定時器 */ return HRTIMER_RESTART; }static int __init hrtimer_demo_init(void) {printk("hello hrtimer \r\n");kt = ktime_set(1,10);/* hrtimer初始化 */hrtimer_init(&timer,CLOCK_MONOTONIC,HRTIMER_MODE_REL);/* hrtimer啟動 */hrtimer_start(&timer,kt,HRTIMER_MODE_REL);/* 設置回調(diào)函數(shù) */timer.function = hrtimer_hander;return 0; }static void __exit hrtimer_demo_exit(void) {/* hrtimer注銷 */hrtimer_cancel(&timer);printk("bye hrtimer\r\n"); }module_init(hrtimer_demo_init); module_exit(hrtimer_demo_exit); MODULE_LICENSE("GPL");

參考文檔 :

1.?Linux 下定時器的實現(xiàn)方式分析

https://www.ibm.com/developerworks/cn/linux/l-cn-timers/

2.?hrtimer高精度定時器的簡單使用【學習筆記】

https://www.cnblogs.com/zzb-Dream-90Time/p/7084916.html

總結

以上是生活随笔為你收集整理的Linux 内核定时器使用 二 高精度定时器 hrtimer 的用例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色在线免费观看网站 | 国产1区在线观看 | 精品国产乱码久久久久久1区二区 | 亚洲中文字幕在线观看 | 99精品视频在线免费观看 | 国产乱妇乱子 | 黄大片18满岁 | 黄视频在线免费 | 久草久草 | 五月天激情在线 | 天天色成人网 | av网站入口 | 免费日韩毛片 | 高清欧美性猛交xxxx黑人猛交 | 国产成人av免费 | 国产精品资源在线 | 茄子av| 激情伦成人综合小说 | 日韩欧美激情 | 天堂av官网| 午夜综合网 | 天堂视频中文在线 | 欧美午夜寂寞影院 | 色七七桃花综合影院 | 中文字幕一区二区在线老色批影视 | 麻豆精品国产精华精华液好用吗 | 精品人妻一区二区三区免费 | 亚洲色图av在线 | 熟妇高潮精品一区二区三区 | 中文字幕在线观看视频免费 | 久久久久久久精 | cao国产 | 日本高清中文字幕 | 欧美视频免费在线观看 | 秋霞福利影院 | 激情777| 男人日女人b视频 | 91免费在线视频观看 | 国产精品高潮AV无码 | 欧美美女性生活视频 | 精品999久久久 | 亚洲av日韩av不卡在线观看 | 国产亚洲制服欧洲高清一区 | 精品人妻视频在线 | 真人抽搐一进一出视频 | 72成人网 | 色婷婷av一区二区三区麻豆综合 | 一级黄色大全 | 最近更新中文字幕 | 国产成人毛毛毛片 | 日韩人妻一区二区三区蜜桃视频 | 成人在线一区二区 | 成人无码av片在线观看 | 色福利网 | 国内国产精品天干天干 | 得得的爱在线视频 | 亚洲黑丝在线 | 欧美多p| 午夜精品在线播放 | 久久国产精品久久久久久 | 国产中文字幕精品 | 狠狠干男人的天堂 | 国产三级免费观看 | 久草中文在线 | 调教奶奴| 亚洲成人另类 | 久草久| 91免费片| 欧美高清视频一区 | 久久日本精品字幕区二区 | 秋霞国产精品 | 久久这里精品 | 中文字幕欧美激情 | 91看片视频 | 色999在线观看| 日韩有色| 超碰1000 | 三上悠亚在线播放 | 欧美 日韩 国产 亚洲 色 | 91肉色超薄丝袜脚交一区二区 | 手机av在线免费观看 | 美国美女黄色片 | 国产丰满农村老妇女乱 | 无码人妻精品一区二区三应用大全 | 欧美一区二区日韩一区二区 | 日本精品视频一区 | 青青草视频在线看 | 美女国产一区 | 又黄又爽又刺激的视频 | 欧美香蕉 | 欧美日韩69 | 私人网站| 成人a毛片 | 久久综合色88| 一级黄色短视频 | 日韩首页 | 久久久久久久久亚洲 | 让男按摩师摸好爽视频 | 天躁夜夜躁狼狠躁 |