[讨论] DM8168的任务调度周期问题,最简单的任务也会间歇性出现335ms左右的调度周期

yelo   2015-7-29 15:35 楼主
DM8168系统启动后仅创建一个main任务,且其中只进行如下最简单的循环,就是不停的打印当前执行的时间间隔,统计打印发现:
2ms时间间隔内连续打印85次左右,下次开始则需要间隔335ms左右,然后接着再2ms内连续打印85次左右,又是间隔335ms,也就是在这335ms内没有任何一次打印,也就是此任务没有被调度执行。这样正常吗,可能原因是什么,若解决不了,对我解析上层命令进行执行的延迟有很大影响。
while(1)
    {
        printf("OSA_getCurTimeInMsec(%d) = %d,delta= %d\n", gulmain_num, OSA_getCurTimeInMsec(), OSA_getCurTimeInMsec() - gulTime_main_prev);

        gulTime_main_prev = OSA_getCurTimeInMsec();
        
        gulmain_num++;
    }

回复评论 (1)

实测了一下,确实发现这个问题了

在8168上面测试的,而且添加了fflush(stdout);

依然出现300ms的情况,只是这个间隔和程序的打印也有关系,打印输出多少,多这个有影响,但是并没有发现规律
邮箱:ternence.hsu@foxmail.com
点赞  2015-7-30 02:10
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复