Browse Source

Add RT_USING_RTC conditional compilation protection in ctimer.c

Analysis: RT_USING_RTC preprocessing is used in 47cd52d ("修复不
使能 RT_USING_DEVICE 时编译报错") to control the reference of
rtdevice.h, as well as the implementation and call of _control_rtc,
but there are some omissions.

Solution: Add RT_USING_RTC preprocessing control to missing
_control_rtc

Signed-off-by: Shicheng Chu <1468559561@qq.com>
Reviewed-by: Chen Wang <unicorn_wang@outlook.com>
Z8MAN8 10 months ago
parent
commit
24b0a8174f
1 changed files with 8 additions and 0 deletions
  1. 8 0
      components/libc/compilers/common/ctime.c

+ 8 - 0
components/libc/compilers/common/ctime.c

@@ -602,9 +602,11 @@ int clock_getres(clockid_t clockid, struct timespec *res)
 
     switch (clockid)
     {
+#ifdef RT_USING_RTC
         case CLOCK_REALTIME:  // use RTC
         case CLOCK_REALTIME_COARSE:
             return _control_rtc(RT_DEVICE_CTRL_RTC_GET_TIMERES, res);
+#endif /* RT_USING_RTC */
 
         case CLOCK_MONOTONIC:  // use cputimer
         case CLOCK_MONOTONIC_COARSE:
@@ -633,9 +635,11 @@ int clock_gettime(clockid_t clockid, struct timespec *tp)
 
     switch (clockid)
     {
+#ifdef RT_USING_RTC
         case CLOCK_REALTIME:  // use RTC
         case CLOCK_REALTIME_COARSE:
             return _control_rtc(RT_DEVICE_CTRL_RTC_GET_TIMESPEC, tp);
+#endif /* RT_USING_RTC */
 
         case CLOCK_MONOTONIC:  // use boottime
         case CLOCK_MONOTONIC_COARSE:
@@ -675,10 +679,12 @@ int clock_nanosleep(clockid_t clockid, int flags, const struct timespec *rqtp, s
 
     switch (clockid)
     {
+#ifdef RT_USING_RTC
         case CLOCK_REALTIME:  // use RTC
             if (flags & TIMER_ABSTIME)
                 err = _control_rtc(RT_DEVICE_CTRL_RTC_GET_TIMESPEC, &ts);
             break;
+#endif /* RT_USING_RTC */
 
         case CLOCK_MONOTONIC:  // use boottime
         case CLOCK_PROCESS_CPUTIME_ID:
@@ -727,8 +733,10 @@ int clock_settime(clockid_t clockid, const struct timespec *tp)
 
     switch (clockid)
     {
+#ifdef RT_USING_RTC
         case CLOCK_REALTIME:
             return _control_rtc(RT_DEVICE_CTRL_RTC_SET_TIMESPEC, (void *)tp);
+#endif /* RT_USING_RTC */
 
         case CLOCK_REALTIME_COARSE:
         case CLOCK_MONOTONIC: