您尚未登录。

楼主 # 2024-02-21 08:56:11

zjswuyunbo
会员
注册时间: 2022-08-30
已发帖子: 21
积分: 101

T507 休眠问题的疑问(usleep)

一般是使用usleep来休眠一段实际,比如usleep(1000),是休眠1ms,但是休眠的精度与内核的最小时间单位有关系,内核编译通过CONFIG_HZ,发现当前T507是配置为CONFIG_HZ_300,按我的理解最新的时间单位为1000/300=3.3ms,因此usleep(1000),应该至少休眠了3.3ms,但是我打印了时间,发现usleep(1000)却是休眠了1ms,并不是3.3ms. 
按我的认知 这是不可能的,是哪里出了问题,难道是因为T507是4核的,所以最小时间单位应该是3.3ms/4=0.825ms  ?

离线

#1 2024-02-21 09:47:59

jjldc
会员
注册时间: 2022-02-18
已发帖子: 21
积分: 46

Re: T507 休眠问题的疑问(usleep)

linux现在采用hrtimer进行定时器管理,没用像RTOS一样使用tick作为时间基准了
hrtimer是ns级精度的,不受tick限制

离线

楼主 #2 2024-02-21 10:05:43

zjswuyunbo
会员
注册时间: 2022-08-30
已发帖子: 21
积分: 101

Re: T507 休眠问题的疑问(usleep)

jjldc 说:

linux现在采用hrtimer进行定时器管理,没用像RTOS一样使用tick作为时间基准了
hrtimer是ns级精度的,不受tick限制

理解了,查了资料,确实是这样 https://blog.csdn.net/weixin_42262944/article/details/107585320
T507的内核配置也确实打开了CONFIG_HIGH_RES_TIMERS选项

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn