fix: 修改DoNanoSleep 以纳秒为单位
DoNanoSleep 接口以微秒为单位,纳秒级别的在转换成微秒时被整除为0, 导致转换成tick时为0,导致延时时触发yield,导致延时时间超大 Close #I3Z9DP Signed-off-by: zhushengle <zhushengle@huawei.com> Change-Id: Ib662fdc80707be6040b2bb06a1b457344bd48b30
This commit is contained in:
@@ -59,11 +59,11 @@ LITE_OS_SEC_TEXT_MINOR UINT32 LOS_Tick2MS(UINT32 tick)
|
||||
return ((UINT64)tick * OS_SYS_MS_PER_SECOND) / LOSCFG_BASE_CORE_TICK_PER_SECOND;
|
||||
}
|
||||
|
||||
LITE_OS_SEC_TEXT_MINOR UINT32 OsUS2Tick(UINT64 microsec)
|
||||
LITE_OS_SEC_TEXT_MINOR UINT32 OsNS2Tick(UINT64 nanoseconds)
|
||||
{
|
||||
const UINT32 usPerTick = OS_SYS_US_PER_SECOND / LOSCFG_BASE_CORE_TICK_PER_SECOND;
|
||||
const UINT32 nsPerTick = OS_SYS_NS_PER_SECOND / LOSCFG_BASE_CORE_TICK_PER_SECOND;
|
||||
|
||||
UINT64 ticks = (microsec + usPerTick - 1) / usPerTick;
|
||||
UINT64 ticks = (nanoseconds + nsPerTick - 1) / nsPerTick;
|
||||
if (ticks > OS_MAX_VALUE) {
|
||||
ticks = OS_MAX_VALUE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user