1
0
Эх сурвалжийг харах

[posix][libc] 优化libc中posix结构

Meco Man 3 жил өмнө
parent
commit
a9910a780e
36 өөрчлөгдсөн 297 нэмэгдсэн , 640 устгасан
  1. 15 59
      bsp/bluetrum/ab32vg1-ab-prougen/.config
  2. 3 47
      bsp/bluetrum/ab32vg1-ab-prougen/rtconfig.h
  3. 0 1
      bsp/gd32303e-eval/rtconfig.h
  4. 15 59
      bsp/gd32vf103v-eval/.config
  5. 0 2
      bsp/gd32vf103v-eval/SConscript
  6. 2 5
      bsp/gd32vf103v-eval/libraries/SConscript
  7. 4 5
      bsp/gd32vf103v-eval/libraries/n22/env_Eclipse/handlers.c
  8. 1 1
      bsp/gd32vf103v-eval/libraries/n22/env_Eclipse/start.S
  9. 3 47
      bsp/gd32vf103v-eval/rtconfig.h
  10. 1 1
      bsp/lm3s8962/applications/startup.c
  11. 15 58
      bsp/lpc1114/.config
  12. 3 44
      bsp/lpc1114/rtconfig.h
  13. 2 2
      components/dfs/src/dfs.c
  14. 4 4
      components/finsh/shell.c
  15. 1 1
      components/finsh/shell.h
  16. 35 32
      components/libc/Kconfig
  17. 0 3
      components/libc/compilers/armlibc/SConscript
  18. 3 8
      components/libc/compilers/armlibc/libc.c
  19. 4 0
      components/libc/compilers/armlibc/libc.h
  20. 5 4
      components/libc/compilers/armlibc/stdio.c
  21. 56 65
      components/libc/compilers/armlibc/syscalls.c
  22. 1 1
      components/libc/compilers/common/SConscript
  23. 2 3
      components/libc/compilers/dlib/SConscript
  24. 3 9
      components/libc/compilers/dlib/libc.c
  25. 2 0
      components/libc/compilers/dlib/libc.h
  26. 6 6
      components/libc/compilers/dlib/stdio.c
  27. 4 7
      components/libc/compilers/dlib/syscall_close.c
  28. 2 5
      components/libc/compilers/dlib/syscall_lseek.c
  29. 5 7
      components/libc/compilers/dlib/syscall_open.c
  30. 5 13
      components/libc/compilers/dlib/syscall_read.c
  31. 5 7
      components/libc/compilers/dlib/syscall_remove.c
  32. 12 18
      components/libc/compilers/dlib/syscall_write.c
  33. 2 13
      components/libc/compilers/gcc/newlib/libc.c
  34. 3 4
      components/libc/compilers/gcc/newlib/libc.h
  35. 5 3
      components/libc/compilers/gcc/newlib/stdio.c
  36. 68 96
      components/libc/compilers/gcc/newlib/syscalls.c

+ 15 - 59
bsp/bluetrum/ab32vg1-ab-prougen/.config

@@ -1,9 +1,13 @@
-# Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib)
+#
+# Automatically generated file; DO NOT EDIT.
+# RT-Thread Project Configuration
+#
 
 #
 # RT-Thread Kernel
 #
 CONFIG_RT_NAME_MAX=8
+# CONFIG_RT_USING_BIG_ENDIAN is not set
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 # CONFIG_RT_USING_SMP is not set
 CONFIG_RT_ALIGN_SIZE=8
@@ -26,8 +30,7 @@ CONFIG_RT_TIMER_THREAD_STACK_SIZE=256
 #
 # CONFIG_RT_KSERVICE_USING_STDLIB is not set
 # CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
-# end of kservice optimization
-
+# CONFIG_RT_USING_ASM_MEMCPY is not set
 CONFIG_RT_DEBUG=y
 # CONFIG_RT_DEBUG_COLOR is not set
 # CONFIG_RT_DEBUG_INIT_CONFIG is not set
@@ -50,7 +53,6 @@ CONFIG_RT_USING_EVENT=y
 CONFIG_RT_USING_MAILBOX=y
 CONFIG_RT_USING_MESSAGEQUEUE=y
 # CONFIG_RT_USING_SIGNALS is not set
-# end of Inter-Thread communication
 
 #
 # Memory Management
@@ -64,7 +66,6 @@ CONFIG_RT_USING_SMALL_MEM=y
 # CONFIG_RT_USING_USERHEAP is not set
 # CONFIG_RT_USING_MEMTRACE is not set
 CONFIG_RT_USING_HEAP=y
-# end of Memory Management
 
 #
 # Kernel Device Object
@@ -76,10 +77,9 @@ CONFIG_RT_USING_CONSOLE=y
 CONFIG_RT_CONSOLEBUF_SIZE=128
 CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
 # CONFIG_RT_PRINTF_LONGLONG is not set
-# end of Kernel Device Object
-
 CONFIG_RT_VER_NUM=0x40004
-# end of RT-Thread Kernel
+# CONFIG_RT_USING_CPU_FFS is not set
+# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
 
 #
 # RT-Thread Components
@@ -93,7 +93,6 @@ CONFIG_RT_MAIN_THREAD_PRIORITY=10
 # C++ features
 #
 # CONFIG_RT_USING_CPLUSPLUS is not set
-# end of C++ features
 
 #
 # Command shell
@@ -113,13 +112,11 @@ CONFIG_FINSH_USING_DESCRIPTION=y
 # CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
 # CONFIG_FINSH_USING_AUTH is not set
 CONFIG_FINSH_ARG_MAX=10
-# end of Command shell
 
 #
 # Device virtual file system
 #
 # CONFIG_RT_USING_DFS is not set
-# end of Device virtual file system
 
 #
 # Device Drivers
@@ -159,20 +156,17 @@ CONFIG_RT_USING_PIN=y
 #
 # Using USB
 #
+# CONFIG_RT_USING_USB is not set
 # CONFIG_RT_USING_USB_HOST is not set
 # CONFIG_RT_USING_USB_DEVICE is not set
-# end of Using USB
-# end of Device Drivers
 
 #
 # POSIX layer and C standard library
 #
-CONFIG_RT_USING_LIBC=y
+# CONFIG_RT_USING_LIBC is not set
 # CONFIG_RT_USING_PTHREADS is not set
 CONFIG_RT_LIBC_USING_TIME=y
-# CONFIG_RT_USING_MODULE is not set
 CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
-# end of POSIX layer and C standard library
 
 #
 # Network
@@ -182,32 +176,26 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # Socket abstraction layer
 #
 # CONFIG_RT_USING_SAL is not set
-# end of Socket abstraction layer
 
 #
 # Network interface device
 #
 # CONFIG_RT_USING_NETDEV is not set
-# end of Network interface device
 
 #
 # light weight TCP/IP stack
 #
 # CONFIG_RT_USING_LWIP is not set
-# end of light weight TCP/IP stack
 
 #
 # AT commands
 #
 # CONFIG_RT_USING_AT is not set
-# end of AT commands
-# end of Network
 
 #
 # VBUS(Virtual Software BUS)
 #
 # CONFIG_RT_USING_VBUS is not set
-# end of VBUS(Virtual Software BUS)
 
 #
 # Utilities
@@ -217,14 +205,11 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_RT_USING_UTEST is not set
 # CONFIG_RT_USING_VAR_EXPORT is not set
 # CONFIG_RT_USING_RT_LINK is not set
-# end of Utilities
-# end of RT-Thread Components
 
 #
 # RT-Thread Utestcases
 #
 # CONFIG_RT_USING_UTESTCASES is not set
-# end of RT-Thread Utestcases
 
 #
 # RT-Thread online packages
@@ -259,17 +244,12 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # Marvell WiFi
 #
 # CONFIG_PKG_USING_WLANMARVELL is not set
-# end of Marvell WiFi
 
 #
 # Wiced WiFi
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
-# end of Wiced WiFi
-
 # CONFIG_PKG_USING_RW007 is not set
-# end of Wi-Fi
-
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -291,8 +271,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_JIOT-C-SDK is not set
 # CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
 # CONFIG_PKG_USING_JOYLINK is not set
-# end of IoT Cloud
-
 # CONFIG_PKG_USING_NIMBLE is not set
 # CONFIG_PKG_USING_OTA_DOWNLOADER is not set
 # CONFIG_PKG_USING_IPMSG is not set
@@ -326,7 +304,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
 # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
 # CONFIG_PKG_USING_HM is not set
-# end of IoT - internet of things
 
 #
 # security packages
@@ -336,7 +313,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_TINYCRYPT is not set
 # CONFIG_PKG_USING_TFM is not set
 # CONFIG_PKG_USING_YD_CRYPTO is not set
-# end of security packages
 
 #
 # language packages
@@ -345,22 +321,19 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
 # CONFIG_PKG_USING_MICROPYTHON is not set
 # CONFIG_PKG_USING_PIKASCRIPT is not set
-# end of language packages
 
 #
 # multimedia packages
 #
-# CONFIG_PKG_USING_OPENMV is not set
-# CONFIG_PKG_USING_MUPDF is not set
-# CONFIG_PKG_USING_STEMWIN is not set
 
 #
-# lvgl: powerful and easy-to-use embedded GUI library
+# LVGL: powerful and easy-to-use embedded GUI library
 #
 # CONFIG_PKG_USING_LITTLEVGL2RTT is not set
 # CONFIG_PKG_USING_LVGL is not set
-# end of lvgl: powerful and easy-to-use embedded GUI library
-
+# CONFIG_PKG_USING_OPENMV is not set
+# CONFIG_PKG_USING_MUPDF is not set
+# CONFIG_PKG_USING_STEMWIN is not set
 # CONFIG_PKG_USING_WAVPLAYER is not set
 # CONFIG_PKG_USING_TJPGD is not set
 # CONFIG_PKG_USING_PDFGEN is not set
@@ -377,8 +350,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 #
 # CONFIG_PKG_USING_U8G2_OFFICIAL is not set
 # CONFIG_PKG_USING_U8G2 is not set
-# end of u8g2: a monochrome graphic library
-# end of multimedia packages
 
 #
 # tools packages
@@ -421,7 +392,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_MEM_SANDBOX is not set
 # CONFIG_PKG_USING_SOLAR_TERMS is not set
 # CONFIG_PKG_USING_GAN_ZHI is not set
-# end of tools packages
 
 #
 # system packages
@@ -434,7 +404,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
 # CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
 # CONFIG_PKG_USING_QFPLIB_M3 is not set
-# end of acceleration: Assembly language or algorithmic acceleration packages
 
 #
 # Micrium: Micrium software products porting for RT-Thread
@@ -445,8 +414,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_UC_CLK is not set
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
-# end of Micrium: Micrium software products porting for RT-Thread
-
 # CONFIG_PKG_USING_GUIENGINE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
@@ -480,7 +447,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_WCWIDTH is not set
 # CONFIG_PKG_USING_MCUBOOT is not set
 # CONFIG_PKG_USING_TINYUSB is not set
-# end of system packages
 
 #
 # peripheral libraries and drivers
@@ -560,7 +526,7 @@ CONFIG_PKG_BLUETRUM_SDK_VER="latest"
 # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
 # CONFIG_PKG_USING_BL_MCU_SDK is not set
 # CONFIG_PKG_USING_SOFT_SERIAL is not set
-# end of peripheral libraries and drivers
+# CONFIG_PKG_USING_MB85RS16 is not set
 
 #
 # AI packages
@@ -574,7 +540,6 @@ CONFIG_PKG_BLUETRUM_SDK_VER="latest"
 # CONFIG_PKG_USING_ULAPACK is not set
 # CONFIG_PKG_USING_QUEST is not set
 # CONFIG_PKG_USING_NAXOS is not set
-# end of AI packages
 
 #
 # miscellaneous packages
@@ -587,7 +552,6 @@ CONFIG_PKG_BLUETRUM_SDK_VER="latest"
 # CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
 # CONFIG_PKG_USING_NETWORK_SAMPLES is not set
 # CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
-# end of samples: kernel and components samples
 
 #
 # entertainment: terminal games and other interesting software packages
@@ -601,8 +565,6 @@ CONFIG_PKG_BLUETRUM_SDK_VER="latest"
 # CONFIG_PKG_USING_SNAKE is not set
 # CONFIG_PKG_USING_TETRIS is not set
 # CONFIG_PKG_USING_DONUT is not set
-# end of entertainment: terminal games and other interesting software packages
-
 # CONFIG_PKG_USING_LIBCSV is not set
 # CONFIG_PKG_USING_OPTPARSE is not set
 # CONFIG_PKG_USING_FASTLZ is not set
@@ -632,8 +594,6 @@ CONFIG_PKG_BLUETRUM_SDK_VER="latest"
 # CONFIG_PKG_USING_MCURSES is not set
 # CONFIG_PKG_USING_COWSAY is not set
 # CONFIG_PKG_USING_TERMBOX is not set
-# end of miscellaneous packages
-# end of RT-Thread online packages
 
 #
 # Hardware Drivers Config
@@ -645,7 +605,6 @@ CONFIG_SOC_AB32VG1=y
 #
 # CONFIG_BSP_USING_AUDIO is not set
 # CONFIG_BSP_USING_SDCARD is not set
-# end of Onboard Peripheral Drivers
 
 #
 # On-chip Peripheral Drivers
@@ -663,11 +622,8 @@ CONFIG_BSP_UART0_FIFO_SIZE=10
 # CONFIG_BSP_USING_ONCHIP_RTC is not set
 # CONFIG_BSP_USING_ADC is not set
 # CONFIG_BSP_USING_IRRX is not set
-# end of On-chip Peripheral Drivers
 
 #
 # Board extended module Drivers
 #
-# end of Hardware Drivers Config
-
 CONFIG_BOARD_BLUETRUM_EVB=y

+ 3 - 47
bsp/bluetrum/ab32vg1-ab-prougen/rtconfig.h

@@ -1,7 +1,8 @@
 #ifndef RT_CONFIG_H__
 #define RT_CONFIG_H__
 
-/* Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib) */
+/* Automatically generated file; DO NOT EDIT. */
+/* RT-Thread Project Configuration */
 
 /* RT-Thread Kernel */
 
@@ -21,7 +22,6 @@
 
 /* kservice optimization */
 
-/* end of kservice optimization */
 #define RT_DEBUG
 
 /* Inter-Thread communication */
@@ -31,7 +31,6 @@
 #define RT_USING_EVENT
 #define RT_USING_MAILBOX
 #define RT_USING_MESSAGEQUEUE
-/* end of Inter-Thread communication */
 
 /* Memory Management */
 
@@ -39,7 +38,6 @@
 #define RT_USING_MEMHEAP
 #define RT_USING_SMALL_MEM
 #define RT_USING_HEAP
-/* end of Memory Management */
 
 /* Kernel Device Object */
 
@@ -48,9 +46,7 @@
 #define RT_USING_CONSOLE
 #define RT_CONSOLEBUF_SIZE 128
 #define RT_CONSOLE_DEVICE_NAME "uart0"
-/* end of Kernel Device Object */
 #define RT_VER_NUM 0x40004
-/* end of RT-Thread Kernel */
 
 /* RT-Thread Components */
 
@@ -61,7 +57,6 @@
 
 /* C++ features */
 
-/* end of C++ features */
 
 /* Command shell */
 
@@ -78,11 +73,9 @@
 #define MSH_USING_BUILT_IN_COMMANDS
 #define FINSH_USING_DESCRIPTION
 #define FINSH_ARG_MAX 10
-/* end of Command shell */
 
 /* Device virtual file system */
 
-/* end of Device virtual file system */
 
 /* Device Drivers */
 
@@ -95,47 +88,34 @@
 
 /* Using USB */
 
-/* end of Using USB */
-/* end of Device Drivers */
 
 /* POSIX layer and C standard library */
 
-#define RT_USING_LIBC
 #define RT_LIBC_USING_TIME
 #define RT_LIBC_DEFAULT_TIMEZONE 8
-/* end of POSIX layer and C standard library */
 
 /* Network */
 
 /* Socket abstraction layer */
 
-/* end of Socket abstraction layer */
 
 /* Network interface device */
 
-/* end of Network interface device */
 
 /* light weight TCP/IP stack */
 
-/* end of light weight TCP/IP stack */
 
 /* AT commands */
 
-/* end of AT commands */
-/* end of Network */
 
 /* VBUS(Virtual Software BUS) */
 
-/* end of VBUS(Virtual Software BUS) */
 
 /* Utilities */
 
-/* end of Utilities */
-/* end of RT-Thread Components */
 
 /* RT-Thread Utestcases */
 
-/* end of RT-Thread Utestcases */
 
 /* RT-Thread online packages */
 
@@ -146,74 +126,53 @@
 
 /* Marvell WiFi */
 
-/* end of Marvell WiFi */
 
 /* Wiced WiFi */
 
-/* end of Wiced WiFi */
-/* end of Wi-Fi */
 
 /* IoT Cloud */
 
-/* end of IoT Cloud */
-/* end of IoT - internet of things */
 
 /* security packages */
 
-/* end of security packages */
 
 /* language packages */
 
-/* end of language packages */
 
 /* multimedia packages */
 
+/* LVGL: powerful and easy-to-use embedded GUI library */
 
-/* lvgl: powerful and easy-to-use embedded GUI library */
-
-/* end of lvgl: powerful and easy-to-use embedded GUI library */
 
 /* u8g2: a monochrome graphic library */
 
-/* end of u8g2: a monochrome graphic library */
-/* end of multimedia packages */
 
 /* tools packages */
 
-/* end of tools packages */
 
 /* system packages */
 
 /* acceleration: Assembly language or algorithmic acceleration packages */
 
-/* end of acceleration: Assembly language or algorithmic acceleration packages */
 
 /* Micrium: Micrium software products porting for RT-Thread */
 
-/* end of Micrium: Micrium software products porting for RT-Thread */
-/* end of system packages */
 
 /* peripheral libraries and drivers */
 
 #define PKG_USING_BLUETRUM_SDK
 #define PKG_USING_BLUETRUM_SDK_LATEST_VERSION
-/* end of peripheral libraries and drivers */
 
 /* AI packages */
 
-/* end of AI packages */
 
 /* miscellaneous packages */
 
 /* samples: kernel and components samples */
 
-/* end of samples: kernel and components samples */
 
 /* entertainment: terminal games and other interesting software packages */
 
-/* end of entertainment: terminal games and other interesting software packages */
-/* end of miscellaneous packages */
-/* end of RT-Thread online packages */
 
 /* Hardware Drivers Config */
 
@@ -221,18 +180,15 @@
 
 /* Onboard Peripheral Drivers */
 
-/* end of Onboard Peripheral Drivers */
 
 /* On-chip Peripheral Drivers */
 
 #define BSP_USING_UART
 #define BSP_USING_UART0
 #define BSP_UART0_FIFO_SIZE 10
-/* end of On-chip Peripheral Drivers */
 
 /* Board extended module Drivers */
 
-/* end of Hardware Drivers Config */
 #define BOARD_BLUETRUM_EVB
 
 #endif

+ 0 - 1
bsp/gd32303e-eval/rtconfig.h

@@ -125,7 +125,6 @@
 /* POSIX layer and C standard library */
 
 #define RT_USING_LIBC
-#define RT_USING_POSIX
 #define RT_LIBC_USING_TIME
 #define RT_LIBC_DEFAULT_TIMEZONE 8
 /* end of POSIX layer and C standard library */

+ 15 - 59
bsp/gd32vf103v-eval/.config

@@ -1,9 +1,13 @@
-# Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib)
+#
+# Automatically generated file; DO NOT EDIT.
+# RT-Thread Configuration
+#
 
 #
 # RT-Thread Kernel
 #
 CONFIG_RT_NAME_MAX=8
+# CONFIG_RT_USING_BIG_ENDIAN is not set
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 # CONFIG_RT_USING_SMP is not set
 CONFIG_RT_ALIGN_SIZE=4
@@ -26,8 +30,7 @@ CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
 #
 # CONFIG_RT_KSERVICE_USING_STDLIB is not set
 # CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
-# end of kservice optimization
-
+# CONFIG_RT_USING_ASM_MEMCPY is not set
 CONFIG_RT_DEBUG=y
 # CONFIG_RT_DEBUG_COLOR is not set
 # CONFIG_RT_DEBUG_INIT_CONFIG is not set
@@ -50,7 +53,6 @@ CONFIG_RT_USING_EVENT=y
 CONFIG_RT_USING_MAILBOX=y
 CONFIG_RT_USING_MESSAGEQUEUE=y
 # CONFIG_RT_USING_SIGNALS is not set
-# end of Inter-Thread communication
 
 #
 # Memory Management
@@ -63,7 +65,6 @@ CONFIG_RT_USING_SMALL_MEM=y
 # CONFIG_RT_USING_USERHEAP is not set
 # CONFIG_RT_USING_MEMTRACE is not set
 CONFIG_RT_USING_HEAP=y
-# end of Memory Management
 
 #
 # Kernel Device Object
@@ -75,10 +76,9 @@ CONFIG_RT_USING_CONSOLE=y
 CONFIG_RT_CONSOLEBUF_SIZE=128
 CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
 # CONFIG_RT_PRINTF_LONGLONG is not set
-# end of Kernel Device Object
-
 CONFIG_RT_VER_NUM=0x40004
-# end of RT-Thread Kernel
+# CONFIG_RT_USING_CPU_FFS is not set
+# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
 
 #
 # RT-Thread Components
@@ -92,7 +92,6 @@ CONFIG_RT_MAIN_THREAD_PRIORITY=10
 # C++ features
 #
 # CONFIG_RT_USING_CPLUSPLUS is not set
-# end of C++ features
 
 #
 # Command shell
@@ -112,13 +111,11 @@ CONFIG_FINSH_USING_DESCRIPTION=y
 # CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
 # CONFIG_FINSH_USING_AUTH is not set
 CONFIG_FINSH_ARG_MAX=10
-# end of Command shell
 
 #
 # Device virtual file system
 #
 # CONFIG_RT_USING_DFS is not set
-# end of Device virtual file system
 
 #
 # Device Drivers
@@ -158,20 +155,17 @@ CONFIG_RT_USING_PIN=y
 #
 # Using USB
 #
+# CONFIG_RT_USING_USB is not set
 # CONFIG_RT_USING_USB_HOST is not set
 # CONFIG_RT_USING_USB_DEVICE is not set
-# end of Using USB
-# end of Device Drivers
 
 #
 # POSIX layer and C standard library
 #
-CONFIG_RT_USING_LIBC=y
+# CONFIG_RT_USING_LIBC is not set
 # CONFIG_RT_USING_PTHREADS is not set
 CONFIG_RT_LIBC_USING_TIME=y
-# CONFIG_RT_USING_MODULE is not set
 CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
-# end of POSIX layer and C standard library
 
 #
 # Network
@@ -181,32 +175,26 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # Socket abstraction layer
 #
 # CONFIG_RT_USING_SAL is not set
-# end of Socket abstraction layer
 
 #
 # Network interface device
 #
 # CONFIG_RT_USING_NETDEV is not set
-# end of Network interface device
 
 #
 # light weight TCP/IP stack
 #
 # CONFIG_RT_USING_LWIP is not set
-# end of light weight TCP/IP stack
 
 #
 # AT commands
 #
 # CONFIG_RT_USING_AT is not set
-# end of AT commands
-# end of Network
 
 #
 # VBUS(Virtual Software BUS)
 #
 # CONFIG_RT_USING_VBUS is not set
-# end of VBUS(Virtual Software BUS)
 
 #
 # Utilities
@@ -216,14 +204,11 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_RT_USING_UTEST is not set
 # CONFIG_RT_USING_VAR_EXPORT is not set
 # CONFIG_RT_USING_RT_LINK is not set
-# end of Utilities
-# end of RT-Thread Components
 
 #
 # RT-Thread Utestcases
 #
 # CONFIG_RT_USING_UTESTCASES is not set
-# end of RT-Thread Utestcases
 
 #
 # RT-Thread online packages
@@ -258,17 +243,12 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # Marvell WiFi
 #
 # CONFIG_PKG_USING_WLANMARVELL is not set
-# end of Marvell WiFi
 
 #
 # Wiced WiFi
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
-# end of Wiced WiFi
-
 # CONFIG_PKG_USING_RW007 is not set
-# end of Wi-Fi
-
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -290,8 +270,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_JIOT-C-SDK is not set
 # CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
 # CONFIG_PKG_USING_JOYLINK is not set
-# end of IoT Cloud
-
 # CONFIG_PKG_USING_NIMBLE is not set
 # CONFIG_PKG_USING_OTA_DOWNLOADER is not set
 # CONFIG_PKG_USING_IPMSG is not set
@@ -325,7 +303,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
 # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
 # CONFIG_PKG_USING_HM is not set
-# end of IoT - internet of things
 
 #
 # security packages
@@ -335,7 +312,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_TINYCRYPT is not set
 # CONFIG_PKG_USING_TFM is not set
 # CONFIG_PKG_USING_YD_CRYPTO is not set
-# end of security packages
 
 #
 # language packages
@@ -344,22 +320,19 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
 # CONFIG_PKG_USING_MICROPYTHON is not set
 # CONFIG_PKG_USING_PIKASCRIPT is not set
-# end of language packages
 
 #
 # multimedia packages
 #
-# CONFIG_PKG_USING_OPENMV is not set
-# CONFIG_PKG_USING_MUPDF is not set
-# CONFIG_PKG_USING_STEMWIN is not set
 
 #
-# lvgl: powerful and easy-to-use embedded GUI library
+# LVGL: powerful and easy-to-use embedded GUI library
 #
 # CONFIG_PKG_USING_LITTLEVGL2RTT is not set
 # CONFIG_PKG_USING_LVGL is not set
-# end of lvgl: powerful and easy-to-use embedded GUI library
-
+# CONFIG_PKG_USING_OPENMV is not set
+# CONFIG_PKG_USING_MUPDF is not set
+# CONFIG_PKG_USING_STEMWIN is not set
 # CONFIG_PKG_USING_WAVPLAYER is not set
 # CONFIG_PKG_USING_TJPGD is not set
 # CONFIG_PKG_USING_PDFGEN is not set
@@ -376,8 +349,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 #
 # CONFIG_PKG_USING_U8G2_OFFICIAL is not set
 # CONFIG_PKG_USING_U8G2 is not set
-# end of u8g2: a monochrome graphic library
-# end of multimedia packages
 
 #
 # tools packages
@@ -420,7 +391,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_MEM_SANDBOX is not set
 # CONFIG_PKG_USING_SOLAR_TERMS is not set
 # CONFIG_PKG_USING_GAN_ZHI is not set
-# end of tools packages
 
 #
 # system packages
@@ -433,7 +403,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
 # CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
 # CONFIG_PKG_USING_QFPLIB_M3 is not set
-# end of acceleration: Assembly language or algorithmic acceleration packages
 
 #
 # Micrium: Micrium software products porting for RT-Thread
@@ -444,8 +413,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_UC_CLK is not set
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
-# end of Micrium: Micrium software products porting for RT-Thread
-
 # CONFIG_PKG_USING_GUIENGINE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
@@ -479,7 +446,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_WCWIDTH is not set
 # CONFIG_PKG_USING_MCUBOOT is not set
 # CONFIG_PKG_USING_TINYUSB is not set
-# end of system packages
 
 #
 # peripheral libraries and drivers
@@ -555,7 +521,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
 # CONFIG_PKG_USING_BL_MCU_SDK is not set
 # CONFIG_PKG_USING_SOFT_SERIAL is not set
-# end of peripheral libraries and drivers
+# CONFIG_PKG_USING_MB85RS16 is not set
 
 #
 # AI packages
@@ -569,7 +535,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_ULAPACK is not set
 # CONFIG_PKG_USING_QUEST is not set
 # CONFIG_PKG_USING_NAXOS is not set
-# end of AI packages
 
 #
 # miscellaneous packages
@@ -582,7 +547,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
 # CONFIG_PKG_USING_NETWORK_SAMPLES is not set
 # CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
-# end of samples: kernel and components samples
 
 #
 # entertainment: terminal games and other interesting software packages
@@ -596,8 +560,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_SNAKE is not set
 # CONFIG_PKG_USING_TETRIS is not set
 # CONFIG_PKG_USING_DONUT is not set
-# end of entertainment: terminal games and other interesting software packages
-
 # CONFIG_PKG_USING_LIBCSV is not set
 # CONFIG_PKG_USING_OPTPARSE is not set
 # CONFIG_PKG_USING_FASTLZ is not set
@@ -627,8 +589,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_MCURSES is not set
 # CONFIG_PKG_USING_COWSAY is not set
 # CONFIG_PKG_USING_TERMBOX is not set
-# end of miscellaneous packages
-# end of RT-Thread online packages
 
 #
 # Hardware Drivers Config
@@ -639,7 +599,6 @@ CONFIG_SOC_GD32VF103V=y
 # Onboard Peripheral Drivers
 #
 CONFIG_BSP_USING_USART=y
-# end of Onboard Peripheral Drivers
 
 #
 # On-chip Peripheral Drivers
@@ -647,11 +606,8 @@ CONFIG_BSP_USING_USART=y
 CONFIG_BSP_USING_GPIO=y
 CONFIG_BSP_USING_UART=y
 CONFIG_BSP_USING_UART0=y
-# end of On-chip Peripheral Drivers
 
 #
 # Board extended module Drivers
 #
-# end of Hardware Drivers Config
-
 CONFIG_SOC_GD32VF103=y

+ 0 - 2
bsp/gd32vf103v-eval/SConscript

@@ -13,6 +13,4 @@ for d in list:
     if os.path.isfile(os.path.join(path, 'SConscript')):
         objs = objs + SConscript(os.path.join(d, 'SConscript'))
 
-group = DefineGroup('', src, depend = [''], CPPPATH = [])
-#objs += group
 Return('objs')

+ 2 - 5
bsp/gd32vf103v-eval/libraries/SConscript

@@ -15,11 +15,8 @@ src += ['GD32VF103_standard_peripheral/system_gd32vf103.c',
 
 CPPPATH = [ cwd + '/GD32VF103_standard_peripheral/Include',
             cwd + '/GD32VF103_standard_peripheral',
-            cwd + '/n22/drivers',
-            cwd + '/n22/stubs']
+            cwd + '/n22/drivers']
 
-CPPDEFINES = []
-
-group = DefineGroup('Libraries', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES=CPPDEFINES)
+group = DefineGroup('Libraries', src, depend = [''], CPPPATH = CPPPATH)
 
 Return('group')

+ 4 - 5
bsp/gd32vf103v-eval/libraries/n22/env_Eclipse/handlers.c

@@ -1,12 +1,12 @@
 //See LICENSE for license details.
 #include <stdint.h>
 #include <stdio.h>
-#include <unistd.h>
 #include "riscv_encoding.h"
 #include "n22_func.h"
+#include <rtthread.h>
+
 __attribute__((weak))  uintptr_t handle_nmi() {
-    write(1, "nmi\n", 5);
-    _exit(1);
+    rt_kprintf("nmi\n");
     return 0;
 }
 
@@ -14,8 +14,7 @@ __attribute__((weak))  uintptr_t handle_trap(uintptr_t mcause, uintptr_t sp) {
     if (mcause == 0xFFF) {
         handle_nmi();
     }
-    write(1, "trap\n", 5);
-    _exit(mcause);
+    rt_kprintf("trap\n");
     return 0;
 }
 

+ 1 - 1
bsp/gd32vf103v-eval/libraries/n22/env_Eclipse/start.S

@@ -241,7 +241,7 @@ _start0800:
 	li a0, 0
 	li a1, 0
 	call entry
-	tail exit
+	/* tail exit */
 
 1:
 	j 1b

+ 3 - 47
bsp/gd32vf103v-eval/rtconfig.h

@@ -1,7 +1,8 @@
 #ifndef RT_CONFIG_H__
 #define RT_CONFIG_H__
 
-/* Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib) */
+/* Automatically generated file; DO NOT EDIT. */
+/* RT-Thread Configuration */
 
 /* RT-Thread Kernel */
 
@@ -21,7 +22,6 @@
 
 /* kservice optimization */
 
-/* end of kservice optimization */
 #define RT_DEBUG
 
 /* Inter-Thread communication */
@@ -31,14 +31,12 @@
 #define RT_USING_EVENT
 #define RT_USING_MAILBOX
 #define RT_USING_MESSAGEQUEUE
-/* end of Inter-Thread communication */
 
 /* Memory Management */
 
 #define RT_USING_MEMPOOL
 #define RT_USING_SMALL_MEM
 #define RT_USING_HEAP
-/* end of Memory Management */
 
 /* Kernel Device Object */
 
@@ -46,9 +44,7 @@
 #define RT_USING_CONSOLE
 #define RT_CONSOLEBUF_SIZE 128
 #define RT_CONSOLE_DEVICE_NAME "uart0"
-/* end of Kernel Device Object */
 #define RT_VER_NUM 0x40004
-/* end of RT-Thread Kernel */
 
 /* RT-Thread Components */
 
@@ -59,7 +55,6 @@
 
 /* C++ features */
 
-/* end of C++ features */
 
 /* Command shell */
 
@@ -76,11 +71,9 @@
 #define MSH_USING_BUILT_IN_COMMANDS
 #define FINSH_USING_DESCRIPTION
 #define FINSH_ARG_MAX 10
-/* end of Command shell */
 
 /* Device virtual file system */
 
-/* end of Device virtual file system */
 
 /* Device Drivers */
 
@@ -93,47 +86,34 @@
 
 /* Using USB */
 
-/* end of Using USB */
-/* end of Device Drivers */
 
 /* POSIX layer and C standard library */
 
-#define RT_USING_LIBC
 #define RT_LIBC_USING_TIME
 #define RT_LIBC_DEFAULT_TIMEZONE 8
-/* end of POSIX layer and C standard library */
 
 /* Network */
 
 /* Socket abstraction layer */
 
-/* end of Socket abstraction layer */
 
 /* Network interface device */
 
-/* end of Network interface device */
 
 /* light weight TCP/IP stack */
 
-/* end of light weight TCP/IP stack */
 
 /* AT commands */
 
-/* end of AT commands */
-/* end of Network */
 
 /* VBUS(Virtual Software BUS) */
 
-/* end of VBUS(Virtual Software BUS) */
 
 /* Utilities */
 
-/* end of Utilities */
-/* end of RT-Thread Components */
 
 /* RT-Thread Utestcases */
 
-/* end of RT-Thread Utestcases */
 
 /* RT-Thread online packages */
 
@@ -144,72 +124,51 @@
 
 /* Marvell WiFi */
 
-/* end of Marvell WiFi */
 
 /* Wiced WiFi */
 
-/* end of Wiced WiFi */
-/* end of Wi-Fi */
 
 /* IoT Cloud */
 
-/* end of IoT Cloud */
-/* end of IoT - internet of things */
 
 /* security packages */
 
-/* end of security packages */
 
 /* language packages */
 
-/* end of language packages */
 
 /* multimedia packages */
 
+/* LVGL: powerful and easy-to-use embedded GUI library */
 
-/* lvgl: powerful and easy-to-use embedded GUI library */
-
-/* end of lvgl: powerful and easy-to-use embedded GUI library */
 
 /* u8g2: a monochrome graphic library */
 
-/* end of u8g2: a monochrome graphic library */
-/* end of multimedia packages */
 
 /* tools packages */
 
-/* end of tools packages */
 
 /* system packages */
 
 /* acceleration: Assembly language or algorithmic acceleration packages */
 
-/* end of acceleration: Assembly language or algorithmic acceleration packages */
 
 /* Micrium: Micrium software products porting for RT-Thread */
 
-/* end of Micrium: Micrium software products porting for RT-Thread */
-/* end of system packages */
 
 /* peripheral libraries and drivers */
 
-/* end of peripheral libraries and drivers */
 
 /* AI packages */
 
-/* end of AI packages */
 
 /* miscellaneous packages */
 
 /* samples: kernel and components samples */
 
-/* end of samples: kernel and components samples */
 
 /* entertainment: terminal games and other interesting software packages */
 
-/* end of entertainment: terminal games and other interesting software packages */
-/* end of miscellaneous packages */
-/* end of RT-Thread online packages */
 
 /* Hardware Drivers Config */
 
@@ -218,18 +177,15 @@
 /* Onboard Peripheral Drivers */
 
 #define BSP_USING_USART
-/* end of Onboard Peripheral Drivers */
 
 /* On-chip Peripheral Drivers */
 
 #define BSP_USING_GPIO
 #define BSP_USING_UART
 #define BSP_USING_UART0
-/* end of On-chip Peripheral Drivers */
 
 /* Board extended module Drivers */
 
-/* end of Hardware Drivers Config */
 #define SOC_GD32VF103
 
 #endif

+ 1 - 1
bsp/lm3s8962/applications/startup.c

@@ -119,7 +119,7 @@ void rtthread_startup(void)
 #ifdef RT_USING_FINSH
     /* init finsh */
     finsh_system_init();
-#if !defined(RT_USING_LIBC) && defined(RT_USING_DEVICE)
+#if !defined(RT_LIBC_USING_FILEIO) && defined(RT_USING_DEVICE)
     finsh_set_device("uart1");
 #endif
 #endif

+ 15 - 58
bsp/lpc1114/.config

@@ -1,9 +1,13 @@
-# Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib)
+#
+# Automatically generated file; DO NOT EDIT.
+# RT-Thread Configuration
+#
 
 #
 # RT-Thread Kernel
 #
 CONFIG_RT_NAME_MAX=8
+# CONFIG_RT_USING_BIG_ENDIAN is not set
 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set
 # CONFIG_RT_USING_SMP is not set
 CONFIG_RT_ALIGN_SIZE=4
@@ -23,8 +27,7 @@ CONFIG_IDLE_THREAD_STACK_SIZE=256
 #
 # CONFIG_RT_KSERVICE_USING_STDLIB is not set
 # CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
-# end of kservice optimization
-
+# CONFIG_RT_USING_ASM_MEMCPY is not set
 # CONFIG_RT_DEBUG is not set
 
 #
@@ -36,7 +39,6 @@ CONFIG_RT_USING_EVENT=y
 CONFIG_RT_USING_MAILBOX=y
 CONFIG_RT_USING_MESSAGEQUEUE=y
 # CONFIG_RT_USING_SIGNALS is not set
-# end of Inter-Thread communication
 
 #
 # Memory Management
@@ -49,7 +51,6 @@ CONFIG_RT_USING_SMALL_MEM=y
 # CONFIG_RT_USING_USERHEAP is not set
 # CONFIG_RT_USING_MEMTRACE is not set
 CONFIG_RT_USING_HEAP=y
-# end of Memory Management
 
 #
 # Kernel Device Object
@@ -61,14 +62,12 @@ CONFIG_RT_USING_CONSOLE=y
 CONFIG_RT_CONSOLEBUF_SIZE=128
 CONFIG_RT_CONSOLE_DEVICE_NAME="uart"
 # CONFIG_RT_PRINTF_LONGLONG is not set
-# end of Kernel Device Object
-
 CONFIG_RT_VER_NUM=0x40004
-# end of RT-Thread Kernel
-
 CONFIG_ARCH_ARM=y
+# CONFIG_RT_USING_CPU_FFS is not set
 CONFIG_ARCH_ARM_CORTEX_M=y
 CONFIG_ARCH_ARM_CORTEX_M0=y
+# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
 
 #
 # RT-Thread Components
@@ -82,7 +81,6 @@ CONFIG_RT_MAIN_THREAD_PRIORITY=10
 # C++ features
 #
 # CONFIG_RT_USING_CPLUSPLUS is not set
-# end of C++ features
 
 #
 # Command shell
@@ -102,13 +100,11 @@ CONFIG_FINSH_USING_DESCRIPTION=y
 # CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
 # CONFIG_FINSH_USING_AUTH is not set
 CONFIG_FINSH_ARG_MAX=10
-# end of Command shell
 
 #
 # Device virtual file system
 #
 # CONFIG_RT_USING_DFS is not set
-# end of Device virtual file system
 
 #
 # Device Drivers
@@ -148,20 +144,17 @@ CONFIG_RT_USING_PIN=y
 #
 # Using USB
 #
+# CONFIG_RT_USING_USB is not set
 # CONFIG_RT_USING_USB_HOST is not set
 # CONFIG_RT_USING_USB_DEVICE is not set
-# end of Using USB
-# end of Device Drivers
 
 #
 # POSIX layer and C standard library
 #
-CONFIG_RT_USING_LIBC=y
+# CONFIG_RT_USING_LIBC is not set
 # CONFIG_RT_USING_PTHREADS is not set
 CONFIG_RT_LIBC_USING_TIME=y
-# CONFIG_RT_USING_MODULE is not set
 CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
-# end of POSIX layer and C standard library
 
 #
 # Network
@@ -171,32 +164,26 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # Socket abstraction layer
 #
 # CONFIG_RT_USING_SAL is not set
-# end of Socket abstraction layer
 
 #
 # Network interface device
 #
 # CONFIG_RT_USING_NETDEV is not set
-# end of Network interface device
 
 #
 # light weight TCP/IP stack
 #
 # CONFIG_RT_USING_LWIP is not set
-# end of light weight TCP/IP stack
 
 #
 # AT commands
 #
 # CONFIG_RT_USING_AT is not set
-# end of AT commands
-# end of Network
 
 #
 # VBUS(Virtual Software BUS)
 #
 # CONFIG_RT_USING_VBUS is not set
-# end of VBUS(Virtual Software BUS)
 
 #
 # Utilities
@@ -206,16 +193,12 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_RT_USING_UTEST is not set
 # CONFIG_RT_USING_VAR_EXPORT is not set
 # CONFIG_RT_USING_RT_LINK is not set
-# end of Utilities
-
 # CONFIG_RT_USING_LWP is not set
-# end of RT-Thread Components
 
 #
 # RT-Thread Utestcases
 #
 # CONFIG_RT_USING_UTESTCASES is not set
-# end of RT-Thread Utestcases
 
 #
 # RT-Thread online packages
@@ -250,17 +233,12 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # Marvell WiFi
 #
 # CONFIG_PKG_USING_WLANMARVELL is not set
-# end of Marvell WiFi
 
 #
 # Wiced WiFi
 #
 # CONFIG_PKG_USING_WLAN_WICED is not set
-# end of Wiced WiFi
-
 # CONFIG_PKG_USING_RW007 is not set
-# end of Wi-Fi
-
 # CONFIG_PKG_USING_COAP is not set
 # CONFIG_PKG_USING_NOPOLL is not set
 # CONFIG_PKG_USING_NETUTILS is not set
@@ -282,8 +260,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_JIOT-C-SDK is not set
 # CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
 # CONFIG_PKG_USING_JOYLINK is not set
-# end of IoT Cloud
-
 # CONFIG_PKG_USING_NIMBLE is not set
 # CONFIG_PKG_USING_OTA_DOWNLOADER is not set
 # CONFIG_PKG_USING_IPMSG is not set
@@ -317,7 +293,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
 # CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
 # CONFIG_PKG_USING_HM is not set
-# end of IoT - internet of things
 
 #
 # security packages
@@ -327,7 +302,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_TINYCRYPT is not set
 # CONFIG_PKG_USING_TFM is not set
 # CONFIG_PKG_USING_YD_CRYPTO is not set
-# end of security packages
 
 #
 # language packages
@@ -336,22 +310,19 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_JERRYSCRIPT is not set
 # CONFIG_PKG_USING_MICROPYTHON is not set
 # CONFIG_PKG_USING_PIKASCRIPT is not set
-# end of language packages
 
 #
 # multimedia packages
 #
-# CONFIG_PKG_USING_OPENMV is not set
-# CONFIG_PKG_USING_MUPDF is not set
-# CONFIG_PKG_USING_STEMWIN is not set
 
 #
-# lvgl: powerful and easy-to-use embedded GUI library
+# LVGL: powerful and easy-to-use embedded GUI library
 #
 # CONFIG_PKG_USING_LITTLEVGL2RTT is not set
 # CONFIG_PKG_USING_LVGL is not set
-# end of lvgl: powerful and easy-to-use embedded GUI library
-
+# CONFIG_PKG_USING_OPENMV is not set
+# CONFIG_PKG_USING_MUPDF is not set
+# CONFIG_PKG_USING_STEMWIN is not set
 # CONFIG_PKG_USING_WAVPLAYER is not set
 # CONFIG_PKG_USING_TJPGD is not set
 # CONFIG_PKG_USING_PDFGEN is not set
@@ -368,8 +339,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 #
 # CONFIG_PKG_USING_U8G2_OFFICIAL is not set
 # CONFIG_PKG_USING_U8G2 is not set
-# end of u8g2: a monochrome graphic library
-# end of multimedia packages
 
 #
 # tools packages
@@ -412,7 +381,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_MEM_SANDBOX is not set
 # CONFIG_PKG_USING_SOLAR_TERMS is not set
 # CONFIG_PKG_USING_GAN_ZHI is not set
-# end of tools packages
 
 #
 # system packages
@@ -425,7 +393,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
 # CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
 # CONFIG_PKG_USING_QFPLIB_M3 is not set
-# end of acceleration: Assembly language or algorithmic acceleration packages
 
 #
 # Micrium: Micrium software products porting for RT-Thread
@@ -436,8 +403,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_UC_CLK is not set
 # CONFIG_PKG_USING_UC_COMMON is not set
 # CONFIG_PKG_USING_UC_MODBUS is not set
-# end of Micrium: Micrium software products porting for RT-Thread
-
 # CONFIG_PKG_USING_GUIENGINE is not set
 # CONFIG_PKG_USING_CAIRO is not set
 # CONFIG_PKG_USING_PIXMAN is not set
@@ -471,7 +436,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_WCWIDTH is not set
 # CONFIG_PKG_USING_MCUBOOT is not set
 # CONFIG_PKG_USING_TINYUSB is not set
-# end of system packages
 
 #
 # peripheral libraries and drivers
@@ -547,7 +511,7 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
 # CONFIG_PKG_USING_BL_MCU_SDK is not set
 # CONFIG_PKG_USING_SOFT_SERIAL is not set
-# end of peripheral libraries and drivers
+# CONFIG_PKG_USING_MB85RS16 is not set
 
 #
 # AI packages
@@ -561,7 +525,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_ULAPACK is not set
 # CONFIG_PKG_USING_QUEST is not set
 # CONFIG_PKG_USING_NAXOS is not set
-# end of AI packages
 
 #
 # miscellaneous packages
@@ -574,7 +537,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
 # CONFIG_PKG_USING_NETWORK_SAMPLES is not set
 # CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
-# end of samples: kernel and components samples
 
 #
 # entertainment: terminal games and other interesting software packages
@@ -588,8 +550,6 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_SNAKE is not set
 # CONFIG_PKG_USING_TETRIS is not set
 # CONFIG_PKG_USING_DONUT is not set
-# end of entertainment: terminal games and other interesting software packages
-
 # CONFIG_PKG_USING_LIBCSV is not set
 # CONFIG_PKG_USING_OPTPARSE is not set
 # CONFIG_PKG_USING_FASTLZ is not set
@@ -619,7 +579,4 @@ CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
 # CONFIG_PKG_USING_MCURSES is not set
 # CONFIG_PKG_USING_COWSAY is not set
 # CONFIG_PKG_USING_TERMBOX is not set
-# end of miscellaneous packages
-# end of RT-Thread online packages
-
 CONFIG_SOC_LPC1114=y

+ 3 - 44
bsp/lpc1114/rtconfig.h

@@ -1,7 +1,8 @@
 #ifndef RT_CONFIG_H__
 #define RT_CONFIG_H__
 
-/* Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib) */
+/* Automatically generated file; DO NOT EDIT. */
+/* RT-Thread Configuration */
 
 /* RT-Thread Kernel */
 
@@ -14,7 +15,6 @@
 
 /* kservice optimization */
 
-/* end of kservice optimization */
 
 /* Inter-Thread communication */
 
@@ -23,14 +23,12 @@
 #define RT_USING_EVENT
 #define RT_USING_MAILBOX
 #define RT_USING_MESSAGEQUEUE
-/* end of Inter-Thread communication */
 
 /* Memory Management */
 
 #define RT_USING_MEMPOOL
 #define RT_USING_SMALL_MEM
 #define RT_USING_HEAP
-/* end of Memory Management */
 
 /* Kernel Device Object */
 
@@ -38,9 +36,7 @@
 #define RT_USING_CONSOLE
 #define RT_CONSOLEBUF_SIZE 128
 #define RT_CONSOLE_DEVICE_NAME "uart"
-/* end of Kernel Device Object */
 #define RT_VER_NUM 0x40004
-/* end of RT-Thread Kernel */
 #define ARCH_ARM
 #define ARCH_ARM_CORTEX_M
 #define ARCH_ARM_CORTEX_M0
@@ -54,7 +50,6 @@
 
 /* C++ features */
 
-/* end of C++ features */
 
 /* Command shell */
 
@@ -71,11 +66,9 @@
 #define MSH_USING_BUILT_IN_COMMANDS
 #define FINSH_USING_DESCRIPTION
 #define FINSH_ARG_MAX 10
-/* end of Command shell */
 
 /* Device virtual file system */
 
-/* end of Device virtual file system */
 
 /* Device Drivers */
 
@@ -88,47 +81,34 @@
 
 /* Using USB */
 
-/* end of Using USB */
-/* end of Device Drivers */
 
 /* POSIX layer and C standard library */
 
-#define RT_USING_LIBC
 #define RT_LIBC_USING_TIME
 #define RT_LIBC_DEFAULT_TIMEZONE 8
-/* end of POSIX layer and C standard library */
 
 /* Network */
 
 /* Socket abstraction layer */
 
-/* end of Socket abstraction layer */
 
 /* Network interface device */
 
-/* end of Network interface device */
 
 /* light weight TCP/IP stack */
 
-/* end of light weight TCP/IP stack */
 
 /* AT commands */
 
-/* end of AT commands */
-/* end of Network */
 
 /* VBUS(Virtual Software BUS) */
 
-/* end of VBUS(Virtual Software BUS) */
 
 /* Utilities */
 
-/* end of Utilities */
-/* end of RT-Thread Components */
 
 /* RT-Thread Utestcases */
 
-/* end of RT-Thread Utestcases */
 
 /* RT-Thread online packages */
 
@@ -139,72 +119,51 @@
 
 /* Marvell WiFi */
 
-/* end of Marvell WiFi */
 
 /* Wiced WiFi */
 
-/* end of Wiced WiFi */
-/* end of Wi-Fi */
 
 /* IoT Cloud */
 
-/* end of IoT Cloud */
-/* end of IoT - internet of things */
 
 /* security packages */
 
-/* end of security packages */
 
 /* language packages */
 
-/* end of language packages */
 
 /* multimedia packages */
 
+/* LVGL: powerful and easy-to-use embedded GUI library */
 
-/* lvgl: powerful and easy-to-use embedded GUI library */
-
-/* end of lvgl: powerful and easy-to-use embedded GUI library */
 
 /* u8g2: a monochrome graphic library */
 
-/* end of u8g2: a monochrome graphic library */
-/* end of multimedia packages */
 
 /* tools packages */
 
-/* end of tools packages */
 
 /* system packages */
 
 /* acceleration: Assembly language or algorithmic acceleration packages */
 
-/* end of acceleration: Assembly language or algorithmic acceleration packages */
 
 /* Micrium: Micrium software products porting for RT-Thread */
 
-/* end of Micrium: Micrium software products porting for RT-Thread */
-/* end of system packages */
 
 /* peripheral libraries and drivers */
 
-/* end of peripheral libraries and drivers */
 
 /* AI packages */
 
-/* end of AI packages */
 
 /* miscellaneous packages */
 
 /* samples: kernel and components samples */
 
-/* end of samples: kernel and components samples */
 
 /* entertainment: terminal games and other interesting software packages */
 
-/* end of entertainment: terminal games and other interesting software packages */
-/* end of miscellaneous packages */
-/* end of RT-Thread online packages */
 #define SOC_LPC1114
 
 #endif

+ 2 - 2
components/dfs/src/dfs.c

@@ -18,7 +18,7 @@
 #include <lwp.h>
 #endif
 
-#ifdef RT_USING_LIBC
+#ifdef RT_LIBC_USING_FILEIO
 #include <libc.h>
 #endif
 
@@ -216,7 +216,7 @@ struct dfs_fd *fd_get(int fd)
     struct dfs_fd *d;
     struct dfs_fdtable *fdt;
 
-#ifdef RT_USING_LIBC
+#ifdef RT_LIBC_USING_FILEIO
     if ((0 <= fd) && (fd <= 2))
         fd = libc_stdio_get_console();
 #endif

+ 4 - 4
components/finsh/shell.c

@@ -145,7 +145,7 @@ void finsh_set_prompt_mode(rt_uint32_t prompt_mode)
 int finsh_getchar(void)
 {
 #ifdef RT_USING_DEVICE
-#ifdef RT_USING_LIBC
+#ifdef RT_LIBC_USING_FILEIO
     return getchar();
 #else
     char ch = 0;
@@ -163,14 +163,14 @@ int finsh_getchar(void)
         rt_sem_take(&shell->rx_sem, RT_WAITING_FOREVER);
 
     return ch;
-#endif /* RT_USING_LIBC */
+#endif /* RT_LIBC_USING_FILEIO */
 #else
     extern char rt_hw_console_getchar(void);
     return rt_hw_console_getchar();
 #endif /* RT_USING_DEVICE */
 }
 
-#if !defined(RT_USING_LIBC) && defined(RT_USING_DEVICE)
+#if !defined(RT_LIBC_USING_FILEIO) && defined(RT_USING_DEVICE)
 static rt_err_t finsh_rx_ind(rt_device_t dev, rt_size_t size)
 {
     RT_ASSERT(shell != RT_NULL);
@@ -436,7 +436,7 @@ void finsh_thread_entry(void *parameter)
     shell->echo_mode = 0;
 #endif
 
-#if !defined(RT_USING_LIBC) && defined(RT_USING_DEVICE)
+#if !defined(RT_LIBC_USING_FILEIO) && defined(RT_USING_DEVICE)
     /* set console device as shell device */
     if (shell->device == RT_NULL)
     {

+ 1 - 1
components/finsh/shell.h

@@ -78,7 +78,7 @@ struct finsh_shell
     rt_uint16_t line_position;
     rt_uint16_t line_curpos;
 
-#if !defined(RT_USING_LIBC) && defined(RT_USING_DEVICE)
+#if !defined(RT_LIBC_USING_FILEIO) && defined(RT_USING_DEVICE)
     rt_device_t device;
 #endif
 

+ 35 - 32
components/libc/Kconfig

@@ -2,18 +2,49 @@ menu "POSIX layer and C standard library"
 
 config RT_USING_LIBC
     bool "Enable libc APIs from toolchain"
-    select RT_USING_DFS
-    select RT_USING_POSIX
     default y
 
+if RT_USING_LIBC
+    config RT_LIBC_USING_TIME
+        default y
+
+    config RT_LIBC_USING_FILEIO
+        bool "Enable libc with file operation, eg.fopen/fwrite/fread/getchar"
+        select RT_USING_DFS
+        select RT_USING_POSIX
+        default n
+
+    config RT_USING_MODULE
+        bool "Enable dynamic module with dlopen/dlsym/dlclose feature"
+        default n
+
+    if RT_USING_MODULE
+        config RT_USING_CUSTOM_DLMODULE
+            bool "Enable load dynamic module by custom"
+            default n
+    endif
+endif
+
+if RT_USING_LIBC != y
+    config RT_LIBC_USING_TIME
+    bool "Enable time functions without compiler's libc"
+    default y
+endif
+
+config RT_LIBC_DEFAULT_TIMEZONE
+    depends on (RT_LIBC_USING_TIME || RT_USING_LIBC)
+    int "Set the default time zone (UTC+)"
+    range -12 12
+    default 8
+
 config RT_USING_PTHREADS
     bool "Enable pthreads APIs"
     default n
 
 if RT_USING_PTHREADS
     config PTHREAD_NUM_MAX
-    int "Maximum number of pthreads"
-    default 8
+        int "Maximum number of pthreads"
+        default 8
 endif
 
 if RT_USING_DFS
@@ -42,32 +73,4 @@ if RT_USING_DFS
 
 endif
 
-if RT_USING_LIBC
-    config RT_LIBC_USING_TIME
-        default y
-
-    config RT_USING_MODULE
-        bool "Enable dynamic module with dlopen/dlsym/dlclose feature"
-        default n
-
-    if RT_USING_MODULE
-        config RT_USING_CUSTOM_DLMODULE
-            bool "Enable load dynamic module by custom"
-            default n
-    endif
-
-endif
-
-if RT_USING_LIBC != y
-    config RT_LIBC_USING_TIME
-    bool "Enable time functions without compiler's libc"
-    default y
-endif
-
-config RT_LIBC_DEFAULT_TIMEZONE
-    depends on (RT_LIBC_USING_TIME || RT_USING_LIBC)
-    int "Set the default time zone (UTC+)"
-    range -12 12
-    default 8
-
 endmenu

+ 0 - 3
components/libc/compilers/armlibc/SConscript

@@ -8,9 +8,6 @@ group = []
 CPPPATH = [cwd]
 CPPDEFINES = ['RT_USING_ARM_LIBC']
 
-if GetDepend('RT_USING_DFS') == False:
-    SrcRemove(src, ['stdio.c'])
-
 if GetDepend('RT_USING_MODULE') == False:
     SrcRemove(src, ['libc_syms.c'])
 

+ 3 - 8
components/libc/compilers/armlibc/libc.c

@@ -7,29 +7,24 @@
  * Date           Author       Notes
  * 2017/10/15     bernard      the first version
  */
-#include <fcntl.h>
 #include <rtthread.h>
+#include <fcntl.h>
 #include "libc.h"
-
 #ifdef RT_USING_PTHREADS
 #include <pthread.h>
 #endif
 
 int libc_system_init(void)
 {
-#if defined(RT_USING_DFS) & defined(RT_USING_DFS_DEVFS)
+#ifdef RT_USING_POSIX
     rt_device_t dev_console;
 
     dev_console = rt_console_get_device();
     if (dev_console)
     {
-    #if defined(RT_USING_POSIX)
         libc_stdio_set_console(dev_console->parent.name, O_RDWR);
-    #else
-        libc_stdio_set_console(dev_console->parent.name, O_WRONLY);
-    #endif
     }
-#endif
+#endif /* RT_USING_POSIX */
 
 #if defined RT_USING_PTHREADS && !defined RT_USING_COMPONENTS_INIT
     pthread_system_init();

+ 4 - 0
components/libc/compilers/armlibc/libc.h

@@ -10,13 +10,17 @@
 #ifndef __RTT_LIBC_H__
 #define __RTT_LIBC_H__
 
+#include <rtconfig.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 int libc_system_init(void);
+#ifdef RT_USING_POSIX
 int libc_stdio_get_console(void);
 int libc_stdio_set_console(const char* device_name, int mode);
+#endif /* RT_USING_POSIX */
 
 #ifdef __cplusplus
 }

+ 5 - 4
components/libc/compilers/armlibc/stdio.c

@@ -7,16 +7,17 @@
  * Date           Author       Notes
  * 2017/10/15     bernard      implement stdio for armcc.
  */
+#include <rtthread.h>
 
+#ifdef RT_USING_POSIX
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
-#include <rtthread.h>
 #include "libc.h"
 
-#if defined(RT_USING_DFS) && defined(RT_USING_DFS_DEVFS)
-#include <dfs_posix.h>
+#include <fcntl.h>
+#include <unistd.h>
 
 #define STDIO_DEVICE_NAME_MAX   32
 
@@ -48,4 +49,4 @@ int libc_stdio_get_console(void)
     return std_fd;
 }
 
-#endif
+#endif /* RT_USING_POSIX */

+ 56 - 65
components/libc/compilers/armlibc/syscalls.c

@@ -14,16 +14,15 @@
  * 2020-02-13     Meco Man     re-implement exit() and abort()
  * 2020-02-14     Meco Man     implement _sys_tmpnam()
  */
-
 #include <string.h>
 #include <rt_sys.h>
 
 #include <rtthread.h>
 #include "libc.h"
 
-#ifdef RT_USING_DFS
-#include <dfs_posix.h>
-#endif
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/stat.h>
 
 #define DBG_TAG    "armlibc.syscalls"
 #define DBG_LVL    DBG_INFO
@@ -55,7 +54,7 @@ const char __stderr_name[] = "STDERR";
  */
 FILEHANDLE _sys_open(const char *name, int openmode)
 {
-#ifdef RT_USING_DFS
+#ifdef RT_LIBC_USING_FILEIO
     int fd;
     int mode = O_RDONLY;
 #endif
@@ -68,8 +67,8 @@ FILEHANDLE _sys_open(const char *name, int openmode)
     if (strcmp(name, __stderr_name) == 0)
         return (STDERR);
 
-#ifndef RT_USING_DFS
-    return -1;
+#ifndef RT_LIBC_USING_FILEIO
+    return 0; /* error */
 #else
     /* Correct openmode from fopen to open */
     if (openmode & OPEN_PLUS)
@@ -99,21 +98,22 @@ FILEHANDLE _sys_open(const char *name, int openmode)
 
     fd = open(name, mode, 0);
     if (fd < 0)
-        return -1;
+        return 0; /* error */
     else
         return fd;
-#endif
+#endif /* RT_LIBC_USING_FILEIO */
 }
 
 int _sys_close(FILEHANDLE fh)
 {
-#ifndef RT_USING_DFS
-    return 0;
-#else
-    if (fh <= STDERR) return 0;
+#ifdef RT_LIBC_USING_FILEIO
+    if (fh <= STDERR)
+        return 0; /* error */
 
     return close(fh);
-#endif
+#else
+    return 0;
+#endif /* RT_LIBC_USING_FILEIO */
 }
 
 /*
@@ -143,13 +143,11 @@ int _sys_close(FILEHANDLE fh)
  */
 int _sys_read(FILEHANDLE fh, unsigned char *buf, unsigned len, int mode)
 {
-#ifdef RT_USING_DFS
+#ifdef RT_LIBC_USING_FILEIO
     int size;
-#endif
 
     if (fh == STDIN)
     {
-#ifdef RT_USING_POSIX
         if (libc_stdio_get_console() < 0)
         {
             LOG_W("Do not invoke standard output before initializing libc");
@@ -157,25 +155,20 @@ int _sys_read(FILEHANDLE fh, unsigned char *buf, unsigned len, int mode)
         }
         size = read(STDIN_FILENO, buf, len);
         return len - size;
-#else
-        /* no stdin */
-        return -1;
-#endif
     }
     else if ((fh == STDOUT) || (fh == STDERR))
     {
-        return -1;
+        return 0; /* error */
     }
 
-#ifndef RT_USING_DFS
-    return 0;
-#else
     size = read(fh, buf, len);
     if (size >= 0)
         return len - size;
     else
-        return -1;
-#endif
+        return 0; /* error */
+#else
+    return 0; /* error */
+#endif /* RT_LIBC_USING_FILEIO */
 }
 
 /*
@@ -185,16 +178,13 @@ int _sys_read(FILEHANDLE fh, unsigned char *buf, unsigned len, int mode)
  */
 int _sys_write(FILEHANDLE fh, const unsigned char *buf, unsigned len, int mode)
 {
-#ifdef RT_USING_DFS
+#ifdef RT_LIBC_USING_FILEIO
     int size;
-#endif
+#endif /* RT_LIBC_USING_FILEIO */
 
     if ((fh == STDOUT) || (fh == STDERR))
     {
-#if !defined(RT_USING_CONSOLE) || !defined(RT_USING_DEVICE)
-        return 0;
-#else
-#ifdef RT_USING_POSIX
+#ifdef RT_LIBC_USING_FILEIO
         if (libc_stdio_get_console() < 0)
         {
             LOG_W("Do not invoke standard input before initializing libc");
@@ -202,31 +192,29 @@ int _sys_write(FILEHANDLE fh, const unsigned char *buf, unsigned len, int mode)
         }
         size = write(STDOUT_FILENO, buf, len);
         return len - size;
-#else
+#elif defined(RT_USING_CONSOLE)
         if (rt_console_get_device())
         {
             rt_device_write(rt_console_get_device(), -1, buf, len);
-            return 0;
         }
 
-        return -1;
-#endif
-#endif
+        return 0; /* error */
+#endif /* RT_LIBC_USING_FILEIO */
     }
     else if (fh == STDIN)
     {
-        return -1;
+        return 0; /* error */
     }
 
-#ifndef RT_USING_DFS
-    return 0;
-#else
+#ifdef RT_LIBC_USING_FILEIO
     size = write(fh, buf, len);
     if (size >= 0)
         return len - size;
     else
-        return -1;
-#endif
+        return 0; /* error */
+#else
+    return 0;
+#endif /* RT_LIBC_USING_FILEIO */
 }
 
 /*
@@ -235,16 +223,15 @@ int _sys_write(FILEHANDLE fh, const unsigned char *buf, unsigned len, int mode)
  */
 int _sys_seek(FILEHANDLE fh, long pos)
 {
+#ifdef RT_LIBC_USING_FILEIO
     if (fh < STDERR)
-        return -1;
-
-#ifndef RT_USING_DFS
-    return -1;
-#else
+        return 0; /* error */
 
     /* position is relative to the start of file fh */
     return lseek(fh, pos, 0);
-#endif
+#else
+    return 0; /* error */
+#endif /* RT_LIBC_USING_FILEIO */
 }
 
 /**
@@ -270,7 +257,7 @@ void _ttywrch(int ch)
 
     c = (char)ch;
     rt_kprintf(&c);
-#endif
+#endif /* RT_USING_CONSOLE */
 }
 
 /* for exit() and abort() */
@@ -289,17 +276,17 @@ RT_WEAK void _sys_exit(int return_code)
  */
 long _sys_flen(FILEHANDLE fh)
 {
-#ifdef RT_USING_DFS
+#ifdef RT_LIBC_USING_FILEIO
     struct stat stat;
 
     if (fh < STDERR)
-        return -1;
+        return 0; /* error */
 
     fstat(fh, &stat);
     return stat.st_size;
 #else
-    return -1;
-#endif
+    return 0;
+#endif /* RT_LIBC_USING_FILEIO */
 }
 
 int _sys_istty(FILEHANDLE fh)
@@ -312,11 +299,11 @@ int _sys_istty(FILEHANDLE fh)
 
 int remove(const char *filename)
 {
-#ifndef RT_USING_DFS
-    return -1;
-#else
+#ifdef RT_LIBC_USING_FILEIO
     return unlink(filename);
-#endif
+#else
+    return 0; /* error */
+#endif /* RT_LIBC_USING_FILEIO */
 }
 
 #ifdef __MICROLIB
@@ -324,28 +311,32 @@ int remove(const char *filename)
 
 int fputc(int c, FILE *f)
 {
+#ifdef RT_USING_CONSOLE
     char ch[2] = {0};
 
     ch[0] = c;
     rt_kprintf(&ch[0]);
     return 1;
+#else
+    return 0; /* error */
+#endif /* RT_USING_CONSOLE */
 }
 
 int fgetc(FILE *f)
 {
-#ifdef RT_USING_POSIX
+#ifdef RT_LIBC_USING_FILEIO
     char ch;
 
     if (libc_stdio_get_console() < 0)
     {
         LOG_W("Do not invoke standard output before initializing libc");
-        return -1;
+        return 0;
     }
 
     if(read(STDIN_FILENO, &ch, 1) == 1)
         return ch;
-#endif
-
-    return -1;
+#endif /* RT_LIBC_USING_FILEIO */
+    return 0; /* error */
 }
-#endif
+
+#endif /* __MICROLIB */

+ 1 - 1
components/libc/compilers/common/SConscript

@@ -11,7 +11,7 @@ CPPDEFINES = []
 if GetDepend('RT_USING_LIBC'):
     src += Glob('*.c')
 elif GetDepend('RT_LIBC_USING_TIME'):
-    src += Glob('time.c')
+    src += ['time.c']
 
 if rtconfig.CROSS_TOOL == 'keil':
     CPPDEFINES += ['__CLK_TCK=RT_TICK_PER_SECOND']

+ 2 - 3
components/libc/compilers/dlib/SConscript

@@ -11,7 +11,7 @@ CPPDEFINES = ['RT_USING_DLIBC']
 
 if rtconfig.PLATFORM == 'iar':
 
-    if GetDepend('RT_USING_DFS'):
+    if GetDepend('RT_LIBC_USING_FILEIO'):
         from distutils.version import LooseVersion
         from iar import IARVersion
 
@@ -20,7 +20,6 @@ if rtconfig.PLATFORM == 'iar':
         if LooseVersion(IARVersion()) < LooseVersion("8.20.1"):
             CPPDEFINES = CPPDEFINES + ['_DLIB_THREAD_SUPPORT']
 
-    group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], 
-        CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
+    group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
 
 Return('group')

+ 3 - 9
components/libc/compilers/dlib/libc.c

@@ -7,29 +7,24 @@
  * Date           Author       Notes
  * 2017/10/15     bernard      the first version
  */
-#include <fcntl.h>
 #include <rtthread.h>
+#include <fcntl.h>
 #include "libc.h"
-
 #ifdef RT_USING_PTHREADS
 #include <pthread.h>
 #endif
 
 int libc_system_init(void)
 {
-#if defined(RT_USING_DFS) && defined(RT_USING_DFS_DEVFS)
+#ifdef RT_USING_POSIX
     rt_device_t dev_console;
 
     dev_console = rt_console_get_device();
     if (dev_console)
     {
-    #if defined(RT_USING_POSIX)
         libc_stdio_set_console(dev_console->parent.name, O_RDWR);
-    #else
-        libc_stdio_set_console(dev_console->parent.name, O_WRONLY);
-    #endif
     }
-#endif
+#endif /* RT_USING_POSIX */
 
 #if defined (RT_USING_PTHREADS) && !defined (RT_USING_COMPONENTS_INIT)
     pthread_system_init();
@@ -38,4 +33,3 @@ int libc_system_init(void)
     return 0;
 }
 INIT_COMPONENT_EXPORT(libc_system_init);
-

+ 2 - 0
components/libc/compilers/dlib/libc.h

@@ -16,8 +16,10 @@ extern "C" {
 #endif
 
 int libc_system_init(void);
+#ifdef RT_USING_POSIX
 int libc_stdio_get_console(void);
 int libc_stdio_set_console(const char* device_name, int mode);
+#endif /* RT_USING_POSIX */
 
 #ifdef __cplusplus
 }

+ 6 - 6
components/libc/compilers/dlib/stdio.c

@@ -7,17 +7,17 @@
  * Date           Author       Notes
  * 2017/10/15     bernard      implement stdio for IAR dlib.
  */
+#include <rtthread.h>
+
+#ifdef RT_USING_POSIX
 
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-
-#include <rtthread.h>
+#include <fcntl.h>
+#include <unistd.h>
 #include "libc.h"
 
-#if defined(RT_USING_DFS) && defined(RT_USING_DFS_DEVFS)
-#include <dfs_posix.h>
-
 #define STDIO_DEVICE_NAME_MAX   32
 
 static int std_fd = -1;
@@ -46,4 +46,4 @@ int libc_stdio_get_console(void) {
     return std_fd;
 }
 
-#endif
+#endif /* RT_USING_POSIX */

+ 4 - 7
components/libc/compilers/dlib/syscall_close.c

@@ -8,10 +8,8 @@
  * 2015-01-28     Bernard      first version
  */
 #include <rtthread.h>
-#ifdef RT_USING_DFS
-#include <dfs_posix.h>
-#endif
 #include <yfuns.h>
+#include <unistd.h>
 
 #pragma module_name = "?__close"
 int __close(int handle)
@@ -20,10 +18,9 @@ int __close(int handle)
         handle == _LLIO_STDERR ||
         handle == _LLIO_STDIN)
         return _LLIO_ERROR;
-
-#ifdef RT_USING_DFS
+#ifdef RT_LIBC_USING_FILEIO
     return close(handle);
 #else
-    return 0;
-#endif
+    return _LLIO_ERROR;
+#endif /* RT_LIBC_USING_FILEIO */
 }

+ 2 - 5
components/libc/compilers/dlib/syscall_lseek.c

@@ -8,10 +8,8 @@
  * 2015-01-28     Bernard      first version
  */
 #include <rtthread.h>
-#ifdef RT_USING_DFS
-#include <dfs_posix.h>
-#endif
 #include <yfuns.h>
+#include <unistd.h>
 
 #pragma module_name = "?__lseek"
 long __lseek(int handle, long offset, int whence)
@@ -20,8 +18,7 @@ long __lseek(int handle, long offset, int whence)
         handle == _LLIO_STDERR ||
         handle == _LLIO_STDIN)
         return _LLIO_ERROR;
-
-#ifdef RT_USING_DFS
+#ifdef RT_LIBC_USING_FILEIO
     return lseek(handle, offset, whence);
 #else
     return _LLIO_ERROR;

+ 5 - 7
components/libc/compilers/dlib/syscall_open.c

@@ -10,17 +10,13 @@
 
 #include <rtthread.h>
 #include <yfuns.h>
-#ifdef RT_USING_DFS
-#include <dfs_posix.h>
-#endif
+#include <fcntl.h>
 
 #pragma module_name = "?__open"
 
 int __open(const char *filename, int mode)
 {
-#ifndef RT_USING_DFS
-  return _LLIO_ERROR;
-#else
+#ifdef RT_LIBC_USING_FILEIO
   int handle;
   int open_mode = O_RDONLY;
 
@@ -70,5 +66,7 @@ int __open(const char *filename, int mode)
     return _LLIO_ERROR;
 
   return handle;
-#endif
+#else
+  return _LLIO_ERROR;
+#endif /* RT_LIBC_USING_FILEIO */
 }

+ 5 - 13
components/libc/compilers/dlib/syscall_read.c

@@ -9,10 +9,8 @@
  */
 
 #include <rtthread.h>
-#ifdef RT_USING_DFS
-#include <dfs_posix.h>
-#endif
 #include <yfuns.h>
+#include <unistd.h>
 #include "libc.h"
 
 #define DBG_TAG    "dlib.syscall_read"
@@ -22,32 +20,26 @@
 #pragma module_name = "?__read"
 size_t __read(int handle, unsigned char *buf, size_t len)
 {
-#ifdef RT_USING_DFS
+#ifdef RT_LIBC_USING_FILEIO
     int size;
-#endif
 
     if (handle == _LLIO_STDIN)
     {
-#ifdef RT_USING_POSIX
         if (libc_stdio_get_console() < 0)
         {
             LOG_W("Do not invoke standard input before initializing libc");
             return 0;
         }
         return read(STDIN_FILENO, buf, len);
-#else
-        return _LLIO_ERROR;
-#endif
     }
     else if ((handle == _LLIO_STDOUT) || (handle == _LLIO_STDERR))
     {
         return _LLIO_ERROR;
     }
 
-#ifndef RT_USING_DFS
-    return _LLIO_ERROR;
-#else
     size = read(handle, buf, len);
     return size;
-#endif
+#else
+    return _LLIO_ERROR;
+#endif /* RT_LIBC_USING_FILEIO */
 }

+ 5 - 7
components/libc/compilers/dlib/syscall_remove.c

@@ -8,17 +8,15 @@
  * 2015-01-28     Bernard      first version
  */
 #include <rtthread.h>
-#ifdef RT_USING_DFS
-#include <dfs_posix.h>
-#endif
 #include <yfuns.h>
+#include <unistd.h>
 
 #pragma module_name = "?remove"
 int remove(const char *val)
 {
-#ifndef RT_USING_DFS
-    return -1;
-#else
+#ifdef RT_USING_POSIX
     return unlink(val);
-#endif
+#else
+    return -1;
+#endif /* RT_USING_POSIX */
 }

+ 12 - 18
components/libc/compilers/dlib/syscall_write.c

@@ -9,10 +9,8 @@
  */
 
 #include <rtthread.h>
-#ifdef RT_USING_DFS
-#include <dfs_posix.h>
-#endif
 #include <yfuns.h>
+#include <unistd.h>
 #include "libc.h"
 
 #define DBG_TAG    "dlib.syscall_write"
@@ -23,24 +21,20 @@
 
 size_t __write(int handle, const unsigned char *buf, size_t len)
 {
-#ifdef RT_USING_DFS
+#ifdef RT_LIBC_USING_FILEIO
     int size;
-#endif
+#endif /* RT_LIBC_USING_FILEIO */
 
     if ((handle == _LLIO_STDOUT) || (handle == _LLIO_STDERR))
     {
-#ifndef RT_USING_CONSOLE
-        return _LLIO_ERROR;
-#else
-
-#ifdef RT_USING_POSIX
+#ifdef RT_LIBC_USING_FILEIO
         if (libc_stdio_get_console() < 0)
         {
             LOG_W("Do not invoke standard output before initializing libc");
             return 0;
         }
         return write(STDOUT_FILENO, (void*)buf, len);
-#else
+#elif defined(RT_USING_CONSOLE)
         rt_device_t console_device;
 
         console_device = rt_console_get_device();
@@ -50,19 +44,19 @@ size_t __write(int handle, const unsigned char *buf, size_t len)
         }
 
         return len;
-#endif
-#endif
+#else
+        return _LLIO_ERROR;
+#endif /* RT_LIBC_USING_FILEIO */
     }
     else if (handle == _LLIO_STDIN)
     {
         return _LLIO_ERROR;
     }
 
-#ifndef RT_USING_DFS
-    return _LLIO_ERROR;
-#else
+#ifdef RT_LIBC_USING_FILEIO
     size = write(handle, buf, len);
     return size;
-#endif
+#else
+    return _LLIO_ERROR;
+#endif /* RT_LIBC_USING_FILEIO */
 }
-

+ 2 - 13
components/libc/compilers/gcc/newlib/libc.c

@@ -12,34 +12,23 @@
 #include <stdlib.h>
 #include <fcntl.h>
 #include <sys/time.h>
-
 #include "libc.h"
 
 #ifdef RT_USING_PTHREADS
 #include <pthread.h>
 #endif
 
-int _EXFUN(putenv,(char *__string));
-
 int libc_system_init(void)
 {
-#if defined(RT_USING_DFS) & defined(RT_USING_DFS_DEVFS) & defined(RT_USING_CONSOLE)
+#ifdef RT_LIBC_USING_FILEIO
     rt_device_t dev_console;
 
     dev_console = rt_console_get_device();
     if (dev_console)
     {
-    #if defined(RT_USING_POSIX)
         libc_stdio_set_console(dev_console->parent.name, O_RDWR);
-    #else
-        libc_stdio_set_console(dev_console->parent.name, O_WRONLY);
-    #endif
     }
-
-    /* set PATH and HOME */
-    putenv("PATH=/bin");
-    putenv("HOME=/home");
-#endif
+#endif /* RT_LIBC_USING_FILEIO */
 
 #if defined RT_USING_PTHREADS && !defined RT_USING_COMPONENTS_INIT
     pthread_system_init();

+ 3 - 4
components/libc/compilers/gcc/newlib/libc.h

@@ -10,16 +10,15 @@
 #ifndef __RTT_LIBC_H__
 #define __RTT_LIBC_H__
 
-#ifndef _EXFUN
-#define _EXFUN(name, proto)     name proto
-#endif
-
 #ifdef __cplusplus
 extern "C" {
 #endif
+
 int libc_system_init(void);
+#ifdef RT_LIBC_USING_FILEIO
 int libc_stdio_get_console(void);
 int libc_stdio_set_console(const char* device_name, int mode);
+#endif /* RT_LIBC_USING_FILEIO */
 
 #ifdef __cplusplus
 }

+ 5 - 3
components/libc/compilers/gcc/newlib/stdio.c

@@ -7,16 +7,16 @@
  * Date           Author       Notes
  * 2017/10/15     bernard      the first version
  */
+#include <rtthread.h>
+
+#ifdef RT_LIBC_USING_FILEIO
 #include <stdio.h>
 #include <stdlib.h>
 #include <fcntl.h>
-#include <rtthread.h>
 #include "libc.h"
 
 #define STDIO_DEVICE_NAME_MAX   32
 
-int _EXFUN(fileno, (FILE *));
-
 static FILE* std_console = NULL;
 
 int libc_stdio_set_console(const char* device_name, int mode)
@@ -79,3 +79,5 @@ int libc_stdio_get_console(void)
     else
         return -1;
 }
+
+#endif /* RT_LIBC_USING_FILEIO */

+ 68 - 96
components/libc/compilers/gcc/newlib/syscalls.c

@@ -13,9 +13,16 @@
 
 #include <reent.h>
 #include <rtthread.h>
+#include <stdio.h>
 #include <stddef.h>
+#include <fcntl.h>
 #include <unistd.h>
 #include <sys/errno.h>
+#include <sys/stat.h>
+#include "libc.h"
+#ifdef RT_USING_MODULE
+#include <dlmodule.h>
+#endif
 
 #define DBG_TAG    "newlib.syscalls"
 #define DBG_LVL    DBG_INFO
@@ -83,18 +90,8 @@ void __libc_init_array(void)
 }
 
 #ifdef RT_USING_LIBC
-#include <reent.h>
-#include <stdio.h>
-#include "libc.h"
-#ifdef RT_USING_DFS
-#include <dfs_posix.h>
-#endif
-#ifdef RT_USING_MODULE
-#include <dlmodule.h>
-#endif
 
 /* Reentrant versions of system calls.  */
-
 #ifndef _REENT_ONLY
 int *__errno ()
 {
@@ -109,39 +106,29 @@ int _getpid_r(struct _reent *ptr)
 
 int _close_r(struct _reent *ptr, int fd)
 {
-#ifndef RT_USING_DFS
-    /* return "not supported" */
-    ptr->_errno = ENOTSUP;
-    return -1;
-#else
     return close(fd);
-#endif
 }
 
 int _execve_r(struct _reent *ptr, const char * name, char *const *argv, char *const *env)
 {
-    /* return "not supported" */
     ptr->_errno = ENOTSUP;
     return -1;
 }
 
 int _fcntl_r(struct _reent *ptr, int fd, int cmd, int arg)
 {
-    /* return "not supported" */
     ptr->_errno = ENOTSUP;
     return -1;
 }
 
 int _fork_r(struct _reent *ptr)
 {
-    /* return "not supported" */
     ptr->_errno = ENOTSUP;
     return -1;
 }
 
 int _fstat_r(struct _reent *ptr, int fd, struct stat *pstat)
 {
-    /* return "not supported" */
     ptr->_errno = ENOTSUP;
     return -1;
 }
@@ -160,67 +147,74 @@ int _isatty_r(struct _reent *ptr, int fd)
 
 int _kill_r(struct _reent *ptr, int pid, int sig)
 {
-    /* return "not supported" */
     ptr->_errno = ENOTSUP;
     return -1;
 }
 
 int _link_r(struct _reent *ptr, const char *old, const char *new)
 {
-    /* return "not supported" */
     ptr->_errno = ENOTSUP;
     return -1;
 }
 
-_off_t _lseek_r(struct _reent *ptr, int fd, _off_t pos, int whence)
+int _wait_r(struct _reent *ptr, int *status)
 {
-#ifndef RT_USING_DFS
-    /* return "not supported" */
     ptr->_errno = ENOTSUP;
     return -1;
-#else
+}
+
+mode_t umask(mode_t mask)
+{
+    return 022;
+}
+
+int flock(int fd, int operation)
+{
+    return 0;
+}
+
+_off_t _lseek_r(struct _reent *ptr, int fd, _off_t pos, int whence)
+{
+#ifdef RT_LIBC_USING_FILEIO
     _off_t rc;
 
     rc = lseek(fd, pos, whence);
     return rc;
-#endif
+#else
+    ptr->_errno = ENOTSUP;
+    return -1;
+#endif /* RT_LIBC_USING_FILEIO */
 }
 
 int _mkdir_r(struct _reent *ptr, const char *name, int mode)
 {
-#ifndef RT_USING_DFS
-    /* return "not supported" */
-    ptr->_errno = ENOTSUP;
-    return -1;
-#else
+#ifdef RT_LIBC_USING_FILEIO
     int rc;
 
     rc = mkdir(name, mode);
     return rc;
-#endif
+#else
+    ptr->_errno = ENOTSUP;
+    return -1;
+#endif /* RT_LIBC_USING_FILEIO */
 }
 
 int _open_r(struct _reent *ptr, const char *file, int flags, int mode)
 {
-#ifndef RT_USING_DFS
-    /* return "not supported" */
-    ptr->_errno = ENOTSUP;
-    return -1;
-#else
+#ifdef RT_LIBC_USING_FILEIO
     int rc;
 
     rc = open(file, flags, mode);
     return rc;
-#endif
+#else
+    ptr->_errno = ENOTSUP;
+    return -1;
+#endif /* RT_LIBC_USING_FILEIO */
 }
 
 _ssize_t _read_r(struct _reent *ptr, int fd, void *buf, size_t nbytes)
 {
-#ifndef RT_USING_DFS
-    /* return "not supported" */
-    ptr->_errno = ENOTSUP;
-    return -1;
-#else
+#ifdef RT_LIBC_USING_FILEIO
     _ssize_t rc;
     if (libc_stdio_get_console() < 0 && fd == STDIN_FILENO)
     {
@@ -229,74 +223,51 @@ _ssize_t _read_r(struct _reent *ptr, int fd, void *buf, size_t nbytes)
     }
     rc = read(fd, buf, nbytes);
     return rc;
-#endif
+#else
+    ptr->_errno = ENOTSUP;
+    return -1;
+#endif /* RT_LIBC_USING_FILEIO */
 }
 
 int _rename_r(struct _reent *ptr, const char *old, const char *new)
 {
-#ifndef RT_USING_DFS
-    /* return "not supported" */
-    ptr->_errno = ENOTSUP;
-    return -1;
-#else
+#ifdef RT_LIBC_USING_FILEIO
     int rc;
 
     rc = rename(old, new);
     return rc;
-#endif
+#else
+    ptr->_errno = ENOTSUP;
+    return -1;
+#endif /* RT_LIBC_USING_FILEIO */
 }
 
 int _stat_r(struct _reent *ptr, const char *file, struct stat *pstat)
 {
-#ifndef RT_USING_DFS
-    /* return "not supported" */
-    ptr->_errno = ENOTSUP;
-    return -1;
-#else
+#ifdef RT_LIBC_USING_FILEIO
     int rc;
 
     rc = stat(file, pstat);
     return rc;
-#endif
-}
-
-int _unlink_r(struct _reent *ptr, const char *file)
-{
-#ifndef RT_USING_DFS
-    /* return "not supported" */
+#else
     ptr->_errno = ENOTSUP;
     return -1;
-#else
-    return unlink(file);
-#endif
+#endif /* RT_LIBC_USING_FILEIO */
 }
 
-int _wait_r(struct _reent *ptr, int *status)
+int _unlink_r(struct _reent *ptr, const char *file)
 {
-    /* return "not supported" */
+#ifdef RT_LIBC_USING_FILEIO
+    return unlink(file);
+#else
     ptr->_errno = ENOTSUP;
     return -1;
+#endif /* RT_LIBC_USING_FILEIO */
 }
 
 _ssize_t _write_r(struct _reent *ptr, int fd, const void *buf, size_t nbytes)
 {
-#ifndef RT_USING_DFS
-#if defined(RT_USING_CONSOLE) && defined(RT_USING_DEVICE)
-    if (STDOUT_FILENO == fd)
-    {
-        rt_device_t console;
-
-        console = rt_console_get_device();
-        if (console) return rt_device_write(console, -1, buf, nbytes);
-    }
-
-    return 0;
-#else
-    /* return "not supported" */
-    ptr->_errno = ENOTSUP;
-    return -1;
-#endif /*RT_USING_DEVICE*/
-#else
+#ifdef RT_LIBC_USING_FILEIO
     _ssize_t rc;
     if (libc_stdio_get_console() < 0 && fd == STDOUT_FILENO)
     {
@@ -305,7 +276,18 @@ _ssize_t _write_r(struct _reent *ptr, int fd, const void *buf, size_t nbytes)
     }
     rc = write(fd, buf, nbytes);
     return rc;
-#endif
+#elif defined(RT_USING_CONSOLE)
+    if (STDOUT_FILENO == fd)
+    {
+        rt_device_t console;
+
+        console = rt_console_get_device();
+        if (console)
+            return rt_device_write(console, -1, buf, nbytes);
+    }
+#endif /* RT_LIBC_USING_FILEIO */
+    ptr->_errno = ENOTSUP;
+    return -1;
 }
 
 /* for exit() and abort() */
@@ -316,16 +298,6 @@ __attribute__ ((noreturn)) void _exit (int status)
     while(1);
 }
 
-mode_t umask(mode_t mask)
-{
-    return 022;
-}
-
-int flock(int fd, int operation)
-{
-    return 0;
-}
-
 /*
 These functions are implemented and replaced by the 'common/time.c' file
 int _gettimeofday_r(struct _reent *ptr, struct timeval *__tp, void *__tzp);