summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
Diffstat (limited to 'components')
-rw-r--r--components/dfs/include/dfs_fs.h3
-rw-r--r--components/drivers/i2c/i2c_core.c21
-rw-r--r--components/drivers/i2c/i2c_dev.c10
-rw-r--r--components/drivers/include/drivers/i2c.h4
-rw-r--r--components/drivers/include/drivers/i2c_dev.h2
-rw-r--r--components/libc/compilers/armlibc/dirent.h62
-rw-r--r--components/libc/compilers/armlibc/sys/README.md1
-rw-r--r--components/libc/compilers/armlibc/sys/errno.h14
-rw-r--r--components/libc/compilers/armlibc/sys/mman.h58
-rw-r--r--components/libc/compilers/common/SConscript6
-rw-r--r--components/libc/compilers/common/dirent.h (renamed from components/libc/compilers/newlib/sys/dirent.h)0
-rw-r--r--components/libc/compilers/common/none-gcc/SConscript13
-rw-r--r--components/libc/compilers/common/none-gcc/fcntl.h (renamed from components/libc/compilers/armlibc/fcntl.h)0
-rw-r--r--components/libc/compilers/common/none-gcc/readme.md3
-rw-r--r--components/libc/compilers/common/none-gcc/sys/stat.h (renamed from components/libc/compilers/armlibc/sys/stat.h)0
-rw-r--r--components/libc/compilers/common/none-gcc/sys/types.h (renamed from components/libc/compilers/armlibc/sys/types.h)2
-rw-r--r--components/libc/compilers/common/none-gcc/sys/unistd.h (renamed from components/libc/compilers/armlibc/sys/unistd.h)0
-rw-r--r--components/libc/compilers/common/none-gcc/unistd.h (renamed from components/libc/compilers/armlibc/unistd.h)0
-rw-r--r--components/libc/compilers/common/readme.md2
-rw-r--r--components/libc/compilers/common/sys/ioctl.h5
-rw-r--r--components/libc/compilers/common/sys/mman.h (renamed from components/libc/compilers/newlib/sys/mman.h)2
-rw-r--r--components/libc/compilers/common/sys/statfs.h (renamed from components/libc/compilers/newlib/sys/statfs.h)0
-rw-r--r--components/libc/compilers/common/sys/termios.h (renamed from components/libc/compilers/newlib/sys/termios.h)0
-rw-r--r--components/libc/compilers/dlib/dirent.h62
-rw-r--r--components/libc/compilers/dlib/fcntl.h8
-rw-r--r--components/libc/compilers/dlib/sys/README.md1
-rw-r--r--components/libc/compilers/dlib/sys/errno.h16
-rw-r--r--components/libc/compilers/dlib/sys/mman.h58
-rw-r--r--components/libc/compilers/dlib/sys/signal.h16
-rw-r--r--components/libc/compilers/dlib/sys/stat.h8
-rw-r--r--components/libc/compilers/dlib/sys/types.h33
-rw-r--r--components/libc/compilers/dlib/sys/unistd.h57
-rw-r--r--components/libc/compilers/dlib/unistd.h14
-rw-r--r--components/utilities/ulog/ulog.c50
34 files changed, 106 insertions, 425 deletions
diff --git a/components/dfs/include/dfs_fs.h b/components/dfs/include/dfs_fs.h
index 8dc93f9599..828f15a0f5 100644
--- a/components/dfs/include/dfs_fs.h
+++ b/components/dfs/include/dfs_fs.h
@@ -12,6 +12,9 @@
#define __DFS_FS_H__
#include <dfs.h>
+#ifdef RT_USING_LIBC
+#include <sys/types.h>
+#endif
#ifdef __cplusplus
extern "C" {
diff --git a/components/drivers/i2c/i2c_core.c b/components/drivers/i2c/i2c_core.c
index 87178e37d5..47ba76d2be 100644
--- a/components/drivers/i2c/i2c_core.c
+++ b/components/drivers/i2c/i2c_core.c
@@ -6,6 +6,7 @@
* Change Logs:
* Date Author Notes
* 2012-04-25 weety first version
+ * 2021-04-20 RiceChen added support for bus control api
*/
#include <rtdevice.h>
@@ -81,6 +82,26 @@ rt_size_t rt_i2c_transfer(struct rt_i2c_bus_device *bus,
}
}
+rt_err_t rt_i2c_control(struct rt_i2c_bus_device *bus,
+ rt_uint32_t cmd,
+ rt_uint32_t arg)
+{
+ rt_err_t ret;
+
+ if(bus->ops->i2c_bus_control)
+ {
+ ret = bus->ops->i2c_bus_control(bus, cmd, arg);
+
+ return ret;
+ }
+ else
+ {
+ LOG_E("I2C bus operation not supported");
+
+ return 0;
+ }
+}
+
rt_size_t rt_i2c_master_send(struct rt_i2c_bus_device *bus,
rt_uint16_t addr,
rt_uint16_t flags,
diff --git a/components/drivers/i2c/i2c_dev.c b/components/drivers/i2c/i2c_dev.c
index 4f567f8227..c30bb62a92 100644
--- a/components/drivers/i2c/i2c_dev.c
+++ b/components/drivers/i2c/i2c_dev.c
@@ -7,6 +7,7 @@
* Date Author Notes
* 2012-04-25 weety first version
* 2014-08-03 bernard fix some compiling warning
+ * 2021-04-20 RiceChen added support for bus clock control
*/
#include <rtdevice.h>
@@ -66,6 +67,7 @@ static rt_err_t i2c_bus_device_control(rt_device_t dev,
rt_err_t ret;
struct rt_i2c_priv_data *priv_data;
struct rt_i2c_bus_device *bus = (struct rt_i2c_bus_device *)dev->user_data;
+ rt_uint32_t bus_clock;
RT_ASSERT(bus != RT_NULL);
@@ -89,6 +91,14 @@ static rt_err_t i2c_bus_device_control(rt_device_t dev,
return -RT_EIO;
}
break;
+ case RT_I2C_DEV_CTRL_CLK:
+ bus_clock = *(rt_uint32_t *)args;
+ ret = rt_i2c_control(bus, cmd, bus_clock);
+ if (ret < 0)
+ {
+ return -RT_EIO;
+ }
+ break;
default:
break;
}
diff --git a/components/drivers/include/drivers/i2c.h b/components/drivers/include/drivers/i2c.h
index 50ce021d53..7bf99d26cc 100644
--- a/components/drivers/include/drivers/i2c.h
+++ b/components/drivers/include/drivers/i2c.h
@@ -6,6 +6,7 @@
* Change Logs:
* Date Author Notes
* 2012-04-25 weety first version
+ * 2021-04-20 RiceChen added support for bus control api
*/
#ifndef __I2C_H__
@@ -74,6 +75,9 @@ struct rt_i2c_bus_device *rt_i2c_bus_device_find(const char *bus_name);
rt_size_t rt_i2c_transfer(struct rt_i2c_bus_device *bus,
struct rt_i2c_msg msgs[],
rt_uint32_t num);
+rt_err_t rt_i2c_control(struct rt_i2c_bus_device *bus,
+ rt_uint32_t cmd,
+ rt_uint32_t arg);
rt_size_t rt_i2c_master_send(struct rt_i2c_bus_device *bus,
rt_uint16_t addr,
rt_uint16_t flags,
diff --git a/components/drivers/include/drivers/i2c_dev.h b/components/drivers/include/drivers/i2c_dev.h
index 94f110c055..080ff26f87 100644
--- a/components/drivers/include/drivers/i2c_dev.h
+++ b/components/drivers/include/drivers/i2c_dev.h
@@ -6,6 +6,7 @@
* Change Logs:
* Date Author Notes
* 2012-04-25 weety first version
+ * 2021-04-20 RiceChen added bus clock command
*/
#ifndef __I2C_DEV_H__
@@ -21,6 +22,7 @@ extern "C" {
#define RT_I2C_DEV_CTRL_ADDR 0x21
#define RT_I2C_DEV_CTRL_TIMEOUT 0x22
#define RT_I2C_DEV_CTRL_RW 0x23
+#define RT_I2C_DEV_CTRL_CLK 0x24
struct rt_i2c_priv_data
{
diff --git a/components/libc/compilers/armlibc/dirent.h b/components/libc/compilers/armlibc/dirent.h
deleted file mode 100644
index 2c0521d2e3..0000000000
--- a/components/libc/compilers/armlibc/dirent.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- */
-#ifndef __RTT_DIRENT_H__
-#define __RTT_DIRENT_H__
-
-#include <rtthread.h>
-#include <rtlibc.h>
-
-/*
-* dirent.h - format of directory entries
- * Ref: http://www.opengroup.org/onlinepubs/009695399/basedefs/dirent.h.html
- */
-
-/* File types */
-#define FT_REGULAR 0 /* regular file */
-#define FT_SOCKET 1 /* socket file */
-#define FT_DIRECTORY 2 /* directory */
-#define FT_USER 3 /* user defined */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef HAVE_DIR_STRUCTURE
-typedef struct
-{
- int fd; /* directory file */
- char buf[512];
- int num;
- int cur;
-} DIR;
-#endif
-
-#ifndef HAVE_DIRENT_STRUCTURE
-struct dirent
-{
- rt_uint8_t d_type; /* The type of the file */
- rt_uint8_t d_namlen; /* The length of the not including the terminating null file name */
- rt_uint16_t d_reclen; /* length of this record */
- char d_name[256]; /* The null-terminated file name */
-};
-#endif
-
-int closedir(DIR *);
-DIR *opendir(const char *);
-struct dirent *readdir(DIR *);
-int readdir_r(DIR *, struct dirent *, struct dirent **);
-void rewinddir(DIR *);
-void seekdir(DIR *, long int);
-long telldir(DIR *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/components/libc/compilers/armlibc/sys/README.md b/components/libc/compilers/armlibc/sys/README.md
deleted file mode 100644
index 7ad10a7d43..0000000000
--- a/components/libc/compilers/armlibc/sys/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Because Keil MDK leaks some system header file, we put them in here. \ No newline at end of file
diff --git a/components/libc/compilers/armlibc/sys/errno.h b/components/libc/compilers/armlibc/sys/errno.h
deleted file mode 100644
index 74cc986f7c..0000000000
--- a/components/libc/compilers/armlibc/sys/errno.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- */
-#ifndef SYS_ERRNO_H__
-#define SYS_ERRNO_H__
-
-#include <rtthread.h>
-
-#endif
diff --git a/components/libc/compilers/armlibc/sys/mman.h b/components/libc/compilers/armlibc/sys/mman.h
deleted file mode 100644
index 6a260ccd70..0000000000
--- a/components/libc/compilers/armlibc/sys/mman.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2017/11/30 Bernard The first version.
- */
-
-#ifndef _SYS_MMAN_H
-#define _SYS_MMAN_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define MAP_FAILED ((void *) -1)
-
-#define MAP_SHARED 0x01
-#define MAP_PRIVATE 0x02
-#define MAP_TYPE 0x0f
-#define MAP_FIXED 0x10
-#define MAP_ANON 0x20
-#define MAP_ANONYMOUS MAP_ANON
-#define MAP_NORESERVE 0x4000
-#define MAP_GROWSDOWN 0x0100
-#define MAP_DENYWRITE 0x0800
-#define MAP_EXECUTABLE 0x1000
-#define MAP_LOCKED 0x2000
-#define MAP_POPULATE 0x8000
-#define MAP_NONBLOCK 0x10000
-#define MAP_STACK 0x20000
-#define MAP_HUGETLB 0x40000
-#define MAP_FILE 0
-
-#define PROT_NONE 0
-#define PROT_READ 1
-#define PROT_WRITE 2
-#define PROT_EXEC 4
-#define PROT_GROWSDOWN 0x01000000
-#define PROT_GROWSUP 0x02000000
-
-#define MS_ASYNC 1
-#define MS_INVALIDATE 2
-#define MS_SYNC 4
-
-#define MCL_CURRENT 1
-#define MCL_FUTURE 2
-#define MCL_ONFAULT 4
-
-void *mmap (void *start, size_t len, int prot, int flags, int fd, off_t off);
-int munmap (void *start, size_t len);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/components/libc/compilers/common/SConscript b/components/libc/compilers/common/SConscript
index 319e1a3555..d9de1cf17f 100644
--- a/components/libc/compilers/common/SConscript
+++ b/components/libc/compilers/common/SConscript
@@ -23,5 +23,9 @@ else:
if GetDepend('RT_USING_LIBC') or GetDepend('RT_LIBC_USING_TIME'):
group = DefineGroup('libc', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
-
+ list = os.listdir(cwd)
+ for d in list:
+ path = os.path.join(cwd, d)
+ if os.path.isfile(os.path.join(path, 'SConscript')):
+ group = group + SConscript(os.path.join(d, 'SConscript'))
Return('group')
diff --git a/components/libc/compilers/newlib/sys/dirent.h b/components/libc/compilers/common/dirent.h
index bfba586093..bfba586093 100644
--- a/components/libc/compilers/newlib/sys/dirent.h
+++ b/components/libc/compilers/common/dirent.h
diff --git a/components/libc/compilers/common/none-gcc/SConscript b/components/libc/compilers/common/none-gcc/SConscript
new file mode 100644
index 0000000000..346e69b478
--- /dev/null
+++ b/components/libc/compilers/common/none-gcc/SConscript
@@ -0,0 +1,13 @@
+from building import *
+
+Import('rtconfig')
+
+src = []
+cwd = GetCurrentDir()
+CPPPATH = [cwd]
+group = []
+src += Glob('*.c')
+
+if rtconfig.PLATFORM != 'gcc':
+ group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], CPPPATH = CPPPATH)
+Return('group')
diff --git a/components/libc/compilers/armlibc/fcntl.h b/components/libc/compilers/common/none-gcc/fcntl.h
index f247b926e9..f247b926e9 100644
--- a/components/libc/compilers/armlibc/fcntl.h
+++ b/components/libc/compilers/common/none-gcc/fcntl.h
diff --git a/components/libc/compilers/common/none-gcc/readme.md b/components/libc/compilers/common/none-gcc/readme.md
new file mode 100644
index 0000000000..b10940d003
--- /dev/null
+++ b/components/libc/compilers/common/none-gcc/readme.md
@@ -0,0 +1,3 @@
+## Attentions
+
+This folder is "common" for toolchains excluding gcc. \ No newline at end of file
diff --git a/components/libc/compilers/armlibc/sys/stat.h b/components/libc/compilers/common/none-gcc/sys/stat.h
index c4b42083c4..c4b42083c4 100644
--- a/components/libc/compilers/armlibc/sys/stat.h
+++ b/components/libc/compilers/common/none-gcc/sys/stat.h
diff --git a/components/libc/compilers/armlibc/sys/types.h b/components/libc/compilers/common/none-gcc/sys/types.h
index a6b245b81c..7222326a2a 100644
--- a/components/libc/compilers/armlibc/sys/types.h
+++ b/components/libc/compilers/common/none-gcc/sys/types.h
@@ -18,6 +18,8 @@ typedef int32_t key_t; /* Used for interprocess communication.
typedef int pid_t; /* Used for process IDs and process group IDs. */
typedef unsigned short uid_t;
typedef unsigned short gid_t;
+typedef signed long off_t;
+typedef int mode_t;
#ifndef ARCH_CPU_64BIT
typedef signed int ssize_t; /* Used for a count of bytes or an error indication. */
#else
diff --git a/components/libc/compilers/armlibc/sys/unistd.h b/components/libc/compilers/common/none-gcc/sys/unistd.h
index 7752a1caf7..7752a1caf7 100644
--- a/components/libc/compilers/armlibc/sys/unistd.h
+++ b/components/libc/compilers/common/none-gcc/sys/unistd.h
diff --git a/components/libc/compilers/armlibc/unistd.h b/components/libc/compilers/common/none-gcc/unistd.h
index cd77a12e3b..cd77a12e3b 100644
--- a/components/libc/compilers/armlibc/unistd.h
+++ b/components/libc/compilers/common/none-gcc/unistd.h
diff --git a/components/libc/compilers/common/readme.md b/components/libc/compilers/common/readme.md
index 81bb005d0a..856ddeb045 100644
--- a/components/libc/compilers/common/readme.md
+++ b/components/libc/compilers/common/readme.md
@@ -1,6 +1,6 @@
## Attentions
-1. This folder is "common" for armlibc newlibc and dlib.
+1. This folder is "common" for all toolchains.
2. If you want to add new `.c` files, please do not forget to fix SConscript file too. eg:
diff --git a/components/libc/compilers/common/sys/ioctl.h b/components/libc/compilers/common/sys/ioctl.h
index df17b19a61..648d90230d 100644
--- a/components/libc/compilers/common/sys/ioctl.h
+++ b/components/libc/compilers/common/sys/ioctl.h
@@ -10,6 +10,9 @@
#ifndef _SYS_IOCTL_H
#define _SYS_IOCTL_H
-
+#include <rtconfig.h>
+#ifdef RT_USING_POSIX
+#include <dfs_posix.h>
+#endif
#endif
diff --git a/components/libc/compilers/newlib/sys/mman.h b/components/libc/compilers/common/sys/mman.h
index 6a260ccd70..a9235d61f0 100644
--- a/components/libc/compilers/newlib/sys/mman.h
+++ b/components/libc/compilers/common/sys/mman.h
@@ -15,6 +15,8 @@
extern "C" {
#endif
+#include <sys/types.h>
+
#define MAP_FAILED ((void *) -1)
#define MAP_SHARED 0x01
diff --git a/components/libc/compilers/newlib/sys/statfs.h b/components/libc/compilers/common/sys/statfs.h
index 0996af9a18..0996af9a18 100644
--- a/components/libc/compilers/newlib/sys/statfs.h
+++ b/components/libc/compilers/common/sys/statfs.h
diff --git a/components/libc/compilers/newlib/sys/termios.h b/components/libc/compilers/common/sys/termios.h
index c4b42083c4..c4b42083c4 100644
--- a/components/libc/compilers/newlib/sys/termios.h
+++ b/components/libc/compilers/common/sys/termios.h
diff --git a/components/libc/compilers/dlib/dirent.h b/components/libc/compilers/dlib/dirent.h
deleted file mode 100644
index 2c0521d2e3..0000000000
--- a/components/libc/compilers/dlib/dirent.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- */
-#ifndef __RTT_DIRENT_H__
-#define __RTT_DIRENT_H__
-
-#include <rtthread.h>
-#include <rtlibc.h>
-
-/*
-* dirent.h - format of directory entries
- * Ref: http://www.opengroup.org/onlinepubs/009695399/basedefs/dirent.h.html
- */
-
-/* File types */
-#define FT_REGULAR 0 /* regular file */
-#define FT_SOCKET 1 /* socket file */
-#define FT_DIRECTORY 2 /* directory */
-#define FT_USER 3 /* user defined */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef HAVE_DIR_STRUCTURE
-typedef struct
-{
- int fd; /* directory file */
- char buf[512];
- int num;
- int cur;
-} DIR;
-#endif
-
-#ifndef HAVE_DIRENT_STRUCTURE
-struct dirent
-{
- rt_uint8_t d_type; /* The type of the file */
- rt_uint8_t d_namlen; /* The length of the not including the terminating null file name */
- rt_uint16_t d_reclen; /* length of this record */
- char d_name[256]; /* The null-terminated file name */
-};
-#endif
-
-int closedir(DIR *);
-DIR *opendir(const char *);
-struct dirent *readdir(DIR *);
-int readdir_r(DIR *, struct dirent *, struct dirent **);
-void rewinddir(DIR *);
-void seekdir(DIR *, long int);
-long telldir(DIR *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/components/libc/compilers/dlib/fcntl.h b/components/libc/compilers/dlib/fcntl.h
deleted file mode 100644
index c4b42083c4..0000000000
--- a/components/libc/compilers/dlib/fcntl.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- */
diff --git a/components/libc/compilers/dlib/sys/README.md b/components/libc/compilers/dlib/sys/README.md
deleted file mode 100644
index 4f0d203180..0000000000
--- a/components/libc/compilers/dlib/sys/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Because IAR leaks some system header file, we put them in here. \ No newline at end of file
diff --git a/components/libc/compilers/dlib/sys/errno.h b/components/libc/compilers/dlib/sys/errno.h
deleted file mode 100644
index 54a1d33cd0..0000000000
--- a/components/libc/compilers/dlib/sys/errno.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2019-07-08 Bernard The first version
- */
-
-#ifndef SYS_ERRNO_H__
-#define SYS_ERRNO_H__
-
-#include <errno.h>
-
-#endif
diff --git a/components/libc/compilers/dlib/sys/mman.h b/components/libc/compilers/dlib/sys/mman.h
deleted file mode 100644
index 6a260ccd70..0000000000
--- a/components/libc/compilers/dlib/sys/mman.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2017/11/30 Bernard The first version.
- */
-
-#ifndef _SYS_MMAN_H
-#define _SYS_MMAN_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define MAP_FAILED ((void *) -1)
-
-#define MAP_SHARED 0x01
-#define MAP_PRIVATE 0x02
-#define MAP_TYPE 0x0f
-#define MAP_FIXED 0x10
-#define MAP_ANON 0x20
-#define MAP_ANONYMOUS MAP_ANON
-#define MAP_NORESERVE 0x4000
-#define MAP_GROWSDOWN 0x0100
-#define MAP_DENYWRITE 0x0800
-#define MAP_EXECUTABLE 0x1000
-#define MAP_LOCKED 0x2000
-#define MAP_POPULATE 0x8000
-#define MAP_NONBLOCK 0x10000
-#define MAP_STACK 0x20000
-#define MAP_HUGETLB 0x40000
-#define MAP_FILE 0
-
-#define PROT_NONE 0
-#define PROT_READ 1
-#define PROT_WRITE 2
-#define PROT_EXEC 4
-#define PROT_GROWSDOWN 0x01000000
-#define PROT_GROWSUP 0x02000000
-
-#define MS_ASYNC 1
-#define MS_INVALIDATE 2
-#define MS_SYNC 4
-
-#define MCL_CURRENT 1
-#define MCL_FUTURE 2
-#define MCL_ONFAULT 4
-
-void *mmap (void *start, size_t len, int prot, int flags, int fd, off_t off);
-int munmap (void *start, size_t len);
-
-#ifdef __cplusplus
-}
-#endif
-#endif
diff --git a/components/libc/compilers/dlib/sys/signal.h b/components/libc/compilers/dlib/sys/signal.h
deleted file mode 100644
index a30235f2b2..0000000000
--- a/components/libc/compilers/dlib/sys/signal.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2019-07-08 Bernard The first version
- */
-
-#ifndef SYS_SIGNAL_H__
-#define SYS_SIGNAL_H__
-
-#include <libc/libc_signal.h>
-
-#endif
diff --git a/components/libc/compilers/dlib/sys/stat.h b/components/libc/compilers/dlib/sys/stat.h
deleted file mode 100644
index c4b42083c4..0000000000
--- a/components/libc/compilers/dlib/sys/stat.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- */
diff --git a/components/libc/compilers/dlib/sys/types.h b/components/libc/compilers/dlib/sys/types.h
deleted file mode 100644
index 6e2d1ce839..0000000000
--- a/components/libc/compilers/dlib/sys/types.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-12-16 Meco Man add useconds_t
- */
-#ifndef __TYPES_H__
-#define __TYPES_H__
-
-#include <stdint.h>
-
-typedef int32_t clockid_t;
-typedef int32_t key_t; /* Used for interprocess communication. */
-typedef int pid_t; /* Used for process IDs and process group IDs. */
-typedef unsigned short uid_t;
-typedef unsigned short gid_t;
-#ifndef ARCH_CPU_64BIT
-typedef signed int ssize_t; /* Used for a count of bytes or an error indication. */
-#else
-typedef long signed int ssize_t; /* Used for a count of bytes or an error indication. */
-#endif
-typedef unsigned long useconds_t; /* microseconds (unsigned) */
-
-typedef unsigned long dev_t;
-
-typedef unsigned int u_int;
-typedef unsigned char u_char;
-typedef unsigned long u_long;
-
-#endif
diff --git a/components/libc/compilers/dlib/sys/unistd.h b/components/libc/compilers/dlib/sys/unistd.h
deleted file mode 100644
index 14966a2bad..0000000000
--- a/components/libc/compilers/dlib/sys/unistd.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-12-16 Meco Man add usleep
- */
-#ifndef _SYS_UNISTD_H
-#define _SYS_UNISTD_H
-
-#include <rtconfig.h>
-#include "types.h"
-
-#ifdef RT_USING_DFS
-
-#define STDIN_FILENO 0 /* standard input file descriptor */
-#define STDOUT_FILENO 1 /* standard output file descriptor */
-#define STDERR_FILENO 2 /* standard error file descriptor */
-
-#include <dfs_posix.h>
-#else
-#define _FREAD 0x0001 /* read enabled */
-#define _FWRITE 0x0002 /* write enabled */
-#define _FAPPEND 0x0008 /* append (writes guaranteed at the end) */
-#define _FMARK 0x0010 /* internal; mark during gc() */
-#define _FDEFER 0x0020 /* internal; defer for next gc pass */
-#define _FASYNC 0x0040 /* signal pgrp when data ready */
-#define _FSHLOCK 0x0080 /* BSD flock() shared lock present */
-#define _FEXLOCK 0x0100 /* BSD flock() exclusive lock present */
-#define _FCREAT 0x0200 /* open with file create */
-#define _FTRUNC 0x0400 /* open with truncation */
-#define _FEXCL 0x0800 /* error on open if file exists */
-#define _FNBIO 0x1000 /* non blocking I/O (sys5 style) */
-#define _FSYNC 0x2000 /* do all writes synchronously */
-#define _FNONBLOCK 0x4000 /* non blocking I/O (POSIX style) */
-#define _FNDELAY _FNONBLOCK /* non blocking I/O (4.2 style) */
-#define _FNOCTTY 0x8000 /* don't assign a ctty on this open */
-
-#endif
-
-
-int isatty (int fd);
-char * ttyname (int desc);
-
-unsigned int sleep(unsigned int seconds);
-int usleep(useconds_t usec);
-
-pid_t getpid(void);
-pid_t getppid(void);
-uid_t getuid(void);
-uid_t geteuid(void);
-gid_t getgid(void);
-gid_t getegid(void);
-
-#endif /* _SYS_UNISTD_H */
diff --git a/components/libc/compilers/dlib/unistd.h b/components/libc/compilers/dlib/unistd.h
deleted file mode 100644
index 72b9d538ec..0000000000
--- a/components/libc/compilers/dlib/unistd.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- */
-#ifndef _UNISTD_H_
-#define _UNISTD_H_
-
-# include "sys/unistd.h"
-
-#endif /* _UNISTD_H_ */
diff --git a/components/utilities/ulog/ulog.c b/components/utilities/ulog/ulog.c
index e903a707b2..9dd2ed2fd0 100644
--- a/components/utilities/ulog/ulog.c
+++ b/components/utilities/ulog/ulog.c
@@ -260,19 +260,36 @@ RT_WEAK rt_size_t ulog_formater(char *log_buf, rt_uint32_t level, const char *ta
/* add time info */
{
#ifdef ULOG_TIME_USING_TIMESTAMP
- static time_t now;
+ static struct timeval now;
static struct tm *tm, tm_tmp;
+ static rt_bool_t check_usec_support = RT_FALSE, usec_is_support = RT_FALSE;
- now = time(NULL);
- tm = gmtime_r(&now, &tm_tmp);
-
-#ifdef RT_USING_SOFT_RTC
- rt_snprintf(log_buf + log_len, ULOG_LINE_BUF_SIZE - log_len, "%02d-%02d %02d:%02d:%02d.%03d", tm->tm_mon + 1,
- tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec, rt_tick_get() % 1000);
-#else
- rt_snprintf(log_buf + log_len, ULOG_LINE_BUF_SIZE - log_len, "%02d-%02d %02d:%02d:%02d", tm->tm_mon + 1,
- tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
-#endif /* RT_USING_SOFT_RTC */
+ if (gettimeofday(&now, NULL) >= 0)
+ {
+ time_t t = now.tv_sec;
+ tm = localtime_r(&t, &tm_tmp);
+ /* show the time format MM-DD HH:MM:SS */
+ rt_snprintf(log_buf + log_len, ULOG_LINE_BUF_SIZE - log_len, "%02d-%02d %02d:%02d:%02d", tm->tm_mon + 1,
+ tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
+ /* check the microseconds support when kernel is startup */
+ if (!check_usec_support && rt_thread_self() != RT_NULL)
+ {
+ long old_usec = now.tv_usec;
+ /* delay some time for wait microseconds changed */
+ rt_thread_delay(2);
+ gettimeofday(&now, NULL);
+ check_usec_support = RT_TRUE;
+ /* the microseconds is not equal between two gettimeofday calls */
+ if (now.tv_usec != old_usec)
+ usec_is_support = RT_TRUE;
+ }
+ if (usec_is_support)
+ {
+ /* show the millisecond */
+ log_len += rt_strlen(log_buf + log_len);
+ rt_snprintf(log_buf + log_len, ULOG_LINE_BUF_SIZE - log_len, ".%03d", now.tv_usec / 1000);
+ }
+ }
#else
static rt_size_t tick_len = 0;
@@ -318,9 +335,14 @@ RT_WEAK rt_size_t ulog_formater(char *log_buf, rt_uint32_t level, const char *ta
/* is not in interrupt context */
if (rt_interrupt_get_nest() == 0)
{
- rt_size_t name_len = rt_strnlen(rt_thread_self()->name, RT_NAME_MAX);
-
- rt_strncpy(log_buf + log_len, rt_thread_self()->name, name_len);
+ rt_size_t name_len = 0;
+ const char *thread_name = "N/A";
+ if (rt_thread_self())
+ {
+ thread_name = rt_thread_self()->name;
+ }
+ name_len = rt_strnlen(thread_name, RT_NAME_MAX);
+ rt_strncpy(log_buf + log_len, thread_name, name_len);
log_len += name_len;
}
else