我需要在 linux 内核中按时间设置信号高低,使用定时器和 mdelay()。
高时间:0.01ms-20.00ms;低时:10ms-1000ms
两者都可以通过用户空间进行调整。对于 lowtime,我使用 API 计时器,对于 hightime,我使用 mdelay() 和 udelay()。
现在的问题是:如果 hightime 是 9.9ms 而 lowtime 是 10ms,那么内核会一直处于休眠状态(预计 0.1ms)。但是我在用户空间中的用户界面需要工作,而内核计时器正在运行。在我的系统中,一个 jiffie 大约是 10 毫秒,所以我不能在低时间使用计时器。
有人知道了,我怎么能在内核中做这些 0.01 毫秒 - 10 毫秒的等待,这样我的用户界面仍然可以正常工作?
谢谢