瀏覽代碼

Merge pull request #1397 from armink/fix_newlib

 [Components/libc] Add gettimeofday to newlib libc.
Bernard Xiong 7 年之前
父節點
當前提交
feb275db42
共有 3 個文件被更改,包括 59 次插入30 次删除
  1. 17 15
      components/libc/compilers/armlibc/time.c
  2. 17 15
      components/libc/compilers/dlib/time.c
  3. 25 0
      components/libc/compilers/newlib/time.c

+ 17 - 15
components/libc/compilers/armlibc/time.c

@@ -1,23 +1,25 @@
 #include <sys/time.h>
+#include <rtthread.h>
 
+#if defined(RT_USING_DEVICE) && defined(RT_USING_RTC)
 int gettimeofday(struct timeval *tp, void *ignore)
 {
-	time_t time;
-	rt_device_t device;
+    time_t time;
+    rt_device_t device;
 
-	device = rt_device_find("rtc");
-	if (device != RT_NULL)
-	{
-		rt_device_control(device, RT_DEVICE_CTRL_RTC_GET_TIME, &time);
-		if (tp != RT_NULL)
-		{
-			tp->tv_sec = time;
-			tp->tv_usec = 0;
-		}
+    device = rt_device_find("rtc");
+    if (device != RT_NULL)
+    {
+        rt_device_control(device, RT_DEVICE_CTRL_RTC_GET_TIME, &time);
+        if (tp != RT_NULL)
+        {
+            tp->tv_sec = time;
+            tp->tv_usec = 0;
+        }
 
-		return time;
-	}
+        return time;
+    }
 
-	return 0;
+    return 0;
 }
-
+#endif

+ 17 - 15
components/libc/compilers/dlib/time.c

@@ -1,23 +1,25 @@
 #include <sys/time.h>
+#include <rtthread.h>
 
+#if defined(RT_USING_DEVICE) && defined(RT_USING_RTC)
 int gettimeofday(struct timeval *tp, void *ignore)
 {
-	time_t time;
-	rt_device_t device;
+    time_t time;
+    rt_device_t device;
 
-	device = rt_device_find("rtc");
-	if (device != RT_NULL)
-	{
-		rt_device_control(device, RT_DEVICE_CTRL_RTC_GET_TIME, &time);
-		if (tp != RT_NULL)
-		{
-			tp->tv_sec = time;
-			tp->tv_usec = 0;
-		}
+    device = rt_device_find("rtc");
+    if (device != RT_NULL)
+    {
+        rt_device_control(device, RT_DEVICE_CTRL_RTC_GET_TIME, &time);
+        if (tp != RT_NULL)
+        {
+            tp->tv_sec = time;
+            tp->tv_usec = 0;
+        }
 
-		return time;
-	}
+        return time;
+    }
 
-	return 0;
+    return 0;
 }
-
+#endif

+ 25 - 0
components/libc/compilers/newlib/time.c

@@ -0,0 +1,25 @@
+#include <sys/time.h>
+#include <rtthread.h>
+
+#if defined(RT_USING_DEVICE) && defined(RT_USING_RTC)
+int gettimeofday(struct timeval *tp, void *ignore)
+{
+    time_t time;
+    rt_device_t device;
+
+    device = rt_device_find("rtc");
+    if (device != RT_NULL)
+    {
+        rt_device_control(device, RT_DEVICE_CTRL_RTC_GET_TIME, &time);
+        if (tp != RT_NULL)
+        {
+            tp->tv_sec = time;
+            tp->tv_usec = 0;
+        }
+
+        return time;
+    }
+
+    return 0;
+}
+#endif