diff options
| author | liu2guang <[email protected]> | 2018-05-08 06:41:56 +0800 |
|---|---|---|
| committer | liu2guang <[email protected]> | 2018-05-08 06:41:56 +0800 |
| commit | cec2ee4cdcf5e2ba716d28fdab9313170c7d7f5d (patch) | |
| tree | f2516006262c3bda28c48f141f60001fd5b3ae90 /components | |
| parent | dfe3d953d97ab02b1b68aa854af7e8a5c74c5bb9 (diff) | |
| parent | a00cdcd7506489ad986d2b684b126fce6323349b (diff) | |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'components')
| -rw-r--r-- | components/drivers/rtc/rtc.c | 53 | ||||
| -rw-r--r-- | components/libc/compilers/armlibc/time.c | 54 | ||||
| -rw-r--r-- | components/libc/compilers/dlib/time.c | 54 | ||||
| -rw-r--r-- | components/libc/compilers/minilibc/time.c | 53 | ||||
| -rw-r--r-- | components/libc/compilers/newlib/time.c | 54 |
5 files changed, 216 insertions, 52 deletions
diff --git a/components/drivers/rtc/rtc.c b/components/drivers/rtc/rtc.c index 48da802627..fa0025d428 100644 --- a/components/drivers/rtc/rtc.c +++ b/components/drivers/rtc/rtc.c @@ -29,6 +29,8 @@ #include <string.h> #include <rtthread.h> +#ifdef RT_USING_RTC + /* Using NTP auto sync RTC time */ #ifdef RTC_SYNC_USING_NTP /* NTP first sync delay time for network connect, unit: second */ @@ -42,55 +44,6 @@ #endif /* RTC_SYNC_USING_NTP */ /** - * Returns the current time. - * - * @param time_t * t the timestamp pointer, if not used, keep NULL. - * - * @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 */ -#else -time_t time(time_t *t) -#endif -{ - static rt_device_t device = RT_NULL; - time_t time_now = 0; - - /* 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) - { - rt_device_control(device, RT_DEVICE_CTRL_RTC_GET_TIME, &time_now); - rt_device_close(device); - } - } - - /* 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) -{ - return rt_tick_get(); -} - -/** * Set system date(time not modify). * * @param rt_uint32_t year e.g: 2012. @@ -311,3 +264,5 @@ MSH_CMD_EXPORT(date, get date and time or set [year month day hour min sec]); #endif /* defined(RT_USING_FINSH) && defined(FINSH_USING_MSH) */ #endif /* RT_USING_FINSH */ + +#endif /* RT_USING_RTC */ diff --git a/components/libc/compilers/armlibc/time.c b/components/libc/compilers/armlibc/time.c index 7b9c2f185b..e7ad19ad3c 100644 --- a/components/libc/compilers/armlibc/time.c +++ b/components/libc/compilers/armlibc/time.c @@ -1,7 +1,7 @@ #include <sys/time.h> #include <rtthread.h> -#if defined(RT_USING_DEVICE) && defined(RT_USING_RTC) +#ifdef RT_USING_DEVICE int gettimeofday(struct timeval *tp, void *ignore) { time_t time; @@ -23,3 +23,55 @@ int gettimeofday(struct timeval *tp, void *ignore) return 0; } #endif + +/** + * Returns the current time. + * + * @param time_t * t the timestamp pointer, if not used, keep NULL. + * + * @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 */ +#else +time_t time(time_t *t) +#endif +{ + 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) + { + 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); + } + } +#endif /* RT_USING_RTC */ + + /* 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) +{ + return rt_tick_get(); +} diff --git a/components/libc/compilers/dlib/time.c b/components/libc/compilers/dlib/time.c index 7b9c2f185b..e7ad19ad3c 100644 --- a/components/libc/compilers/dlib/time.c +++ b/components/libc/compilers/dlib/time.c @@ -1,7 +1,7 @@ #include <sys/time.h> #include <rtthread.h> -#if defined(RT_USING_DEVICE) && defined(RT_USING_RTC) +#ifdef RT_USING_DEVICE int gettimeofday(struct timeval *tp, void *ignore) { time_t time; @@ -23,3 +23,55 @@ int gettimeofday(struct timeval *tp, void *ignore) return 0; } #endif + +/** + * Returns the current time. + * + * @param time_t * t the timestamp pointer, if not used, keep NULL. + * + * @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 */ +#else +time_t time(time_t *t) +#endif +{ + 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) + { + 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); + } + } +#endif /* RT_USING_RTC */ + + /* 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) +{ + return rt_tick_get(); +} diff --git a/components/libc/compilers/minilibc/time.c b/components/libc/compilers/minilibc/time.c index efd6be8754..605f6f573e 100644 --- a/components/libc/compilers/minilibc/time.c +++ b/components/libc/compilers/minilibc/time.c @@ -1,4 +1,5 @@ #include <time.h> +#include <rtthread.h> /* days per month -- nonleap! */ const short __spm[13] = @@ -227,3 +228,55 @@ int _gettimeofday( struct timeval *tv, void *ignore) return 0; // return non-zero for error } #endif + +/** + * Returns the current time. + * + * @param time_t * t the timestamp pointer, if not used, keep NULL. + * + * @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 */ +#else +time_t time(time_t *t) +#endif +{ + 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) + { + 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); + } + } +#endif /* RT_USING_RTC */ + + /* 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) +{ + return rt_tick_get(); +} diff --git a/components/libc/compilers/newlib/time.c b/components/libc/compilers/newlib/time.c index 7b9c2f185b..e7ad19ad3c 100644 --- a/components/libc/compilers/newlib/time.c +++ b/components/libc/compilers/newlib/time.c @@ -1,7 +1,7 @@ #include <sys/time.h> #include <rtthread.h> -#if defined(RT_USING_DEVICE) && defined(RT_USING_RTC) +#ifdef RT_USING_DEVICE int gettimeofday(struct timeval *tp, void *ignore) { time_t time; @@ -23,3 +23,55 @@ int gettimeofday(struct timeval *tp, void *ignore) return 0; } #endif + +/** + * Returns the current time. + * + * @param time_t * t the timestamp pointer, if not used, keep NULL. + * + * @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 */ +#else +time_t time(time_t *t) +#endif +{ + 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) + { + 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); + } + } +#endif /* RT_USING_RTC */ + + /* 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) +{ + return rt_tick_get(); +} |
