yv9200 发表于 2015-06-08 20:16

在内核里想得到一个ms级的时间

目前用的是2.6的内核,参考的是driver/net/ucc_geth_ptp.c 里的ptp_rtc_get_current_time(rtc, &time);这个函数,但感觉这个函数不太好摘。目前的需求是这样的,想在内核找到可以记录ms级时间的函数,最好像jiffies那种的变量,谁有好的办法,帮帮忙,多谢了!

amarant 发表于 2015-06-08 20:45

gettimeofday 不行吗

镇水铁牛 发表于 2015-06-08 21:25

jiffies_to_msecs

yv9200 发表于 2015-06-09 08:45

那我直接用这个 jiffies,把HZ的值设成1000,每个jiffies就是1ms,这个行吗?回复 3# 镇水铁牛


   

yv9200 发表于 2015-06-09 08:54

这个应该是系统调用吧,我想在内核里取时间的。回复 2# amarant


   

embeddedlwp 发表于 2015-06-09 15:24

回复 4# yv9200


    我估计行

nswcfd 发表于 2015-06-09 15:24

本帖最后由 nswcfd 于 2015-06-09 15:25 编辑

可以用do_gettimeofday,不关心绝对时间的话,jiffies就够了。

yv9200 发表于 2015-06-09 16:26

这个找人问过了 ,他说这个时间不够精确,最好能用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


   

amarant 发表于 2015-06-09 16:54

回复 4# yv9200


    HZ 设置大了,对系统性能影响很大的。建议不要更改这个。

gettimeofday 是系统调用,但是在内核态也可以用呀。内核里常用这个获取时间的。

你可以 grep do_gettimeofday 试试

yv9200 发表于 2015-06-09 17:19

他们告诉我用定时器或者去那种精确定时里面看,我在内核里搜do_gettimeofday,可以找到好多相关的时间戳,这个时间是依靠系统时钟的吧?回复 9# amarant


   
页: [1] 2
查看完整版本: 在内核里想得到一个ms级的时间