TI中文支持网
TI专业的中文技术问题搜集分享网站

am335x运行Linux时对定时器的使用?

我们了解到AM335x有8个通用定时器,其中DMtimer1是作为系统时钟定时器使用的,此外还有RTC和watchdog两个定时器。

RTC和watchdog是专用定时器,不考虑其他用途。

我们现在想提高系统的定时粒度,如果使用系统定时器,如mod_timer函数集的话,定时粒度是依赖于系统时钟的,只能以系统时钟为最小定时周期,我们可以修改tick频率达到。但是系统tick也不能无限提高,过高的tick频率,导致系统频繁调度,会降低系统运行效率。

为此,想了解一下,在Linux中是否可以使用其他的硬件定时器,由这些定时器中断来触发频率较高的周期计时,而系统tick保持正常的10ms就可以了。

现在了解到一个叫hrtimer的高精度定时器方法,就是使用了额外的硬件定时器,需要编写专门的驱动程序来使用:“http://blog.csdn.net/drivermonkey/article/details/9464469”。

不知哪位知道am335x运行Linux时,是否有使用其他7个通用定时器作为系统时钟之外计时手段的例子?

当然由于存在一个系统时间之外的定时器中断系统运行,估计也会影响系统时间的计时精度吧。

Steven Liu1:

 是有看到过在Linux中,把DMTIMER4用做一个计时中断源,但是没理解,你说的“系统时钟之外计时手段的例”是什么意思。是指不用DMTIMER1吗?只要DMTIMER2~7模块没有被占用,就可以使用。

kai zong:

回复 Steven Liu1:

谢谢回复,我就是想了解一下,在AM335x运行Linux系统时如何使用DMTIMER4以外的定时器,不知道能够提供示例。

关于hrtimer,我的立即估计有误,现在还不确定hrtimer和mod_timer函数集是否使用的同一个硬件定时器,望了解的指正。

user4932081:

回复 kai zong:

你好,请问你最后怎么实现高精度定时器的呢?

yongqing wang:

回复 user4932081:

hrtimer高精度定时器的interval由ktime_set(const long secs, const unsigned long nsecs)决定,可做到ns级。

user4932081:

回复 yongqing wang:

那样会影响到系统其它的用到定时器的地方的吧,现在是想单独搞个定时器的驱动,提供给用户态使用。我看到好像ti做了个驱动:dmtimer.c,不知道是不是可以直接用这个呢?我想做到1ms以下,最好的ns级

kai zong:

回复 user4932081:

这个问题很早了,我们后续也没找到解决方案,抱歉帮不上什么忙了。

期待牛人答疑。

赞(0)
未经允许不得转载:TI中文支持网 » am335x运行Linux时对定时器的使用?
分享到: 更多 (0)