-1

运行带有超时参数的函数,我发现硬编码的 10000 值给出 10 秒超时,10*HZ值给出 2.5 秒超时:

usb_bulk_msg(context->udev, 管道, context->buffer, context_size, &bytes_read,
    10000); // 10 秒
// 10*HZ); // 2.5 秒

用 printk 打印的 HZ 值是 250 - 这个值是不正确的。查看 Linux 源代码:http: //lxr.free-electrons.com/source/include/asm-generic/param.h#L6,我看到它HZ被定义为CONFIG_HZ- 看起来像配置参数。为什么这个值不正确,是否有另一种方法来指定 jiffies 超时?

Ubuntu 12.04,32 位,内核版本 3.2.34。

4

1 回答 1

2

这是因为usb_bulk_msg将毫秒数而不是 jiffies 数作为其第六个参数:

超时

在超时之前等待消息完成的时间(以毫秒为单位)(如果为 0,则等待是永远的)

于 2013-01-02T09:51:18.677 回答