我需要在linux内核中使用,定时器和mdelay()按时间设置高低信号。
高频:0.01ms-20.00ms; lowtime:为10ms-1000ms的
两者都可以由用户空间调整。 对于低时我使用API计时器,对于高时我使用mdelay()和udelay()。
现在的问题是:如果高时间是9.9ms而低时间是10ms,则内核在整个时间内都处于睡眠状态(预期为0.1ms)。但是我的用户界面中的用户界面需要工作,而内核计时器正在运行。 一个jiffie在我的系统中大约是10ms,所以我不能在低频时使用计时器。
有人知道,我怎么能在内核中执行这些0.01ms - 10 ms的等待,以便我的用户界面仍能正常工作?
由于
答案 0 :(得分:1)
您可以减少10毫秒:
修改/usr/include/asm/param.h
并查找HZ的定义。我想你会找到100。
100 Hz表示10 ms的周期。更现代的Linux拥有250 HZ,可以节省您的时间
切成4毫秒。您可以将其平均为1000 HZ,这样您就可以以1 ms的速度运行。