1

场景:假设如果我在做echo 1 > sysfs_entry- 它会开始做一些 I/O 操作,直到我做echo 0 > sysfs_entry。在这里,我想实现计时器,sysfs_entry以便它应该在 t 秒后停止 I/O 操作,即使我没有给出echo 0 > sysfs_entry.

PS:我不想使用忙等待的方法。

首选:延期/延迟工作

请有人帮我解决这种情况。

4

2 回答 2

3

您可以为此使用add_timer()del_timer()API。事件队列也可能起作用(取决于上下文)。有关更多详细信息,请阅读此处免费提供的 Linux 设备驱动程序(又名 LDD)一书的第 7 章 «时间、延迟和延迟工作» 。Timer API 在第 198 页上进行了描述。

于 2013-08-07T17:56:38.983 回答
0

在设备驱动程序的写入回调中使用 add_timer() 添加一个计时器,并确保在读取回调中使用 del_timer() 或 del_timer_sync()。

于 2013-08-07T18:04:37.843 回答