summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
Diffstat (limited to 'components')
-rw-r--r--components/libc/newlib/libc.c29
-rw-r--r--components/libc/newlib/libc.h1
2 files changed, 30 insertions, 0 deletions
diff --git a/components/libc/newlib/libc.c b/components/libc/newlib/libc.c
index 477ee44504..90b0b7f2ee 100644
--- a/components/libc/newlib/libc.c
+++ b/components/libc/newlib/libc.c
@@ -2,6 +2,27 @@
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
+#include <sys/time.h>
+
+struct timeval _timevalue;
+static void libc_system_time_init()
+{
+ rt_device_t device;
+ time_t time;
+ rt_tick_t tick;
+
+ time = 0; tick = 0;
+ device = rt_device_find("rtc");
+ if (device != RT_NULL)
+ {
+ rt_device_control(device, RT_DEVICE_CTRL_RTC_GET_TIME, &time);
+ }
+
+ tick = rt_tick_get();
+
+ _timevalue.tv_sec = time;
+ _timevalue.tv_usec = (1000000UL * tick)/RT_TICK_PER_SECOND;
+}
void libc_system_init(const char* tty_name)
{
@@ -20,3 +41,11 @@ void libc_system_init(const char* tty_name)
putenv("HOME=/");
}
+int libc_time_to_tick(const struct timespec *time)
+{
+ int tick;
+
+ tick = RT_WAITING_FOREVER;
+
+ return tick;
+}
diff --git a/components/libc/newlib/libc.h b/components/libc/newlib/libc.h
index b21a7264b3..60a86e49a6 100644
--- a/components/libc/newlib/libc.h
+++ b/components/libc/newlib/libc.h
@@ -2,5 +2,6 @@
#define __RTT_LIBC_H__
void libc_system_init(const char* tty_name);
+int libc_time_to_tick(const struct timespec *time);
#endif