2

しばらくの間、Linux カーネルでポーリングを行う必要があるため、数ミリ秒間隔で終了する while ループを設計する必要があります。では、どうすればそれを行うことができますか?

私は使用する必要がありますgettimeofday()が、それはユーザー空間で使用できます。カーネル空間でこれが必要です。

4

2 に答える 2

2

使用msecs_to_jiffies:

unsigned long j0,j1,delay;
delay = msecs_to_jiffies(20); /* 20 msec delay */
j0 = jiffies; 
j1 = j0 + delay; 

while (time_before(jiffies, j1)) 
        /* do something */

システムに高解像度のタイマーがある場合は、1 jiffy 未満の大きさの時間に使用できます。通常、カーネル タイマーまたはhrt.

于 2013-04-16T09:00:20.430 に答える
-3

sleep次のような機能を使用できますsleep(1)。アクティビティを 1 秒間停止します。

于 2013-04-16T08:58:05.073 に答える