From 3b957d7516334bf735f6577f77793b158cc4980e Mon Sep 17 00:00:00 2001 From: hichard Date: Mon, 8 Oct 2018 22:13:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DIAR=E7=9A=84dlib=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=98=A0=E5=B0=84=EF=BC=8C=E6=94=AF=E6=8C=8164bit?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E9=97=B4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/libc/compilers/dlib/time.c | 57 +++++++++++++-------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/components/libc/compilers/dlib/time.c b/components/libc/compilers/dlib/time.c index e7ad19ad3c..f61bd5cfca 100644 --- a/components/libc/compilers/dlib/time.c +++ b/components/libc/compilers/dlib/time.c @@ -32,43 +32,42 @@ int gettimeofday(struct timeval *tp, void *ignore) * @return time_t return timestamp current. * */ -/* for IAR 6.2 later Compiler */ -#if defined (__IAR_SYSTEMS_ICC__) && (__VER__) >= 6020000 #pragma module_name = "?time" -time_t (__time32)(time_t *t) /* Only supports 32-bit timestamp */ +#if _DLIB_TIME_ALLOW_64 +time_t __time64(time_t *t) #else -time_t time(time_t *t) +time_t __time32(time_t *t) #endif { - time_t time_now = 0; - + time_t time_now = 0; + #ifdef RT_USING_RTC - static rt_device_t device = RT_NULL; - - /* optimization: find rtc device only first. */ - if (device == RT_NULL) + static rt_device_t device = RT_NULL; + + /* optimization: find rtc device only first. */ + if (device == RT_NULL) + { + device = rt_device_find("rtc"); + } + + /* read timestamp from RTC device. */ + if (device != RT_NULL) + { + if (rt_device_open(device, 0) == RT_EOK) { - device = rt_device_find("rtc"); - } - - /* read timestamp from RTC device. */ - if (device != RT_NULL) - { - if (rt_device_open(device, 0) == RT_EOK) - { - rt_device_control(device, RT_DEVICE_CTRL_RTC_GET_TIME, &time_now); - rt_device_close(device); - } + rt_device_control(device, RT_DEVICE_CTRL_RTC_GET_TIME, &time_now); + rt_device_close(device); } + } #endif /* RT_USING_RTC */ - - /* if t is not NULL, write timestamp to *t */ - if (t != RT_NULL) - { - *t = time_now; - } - - return time_now; + + /* if t is not NULL, write timestamp to *t */ + if (t != RT_NULL) + { + *t = time_now; + } + + return time_now; } RT_WEAK clock_t clock(void)