summaryrefslogtreecommitdiff
path: root/components/libc
diff options
context:
space:
mode:
authoriysheng <[email protected]>2021-07-05 11:34:11 +0800
committeriysheng <[email protected]>2021-07-08 22:41:06 +0800
commita2a7f3c2d926388c71d0be5fca0309bfef81e523 (patch)
treebf133529b101e5dcb63ba30d130f5ec765418336 /components/libc
parent2fda55d898826a1ee79babc4e0852ce539a3bff4 (diff)
[components][rtc] Add RTC framework V2.0 to simplify RTC registration process
Diffstat (limited to 'components/libc')
-rw-r--r--components/libc/compilers/common/time.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/components/libc/compilers/common/time.c b/components/libc/compilers/common/time.c
index deda18a560..e13f81c2f7 100644
--- a/components/libc/compilers/common/time.c
+++ b/components/libc/compilers/common/time.c
@@ -473,12 +473,17 @@ static int clock_time_system_init()
rt_device_t device;
time = 0;
+
+#ifdef RT_USING_RTC
device = rt_device_find("rtc");
if (device != RT_NULL)
{
/* get realtime seconds */
rt_device_control(device, RT_DEVICE_CTRL_RTC_GET_TIME, &time);
}
+#else
+ LOG_W("Cannot find a RTC device to provide time!");
+#endif
/* get tick */
tick = rt_tick_get();
@@ -591,6 +596,7 @@ int clock_settime(clockid_t clockid, const struct timespec *tp)
_timevalue.tv_usec = MICROSECOND_PER_SECOND - (tick % RT_TICK_PER_SECOND) * MICROSECOND_PER_TICK;
_timevalue.tv_sec = second - tick/RT_TICK_PER_SECOND - 1;
+#ifdef RT_USING_RTC
/* update for RTC device */
device = rt_device_find("rtc");
if (device != RT_NULL)
@@ -599,6 +605,9 @@ int clock_settime(clockid_t clockid, const struct timespec *tp)
rt_device_control(device, RT_DEVICE_CTRL_RTC_SET_TIME, &second);
}
else
+#else
+ LOG_W("Cannot find a RTC device to save time!");
+#endif
return -1;
return 0;