実装のLinuxカーネルドライバのマイクロ秒タイマー

実装のLinuxカーネルドライバのマイクロ秒タイマー


 

 

 

 

 

#include <linuxの/ module.h> 


の#include <linuxの/ kthread.h> の#define TIMEOUT_HR 1000000 / * 1US * /
 静的構造体hrtimer etx_hr_timer。
ktime_t ktime; 列挙型 hrtimer_restart hrtimer_callback(構造体 hrtimer * タイマー)
{ 静的int型の数。
    printk(KERN_INFO " hrtimerコールバックが実行されている数:%dの\ nは"、カウント++ ); 
    hrtimer_forward_now(タイマー、ktime_set(0 、TIMEOUT_HR)); リターンHRTIMER_RESTART。
} 静的int型   __init lkm_init(無効


 



     


    
 
{ 
    のprintk(KERN_INFO " INIT LKMモジュール\ N。" ); 
    
    / * 设置高精度时钟* / 
    ktime = ktime_set(0 、TIMEOUT_HR)。
    hrtimer_init( etx_hr_timer、CLOCK_MONOTONIC、HRTIMER_MODE_REL)。
    etx_hr_timer.function =&hrtimer_callback。
    hrtimer_start( etx_hr_timer、ktime、HRTIMER_MODE_REL)。

    リターン 0 ; 

} 

静的 ボイド __exitのlkm_exit(ボイド
{ 
    
    hrtimer_cancel( etx_hr_timer)。
    
    printk(KERN_INFO 出口LKMモジュール\ N。" ); 
} 

module_init(lkm_init); 
module_exit(lkm_exit); 

MODULE_VERSION(" 0.0 " ); 
MODULE_DESCRIPTION(" サンプルカーネルモジュール" ); 
MODULE_LICENSE(" GPL ); 
MODULE_AUTHOR("panda_w ")。

 

 

 

 

 

 

 

 

 

 品質ブログ:

  https://blog.csdn.net/qq_37858386/article/details/85784994

おすすめ

転載: www.cnblogs.com/panda-w/p/12106544.html