一般是使用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 ?
离线
linux现在采用hrtimer进行定时器管理,没用像RTOS一样使用tick作为时间基准了
hrtimer是ns级精度的,不受tick限制
理解了,查了资料,确实是这样 https://blog.csdn.net/weixin_42262944/article/details/107585320
T507的内核配置也确实打开了CONFIG_HIGH_RES_TIMERS选项
离线