arvin_fresh

arvin_fresh

0个粉丝

5

问答

0

专栏

1

资料

arvin_fresh  发布于  2017-06-10 15:52:50
采纳率 0%
5个问答
3031

HISI3531A定时精度很不准确

 
各位好:
    本人在使用定时操作时发现其定时的精度很不准确,下面是本人的测试例子:
include
#include
#include
#include
#include

#include

#define user_gettimeofday(a, b) do{struct timespec res;clock_gettime(CLOCK_MONOTONIC, &res); (a)->tv_sec = res.tv_sec; (a)->tv_usec = res.tv_nsec/1000;}while(0)

int delay(unsigned ms)
{
    struct timeval tv;
    tv.tv_sec = ms/1000;
    tv.tv_usec = (ms%1000)*1000;
    return select(0, NULL, NULL, NULL, &tv);
}

int main(int argc, char **argv)
{
    unsigned int InterlaceTime = atoi(argv[1]);
    printf("InterlaceTime %u\n", InterlaceTime);
    struct timeval CurTime;
    while(1) {
        //gettimeofday(&CurTime, NULL);
        user_gettimeofday(&CurTime, NULL);
        unsigned int a = CurTime.tv_sec*1000 + CurTime.tv_usec/1000;

        printf("select return %d\n", delay(InterlaceTime));
        //usleep(InterlaceTime);
               
        //gettimeofday(&CurTime, NULL);
        user_gettimeofday(&CurTime, NULL);
        unsigned int b = CurTime.tv_sec*1000 + CurTime.tv_usec/1000;
        printf("%u - %u = %u\n", b, a, b-a);
    }

    return 0;

}
测试结果:
    定时30毫秒,实际通过计算得到的定时间隔是40ms;
    经多次验证,发现其精度仅10毫秒;
问题:
    该芯片的精度这么低???
   
我来回答
回答10个
时间排序
认可量排序

david

33个粉丝

368

问答

253

专栏

229

资料

david 2017-06-11 09:48:55
认可0
printf printf printf

falloutmx

1个粉丝

15

问答

0

专栏

0

资料

falloutmx 2017-06-12 13:24:19
认可0
内核默认时间片就是10ms,精度10ms很正常

goodman

2个粉丝

30

问答

18

专栏

17

资料

goodman 2017-06-12 14:45:24
认可0
可以吧HZ调到1000z这样调度就是1ms精度会上去,相应的功耗会高点

baboe

0个粉丝

8

问答

0

专栏

1

资料

baboe 2017-06-13 10:40:58
认可0
内核配置
CONFIG_HIGH_RES_TIMERS=y

yenfuliu

0个粉丝

16

问答

0

专栏

0

资料

yenfuliu 2017-06-14 11:54:06
认可0
  请问那我用usleep(1000),发现不准跟这个有关吗?
  每次返回也都9ms以上~~

baboe

0个粉丝

8

问答

0

专栏

1

资料

baboe 2017-06-15 11:17:24
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=52845&ptid=15493]yenfuliu 发表于 2017-6-14 11:54[/url]
请问那我用usleep(1000),发现不准跟这个有关吗?
  每次返回也都9ms以上~~[/quote]

有关
之前也是发现不准
才找到这个设置

yenfuliu

0个粉丝

16

问答

0

专栏

0

资料

yenfuliu 2017-06-15 11:25:17
认可0
瞭解 感谢baboe!!!

yenfuliu

0个粉丝

16

问答

0

专栏

0

资料

yenfuliu 2017-06-21 15:04:48
认可0
想请问CONFIG_HIGH_RES_TIMERS 和 CONFIG_HZ=100 有关系吗?
还是设定了CONFIG_HIGH_RES_TIMERS=y就会参考CONFIG_HZ的值?
目前设定了CONFIG_HIGH_RES_TIMERS之后发现功耗长了快一倍,有什么需要注意的吗?

baboe

0个粉丝

8

问答

0

专栏

1

资料

baboe 2017-06-22 15:47:09
认可0
请问 "功耗长了快一倍" 约是从多少长到多少?

可试试
CONFIG_NO_HZ=y
看是否能减少些功耗的支出

yenfuliu

0个粉丝

16

问答

0

专栏

0

资料

yenfuliu 2017-06-23 14:02:27
认可0
如果只是一般影像输入->输出调整前功率最高2%调整后会到8%
档案播播放时调整前功率最高2X%调整后会到5X%
你提供的方法我会再试试看 谢谢!
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区