From 68189ae23c9694da11992b790d1e9dc5751e007e Mon Sep 17 00:00:00 2001 From: shenchenkai Date: Wed, 2 Jun 2021 17:09:01 +0800 Subject: [PATCH] use real time Change-Id: Ieae93f247dc6f051d31e33f03e0712e9437e97a2 Signed-off-by: shenchenkai --- hiview_util.c | 12 +++++++----- hiview_util.h | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/hiview_util.c b/hiview_util.c index 4aec718..0140036 100755 --- a/hiview_util.c +++ b/hiview_util.c @@ -17,6 +17,7 @@ #include #include #include +#include #include "cmsis_os.h" #include "utils_file.h" @@ -26,6 +27,7 @@ extern void __enable_irq(void); #define HIVIEW_WAIT_FOREVER 0xFFFFFFFF #define HIVIEW_MS_PER_SECOND 1000 +#define HIVIEW_NS_PER_MILISECOND 1000000 void *HIVIEW_MemAlloc(uint8 modId, uint32 size) { @@ -39,12 +41,12 @@ void HIVIEW_MemFree(uint8 modId, void *pMem) free(pMem); } -uint32 HIVIEW_GetCurrentTime() +uint64 HIVIEW_GetCurrentTime() { - uint32 perSec = osKernelGetTickFreq(); - - if (perSec) { - return osKernelGetTickCount() * (HIVIEW_MS_PER_SECOND / perSec); + struct timespec current = {0}; + int ret = clock_gettime(CLOCK_REALTIME, ¤t); + if (ret == 0) { + return (uint64)current.tv_sec * HIVIEW_MS_PER_SECOND + current.tv_nsec / HIVIEW_NS_PER_MILISECOND; } else { return 0; } diff --git a/hiview_util.h b/hiview_util.h index 388541c..66f87a7 100755 --- a/hiview_util.h +++ b/hiview_util.h @@ -56,7 +56,7 @@ typedef struct { uint16 millisecond; } HIVIEW_RtcTime; -uint32 HIVIEW_GetCurrentTime(void); +uint64 HIVIEW_GetCurrentTime(void); int32 HIVIEW_RtcGetCurrentTime(uint64 *val, HIVIEW_RtcTime *time); void *HIVIEW_MemAlloc(uint8 modId, uint32 size); -- Gitee