在内核里想得到一个ms级的时间
目前用的是2.6的内核,参考的是driver/net/ucc_geth_ptp.c 里的ptp_rtc_get_current_time(rtc, &time);这个函数,但感觉这个函数不太好摘。目前的需求是这样的,想在内核找到可以记录ms级时间的函数,最好像jiffies那种的变量,谁有好的办法,帮帮忙,多谢了! gettimeofday 不行吗 jiffies_to_msecs 那我直接用这个 jiffies,把HZ的值设成1000,每个jiffies就是1ms,这个行吗?回复 3# 镇水铁牛这个应该是系统调用吧,我想在内核里取时间的。回复 2# amarant
回复 4# yv9200
我估计行 本帖最后由 nswcfd 于 2015-06-09 15:25 编辑
可以用do_gettimeofday,不关心绝对时间的话,jiffies就够了。 这个找人问过了 ,他说这个时间不够精确,最好能用rtc里的时间,但rtc本身提供的定时都不是ms级的,目前在ieee 1588里面找到一个可以用的时间 ptp_rtc_get_current_time(p_ptp->rtc, &ptime);里面的ptime.sec可以精确到1ms,但是这个东西在这个模块里不太好往出摘,我想在内核里定义个全局变量来接收,但好像很少有这么做的,现在还在摘那个功能,谁有时间帮看看,内核版本2.6.33.7, 获取时间的函数在driver/net/ucc_geth_ptp.c中。回复 7# nswcfd
回复 4# yv9200
HZ 设置大了,对系统性能影响很大的。建议不要更改这个。
gettimeofday 是系统调用,但是在内核态也可以用呀。内核里常用这个获取时间的。
你可以 grep do_gettimeofday 试试 他们告诉我用定时器或者去那种精确定时里面看,我在内核里搜do_gettimeofday,可以找到好多相关的时间戳,这个时间是依靠系统时钟的吧?回复 9# amarant
页:
[1]
2