gpt4 book ai didi

c - Linux 内核延迟,低于 jiffies,没有忙等待

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:20 32 4
gpt4 key购买 nike

我需要在 Linux 内核中使用定时器和 mdelay() 按时间设置信号的高电平和低电平。

高时:0.01ms-20.00ms;低电平时间:10ms-1000ms

两者都可以由用户空间调整。对于低时间,我使用 API 计时器,而对于高时间,我使用 mdelay() 和 udelay()。

现在的问题是:如果 hightime 是 9.9ms 和 lowtime 是 10ms 内核在整个时间都处于 sleep 状态(预计 0.1ms)。但是我在用户空间的用户界面需要工作,而内核定时器正在运行。在我的系统中一个 jiffie 大约是 10 毫秒,所以我不能在低时间使用定时器。

有人有想法,我如何在内核中完成这些 0.01 毫秒 - 10 毫秒的等待,以便我的用户界面仍然正常工作?

谢谢

最佳答案

您可以减少 10 毫秒:

编辑 /usr/include/asm/param.h 并查找 HZ 的定义。我猜你会找到 100 个。100 Hz 代表 10 ms 的周期。更现代的 Linux 有 250 HZ,这会占用你的时间减少到 4 毫秒。您可以将它压缩到 1000 HZ,这样您就可以以 1 毫秒的速度运行。

进一步阅读:Linux kernel map, 7.1. Measuring Time Lapses

关于c - Linux 内核延迟,低于 jiffies,没有忙等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15573892/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com