diff --git a/bsp/gd32450z-eval/.config b/bsp/gd32450z-eval/.config
index b9f2f3245b..a04025b693 100644
--- a/bsp/gd32450z-eval/.config
+++ b/bsp/gd32450z-eval/.config
@@ -13,13 +13,22 @@ CONFIG_RT_THREAD_PRIORITY_32=y
# CONFIG_RT_THREAD_PRIORITY_256 is not set
CONFIG_RT_THREAD_PRIORITY_MAX=32
CONFIG_RT_TICK_PER_SECOND=100
-CONFIG_RT_DEBUG=y
CONFIG_RT_USING_OVERFLOW_CHECK=y
-CONFIG_RT_DEBUG_INIT=0
-CONFIG_RT_DEBUG_THREAD=0
CONFIG_RT_USING_HOOK=y
+CONFIG_RT_IDEL_HOOK_LIST_SIZE=4
CONFIG_IDLE_THREAD_STACK_SIZE=256
# CONFIG_RT_USING_TIMER_SOFT is not set
+CONFIG_RT_DEBUG=y
+# CONFIG_RT_DEBUG_INIT_CONFIG is not set
+# CONFIG_RT_DEBUG_THREAD_CONFIG is not set
+# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set
+# CONFIG_RT_DEBUG_IPC_CONFIG is not set
+# CONFIG_RT_DEBUG_TIMER_CONFIG is not set
+# CONFIG_RT_DEBUG_IRQ_CONFIG is not set
+# CONFIG_RT_DEBUG_MEM_CONFIG is not set
+# CONFIG_RT_DEBUG_SLAB_CONFIG is not set
+# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set
+# CONFIG_RT_DEBUG_MODULE_CONFIG is not set
#
# Inter-Thread communication
@@ -46,6 +55,7 @@ CONFIG_RT_USING_HEAP=y
# Kernel Device Object
#
CONFIG_RT_USING_DEVICE=y
+# CONFIG_RT_USING_DEVICE_OPS is not set
# CONFIG_RT_USING_INTERRUPT_INFO is not set
CONFIG_RT_USING_CONSOLE=y
CONFIG_RT_CONSOLEBUF_SIZE=128
@@ -81,6 +91,7 @@ CONFIG_FINSH_CMD_SIZE=80
CONFIG_FINSH_USING_MSH=y
CONFIG_FINSH_USING_MSH_DEFAULT=y
# CONFIG_FINSH_USING_MSH_ONLY is not set
+CONFIG_FINSH_ARG_MAX=10
#
# Device virtual file system
@@ -89,7 +100,7 @@ CONFIG_RT_USING_DFS=y
CONFIG_DFS_USING_WORKDIR=y
CONFIG_DFS_FILESYSTEMS_MAX=4
CONFIG_DFS_FILESYSTEM_TYPES_MAX=4
-CONFIG_DFS_FD_MAX=8
+CONFIG_DFS_FD_MAX=16
CONFIG_RT_USING_DFS_ELMFAT=y
#
@@ -108,7 +119,6 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
# CONFIG_RT_DFS_ELM_USE_ERASE is not set
CONFIG_RT_DFS_ELM_REENTRANT=y
CONFIG_RT_USING_DFS_DEVFS=y
-CONFIG_RT_USING_DFS_NET=y
# CONFIG_RT_USING_DFS_ROMFS is not set
# CONFIG_RT_USING_DFS_RAMFS is not set
# CONFIG_RT_USING_DFS_UFFS is not set
@@ -119,12 +129,14 @@ CONFIG_RT_USING_DFS_NET=y
# Device Drivers
#
CONFIG_RT_USING_DEVICE_IPC=y
+CONFIG_RT_PIPE_BUFSZ=512
CONFIG_RT_USING_SERIAL=y
# CONFIG_RT_USING_CAN is not set
# CONFIG_RT_USING_HWTIMER is not set
# CONFIG_RT_USING_CPUTIME is not set
# CONFIG_RT_USING_I2C is not set
CONFIG_RT_USING_PIN=y
+# CONFIG_RT_USING_PWM is not set
# CONFIG_RT_USING_MTD_NOR is not set
# CONFIG_RT_USING_MTD_NAND is not set
# CONFIG_RT_USING_RTC is not set
@@ -132,6 +144,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_RT_USING_SPI is not set
# CONFIG_RT_USING_WDT is not set
# CONFIG_RT_USING_WIFI is not set
+# CONFIG_RT_USING_AUDIO is not set
#
# Using USB
@@ -150,9 +163,21 @@ CONFIG_RT_USING_POSIX=y
# CONFIG_RT_USING_POSIX_AIO is not set
#
-# Network stack
+# Network
#
+#
+# Socket abstraction layer
+#
+CONFIG_RT_USING_SAL=y
+
+#
+# protocol stack implement
+#
+CONFIG_SAL_USING_LWIP=y
+CONFIG_SAL_USING_POSIX=y
+CONFIG_SAL_PROTO_FAMILIES_NUM=4
+
#
# light weight TCP/IP stack
#
@@ -224,20 +249,6 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# RT-Thread online packages
#
-#
-# system packages
-#
-
-#
-# RT-Thread GUI Engine
-#
-# CONFIG_PKG_USING_GUIENGINE is not set
-# CONFIG_PKG_USING_LWEXT4 is not set
-# CONFIG_PKG_USING_PARTITION is not set
-# CONFIG_PKG_USING_SQLITE is not set
-# CONFIG_PKG_USING_RTI is not set
-# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
-
#
# IoT - internet of things
#
@@ -246,6 +257,7 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# CONFIG_PKG_USING_MONGOOSE is not set
# CONFIG_PKG_USING_WEBTERMINAL is not set
# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
# CONFIG_PKG_USING_LJSON is not set
# CONFIG_PKG_USING_EZXML is not set
# CONFIG_PKG_USING_NANOPB is not set
@@ -268,6 +280,7 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# CONFIG_PKG_USING_NOPOLL is not set
# CONFIG_PKG_USING_NETUTILS is not set
# CONFIG_PKG_USING_ONENET is not set
+# CONFIG_PKG_USING_AT_DEVICE is not set
#
# security packages
@@ -279,6 +292,7 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
#
# language packages
#
+# CONFIG_PKG_USING_LUA is not set
# CONFIG_PKG_USING_JERRYSCRIPT is not set
# CONFIG_PKG_USING_MICROPYTHON is not set
@@ -286,6 +300,7 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# multimedia packages
#
# CONFIG_PKG_USING_OPENMV is not set
+# CONFIG_PKG_USING_MUPDF is not set
#
# tools packages
@@ -294,41 +309,48 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# CONFIG_PKG_USING_EASYFLASH is not set
# CONFIG_PKG_USING_EASYLOGGER is not set
# CONFIG_PKG_USING_SYSTEMVIEW is not set
-# CONFIG_PKG_USING_IPERF is not set
+
+#
+# system packages
+#
+# CONFIG_PKG_USING_GUIENGINE is not set
+# CONFIG_PKG_USING_CAIRO is not set
+# CONFIG_PKG_USING_PIXMAN is not set
+# CONFIG_PKG_USING_LWEXT4 is not set
+# CONFIG_PKG_USING_PARTITION is not set
+# CONFIG_PKG_USING_FAL is not set
+# CONFIG_PKG_USING_SQLITE is not set
+# CONFIG_PKG_USING_RTI is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
+
+#
+# peripheral libraries and drivers
+#
+# CONFIG_PKG_USING_STM32F4_HAL is not set
+# CONFIG_PKG_USING_STM32F4_DRIVERS is not set
+# CONFIG_PKG_USING_REALTEK_AMEBA is not set
#
# miscellaneous packages
#
+# CONFIG_PKG_USING_OPTPARSE is not set
# CONFIG_PKG_USING_FASTLZ is not set
# CONFIG_PKG_USING_MINILZO is not set
# CONFIG_PKG_USING_QUICKLZ is not set
# CONFIG_PKG_USING_MULTIBUTTON is not set
-# CONFIG_PKG_USING_SAMPLES is not set
# CONFIG_PKG_USING_CANFESTIVAL is not set
+# CONFIG_PKG_USING_ZLIB is not set
+# CONFIG_PKG_USING_DSTR is not set
+
+#
+# sample package
+#
+# CONFIG_PKG_USING_SAMPLES is not set
#
# example package: hello
#
# CONFIG_PKG_USING_HELLO is not set
-
-#
-# Privated Packages of RealThread
-#
-# CONFIG_PKG_USING_CODEC is not set
-# CONFIG_PKG_USING_PLAYER is not set
-# CONFIG_PKG_USING_PERSIMMON_SRC is not set
-
-#
-# Network Utilities
-#
-# CONFIG_PKG_USING_MDNS is not set
-# CONFIG_PKG_USING_UPNP is not set
-# CONFIG_PKG_USING_WLAN_WICED_SRC is not set
-# CONFIG_PKG_USING_CLOUDSDK is not set
-# CONFIG_PKG_USING_COREMARK is not set
-# CONFIG_PKG_USING_POWER_MANAGER is not set
-# CONFIG_PKG_USING_RT_OTA is not set
-# CONFIG_PKG_USING_RT_AT is not set
CONFIG_BSP_USING_SDRAM=y
CONFIG_BSP_USING_UART0=y
# CONFIG_BSP_USING_UART1 is not set
diff --git a/bsp/gd32450z-eval/project.uvproj b/bsp/gd32450z-eval/project.uvproj
index c0225ab84d..86ebb419d7 100644
--- a/bsp/gd32450z-eval/project.uvproj
+++ b/bsp/gd32450z-eval/project.uvproj
@@ -1,38 +1,41 @@
+
1.1
+
### uVision Project, (C) Keil Software
+
rt-thread_gd32f4xx
0x4
ARM-ADS
- 0
+ 5060422::V5.06 update 4 (build 422)::ARMCC
GD32F450ZK
GigaDevice
IRAM(0x20000000-0x2002FFFF) IRAM2(0x10000000-0x1000FFFF) IROM(0x08000000-0x082FFFFF) CLOCK(16000000) CPUTYPE("Cortex-M4") FPU2
-
+
"Startup\GD\GD32F4xx\startup_gd32f4xx.s" ("GD32F4xx Startup Code")
UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000)
0
gd32f4xx0.h
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
SFD\GD\GD32F4xx\GD32F4xx.SFR
0
0
-
-
-
+
+
+
GD\GD32F4xx\
GD\GD32F4xx\
@@ -56,8 +59,8 @@
0
0
-
-
+
+
0
0
0
@@ -66,8 +69,8 @@
0
0
-
-
+
+
0
0
0
@@ -76,15 +79,15 @@
0
0
-
-
+
+
0
0
0
0
0
-
+
0
@@ -98,8 +101,8 @@
0
0
3
-
-
+
+
1
@@ -108,7 +111,7 @@
DCM.DLL
-pCM3
SARMCM3.DLL
-
+
TCM.DLL
-pCM3
@@ -145,20 +148,20 @@
1
0
- 3
+ 2
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
BIN\CMSIS_AGDI.dll
@@ -174,10 +177,10 @@
1
BIN\UL2CM3.DLL
"" ()
-
-
-
-
+
+
+
+
0
@@ -210,7 +213,7 @@
0
0
"Cortex-M4"
-
+
0
0
0
@@ -342,7 +345,7 @@
0x10000
-
+
1
@@ -359,7 +362,6 @@
0
0
1
- 0
0
1
1
@@ -369,10 +371,10 @@
0
0
-
+
GD32F4XX, RT_USING_ARM_LIBC, USE_STDPERIPH_DRIVER
-
- applications;.;drivers;Libraries\CMSIS\GD\GD32F4xx\Include;Libraries\CMSIS;Libraries\GD32F4xx_standard_peripheral\Include;..\..\include;..\..\libcpu\arm\cortex-m4;..\..\libcpu\arm\common;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\dfs\filesystems\net;..\..\components\dfs\filesystems\net\select;..\..\components\dfs\filesystems\net\socket;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\armlibc;..\..\components\net\lwip-2.0.2\src;..\..\components\net\lwip-2.0.2\src\include;..\..\components\net\lwip-2.0.2\src\include\ipv4;..\..\components\net\lwip-2.0.2\src\arch\include;..\..\components\net\lwip-2.0.2\src\include\netif
+
+ applications;.;drivers;Libraries\CMSIS\GD\GD32F4xx\Include;Libraries\CMSIS;Libraries\GD32F4xx_standard_peripheral\Include;..\..\include;..\..\libcpu\arm\cortex-m4;..\..\libcpu\arm\common;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\armlibc;..\..\components\net\lwip-2.0.2\src;..\..\components\net\lwip-2.0.2\src\include;..\..\components\net\lwip-2.0.2\src\include\ipv4;..\..\components\net\lwip-2.0.2\src\arch\include;..\..\components\net\lwip-2.0.2\src\include\netif;..\..\components\net\sal_socket\include;..\..\components\net\sal_socket\include\dfs_net;..\..\components\net\sal_socket\include\socket;..\..\components\net\sal_socket\include\dfs_net\sys_select;..\..\components\net\sal_socket\include\socket\sys_socket
@@ -387,10 +389,10 @@
0
0
-
-
-
-
+
+
+
+
@@ -402,13 +404,13 @@
0
0x08000000
0x20000000
-
-
-
-
+
+
+
+
--keep *.o(.rti_fn.*) --keep *.o(FSymTab) --keep *.o(VSymTab)
-
-
+
+
@@ -431,29 +433,21 @@
1
drivers\board.c
-
-
drv_usart.c
1
drivers\drv_usart.c
-
-
drv_exmc_sdram.c
1
drivers\drv_exmc_sdram.c
-
-
drv_enet.c
1
drivers\drv_enet.c
-
-
synopsys_emac.c
1
@@ -469,211 +463,151 @@
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_adc.c
-
-
gd32f4xx_can.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_can.c
-
-
gd32f4xx_crc.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_crc.c
-
-
gd32f4xx_ctc.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_ctc.c
-
-
gd32f4xx_dac.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_dac.c
-
-
gd32f4xx_dbg.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_dbg.c
-
-
gd32f4xx_dci.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_dci.c
-
-
gd32f4xx_dma.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_dma.c
-
-
gd32f4xx_enet.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_enet.c
-
-
gd32f4xx_exmc.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_exmc.c
-
-
gd32f4xx_exti.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_exti.c
-
-
gd32f4xx_fmc.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_fmc.c
-
-
gd32f4xx_fwdgt.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_fwdgt.c
-
-
gd32f4xx_gpio.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_gpio.c
-
-
gd32f4xx_i2c.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_i2c.c
-
-
gd32f4xx_ipa.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_ipa.c
-
-
gd32f4xx_iref.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_iref.c
-
-
gd32f4xx_misc.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_misc.c
-
-
gd32f4xx_pmu.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_pmu.c
-
-
gd32f4xx_rcu.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_rcu.c
-
-
gd32f4xx_rtc.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_rtc.c
-
-
gd32f4xx_sdio.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_sdio.c
-
-
gd32f4xx_spi.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_spi.c
-
-
gd32f4xx_syscfg.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_syscfg.c
-
-
gd32f4xx_timer.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_timer.c
-
-
gd32f4xx_tli.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_tli.c
-
-
gd32f4xx_trng.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_trng.c
-
-
gd32f4xx_usart.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_usart.c
-
-
gd32f4xx_wwdgt.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_wwdgt.c
-
-
system_gd32f4xx.c
1
Libraries\CMSIS\GD\GD32F4xx\Source\system_gd32f4xx.c
-
-
startup_gd32f4xx.s
2
@@ -689,92 +623,66 @@
1
..\..\src\clock.c
-
-
components.c
1
..\..\src\components.c
-
-
device.c
1
..\..\src\device.c
-
-
idle.c
1
..\..\src\idle.c
-
-
ipc.c
1
..\..\src\ipc.c
-
-
irq.c
1
..\..\src\irq.c
-
-
kservice.c
1
..\..\src\kservice.c
-
-
mem.c
1
..\..\src\mem.c
-
-
mempool.c
1
..\..\src\mempool.c
-
-
object.c
1
..\..\src\object.c
-
-
scheduler.c
1
..\..\src\scheduler.c
-
-
signal.c
1
..\..\src\signal.c
-
-
thread.c
1
..\..\src\thread.c
-
-
timer.c
1
@@ -790,29 +698,21 @@
1
..\..\libcpu\arm\cortex-m4\cpuport.c
-
-
context_rvds.S
2
..\..\libcpu\arm\cortex-m4\context_rvds.S
-
-
backtrace.c
1
..\..\libcpu\arm\common\backtrace.c
-
-
div0.c
1
..\..\libcpu\arm\common\div0.c
-
-
showmem.c
1
@@ -828,84 +728,47 @@
1
..\..\components\dfs\src\dfs.c
-
-
dfs_file.c
1
..\..\components\dfs\src\dfs_file.c
-
-
dfs_fs.c
1
..\..\components\dfs\src\dfs_fs.c
-
-
dfs_posix.c
1
..\..\components\dfs\src\dfs_posix.c
-
-
poll.c
1
..\..\components\dfs\src\poll.c
-
-
select.c
1
..\..\components\dfs\src\select.c
-
-
devfs.c
1
..\..\components\dfs\filesystems\devfs\devfs.c
-
-
dfs_elm.c
1
..\..\components\dfs\filesystems\elmfat\dfs_elm.c
-
-
ff.c
1
..\..\components\dfs\filesystems\elmfat\ff.c
-
-
- dfs_net.c
- 1
- ..\..\components\dfs\filesystems\net\dfs_net.c
-
-
-
-
- net_netdb.c
- 1
- ..\..\components\dfs\filesystems\net\net_netdb.c
-
-
-
-
- net_sockets.c
- 1
- ..\..\components\dfs\filesystems\net\net_sockets.c
-
-
DeviceDrivers
@@ -915,50 +778,36 @@
1
..\..\components\drivers\misc\pin.c
-
-
serial.c
1
..\..\components\drivers\serial\serial.c
-
-
completion.c
1
..\..\components\drivers\src\completion.c
-
-
dataqueue.c
1
..\..\components\drivers\src\dataqueue.c
-
-
pipe.c
1
..\..\components\drivers\src\pipe.c
-
-
ringbuffer.c
1
..\..\components\drivers\src\ringbuffer.c
-
-
waitqueue.c
1
..\..\components\drivers\src\waitqueue.c
-
-
workqueue.c
1
@@ -974,106 +823,76 @@
1
..\..\components\finsh\shell.c
-
-
symbol.c
1
..\..\components\finsh\symbol.c
-
-
cmd.c
1
..\..\components\finsh\cmd.c
-
-
msh.c
1
..\..\components\finsh\msh.c
-
-
msh_cmd.c
1
..\..\components\finsh\msh_cmd.c
-
-
msh_file.c
1
..\..\components\finsh\msh_file.c
-
-
finsh_compiler.c
1
..\..\components\finsh\finsh_compiler.c
-
-
finsh_error.c
1
..\..\components\finsh\finsh_error.c
-
-
finsh_heap.c
1
..\..\components\finsh\finsh_heap.c
-
-
finsh_init.c
1
..\..\components\finsh\finsh_init.c
-
-
finsh_node.c
1
..\..\components\finsh\finsh_node.c
-
-
finsh_ops.c
1
..\..\components\finsh\finsh_ops.c
-
-
finsh_parser.c
1
..\..\components\finsh\finsh_parser.c
-
-
finsh_var.c
1
..\..\components\finsh\finsh_var.c
-
-
finsh_vm.c
1
..\..\components\finsh\finsh_vm.c
-
-
finsh_token.c
1
@@ -1089,29 +908,21 @@
1
..\..\components\libc\compilers\armlibc\libc.c
-
-
mem_std.c
1
..\..\components\libc\compilers\armlibc\mem_std.c
-
-
stdio.c
1
..\..\components\libc\compilers\armlibc\stdio.c
-
-
stubs.c
1
..\..\components\libc\compilers\armlibc\stubs.c
-
-
time.c
1
@@ -1127,246 +938,176 @@
1
..\..\components\net\lwip-2.0.2\src\arch\sys_arch.c
-
-
api_lib.c
1
..\..\components\net\lwip-2.0.2\src\api\api_lib.c
-
-
api_msg.c
1
..\..\components\net\lwip-2.0.2\src\api\api_msg.c
-
-
err.c
1
..\..\components\net\lwip-2.0.2\src\api\err.c
-
-
netbuf.c
1
..\..\components\net\lwip-2.0.2\src\api\netbuf.c
-
-
netdb.c
1
..\..\components\net\lwip-2.0.2\src\api\netdb.c
-
-
netifapi.c
1
..\..\components\net\lwip-2.0.2\src\api\netifapi.c
-
-
sockets.c
1
..\..\components\net\lwip-2.0.2\src\api\sockets.c
-
-
tcpip.c
1
..\..\components\net\lwip-2.0.2\src\api\tcpip.c
-
-
def.c
1
..\..\components\net\lwip-2.0.2\src\core\def.c
-
-
dns.c
1
..\..\components\net\lwip-2.0.2\src\core\dns.c
-
-
inet_chksum.c
1
..\..\components\net\lwip-2.0.2\src\core\inet_chksum.c
-
-
init.c
1
..\..\components\net\lwip-2.0.2\src\core\init.c
-
-
ip.c
1
..\..\components\net\lwip-2.0.2\src\core\ip.c
-
-
memp.c
1
..\..\components\net\lwip-2.0.2\src\core\memp.c
-
-
netif.c
1
..\..\components\net\lwip-2.0.2\src\core\netif.c
-
-
pbuf.c
1
..\..\components\net\lwip-2.0.2\src\core\pbuf.c
-
-
raw.c
1
..\..\components\net\lwip-2.0.2\src\core\raw.c
-
-
stats.c
1
..\..\components\net\lwip-2.0.2\src\core\stats.c
-
-
sys.c
1
..\..\components\net\lwip-2.0.2\src\core\sys.c
-
-
tcp.c
1
..\..\components\net\lwip-2.0.2\src\core\tcp.c
-
-
tcp_in.c
1
..\..\components\net\lwip-2.0.2\src\core\tcp_in.c
-
-
tcp_out.c
1
..\..\components\net\lwip-2.0.2\src\core\tcp_out.c
-
-
timeouts.c
1
..\..\components\net\lwip-2.0.2\src\core\timeouts.c
-
-
udp.c
1
..\..\components\net\lwip-2.0.2\src\core\udp.c
-
-
ethernet.c
1
..\..\components\net\lwip-2.0.2\src\netif\ethernet.c
-
-
ethernetif.c
1
..\..\components\net\lwip-2.0.2\src\netif\ethernetif.c
-
-
lowpan6.c
1
..\..\components\net\lwip-2.0.2\src\netif\lowpan6.c
-
-
autoip.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\autoip.c
-
-
dhcp.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\dhcp.c
-
-
etharp.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\etharp.c
-
-
icmp.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\icmp.c
-
-
igmp.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\igmp.c
-
-
ip4.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4.c
-
-
ip4_addr.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4_addr.c
-
-
ip4_frag.c
1
@@ -1374,7 +1115,43 @@
+
+ SAL
+
+
+ sal_ipaddr.c
+ 1
+ ..\..\components\net\sal_socket\src\sal_ipaddr.c
+
+
+ sal_socket.c
+ 1
+ ..\..\components\net\sal_socket\src\sal_socket.c
+
+
+ net_netdb.c
+ 1
+ ..\..\components\net\sal_socket\socket\net_netdb.c
+
+
+ net_sockets.c
+ 1
+ ..\..\components\net\sal_socket\socket\net_sockets.c
+
+
+ af_inet_lwip.c
+ 1
+ ..\..\components\net\sal_socket\impl\af_inet_lwip.c
+
+
+ dfs_net.c
+ 1
+ ..\..\components\net\sal_socket\dfs_net\dfs_net.c
+
+
+
+
diff --git a/bsp/gd32450z-eval/project.uvprojx b/bsp/gd32450z-eval/project.uvprojx
index 701f062c1e..3bcefee67b 100644
--- a/bsp/gd32450z-eval/project.uvprojx
+++ b/bsp/gd32450z-eval/project.uvprojx
@@ -1,13 +1,16 @@
+
2.1
+
### uVision Project, (C) Keil Software
+
rt-thread_gd32f4xx
0x4
ARM-ADS
- 0
+ 5060422::V5.06 update 4 (build 422)::ARMCC
GD32F450ZK
@@ -15,28 +18,28 @@
GigaDevice.GD32F4xx_DFP.1.0.1
http://gd32mcu.21ic.com/data/documents/yingyongruanjian/GD32F4
IRAM(0x20000000,0x030000) IRAM2(0x10000000,0x010000) IROM(0x08000000,0x0300000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE
-
-
+
+
UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0GD32F4xx_3MB -FS08000000 -FL0300000 -FP0($$Device:GD32F450ZK$Flash\GD32F4xx_3MB.FLM))
0
$$Device:GD32F450ZK$Device\Include\gd32f4xx.h
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
$$Device:GD32F450ZK$SVD\GD32F4xx.svd
0
0
-
-
-
-
-
+
+
+
+
+
0
0
@@ -58,8 +61,8 @@
0
0
-
-
+
+
0
0
0
@@ -68,8 +71,8 @@
0
0
-
-
+
+
0
0
0
@@ -79,14 +82,14 @@
1
0
fromelf --bin !L --output rtthread.bin
-
+
0
0
0
0
0
-
+
0
@@ -100,8 +103,8 @@
0
0
3
-
-
+
+
1
@@ -134,11 +137,11 @@
1
BIN\UL2CM3.DLL
-
-
-
-
-
+
+
+
+
+
0
@@ -171,7 +174,7 @@
0
0
"Cortex-M4"
-
+
0
0
0
@@ -303,7 +306,7 @@
0x10000
-
+
1
@@ -320,7 +323,6 @@
0
0
1
- 0
0
1
1
@@ -330,10 +332,10 @@
0
0
-
+
GD32F4XX, RT_USING_ARM_LIBC, USE_STDPERIPH_DRIVER
-
- applications;.;drivers;Libraries\CMSIS\GD\GD32F4xx\Include;Libraries\CMSIS;Libraries\GD32F4xx_standard_peripheral\Include;..\..\include;..\..\libcpu\arm\cortex-m4;..\..\libcpu\arm\common;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\dfs\filesystems\net;..\..\components\dfs\filesystems\net\select;..\..\components\dfs\filesystems\net\socket;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\armlibc;..\..\components\net\lwip-2.0.2\src;..\..\components\net\lwip-2.0.2\src\include;..\..\components\net\lwip-2.0.2\src\include\ipv4;..\..\components\net\lwip-2.0.2\src\arch\include;..\..\components\net\lwip-2.0.2\src\include\netif
+
+ applications;.;drivers;Libraries\CMSIS\GD\GD32F4xx\Include;Libraries\CMSIS;Libraries\GD32F4xx_standard_peripheral\Include;..\..\include;..\..\libcpu\arm\cortex-m4;..\..\libcpu\arm\common;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\armlibc;..\..\components\net\lwip-2.0.2\src;..\..\components\net\lwip-2.0.2\src\include;..\..\components\net\lwip-2.0.2\src\include\ipv4;..\..\components\net\lwip-2.0.2\src\arch\include;..\..\components\net\lwip-2.0.2\src\include\netif;..\..\components\net\sal_socket\include;..\..\components\net\sal_socket\include\dfs_net;..\..\components\net\sal_socket\include\socket;..\..\components\net\sal_socket\include\dfs_net\sys_select;..\..\components\net\sal_socket\include\socket\sys_socket
@@ -348,10 +350,10 @@
0
0
-
-
-
-
+
+
+
+
@@ -363,13 +365,13 @@
0
0x08000000
0x20000000
-
+
.\gd32_rom.ld
-
-
+
+
--keep *.o(.rti_fn.*) --keep *.o(FSymTab) --keep *.o(VSymTab)
-
-
+
+
@@ -392,29 +394,21 @@
1
drivers\board.c
-
-
drv_usart.c
1
drivers\drv_usart.c
-
-
drv_exmc_sdram.c
1
drivers\drv_exmc_sdram.c
-
-
drv_enet.c
1
drivers\drv_enet.c
-
-
synopsys_emac.c
1
@@ -430,211 +424,151 @@
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_adc.c
-
-
gd32f4xx_can.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_can.c
-
-
gd32f4xx_crc.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_crc.c
-
-
gd32f4xx_ctc.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_ctc.c
-
-
gd32f4xx_dac.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_dac.c
-
-
gd32f4xx_dbg.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_dbg.c
-
-
gd32f4xx_dci.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_dci.c
-
-
gd32f4xx_dma.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_dma.c
-
-
gd32f4xx_enet.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_enet.c
-
-
gd32f4xx_exmc.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_exmc.c
-
-
gd32f4xx_exti.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_exti.c
-
-
gd32f4xx_fmc.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_fmc.c
-
-
gd32f4xx_fwdgt.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_fwdgt.c
-
-
gd32f4xx_gpio.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_gpio.c
-
-
gd32f4xx_i2c.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_i2c.c
-
-
gd32f4xx_ipa.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_ipa.c
-
-
gd32f4xx_iref.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_iref.c
-
-
gd32f4xx_misc.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_misc.c
-
-
gd32f4xx_pmu.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_pmu.c
-
-
gd32f4xx_rcu.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_rcu.c
-
-
gd32f4xx_rtc.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_rtc.c
-
-
gd32f4xx_sdio.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_sdio.c
-
-
gd32f4xx_spi.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_spi.c
-
-
gd32f4xx_syscfg.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_syscfg.c
-
-
gd32f4xx_timer.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_timer.c
-
-
gd32f4xx_tli.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_tli.c
-
-
gd32f4xx_trng.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_trng.c
-
-
gd32f4xx_usart.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_usart.c
-
-
gd32f4xx_wwdgt.c
1
Libraries\GD32F4xx_standard_peripheral\Source\gd32f4xx_wwdgt.c
-
-
system_gd32f4xx.c
1
Libraries\CMSIS\GD\GD32F4xx\Source\system_gd32f4xx.c
-
-
startup_gd32f4xx.s
2
@@ -650,92 +584,66 @@
1
..\..\src\clock.c
-
-
components.c
1
..\..\src\components.c
-
-
device.c
1
..\..\src\device.c
-
-
idle.c
1
..\..\src\idle.c
-
-
ipc.c
1
..\..\src\ipc.c
-
-
irq.c
1
..\..\src\irq.c
-
-
kservice.c
1
..\..\src\kservice.c
-
-
mem.c
1
..\..\src\mem.c
-
-
mempool.c
1
..\..\src\mempool.c
-
-
object.c
1
..\..\src\object.c
-
-
scheduler.c
1
..\..\src\scheduler.c
-
-
signal.c
1
..\..\src\signal.c
-
-
thread.c
1
..\..\src\thread.c
-
-
timer.c
1
@@ -751,29 +659,21 @@
1
..\..\libcpu\arm\cortex-m4\cpuport.c
-
-
context_rvds.S
2
..\..\libcpu\arm\cortex-m4\context_rvds.S
-
-
backtrace.c
1
..\..\libcpu\arm\common\backtrace.c
-
-
div0.c
1
..\..\libcpu\arm\common\div0.c
-
-
showmem.c
1
@@ -789,84 +689,47 @@
1
..\..\components\dfs\src\dfs.c
-
-
dfs_file.c
1
..\..\components\dfs\src\dfs_file.c
-
-
dfs_fs.c
1
..\..\components\dfs\src\dfs_fs.c
-
-
dfs_posix.c
1
..\..\components\dfs\src\dfs_posix.c
-
-
poll.c
1
..\..\components\dfs\src\poll.c
-
-
select.c
1
..\..\components\dfs\src\select.c
-
-
devfs.c
1
..\..\components\dfs\filesystems\devfs\devfs.c
-
-
dfs_elm.c
1
..\..\components\dfs\filesystems\elmfat\dfs_elm.c
-
-
ff.c
1
..\..\components\dfs\filesystems\elmfat\ff.c
-
-
- dfs_net.c
- 1
- ..\..\components\dfs\filesystems\net\dfs_net.c
-
-
-
-
- net_netdb.c
- 1
- ..\..\components\dfs\filesystems\net\net_netdb.c
-
-
-
-
- net_sockets.c
- 1
- ..\..\components\dfs\filesystems\net\net_sockets.c
-
-
DeviceDrivers
@@ -876,50 +739,36 @@
1
..\..\components\drivers\misc\pin.c
-
-
serial.c
1
..\..\components\drivers\serial\serial.c
-
-
completion.c
1
..\..\components\drivers\src\completion.c
-
-
dataqueue.c
1
..\..\components\drivers\src\dataqueue.c
-
-
pipe.c
1
..\..\components\drivers\src\pipe.c
-
-
ringbuffer.c
1
..\..\components\drivers\src\ringbuffer.c
-
-
waitqueue.c
1
..\..\components\drivers\src\waitqueue.c
-
-
workqueue.c
1
@@ -935,106 +784,76 @@
1
..\..\components\finsh\shell.c
-
-
symbol.c
1
..\..\components\finsh\symbol.c
-
-
cmd.c
1
..\..\components\finsh\cmd.c
-
-
msh.c
1
..\..\components\finsh\msh.c
-
-
msh_cmd.c
1
..\..\components\finsh\msh_cmd.c
-
-
msh_file.c
1
..\..\components\finsh\msh_file.c
-
-
finsh_compiler.c
1
..\..\components\finsh\finsh_compiler.c
-
-
finsh_error.c
1
..\..\components\finsh\finsh_error.c
-
-
finsh_heap.c
1
..\..\components\finsh\finsh_heap.c
-
-
finsh_init.c
1
..\..\components\finsh\finsh_init.c
-
-
finsh_node.c
1
..\..\components\finsh\finsh_node.c
-
-
finsh_ops.c
1
..\..\components\finsh\finsh_ops.c
-
-
finsh_parser.c
1
..\..\components\finsh\finsh_parser.c
-
-
finsh_var.c
1
..\..\components\finsh\finsh_var.c
-
-
finsh_vm.c
1
..\..\components\finsh\finsh_vm.c
-
-
finsh_token.c
1
@@ -1050,29 +869,21 @@
1
..\..\components\libc\compilers\armlibc\libc.c
-
-
mem_std.c
1
..\..\components\libc\compilers\armlibc\mem_std.c
-
-
stdio.c
1
..\..\components\libc\compilers\armlibc\stdio.c
-
-
stubs.c
1
..\..\components\libc\compilers\armlibc\stubs.c
-
-
time.c
1
@@ -1088,246 +899,176 @@
1
..\..\components\net\lwip-2.0.2\src\arch\sys_arch.c
-
-
api_lib.c
1
..\..\components\net\lwip-2.0.2\src\api\api_lib.c
-
-
api_msg.c
1
..\..\components\net\lwip-2.0.2\src\api\api_msg.c
-
-
err.c
1
..\..\components\net\lwip-2.0.2\src\api\err.c
-
-
netbuf.c
1
..\..\components\net\lwip-2.0.2\src\api\netbuf.c
-
-
netdb.c
1
..\..\components\net\lwip-2.0.2\src\api\netdb.c
-
-
netifapi.c
1
..\..\components\net\lwip-2.0.2\src\api\netifapi.c
-
-
sockets.c
1
..\..\components\net\lwip-2.0.2\src\api\sockets.c
-
-
tcpip.c
1
..\..\components\net\lwip-2.0.2\src\api\tcpip.c
-
-
def.c
1
..\..\components\net\lwip-2.0.2\src\core\def.c
-
-
dns.c
1
..\..\components\net\lwip-2.0.2\src\core\dns.c
-
-
inet_chksum.c
1
..\..\components\net\lwip-2.0.2\src\core\inet_chksum.c
-
-
init.c
1
..\..\components\net\lwip-2.0.2\src\core\init.c
-
-
ip.c
1
..\..\components\net\lwip-2.0.2\src\core\ip.c
-
-
memp.c
1
..\..\components\net\lwip-2.0.2\src\core\memp.c
-
-
netif.c
1
..\..\components\net\lwip-2.0.2\src\core\netif.c
-
-
pbuf.c
1
..\..\components\net\lwip-2.0.2\src\core\pbuf.c
-
-
raw.c
1
..\..\components\net\lwip-2.0.2\src\core\raw.c
-
-
stats.c
1
..\..\components\net\lwip-2.0.2\src\core\stats.c
-
-
sys.c
1
..\..\components\net\lwip-2.0.2\src\core\sys.c
-
-
tcp.c
1
..\..\components\net\lwip-2.0.2\src\core\tcp.c
-
-
tcp_in.c
1
..\..\components\net\lwip-2.0.2\src\core\tcp_in.c
-
-
tcp_out.c
1
..\..\components\net\lwip-2.0.2\src\core\tcp_out.c
-
-
timeouts.c
1
..\..\components\net\lwip-2.0.2\src\core\timeouts.c
-
-
udp.c
1
..\..\components\net\lwip-2.0.2\src\core\udp.c
-
-
ethernet.c
1
..\..\components\net\lwip-2.0.2\src\netif\ethernet.c
-
-
ethernetif.c
1
..\..\components\net\lwip-2.0.2\src\netif\ethernetif.c
-
-
lowpan6.c
1
..\..\components\net\lwip-2.0.2\src\netif\lowpan6.c
-
-
autoip.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\autoip.c
-
-
dhcp.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\dhcp.c
-
-
etharp.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\etharp.c
-
-
icmp.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\icmp.c
-
-
igmp.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\igmp.c
-
-
ip4.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4.c
-
-
ip4_addr.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4_addr.c
-
-
ip4_frag.c
1
@@ -1335,19 +1076,59 @@
+
+ SAL
+
+
+ sal_ipaddr.c
+ 1
+ ..\..\components\net\sal_socket\src\sal_ipaddr.c
+
+
+ sal_socket.c
+ 1
+ ..\..\components\net\sal_socket\src\sal_socket.c
+
+
+ net_netdb.c
+ 1
+ ..\..\components\net\sal_socket\socket\net_netdb.c
+
+
+ net_sockets.c
+ 1
+ ..\..\components\net\sal_socket\socket\net_sockets.c
+
+
+ af_inet_lwip.c
+ 1
+ ..\..\components\net\sal_socket\impl\af_inet_lwip.c
+
+
+ dfs_net.c
+ 1
+ ..\..\components\net\sal_socket\dfs_net\dfs_net.c
+
+
+
+
+ ::CMSIS
+
+
-
+
-
+
-
+
-
+
+
diff --git a/bsp/gd32450z-eval/rtconfig.h b/bsp/gd32450z-eval/rtconfig.h
index cff29a3183..1eaeb4b827 100644
--- a/bsp/gd32450z-eval/rtconfig.h
+++ b/bsp/gd32450z-eval/rtconfig.h
@@ -11,12 +11,11 @@
#define RT_THREAD_PRIORITY_32
#define RT_THREAD_PRIORITY_MAX 32
#define RT_TICK_PER_SECOND 100
-#define RT_DEBUG
#define RT_USING_OVERFLOW_CHECK
-#define RT_DEBUG_INIT 0
-#define RT_DEBUG_THREAD 0
#define RT_USING_HOOK
+#define RT_IDEL_HOOK_LIST_SIZE 4
#define IDLE_THREAD_STACK_SIZE 256
+#define RT_DEBUG
/* Inter-Thread communication */
@@ -61,6 +60,7 @@
#define FINSH_CMD_SIZE 80
#define FINSH_USING_MSH
#define FINSH_USING_MSH_DEFAULT
+#define FINSH_ARG_MAX 10
/* Device virtual file system */
@@ -68,7 +68,7 @@
#define DFS_USING_WORKDIR
#define DFS_FILESYSTEMS_MAX 4
#define DFS_FILESYSTEM_TYPES_MAX 4
-#define DFS_FD_MAX 8
+#define DFS_FD_MAX 16
#define RT_USING_DFS_ELMFAT
/* elm-chan's FatFs, Generic FAT Filesystem Module */
@@ -82,11 +82,11 @@
#define RT_DFS_ELM_MAX_SECTOR_SIZE 512
#define RT_DFS_ELM_REENTRANT
#define RT_USING_DFS_DEVFS
-#define RT_USING_DFS_NET
/* Device Drivers */
#define RT_USING_DEVICE_IPC
+#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
#define RT_USING_PIN
@@ -98,7 +98,17 @@
#define RT_USING_LIBC
#define RT_USING_POSIX
-/* Network stack */
+/* Network */
+
+/* Socket abstraction layer */
+
+#define RT_USING_SAL
+
+/* protocol stack implement */
+
+#define SAL_USING_LWIP
+#define SAL_USING_POSIX
+#define SAL_PROTO_FAMILIES_NUM 4
/* light weight TCP/IP stack */
@@ -150,11 +160,6 @@
/* RT-Thread online packages */
-/* system packages */
-
-/* RT-Thread GUI Engine */
-
-
/* IoT - internet of things */
@@ -178,17 +183,20 @@
/* tools packages */
+/* system packages */
+
+
+/* peripheral libraries and drivers */
+
+
/* miscellaneous packages */
+/* sample package */
+
+
/* example package: hello */
-
-/* Privated Packages of RealThread */
-
-
-/* Network Utilities */
-
#define BSP_USING_SDRAM
#define BSP_USING_UART0
diff --git a/bsp/lpc54608-LPCXpresso/.config b/bsp/lpc54608-LPCXpresso/.config
index 55a82315cd..5aff9d0e48 100644
--- a/bsp/lpc54608-LPCXpresso/.config
+++ b/bsp/lpc54608-LPCXpresso/.config
@@ -13,15 +13,24 @@ CONFIG_RT_THREAD_PRIORITY_32=y
# CONFIG_RT_THREAD_PRIORITY_256 is not set
CONFIG_RT_THREAD_PRIORITY_MAX=32
CONFIG_RT_TICK_PER_SECOND=1000
-CONFIG_RT_DEBUG=y
CONFIG_RT_USING_OVERFLOW_CHECK=y
-CONFIG_RT_DEBUG_INIT=0
-CONFIG_RT_DEBUG_THREAD=0
CONFIG_RT_USING_HOOK=y
+CONFIG_RT_IDEL_HOOK_LIST_SIZE=4
CONFIG_IDLE_THREAD_STACK_SIZE=256
CONFIG_RT_USING_TIMER_SOFT=y
CONFIG_RT_TIMER_THREAD_PRIO=4
CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
+CONFIG_RT_DEBUG=y
+# CONFIG_RT_DEBUG_INIT_CONFIG is not set
+# CONFIG_RT_DEBUG_THREAD_CONFIG is not set
+# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set
+# CONFIG_RT_DEBUG_IPC_CONFIG is not set
+# CONFIG_RT_DEBUG_TIMER_CONFIG is not set
+# CONFIG_RT_DEBUG_IRQ_CONFIG is not set
+# CONFIG_RT_DEBUG_MEM_CONFIG is not set
+# CONFIG_RT_DEBUG_SLAB_CONFIG is not set
+# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set
+# CONFIG_RT_DEBUG_MODULE_CONFIG is not set
#
# Inter-Thread communication
@@ -49,6 +58,7 @@ CONFIG_RT_USING_HEAP=y
# Kernel Device Object
#
CONFIG_RT_USING_DEVICE=y
+# CONFIG_RT_USING_DEVICE_OPS is not set
# CONFIG_RT_USING_INTERRUPT_INFO is not set
CONFIG_RT_USING_CONSOLE=y
CONFIG_RT_CONSOLEBUF_SIZE=128
@@ -78,6 +88,7 @@ CONFIG_FINSH_USING_HISTORY=y
CONFIG_FINSH_HISTORY_LINES=5
CONFIG_FINSH_USING_SYMTAB=y
CONFIG_FINSH_USING_DESCRIPTION=y
+# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
CONFIG_FINSH_THREAD_PRIORITY=20
CONFIG_FINSH_THREAD_STACK_SIZE=4096
CONFIG_FINSH_CMD_SIZE=80
@@ -85,6 +96,7 @@ CONFIG_FINSH_CMD_SIZE=80
CONFIG_FINSH_USING_MSH=y
CONFIG_FINSH_USING_MSH_DEFAULT=y
# CONFIG_FINSH_USING_MSH_ONLY is not set
+CONFIG_FINSH_ARG_MAX=10
#
# Device virtual file system
@@ -93,7 +105,7 @@ CONFIG_RT_USING_DFS=y
CONFIG_DFS_USING_WORKDIR=y
CONFIG_DFS_FILESYSTEMS_MAX=2
CONFIG_DFS_FILESYSTEM_TYPES_MAX=2
-CONFIG_DFS_FD_MAX=4
+CONFIG_DFS_FD_MAX=16
CONFIG_RT_USING_DFS_ELMFAT=y
#
@@ -111,8 +123,7 @@ CONFIG_RT_DFS_ELM_DRIVES=2
CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
# CONFIG_RT_DFS_ELM_USE_ERASE is not set
CONFIG_RT_DFS_ELM_REENTRANT=y
-# CONFIG_RT_USING_DFS_DEVFS is not set
-# CONFIG_RT_USING_DFS_NET is not set
+CONFIG_RT_USING_DFS_DEVFS=y
# CONFIG_RT_USING_DFS_ROMFS is not set
# CONFIG_RT_USING_DFS_RAMFS is not set
# CONFIG_RT_USING_DFS_UFFS is not set
@@ -123,6 +134,7 @@ CONFIG_RT_DFS_ELM_REENTRANT=y
# Device Drivers
#
CONFIG_RT_USING_DEVICE_IPC=y
+CONFIG_RT_PIPE_BUFSZ=512
CONFIG_RT_USING_SERIAL=y
# CONFIG_RT_USING_CAN is not set
# CONFIG_RT_USING_HWTIMER is not set
@@ -130,6 +142,7 @@ CONFIG_RT_USING_SERIAL=y
CONFIG_RT_USING_I2C=y
CONFIG_RT_USING_I2C_BITOPS=y
CONFIG_RT_USING_PIN=y
+# CONFIG_RT_USING_PWM is not set
# CONFIG_RT_USING_MTD_NOR is not set
CONFIG_RT_USING_MTD_NAND=y
# CONFIG_RT_MTD_NAND_DEBUG is not set
@@ -137,6 +150,11 @@ CONFIG_RT_USING_RTC=y
# CONFIG_RT_USING_SOFT_RTC is not set
# CONFIG_RTC_SYNC_USING_NTP is not set
CONFIG_RT_USING_SDIO=y
+CONFIG_RT_SDIO_STACK_SIZE=512
+CONFIG_RT_SDIO_THREAD_PRIORITY=15
+CONFIG_RT_MMCSD_STACK_SIZE=1024
+CONFIG_RT_MMCSD_THREAD_PREORITY=22
+CONFIG_RT_MMCSD_MAX_PARTITION=16
CONFIG_RT_USING_SPI=y
# CONFIG_RT_USING_SPI_MSD is not set
# CONFIG_RT_USING_SFUD is not set
@@ -146,6 +164,7 @@ CONFIG_RT_USING_SPI=y
# CONFIG_RT_USING_SPI_WIFI is not set
# CONFIG_RT_USING_WDT is not set
# CONFIG_RT_USING_WIFI is not set
+# CONFIG_RT_USING_AUDIO is not set
#
# Using USB
@@ -158,13 +177,29 @@ CONFIG_RT_USING_SPI=y
#
CONFIG_RT_USING_LIBC=y
CONFIG_RT_USING_PTHREADS=y
-# CONFIG_RT_USING_POSIX is not set
-# CONFIG_HAVE_SYS_SIGNALS is not set
+CONFIG_RT_USING_POSIX=y
+# CONFIG_RT_USING_POSIX_MMAP is not set
+# CONFIG_RT_USING_POSIX_TERMIOS is not set
+# CONFIG_RT_USING_POSIX_AIO is not set
+# CONFIG_RT_USING_LIBDL is not set
+# CONFIG_RT_USING_LWP is not set
#
-# Network stack
+# Network
#
+#
+# Socket abstraction layer
+#
+CONFIG_RT_USING_SAL=y
+
+#
+# protocol stack implement
+#
+CONFIG_SAL_USING_LWIP=y
+CONFIG_SAL_USING_POSIX=y
+CONFIG_SAL_PROTO_FAMILIES_NUM=4
+
#
# light weight TCP/IP stack
#
@@ -201,6 +236,8 @@ CONFIG_RT_LWIP_TCP_WND=8196
CONFIG_RT_LWIP_TCPTHREAD_PRIORITY=10
CONFIG_RT_LWIP_TCPTHREAD_MBOX_SIZE=8
CONFIG_RT_LWIP_TCPTHREAD_STACKSIZE=1024
+# CONFIG_LWIP_NO_RX_THREAD is not set
+# CONFIG_LWIP_NO_TX_THREAD is not set
CONFIG_RT_LWIP_ETHTHREAD_PRIORITY=12
CONFIG_RT_LWIP_ETHTHREAD_STACKSIZE=1024
CONFIG_RT_LWIP_ETHTHREAD_MBOX_SIZE=8
@@ -240,20 +277,6 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# RT-Thread online packages
#
-#
-# system packages
-#
-
-#
-# RT-Thread GUI Engine
-#
-# CONFIG_PKG_USING_GUIENGINE is not set
-# CONFIG_PKG_USING_PERSIMMON is not set
-# CONFIG_PKG_USING_LWEXT4 is not set
-# CONFIG_PKG_USING_PARTITION is not set
-# CONFIG_PKG_USING_SQLITE is not set
-# CONFIG_PKG_USING_RTI is not set
-
#
# IoT - internet of things
#
@@ -262,6 +285,7 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# CONFIG_PKG_USING_MONGOOSE is not set
# CONFIG_PKG_USING_WEBTERMINAL is not set
# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
# CONFIG_PKG_USING_LJSON is not set
# CONFIG_PKG_USING_EZXML is not set
# CONFIG_PKG_USING_NANOPB is not set
@@ -283,6 +307,8 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# CONFIG_PKG_USING_COAP is not set
# CONFIG_PKG_USING_NOPOLL is not set
# CONFIG_PKG_USING_NETUTILS is not set
+# CONFIG_PKG_USING_ONENET is not set
+# CONFIG_PKG_USING_AT_DEVICE is not set
#
# security packages
@@ -294,6 +320,7 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
#
# language packages
#
+# CONFIG_PKG_USING_LUA is not set
# CONFIG_PKG_USING_JERRYSCRIPT is not set
# CONFIG_PKG_USING_MICROPYTHON is not set
@@ -301,27 +328,58 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# multimedia packages
#
# CONFIG_PKG_USING_OPENMV is not set
+# CONFIG_PKG_USING_MUPDF is not set
#
# tools packages
#
# CONFIG_PKG_USING_CMBACKTRACE is not set
+# CONFIG_PKG_USING_EASYFLASH is not set
# CONFIG_PKG_USING_EASYLOGGER is not set
# CONFIG_PKG_USING_SYSTEMVIEW is not set
-# CONFIG_PKG_USING_IPERF is not set
+
+#
+# system packages
+#
+# CONFIG_PKG_USING_GUIENGINE is not set
+# CONFIG_PKG_USING_PERSIMMON is not set
+# CONFIG_PKG_USING_CAIRO is not set
+# CONFIG_PKG_USING_PIXMAN is not set
+# CONFIG_PKG_USING_LWEXT4 is not set
+# CONFIG_PKG_USING_PARTITION is not set
+# CONFIG_PKG_USING_FAL is not set
+# CONFIG_PKG_USING_SQLITE is not set
+# CONFIG_PKG_USING_RTI is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
+
+#
+# peripheral libraries and drivers
+#
+# CONFIG_PKG_USING_STM32F4_HAL is not set
+# CONFIG_PKG_USING_STM32F4_DRIVERS is not set
+# CONFIG_PKG_USING_REALTEK_AMEBA is not set
#
# miscellaneous packages
#
+# CONFIG_PKG_USING_OPTPARSE is not set
# CONFIG_PKG_USING_FASTLZ is not set
# CONFIG_PKG_USING_MINILZO is not set
# CONFIG_PKG_USING_QUICKLZ is not set
+# CONFIG_PKG_USING_MULTIBUTTON is not set
+# CONFIG_PKG_USING_CANFESTIVAL is not set
+# CONFIG_PKG_USING_ZLIB is not set
+# CONFIG_PKG_USING_DSTR is not set
+
+#
+# sample package
+#
+# CONFIG_PKG_USING_SAMPLES is not set
#
# example package: hello
#
# CONFIG_PKG_USING_HELLO is not set
-# CONFIG_PKG_USING_MULTIBUTTON is not set
CONFIG_SOC_LPC54608=y
CONFIG_RT_USING_UART0=y
CONFIG_BSP_DRV_SDCARD=y
diff --git a/bsp/lpc54608-LPCXpresso/project.uvprojx b/bsp/lpc54608-LPCXpresso/project.uvprojx
index 4814893b17..d20f677e9e 100644
--- a/bsp/lpc54608-LPCXpresso/project.uvprojx
+++ b/bsp/lpc54608-LPCXpresso/project.uvprojx
@@ -1,46 +1,42 @@
-
2.1
-
### uVision Project, (C) Keil Software
-
rtthread-lpc546xx
0x4
ARM-ADS
- 5060750::V5.06 update 6 (build 750)::ARMCC
0
LPC54608J512ET180:M4
NXP
- NXP.LPC54608_DFP.2.3.0
- http://mcuxpresso.nxp.com/cmsis_pack/repo/
+ Keil.LPC54000_DFP.2.5.0
+ http://www.keil.com/pack/
IROM(0x00000000,0x00080000) IRAM(0x20000000,0x00028000) IRAM2(0x04000000,0x00008000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE
-
-
+
+
UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0LPC5460x_512 -FS00 -FL080000 -FP0($$Device:LPC54608J512ET180$Flash\LPC5460x_512.FLM))
0
$$Device:LPC54608J512ET180$Device\Include\LPC54608.h
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
$$Device:LPC54608J512ET180$SVD\LPC54608.svd
0
0
-
-
-
-
-
+
+
+
+
+
0
0
@@ -62,8 +58,8 @@
0
0
-
-
+
+
0
0
0
@@ -72,8 +68,8 @@
0
0
-
-
+
+
0
0
0
@@ -82,15 +78,15 @@
0
0
-
-
+
+
0
0
0
0
0
-
+
0
@@ -104,8 +100,8 @@
0
0
3
-
-
+
+
1
@@ -139,10 +135,10 @@
1
BIN\UL2CM3.DLL
"" ()
-
-
-
-
+
+
+
+
0
@@ -175,7 +171,7 @@
0
0
"Cortex-M4"
-
+
0
0
0
@@ -307,7 +303,7 @@
0x8000
-
+
1
@@ -324,7 +320,6 @@
0
0
1
- 0
0
0
0
@@ -335,9 +330,9 @@
0
--library_interface=armcc --library_type=standardlib --diag_suppress=66,1296,186
- SDK_DEBUGCONSOLE=0, CPU_LPC54608, CORE_M4, CPU_LPC54608J512ET180=1, RT_USING_ARM_LIBC
-
- SDK_2.2_LPCXpresso54608/sdmmc_2.1.2/inc;SDK_2.2_LPCXpresso54608/sdmmc_2.1.2/src;SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers;SDK_2.2_LPCXpresso54608/devices/LPC54608/utilities;SDK_2.2_LPCXpresso54608/CMSIS/Include;SDK_2.2_LPCXpresso54608/devices/LPC54608;drivers;applications;.;../../include;../../libcpu/arm/cortex-m4;../../libcpu/arm/common;../../components/cplusplus;../../components/drivers/include;../../components/drivers/include;../../components/drivers/include;../../components/drivers/include;../../components/drivers/include;../../components/drivers/include;../../components/drivers/spi;../../components/drivers/include;../../components/drivers/include;../../components/libc/pthreads;../../components/libc/time;../../components/libc/compilers/armlibc;../../components/finsh;../../components/net/lwip-2.0.2/src;../../components/net/lwip-2.0.2/src/include;../../components/net/lwip-2.0.2/src/include/ipv4;../../components/net/lwip-2.0.2/src/arch/include;../../components/net/lwip-2.0.2/src/include/netif;../../components/net/lwip-2.0.2/src/include/posix;../../components/dfs/include;../../components/dfs/filesystems/elmfat
+ CPU_LPC54608J512ET180=1, CPU_LPC54608, CORE_M4, SDK_DEBUGCONSOLE=0, RT_USING_ARM_LIBC
+
+ applications;.;drivers;SDK_2.2_LPCXpresso54608\CMSIS\Include;SDK_2.2_LPCXpresso54608\devices\LPC54608;SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers;SDK_2.2_LPCXpresso54608\devices\LPC54608\utilities;SDK_2.2_LPCXpresso54608\sdmmc_2.1.2\inc;SDK_2.2_LPCXpresso54608\sdmmc_2.1.2\src;..\..\include;..\..\libcpu\arm\cortex-m4;..\..\libcpu\arm\common;..\..\components\cplusplus;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\spi;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\armlibc;..\..\components\libc\pthreads;..\..\components\libc\time;..\..\components\net\lwip-2.0.2\src;..\..\components\net\lwip-2.0.2\src\include;..\..\components\net\lwip-2.0.2\src\include\ipv4;..\..\components\net\lwip-2.0.2\src\arch\include;..\..\components\net\lwip-2.0.2\src\include\netif;..\..\components\net\sal_socket\include;..\..\components\net\sal_socket\include\dfs_net;..\..\components\net\sal_socket\include\socket;..\..\components\net\sal_socket\include\dfs_net\sys_select;..\..\components\net\sal_socket\include\socket\sys_socket
@@ -352,10 +347,10 @@
0
0
-
-
-
-
+
+
+
+
@@ -367,259 +362,38 @@
0
0x00000000
0x02000000
-
+
.\LPC54608J512_flash.scf
-
-
+
+
--keep *.o(RTMSymTab) --keep *.o(.rti_fn.*) --keep *.o(FSymTab) --keep *.o(VSymTab)
-
-
+
+
- Libraries
+ Applications
- fsl_sd.c
+ application.c
1
- SDK_2.2_LPCXpresso54608/sdmmc_2.1.2/src/fsl_sd.c
-
-
- fsl_sdmmc.c
- 1
- SDK_2.2_LPCXpresso54608/sdmmc_2.1.2/src/fsl_sdmmc.c
-
-
- fsl_host.c
- 1
- SDK_2.2_LPCXpresso54608/sdmmc_2.1.2/src/fsl_host.c
-
-
- fsl_sd_event.c
- 1
- SDK_2.2_LPCXpresso54608/sdmmc_2.1.2/src/fsl_sd_event.c
-
-
- fsl_adc.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_adc.c
-
-
- fsl_clock.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_clock.c
-
-
- fsl_common.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_common.c
-
-
- fsl_crc.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_crc.c
-
-
- fsl_ctimer.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_ctimer.c
-
-
- fsl_dma.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_dma.c
-
-
- fsl_dmic.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_dmic.c
-
-
- fsl_dmic_dma.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_dmic_dma.c
-
-
- fsl_eeprom.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_eeprom.c
-
-
- fsl_emc.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_emc.c
-
-
- fsl_enet.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_enet.c
-
-
- fsl_flashiap.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_flashiap.c
-
-
- fsl_flexcomm.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_flexcomm.c
-
-
- fsl_fmc.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_fmc.c
-
-
- fsl_fmeas.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_fmeas.c
-
-
- fsl_gint.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_gint.c
-
-
- fsl_gpio.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_gpio.c
-
-
- fsl_i2c.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_i2c.c
-
-
- fsl_i2c_dma.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_i2c_dma.c
-
-
- fsl_i2s.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_i2s.c
-
-
- fsl_i2s_dma.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_i2s_dma.c
-
-
- fsl_inputmux.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_inputmux.c
-
-
- fsl_lcdc.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_lcdc.c
-
-
- fsl_mcan.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_mcan.c
-
-
- fsl_mrt.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_mrt.c
-
-
- fsl_pint.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_pint.c
-
-
- fsl_power.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_power.c
-
-
- fsl_reset.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_reset.c
-
-
- fsl_rit.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_rit.c
-
-
- fsl_rtc.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_rtc.c
-
-
- fsl_sctimer.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_sctimer.c
-
-
- fsl_sdif.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_sdif.c
-
-
- fsl_spi.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_spi.c
-
-
- fsl_spi_dma.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_spi_dma.c
-
-
- fsl_spifi.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_spifi.c
-
-
- fsl_spifi_dma.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_spifi_dma.c
-
-
- fsl_usart.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_usart.c
-
-
- fsl_usart_dma.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_usart_dma.c
-
-
- fsl_utick.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_utick.c
-
-
- fsl_wwdt.c
- 1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/drivers/fsl_wwdt.c
+ applications\application.c
-
-
- CMSIS
- startup_LPC54608.s
- 2
- SDK_2.2_LPCXpresso54608/devices/LPC54608/arm/startup_LPC54608.s
-
-
- system_LPC54608.c
+ mnt.c
1
- SDK_2.2_LPCXpresso54608/devices/LPC54608/system_LPC54608.c
+ applications\mnt.c
+
+
- keil_lib_power.lib
- 4
- SDK_2.2_LPCXpresso54608/devices/LPC54608/arm/keil_lib_power.lib
+ startup.c
+ 1
+ applications\startup.c
@@ -629,82 +403,419 @@
board.c
1
- drivers/board.c
+ drivers\board.c
+
+
clock_config.c
1
- drivers/clock_config.c
+ drivers\clock_config.c
+
+
drt_mpu.c
1
- drivers/drt_mpu.c
+ drivers\drt_mpu.c
+
+
drv_emac.c
1
- drivers/drv_emac.c
+ drivers\drv_emac.c
+
+
drv_ft5406.c
1
- drivers/drv_ft5406.c
+ drivers\drv_ft5406.c
+
+
drv_i2c.c
1
- drivers/drv_i2c.c
+ drivers\drv_i2c.c
+
+
drv_lcd.c
1
- drivers/drv_lcd.c
+ drivers\drv_lcd.c
+
+
drv_sd.c
1
- drivers/drv_sd.c
+ drivers\drv_sd.c
+
+
drv_sdram.c
1
- drivers/drv_sdram.c
+ drivers\drv_sdram.c
+
+
drv_sram.c
1
- drivers/drv_sram.c
+ drivers\drv_sram.c
+
+
drv_uart.c
1
- drivers/drv_uart.c
+ drivers\drv_uart.c
+
+
fsl_phy.c
1
- drivers/fsl_phy.c
+ drivers\fsl_phy.c
- Applications
+ CMSIS
- application.c
- 1
- applications/application.c
+ startup_LPC54608.s
+ 2
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\arm\startup_LPC54608.s
+
+
- mnt.c
+ system_LPC54608.c
1
- applications/mnt.c
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\system_LPC54608.c
+
+
- startup.c
+ keil_lib_power.lib
+ 4
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\arm\keil_lib_power.lib
+
+
+
+
+ Libraries
+
+
+ fsl_adc.c
1
- applications/startup.c
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_adc.c
+
+
+
+
+ fsl_clock.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_clock.c
+
+
+
+
+ fsl_common.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_common.c
+
+
+
+
+ fsl_crc.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_crc.c
+
+
+
+
+ fsl_ctimer.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_ctimer.c
+
+
+
+
+ fsl_dma.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_dma.c
+
+
+
+
+ fsl_dmic.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_dmic.c
+
+
+
+
+ fsl_dmic_dma.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_dmic_dma.c
+
+
+
+
+ fsl_eeprom.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_eeprom.c
+
+
+
+
+ fsl_emc.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_emc.c
+
+
+
+
+ fsl_enet.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_enet.c
+
+
+
+
+ fsl_flashiap.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_flashiap.c
+
+
+
+
+ fsl_flexcomm.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_flexcomm.c
+
+
+
+
+ fsl_fmc.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_fmc.c
+
+
+
+
+ fsl_fmeas.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_fmeas.c
+
+
+
+
+ fsl_gint.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_gint.c
+
+
+
+
+ fsl_gpio.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_gpio.c
+
+
+
+
+ fsl_i2c.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_i2c.c
+
+
+
+
+ fsl_i2c_dma.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_i2c_dma.c
+
+
+
+
+ fsl_i2s.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_i2s.c
+
+
+
+
+ fsl_i2s_dma.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_i2s_dma.c
+
+
+
+
+ fsl_inputmux.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_inputmux.c
+
+
+
+
+ fsl_lcdc.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_lcdc.c
+
+
+
+
+ fsl_mcan.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_mcan.c
+
+
+
+
+ fsl_mrt.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_mrt.c
+
+
+
+
+ fsl_pint.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_pint.c
+
+
+
+
+ fsl_power.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_power.c
+
+
+
+
+ fsl_reset.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_reset.c
+
+
+
+
+ fsl_rit.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_rit.c
+
+
+
+
+ fsl_rtc.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_rtc.c
+
+
+
+
+ fsl_sctimer.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_sctimer.c
+
+
+
+
+ fsl_sdif.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_sdif.c
+
+
+
+
+ fsl_spi.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_spi.c
+
+
+
+
+ fsl_spi_dma.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_spi_dma.c
+
+
+
+
+ fsl_spifi.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_spifi.c
+
+
+
+
+ fsl_spifi_dma.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_spifi_dma.c
+
+
+
+
+ fsl_usart.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_usart.c
+
+
+
+
+ fsl_usart_dma.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_usart_dma.c
+
+
+
+
+ fsl_utick.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_utick.c
+
+
+
+
+ fsl_wwdt.c
+ 1
+ SDK_2.2_LPCXpresso54608\devices\LPC54608\drivers\fsl_wwdt.c
+
+
+
+
+ fsl_sd.c
+ 1
+ SDK_2.2_LPCXpresso54608\sdmmc_2.1.2\src\fsl_sd.c
+
+
+
+
+ fsl_sdmmc.c
+ 1
+ SDK_2.2_LPCXpresso54608\sdmmc_2.1.2\src\fsl_sdmmc.c
+
+
+
+
+ fsl_host.c
+ 1
+ SDK_2.2_LPCXpresso54608\sdmmc_2.1.2\src\fsl_host.c
+
+
+
+
+ fsl_sd_event.c
+ 1
+ SDK_2.2_LPCXpresso54608\sdmmc_2.1.2\src\fsl_sd_event.c
@@ -714,82 +825,112 @@
clock.c
1
- ../../src/clock.c
+ ..\..\src\clock.c
+
+
components.c
1
- ../../src/components.c
+ ..\..\src\components.c
+
+
device.c
1
- ../../src/device.c
+ ..\..\src\device.c
+
+
idle.c
1
- ../../src/idle.c
+ ..\..\src\idle.c
+
+
ipc.c
1
- ../../src/ipc.c
+ ..\..\src\ipc.c
+
+
irq.c
1
- ../../src/irq.c
+ ..\..\src\irq.c
+
+
kservice.c
1
- ../../src/kservice.c
+ ..\..\src\kservice.c
+
+
mem.c
1
- ../../src/mem.c
+ ..\..\src\mem.c
+
+
memheap.c
1
- ../../src/memheap.c
+ ..\..\src\memheap.c
+
+
mempool.c
1
- ../../src/mempool.c
+ ..\..\src\mempool.c
+
+
module.c
1
- ../../src/module.c
+ ..\..\src\module.c
+
+
object.c
1
- ../../src/object.c
+ ..\..\src\object.c
+
+
scheduler.c
1
- ../../src/scheduler.c
+ ..\..\src\scheduler.c
+
+
signal.c
1
- ../../src/signal.c
+ ..\..\src\signal.c
+
+
thread.c
1
- ../../src/thread.c
+ ..\..\src\thread.c
+
+
timer.c
1
- ../../src/timer.c
+ ..\..\src\timer.c
@@ -799,27 +940,35 @@
cpuport.c
1
- ../../libcpu/arm/cortex-m4/cpuport.c
+ ..\..\libcpu\arm\cortex-m4\cpuport.c
+
+
context_rvds.S
2
- ../../libcpu/arm/cortex-m4/context_rvds.S
+ ..\..\libcpu\arm\cortex-m4\context_rvds.S
+
+
backtrace.c
1
- ../../libcpu/arm/common/backtrace.c
+ ..\..\libcpu\arm\common\backtrace.c
+
+
div0.c
1
- ../../libcpu/arm/common/div0.c
+ ..\..\libcpu\arm\common\div0.c
+
+
showmem.c
1
- ../../libcpu/arm/common/showmem.c
+ ..\..\libcpu\arm\common\showmem.c
@@ -829,581 +978,35 @@
Mutex.cpp
8
- ../../components/cplusplus/Mutex.cpp
+ ..\..\components\cplusplus\Mutex.cpp
+
+
Semaphore.cpp
8
- ../../components/cplusplus/Semaphore.cpp
+ ..\..\components\cplusplus\Semaphore.cpp
+
+
Thread.cpp
8
- ../../components/cplusplus/Thread.cpp
+ ..\..\components\cplusplus\Thread.cpp
+
+
crt.cpp
8
- ../../components/cplusplus/crt.cpp
+ ..\..\components\cplusplus\crt.cpp
+
+
crt_init.c
1
- ../../components/cplusplus/crt_init.c
-
-
-
-
- DeviceDrivers
-
-
- 0
- 0
- 0
- 0
- 0
- 1
- 0
- 0
- 0
- 0
- 3
-
-
- 0
-
-
-
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 0
- 0
- 2
- 2
- 2
- 2
- 2
-
-
-
-
-
-
-
-
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
-
-
-
-
-
-
-
-
-
-
-
- pin.c
- 1
- ../../components/drivers/misc/pin.c
-
-
- i2c_core.c
- 1
- ../../components/drivers/i2c/i2c_core.c
-
-
- i2c_dev.c
- 1
- ../../components/drivers/i2c/i2c_dev.c
-
-
- i2c-bit-ops.c
- 1
- ../../components/drivers/i2c/i2c-bit-ops.c
-
-
- block_dev.c
- 1
- ../../components/drivers/sdio/block_dev.c
-
-
- mmcsd_core.c
- 1
- ../../components/drivers/sdio/mmcsd_core.c
-
-
- sd.c
- 1
- ../../components/drivers/sdio/sd.c
-
-
- sdio.c
- 1
- ../../components/drivers/sdio/sdio.c
-
-
- mmc.c
- 1
- ../../components/drivers/sdio/mmc.c
-
-
- serial.c
- 1
- ../../components/drivers/serial/serial.c
-
-
- rtc.c
- 1
- ../../components/drivers/rtc/rtc.c
-
-
- mtd_nand.c
- 1
- ../../components/drivers/mtd/mtd_nand.c
-
-
- spi_core.c
- 1
- ../../components/drivers/spi/spi_core.c
-
-
- spi_dev.c
- 1
- ../../components/drivers/spi/spi_dev.c
-
-
- enc28j60.c
- 1
- ../../components/drivers/spi/enc28j60.c
-
-
- completion.c
- 1
- ../../components/drivers/src/completion.c
-
-
- dataqueue.c
- 1
- ../../components/drivers/src/dataqueue.c
-
-
- pipe.c
- 1
- ../../components/drivers/src/pipe.c
-
-
- ringbuffer.c
- 1
- ../../components/drivers/src/ringbuffer.c
-
-
- waitqueue.c
- 1
- ../../components/drivers/src/waitqueue.c
-
-
- workqueue.c
- 1
- ../../components/drivers/src/workqueue.c
-
-
-
-
- pthreads
-
-
- mqueue.c
- 1
- ../../components/libc/pthreads/mqueue.c
-
-
- pthread.c
- 1
- ../../components/libc/pthreads/pthread.c
-
-
- pthread_attr.c
- 1
- ../../components/libc/pthreads/pthread_attr.c
-
-
- pthread_barrier.c
- 1
- ../../components/libc/pthreads/pthread_barrier.c
-
-
- pthread_cond.c
- 1
- ../../components/libc/pthreads/pthread_cond.c
-
-
- pthread_mutex.c
- 1
- ../../components/libc/pthreads/pthread_mutex.c
-
-
- pthread_rwlock.c
- 1
- ../../components/libc/pthreads/pthread_rwlock.c
-
-
- pthread_spin.c
- 1
- ../../components/libc/pthreads/pthread_spin.c
-
-
- pthread_tls.c
- 1
- ../../components/libc/pthreads/pthread_tls.c
-
-
- sched.c
- 1
- ../../components/libc/pthreads/sched.c
-
-
- semaphore.c
- 1
- ../../components/libc/pthreads/semaphore.c
-
-
- clock_time.c
- 1
- ../../components/libc/time/clock_time.c
-
-
- posix_sleep.c
- 1
- ../../components/libc/time/posix_sleep.c
-
-
-
-
- libc
-
-
- libc.c
- 1
- ../../components/libc/compilers/armlibc/libc.c
-
-
- libc_syms.c
- 1
- ../../components/libc/compilers/armlibc/libc_syms.c
-
-
- mem_std.c
- 1
- ../../components/libc/compilers/armlibc/mem_std.c
-
-
- stdio.c
- 1
- ../../components/libc/compilers/armlibc/stdio.c
-
-
- stubs.c
- 1
- ../../components/libc/compilers/armlibc/stubs.c
-
-
- time.c
- 1
- ../../components/libc/compilers/armlibc/time.c
-
-
-
-
- finsh
-
-
- shell.c
- 1
- ../../components/finsh/shell.c
-
-
- symbol.c
- 1
- ../../components/finsh/symbol.c
-
-
- cmd.c
- 1
- ../../components/finsh/cmd.c
-
-
- msh.c
- 1
- ../../components/finsh/msh.c
-
-
- msh_cmd.c
- 1
- ../../components/finsh/msh_cmd.c
-
-
- msh_file.c
- 1
- ../../components/finsh/msh_file.c
-
-
- finsh_compiler.c
- 1
- ../../components/finsh/finsh_compiler.c
-
-
- finsh_error.c
- 1
- ../../components/finsh/finsh_error.c
-
-
- finsh_heap.c
- 1
- ../../components/finsh/finsh_heap.c
-
-
- finsh_init.c
- 1
- ../../components/finsh/finsh_init.c
-
-
- finsh_node.c
- 1
- ../../components/finsh/finsh_node.c
-
-
- finsh_ops.c
- 1
- ../../components/finsh/finsh_ops.c
-
-
- finsh_parser.c
- 1
- ../../components/finsh/finsh_parser.c
-
-
- finsh_var.c
- 1
- ../../components/finsh/finsh_var.c
-
-
- finsh_vm.c
- 1
- ../../components/finsh/finsh_vm.c
-
-
- finsh_token.c
- 1
- ../../components/finsh/finsh_token.c
-
-
-
-
- lwIP
-
-
- sys_arch.c
- 1
- ../../components/net/lwip-2.0.2/src/arch/sys_arch.c
-
-
- api_lib.c
- 1
- ../../components/net/lwip-2.0.2/src/api/api_lib.c
-
-
- api_msg.c
- 1
- ../../components/net/lwip-2.0.2/src/api/api_msg.c
-
-
- err.c
- 1
- ../../components/net/lwip-2.0.2/src/api/err.c
-
-
- netbuf.c
- 1
- ../../components/net/lwip-2.0.2/src/api/netbuf.c
-
-
- netdb.c
- 1
- ../../components/net/lwip-2.0.2/src/api/netdb.c
-
-
- netifapi.c
- 1
- ../../components/net/lwip-2.0.2/src/api/netifapi.c
-
-
- sockets.c
- 1
- ../../components/net/lwip-2.0.2/src/api/sockets.c
-
-
- tcpip.c
- 1
- ../../components/net/lwip-2.0.2/src/api/tcpip.c
-
-
- def.c
- 1
- ../../components/net/lwip-2.0.2/src/core/def.c
-
-
- dns.c
- 1
- ../../components/net/lwip-2.0.2/src/core/dns.c
-
-
- inet_chksum.c
- 1
- ../../components/net/lwip-2.0.2/src/core/inet_chksum.c
-
-
- init.c
- 1
- ../../components/net/lwip-2.0.2/src/core/init.c
-
-
- ip.c
- 1
- ../../components/net/lwip-2.0.2/src/core/ip.c
-
-
- memp.c
- 1
- ../../components/net/lwip-2.0.2/src/core/memp.c
-
-
- netif.c
- 1
- ../../components/net/lwip-2.0.2/src/core/netif.c
-
-
- pbuf.c
- 1
- ../../components/net/lwip-2.0.2/src/core/pbuf.c
-
-
- raw.c
- 1
- ../../components/net/lwip-2.0.2/src/core/raw.c
-
-
- stats.c
- 1
- ../../components/net/lwip-2.0.2/src/core/stats.c
-
-
- sys.c
- 1
- ../../components/net/lwip-2.0.2/src/core/sys.c
-
-
- tcp.c
- 1
- ../../components/net/lwip-2.0.2/src/core/tcp.c
-
-
- tcp_in.c
- 1
- ../../components/net/lwip-2.0.2/src/core/tcp_in.c
-
-
- tcp_out.c
- 1
- ../../components/net/lwip-2.0.2/src/core/tcp_out.c
-
-
- timeouts.c
- 1
- ../../components/net/lwip-2.0.2/src/core/timeouts.c
-
-
- udp.c
- 1
- ../../components/net/lwip-2.0.2/src/core/udp.c
-
-
- ethernet.c
- 1
- ../../components/net/lwip-2.0.2/src/netif/ethernet.c
-
-
- ethernetif.c
- 1
- ../../components/net/lwip-2.0.2/src/netif/ethernetif.c
-
-
- lowpan6.c
- 1
- ../../components/net/lwip-2.0.2/src/netif/lowpan6.c
-
-
- autoip.c
- 1
- ../../components/net/lwip-2.0.2/src/core/ipv4/autoip.c
-
-
- dhcp.c
- 1
- ../../components/net/lwip-2.0.2/src/core/ipv4/dhcp.c
-
-
- etharp.c
- 1
- ../../components/net/lwip-2.0.2/src/core/ipv4/etharp.c
-
-
- icmp.c
- 1
- ../../components/net/lwip-2.0.2/src/core/ipv4/icmp.c
-
-
- igmp.c
- 1
- ../../components/net/lwip-2.0.2/src/core/ipv4/igmp.c
-
-
- ip4.c
- 1
- ../../components/net/lwip-2.0.2/src/core/ipv4/ip4.c
-
-
- ip4_addr.c
- 1
- ../../components/net/lwip-2.0.2/src/core/ipv4/ip4_addr.c
-
-
- ip4_frag.c
- 1
- ../../components/net/lwip-2.0.2/src/core/ipv4/ip4_frag.c
+ ..\..\components\cplusplus\crt_init.c
@@ -1413,43 +1016,781 @@
dfs.c
1
- ../../components/dfs/src/dfs.c
+ ..\..\components\dfs\src\dfs.c
+
+
dfs_file.c
1
- ../../components/dfs/src/dfs_file.c
+ ..\..\components\dfs\src\dfs_file.c
+
+
dfs_fs.c
1
- ../../components/dfs/src/dfs_fs.c
+ ..\..\components\dfs\src\dfs_fs.c
+
+
dfs_posix.c
1
- ../../components/dfs/src/dfs_posix.c
+ ..\..\components\dfs\src\dfs_posix.c
+
+
+
+ poll.c
+ 1
+ ..\..\components\dfs\src\poll.c
+
+
+
+
+ select.c
+ 1
+ ..\..\components\dfs\src\select.c
+
+
+
+
+ devfs.c
+ 1
+ ..\..\components\dfs\filesystems\devfs\devfs.c
+
+
+
dfs_elm.c
1
- ../../components/dfs/filesystems/elmfat/dfs_elm.c
+ ..\..\components\dfs\filesystems\elmfat\dfs_elm.c
+
+
ff.c
1
- ../../components/dfs/filesystems/elmfat/ff.c
+ ..\..\components\dfs\filesystems\elmfat\ff.c
+
+
+
+
+ DeviceDrivers
+
+
+ i2c_core.c
+ 1
+ ..\..\components\drivers\i2c\i2c_core.c
+
+
+
+
+ i2c_dev.c
+ 1
+ ..\..\components\drivers\i2c\i2c_dev.c
+
+
+
+
+ i2c-bit-ops.c
+ 1
+ ..\..\components\drivers\i2c\i2c-bit-ops.c
+
+
+
+
+ pin.c
+ 1
+ ..\..\components\drivers\misc\pin.c
+
+
+
+
+ mtd_nand.c
+ 1
+ ..\..\components\drivers\mtd\mtd_nand.c
+
+
+
+
+ rtc.c
+ 1
+ ..\..\components\drivers\rtc\rtc.c
+
+
+
+
+ block_dev.c
+ 1
+ ..\..\components\drivers\sdio\block_dev.c
+
+
+
+
+ mmcsd_core.c
+ 1
+ ..\..\components\drivers\sdio\mmcsd_core.c
+
+
+
+
+ sd.c
+ 1
+ ..\..\components\drivers\sdio\sd.c
+
+
+
+
+ sdio.c
+ 1
+ ..\..\components\drivers\sdio\sdio.c
+
+
+
+
+ mmc.c
+ 1
+ ..\..\components\drivers\sdio\mmc.c
+
+
+
+
+ serial.c
+ 1
+ ..\..\components\drivers\serial\serial.c
+
+
+
+
+ spi_core.c
+ 1
+ ..\..\components\drivers\spi\spi_core.c
+
+
+
+
+ spi_dev.c
+ 1
+ ..\..\components\drivers\spi\spi_dev.c
+
+
+
+
+ completion.c
+ 1
+ ..\..\components\drivers\src\completion.c
+
+
+
+
+ dataqueue.c
+ 1
+ ..\..\components\drivers\src\dataqueue.c
+
+
+
+
+ pipe.c
+ 1
+ ..\..\components\drivers\src\pipe.c
+
+
+
+
+ ringbuffer.c
+ 1
+ ..\..\components\drivers\src\ringbuffer.c
+
+
+
+
+ waitqueue.c
+ 1
+ ..\..\components\drivers\src\waitqueue.c
+
+
+
+
+ workqueue.c
+ 1
+ ..\..\components\drivers\src\workqueue.c
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ finsh
+
+
+ shell.c
+ 1
+ ..\..\components\finsh\shell.c
+
+
+
+
+ symbol.c
+ 1
+ ..\..\components\finsh\symbol.c
+
+
+
+
+ cmd.c
+ 1
+ ..\..\components\finsh\cmd.c
+
+
+
+
+ msh.c
+ 1
+ ..\..\components\finsh\msh.c
+
+
+
+
+ msh_cmd.c
+ 1
+ ..\..\components\finsh\msh_cmd.c
+
+
+
+
+ msh_file.c
+ 1
+ ..\..\components\finsh\msh_file.c
+
+
+
+
+ finsh_compiler.c
+ 1
+ ..\..\components\finsh\finsh_compiler.c
+
+
+
+
+ finsh_error.c
+ 1
+ ..\..\components\finsh\finsh_error.c
+
+
+
+
+ finsh_heap.c
+ 1
+ ..\..\components\finsh\finsh_heap.c
+
+
+
+
+ finsh_init.c
+ 1
+ ..\..\components\finsh\finsh_init.c
+
+
+
+
+ finsh_node.c
+ 1
+ ..\..\components\finsh\finsh_node.c
+
+
+
+
+ finsh_ops.c
+ 1
+ ..\..\components\finsh\finsh_ops.c
+
+
+
+
+ finsh_parser.c
+ 1
+ ..\..\components\finsh\finsh_parser.c
+
+
+
+
+ finsh_var.c
+ 1
+ ..\..\components\finsh\finsh_var.c
+
+
+
+
+ finsh_vm.c
+ 1
+ ..\..\components\finsh\finsh_vm.c
+
+
+
+
+ finsh_token.c
+ 1
+ ..\..\components\finsh\finsh_token.c
+
+
+
+
+ libc
+
+
+ libc.c
+ 1
+ ..\..\components\libc\compilers\armlibc\libc.c
+
+
+
+
+ libc_syms.c
+ 1
+ ..\..\components\libc\compilers\armlibc\libc_syms.c
+
+
+
+
+ mem_std.c
+ 1
+ ..\..\components\libc\compilers\armlibc\mem_std.c
+
+
+
+
+ stdio.c
+ 1
+ ..\..\components\libc\compilers\armlibc\stdio.c
+
+
+
+
+ stubs.c
+ 1
+ ..\..\components\libc\compilers\armlibc\stubs.c
+
+
+
+
+ time.c
+ 1
+ ..\..\components\libc\compilers\armlibc\time.c
+
+
+
+
+ pthreads
+
+
+ mqueue.c
+ 1
+ ..\..\components\libc\pthreads\mqueue.c
+
+
+
+
+ pthread.c
+ 1
+ ..\..\components\libc\pthreads\pthread.c
+
+
+
+
+ pthread_attr.c
+ 1
+ ..\..\components\libc\pthreads\pthread_attr.c
+
+
+
+
+ pthread_barrier.c
+ 1
+ ..\..\components\libc\pthreads\pthread_barrier.c
+
+
+
+
+ pthread_cond.c
+ 1
+ ..\..\components\libc\pthreads\pthread_cond.c
+
+
+
+
+ pthread_mutex.c
+ 1
+ ..\..\components\libc\pthreads\pthread_mutex.c
+
+
+
+
+ pthread_rwlock.c
+ 1
+ ..\..\components\libc\pthreads\pthread_rwlock.c
+
+
+
+
+ pthread_spin.c
+ 1
+ ..\..\components\libc\pthreads\pthread_spin.c
+
+
+
+
+ pthread_tls.c
+ 1
+ ..\..\components\libc\pthreads\pthread_tls.c
+
+
+
+
+ sched.c
+ 1
+ ..\..\components\libc\pthreads\sched.c
+
+
+
+
+ semaphore.c
+ 1
+ ..\..\components\libc\pthreads\semaphore.c
+
+
+
+
+ clock_time.c
+ 1
+ ..\..\components\libc\time\clock_time.c
+
+
+
+
+ posix_sleep.c
+ 1
+ ..\..\components\libc\time\posix_sleep.c
+
+
+
+
+ lwIP
+
+
+ sys_arch.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\arch\sys_arch.c
+
+
+
+
+ api_lib.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\api\api_lib.c
+
+
+
+
+ api_msg.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\api\api_msg.c
+
+
+
+
+ err.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\api\err.c
+
+
+
+
+ netbuf.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\api\netbuf.c
+
+
+
+
+ netdb.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\api\netdb.c
+
+
+
+
+ netifapi.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\api\netifapi.c
+
+
+
+
+ sockets.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\api\sockets.c
+
+
+
+
+ tcpip.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\api\tcpip.c
+
+
+
+
+ def.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\def.c
+
+
+
+
+ dns.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\dns.c
+
+
+
+
+ inet_chksum.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\inet_chksum.c
+
+
+
+
+ init.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\init.c
+
+
+
+
+ ip.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\ip.c
+
+
+
+
+ memp.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\memp.c
+
+
+
+
+ netif.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\netif.c
+
+
+
+
+ pbuf.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\pbuf.c
+
+
+
+
+ raw.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\raw.c
+
+
+
+
+ stats.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\stats.c
+
+
+
+
+ sys.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\sys.c
+
+
+
+
+ tcp.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\tcp.c
+
+
+
+
+ tcp_in.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\tcp_in.c
+
+
+
+
+ tcp_out.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\tcp_out.c
+
+
+
+
+ timeouts.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\timeouts.c
+
+
+
+
+ udp.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\udp.c
+
+
+
+
+ ethernet.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\netif\ethernet.c
+
+
+
+
+ ethernetif.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\netif\ethernetif.c
+
+
+
+
+ lowpan6.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\netif\lowpan6.c
+
+
+
+
+ autoip.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\ipv4\autoip.c
+
+
+
+
+ dhcp.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\ipv4\dhcp.c
+
+
+
+
+ etharp.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\ipv4\etharp.c
+
+
+
+
+ icmp.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\ipv4\icmp.c
+
+
+
+
+ igmp.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\ipv4\igmp.c
+
+
+
+
+ ip4.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4.c
+
+
+
+
+ ip4_addr.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4_addr.c
+
+
+
+
+ ip4_frag.c
+ 1
+ ..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4_frag.c
+
+
+
+
+ SAL
+
+
+ sal_ipaddr.c
+ 1
+ ..\..\components\net\sal_socket\src\sal_ipaddr.c
+
+
+
+
+ sal_socket.c
+ 1
+ ..\..\components\net\sal_socket\src\sal_socket.c
+
+
+
+
+ net_netdb.c
+ 1
+ ..\..\components\net\sal_socket\socket\net_netdb.c
+
+
+
+
+ net_sockets.c
+ 1
+ ..\..\components\net\sal_socket\socket\net_sockets.c
+
+
+
+
+ af_inet_lwip.c
+ 1
+ ..\..\components\net\sal_socket\impl\af_inet_lwip.c
+
+
+
+
+ dfs_net.c
+ 1
+ ..\..\components\net\sal_socket\dfs_net\dfs_net.c
-
-
-
-
+
+
+
-
diff --git a/bsp/lpc54608-LPCXpresso/rtconfig.h b/bsp/lpc54608-LPCXpresso/rtconfig.h
index f40f88076b..540ba96030 100644
--- a/bsp/lpc54608-LPCXpresso/rtconfig.h
+++ b/bsp/lpc54608-LPCXpresso/rtconfig.h
@@ -8,20 +8,17 @@
#define RT_NAME_MAX 8
#define RT_ALIGN_SIZE 4
-/* RT_THREAD_PRIORITY_8 is not set */
#define RT_THREAD_PRIORITY_32
-/* RT_THREAD_PRIORITY_256 is not set */
#define RT_THREAD_PRIORITY_MAX 32
#define RT_TICK_PER_SECOND 1000
-#define RT_DEBUG
#define RT_USING_OVERFLOW_CHECK
-#define RT_DEBUG_INIT 0
-#define RT_DEBUG_THREAD 0
#define RT_USING_HOOK
+#define RT_IDEL_HOOK_LIST_SIZE 4
#define IDLE_THREAD_STACK_SIZE 256
#define RT_USING_TIMER_SOFT
#define RT_TIMER_THREAD_PRIO 4
#define RT_TIMER_THREAD_STACK_SIZE 512
+#define RT_DEBUG
/* Inter-Thread communication */
@@ -30,23 +27,17 @@
#define RT_USING_EVENT
#define RT_USING_MAILBOX
#define RT_USING_MESSAGEQUEUE
-/* RT_USING_SIGNALS is not set */
/* Memory Management */
#define RT_USING_MEMPOOL
#define RT_USING_MEMHEAP
-/* RT_USING_NOHEAP is not set */
#define RT_USING_SMALL_MEM
-/* RT_USING_SLAB is not set */
-/* RT_USING_MEMHEAP_AS_HEAP is not set */
-/* RT_USING_MEMTRACE is not set */
#define RT_USING_HEAP
/* Kernel Device Object */
#define RT_USING_DEVICE
-/* RT_USING_INTERRUPT_INFO is not set */
#define RT_USING_CONSOLE
#define RT_CONSOLEBUF_SIZE 128
#define RT_CONSOLE_DEVICE_NAME "uart0"
@@ -58,7 +49,6 @@
/* RT-Thread Components */
#define RT_USING_COMPONENTS_INIT
-/* RT_USING_USER_MAIN is not set */
/* C++ features */
@@ -75,10 +65,9 @@
#define FINSH_THREAD_PRIORITY 20
#define FINSH_THREAD_STACK_SIZE 4096
#define FINSH_CMD_SIZE 80
-/* FINSH_USING_AUTH is not set */
#define FINSH_USING_MSH
#define FINSH_USING_MSH_DEFAULT
-/* FINSH_USING_MSH_ONLY is not set */
+#define FINSH_ARG_MAX 10
/* Device virtual file system */
@@ -86,7 +75,7 @@
#define DFS_USING_WORKDIR
#define DFS_FILESYSTEMS_MAX 2
#define DFS_FILESYSTEM_TYPES_MAX 2
-#define DFS_FD_MAX 4
+#define DFS_FD_MAX 16
#define RT_USING_DFS_ELMFAT
/* elm-chan's FatFs, Generic FAT Filesystem Module */
@@ -94,73 +83,57 @@
#define RT_DFS_ELM_CODE_PAGE 437
#define RT_DFS_ELM_WORD_ACCESS
#define RT_DFS_ELM_USE_LFN_0
-/* RT_DFS_ELM_USE_LFN_1 is not set */
-/* RT_DFS_ELM_USE_LFN_2 is not set */
-/* RT_DFS_ELM_USE_LFN_3 is not set */
#define RT_DFS_ELM_USE_LFN 0
#define RT_DFS_ELM_MAX_LFN 255
#define RT_DFS_ELM_DRIVES 2
#define RT_DFS_ELM_MAX_SECTOR_SIZE 512
-/* RT_DFS_ELM_USE_ERASE is not set */
#define RT_DFS_ELM_REENTRANT
-/* RT_USING_DFS_DEVFS is not set */
-/* RT_USING_DFS_NET is not set */
-/* RT_USING_DFS_ROMFS is not set */
-/* RT_USING_DFS_RAMFS is not set */
-/* RT_USING_DFS_UFFS is not set */
-/* RT_USING_DFS_JFFS2 is not set */
-/* RT_USING_DFS_NFS is not set */
+#define RT_USING_DFS_DEVFS
/* Device Drivers */
#define RT_USING_DEVICE_IPC
+#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
-/* RT_USING_CAN is not set */
-/* RT_USING_HWTIMER is not set */
-/* RT_USING_CPUTIME is not set */
#define RT_USING_I2C
#define RT_USING_I2C_BITOPS
#define RT_USING_PIN
-/* RT_USING_MTD_NOR is not set */
#define RT_USING_MTD_NAND
-/* RT_MTD_NAND_DEBUG is not set */
#define RT_USING_RTC
-/* RT_USING_SOFT_RTC is not set */
-/* RTC_SYNC_USING_NTP is not set */
#define RT_USING_SDIO
+#define RT_SDIO_STACK_SIZE 512
+#define RT_SDIO_THREAD_PRIORITY 15
+#define RT_MMCSD_STACK_SIZE 1024
+#define RT_MMCSD_THREAD_PREORITY 22
+#define RT_MMCSD_MAX_PARTITION 16
#define RT_USING_SPI
-/* RT_USING_SPI_MSD is not set */
-/* RT_USING_SFUD is not set */
-/* RT_USING_W25QXX is not set */
-/* RT_USING_GD is not set */
-/* RT_USING_ENC28J60 is not set */
-/* RT_USING_SPI_WIFI is not set */
-/* RT_USING_WDT is not set */
-/* RT_USING_WIFI is not set */
/* Using USB */
-/* RT_USING_USB_HOST is not set */
-/* RT_USING_USB_DEVICE is not set */
/* POSIX layer and C standard library */
#define RT_USING_LIBC
#define RT_USING_PTHREADS
-/* RT_USING_POSIX is not set */
-/* HAVE_SYS_SIGNALS is not set */
+#define RT_USING_POSIX
-/* Network stack */
+/* Network */
+
+/* Socket abstraction layer */
+
+#define RT_USING_SAL
+
+/* protocol stack implement */
+
+#define SAL_USING_LWIP
+#define SAL_USING_POSIX
+#define SAL_PROTO_FAMILIES_NUM 4
/* light weight TCP/IP stack */
#define RT_USING_LWIP
-/* RT_USING_LWIP141 is not set */
#define RT_USING_LWIP202
-/* RT_USING_LWIP_IPV6 is not set */
-/* RT_LWIP_IGMP is not set */
#define RT_LWIP_ICMP
-/* RT_LWIP_SNMP is not set */
#define RT_LWIP_DNS
#define RT_LWIP_DHCP
#define IP_SOF_BROADCAST 1
@@ -173,8 +146,6 @@
#define RT_LWIP_MSKADDR "255.255.255.0"
#define RT_LWIP_UDP
#define RT_LWIP_TCP
-/* RT_LWIP_RAW is not set */
-/* RT_LWIP_PPP is not set */
#define RT_MEMP_NUM_NETCONN 8
#define RT_LWIP_PBUF_NUM 16
#define RT_LWIP_RAW_PCB_NUM 4
@@ -189,104 +160,64 @@
#define RT_LWIP_ETHTHREAD_PRIORITY 12
#define RT_LWIP_ETHTHREAD_STACKSIZE 1024
#define RT_LWIP_ETHTHREAD_MBOX_SIZE 8
-/* RT_LWIP_REASSEMBLY_FRAG is not set */
#define LWIP_NETIF_STATUS_CALLBACK 1
#define SO_REUSE 1
#define LWIP_SO_RCVTIMEO 1
#define LWIP_SO_SNDTIMEO 1
#define LWIP_SO_RCVBUF 1
-/* RT_LWIP_NETIF_LOOPBACK is not set */
#define LWIP_NETIF_LOOPBACK 0
/* Modbus master and slave stack */
-/* RT_USING_MODBUS is not set */
-/* LWIP_USING_DHCPD is not set */
/* VBUS(Virtual Software BUS) */
-/* RT_USING_VBUS is not set */
/* Utilities */
-/* RT_USING_LOGTRACE is not set */
-/* RT_USING_RYM is not set */
/* ARM CMSIS */
-/* RT_USING_CMSIS_OS is not set */
-/* RT_USING_RTT_CMSIS is not set */
/* RT-Thread online packages */
-/* system packages */
-
-/* RT-Thread GUI Engine */
-
-/* PKG_USING_GUIENGINE is not set */
-/* PKG_USING_PERSIMMON is not set */
-/* PKG_USING_LWEXT4 is not set */
-/* PKG_USING_PARTITION is not set */
-/* PKG_USING_SQLITE is not set */
-/* PKG_USING_RTI is not set */
-
/* IoT - internet of things */
-/* PKG_USING_PAHOMQTT is not set */
-/* PKG_USING_WEBCLIENT is not set */
-/* PKG_USING_MONGOOSE is not set */
-/* PKG_USING_WEBTERMINAL is not set */
-/* PKG_USING_CJSON is not set */
-/* PKG_USING_LJSON is not set */
-/* PKG_USING_EZXML is not set */
-/* PKG_USING_NANOPB is not set */
-/* PKG_USING_GAGENT_CLOUD is not set */
/* Wi-Fi */
/* Marvell WiFi */
-/* PKG_USING_WLANMARVELL is not set */
/* Wiced WiFi */
-/* PKG_USING_WLAN_WICED is not set */
-/* PKG_USING_COAP is not set */
-/* PKG_USING_NOPOLL is not set */
-/* PKG_USING_NETUTILS is not set */
/* security packages */
-/* PKG_USING_MBEDTLS is not set */
-/* PKG_USING_libsodium is not set */
-/* PKG_USING_TINYCRYPT is not set */
/* language packages */
-/* PKG_USING_JERRYSCRIPT is not set */
-/* PKG_USING_MICROPYTHON is not set */
/* multimedia packages */
-/* PKG_USING_OPENMV is not set */
/* tools packages */
-/* PKG_USING_CMBACKTRACE is not set */
-/* PKG_USING_EASYLOGGER is not set */
-/* PKG_USING_SYSTEMVIEW is not set */
-/* PKG_USING_IPERF is not set */
+
+/* system packages */
+
+
+/* peripheral libraries and drivers */
+
/* miscellaneous packages */
-/* PKG_USING_FASTLZ is not set */
-/* PKG_USING_MINILZO is not set */
-/* PKG_USING_QUICKLZ is not set */
+
+/* sample package */
+
/* example package: hello */
-/* PKG_USING_HELLO is not set */
-/* PKG_USING_MULTIBUTTON is not set */
#define SOC_LPC54608
#define RT_USING_UART0
#define BSP_DRV_SDCARD
diff --git a/bsp/qemu-vexpress-a9/.config b/bsp/qemu-vexpress-a9/.config
index 3f92b73b5b..8c75a16116 100644
--- a/bsp/qemu-vexpress-a9/.config
+++ b/bsp/qemu-vexpress-a9/.config
@@ -13,16 +13,24 @@ CONFIG_RT_THREAD_PRIORITY_32=y
# CONFIG_RT_THREAD_PRIORITY_256 is not set
CONFIG_RT_THREAD_PRIORITY_MAX=32
CONFIG_RT_TICK_PER_SECOND=100
-CONFIG_RT_DEBUG=y
CONFIG_RT_USING_OVERFLOW_CHECK=y
-CONFIG_RT_DEBUG_INIT=0
-CONFIG_RT_DEBUG_THREAD=0
CONFIG_RT_USING_HOOK=y
CONFIG_RT_IDEL_HOOK_LIST_SIZE=4
CONFIG_IDLE_THREAD_STACK_SIZE=512
CONFIG_RT_USING_TIMER_SOFT=y
CONFIG_RT_TIMER_THREAD_PRIO=4
CONFIG_RT_TIMER_THREAD_STACK_SIZE=1024
+CONFIG_RT_DEBUG=y
+# CONFIG_RT_DEBUG_INIT_CONFIG is not set
+# CONFIG_RT_DEBUG_THREAD_CONFIG is not set
+# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set
+# CONFIG_RT_DEBUG_IPC_CONFIG is not set
+# CONFIG_RT_DEBUG_TIMER_CONFIG is not set
+# CONFIG_RT_DEBUG_IRQ_CONFIG is not set
+# CONFIG_RT_DEBUG_MEM_CONFIG is not set
+# CONFIG_RT_DEBUG_SLAB_CONFIG is not set
+# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set
+# CONFIG_RT_DEBUG_MODULE_CONFIG is not set
#
# Inter-Thread communication
@@ -98,7 +106,7 @@ CONFIG_RT_USING_DFS=y
CONFIG_DFS_USING_WORKDIR=y
CONFIG_DFS_FILESYSTEMS_MAX=2
CONFIG_DFS_FILESYSTEM_TYPES_MAX=2
-CONFIG_DFS_FD_MAX=4
+CONFIG_DFS_FD_MAX=16
CONFIG_RT_USING_DFS_ELMFAT=y
#
@@ -117,7 +125,6 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=4096
# CONFIG_RT_DFS_ELM_USE_ERASE is not set
CONFIG_RT_DFS_ELM_REENTRANT=y
CONFIG_RT_USING_DFS_DEVFS=y
-CONFIG_RT_USING_DFS_NET=y
CONFIG_RT_USING_DFS_ROMFS=y
CONFIG_RT_USING_DFS_RAMFS=y
# CONFIG_RT_USING_DFS_UFFS is not set
@@ -180,9 +187,21 @@ CONFIG_RT_USING_POSIX_TERMIOS=y
CONFIG_RT_USING_POSIX_AIO=y
#
-# Network stack
+# Network
#
+#
+# Socket abstraction layer
+#
+CONFIG_RT_USING_SAL=y
+
+#
+# protocol stack implement
+#
+CONFIG_SAL_USING_LWIP=y
+CONFIG_SAL_USING_POSIX=y
+CONFIG_SAL_PROTO_FAMILIES_NUM=4
+
#
# light weight TCP/IP stack
#
@@ -327,10 +346,6 @@ CONFIG_LOG_TRACE_USING_LEVEL_INFO=y
# system packages
#
# CONFIG_PKG_USING_GUIENGINE is not set
-# CONFIG_PKG_USING_GUIENGINE_V200 is not set
-# CONFIG_PKG_USING_GUIENGINE_LATEST_VERSION is not set
-# CONFIG_GUIENGINE_IMAGE_LODEPNG is not set
-# CONFIG_GUIENGINE_IMAGE_PNG is not set
# CONFIG_PKG_USING_PERSIMMON is not set
# CONFIG_PKG_USING_CAIRO is not set
# CONFIG_PKG_USING_PIXMAN is not set
@@ -359,8 +374,6 @@ CONFIG_LOG_TRACE_USING_LEVEL_INFO=y
# CONFIG_PKG_USING_CANFESTIVAL is not set
# CONFIG_PKG_USING_ZLIB is not set
# CONFIG_PKG_USING_DSTR is not set
-# CONFIG_PKG_USING_DSTR_V010 is not set
-# CONFIG_PKG_USING_DSTR_LATEST_VERSION is not set
#
# sample package
diff --git a/bsp/qemu-vexpress-a9/drivers/drv_smc911x.c b/bsp/qemu-vexpress-a9/drivers/drv_smc911x.c
index 4b33cc4215..715cbfb75e 100644
--- a/bsp/qemu-vexpress-a9/drivers/drv_smc911x.c
+++ b/bsp/qemu-vexpress-a9/drivers/drv_smc911x.c
@@ -466,7 +466,7 @@ struct pbuf *smc911x_emac_rx(rt_device_t dev)
tmplen = (pktlen + 3) / 4;
/* allocate pbuf */
- p = pbuf_alloc(PBUF_LINK, tmplen * 4, PBUF_RAM);
+ p = pbuf_alloc(PBUF_RAW, tmplen * 4, PBUF_RAM);
if (p)
{
uint32_t *data = (uint32_t *)p->payload;
diff --git a/bsp/qemu-vexpress-a9/rtconfig.h b/bsp/qemu-vexpress-a9/rtconfig.h
index 8ee1d67504..40dbde6fa9 100644
--- a/bsp/qemu-vexpress-a9/rtconfig.h
+++ b/bsp/qemu-vexpress-a9/rtconfig.h
@@ -11,16 +11,14 @@
#define RT_THREAD_PRIORITY_32
#define RT_THREAD_PRIORITY_MAX 32
#define RT_TICK_PER_SECOND 100
-#define RT_DEBUG
#define RT_USING_OVERFLOW_CHECK
-#define RT_DEBUG_INIT 0
-#define RT_DEBUG_THREAD 0
#define RT_USING_HOOK
#define RT_IDEL_HOOK_LIST_SIZE 4
#define IDLE_THREAD_STACK_SIZE 512
#define RT_USING_TIMER_SOFT
#define RT_TIMER_THREAD_PRIO 4
#define RT_TIMER_THREAD_STACK_SIZE 1024
+#define RT_DEBUG
/* Inter-Thread communication */
@@ -81,7 +79,7 @@
#define DFS_USING_WORKDIR
#define DFS_FILESYSTEMS_MAX 2
#define DFS_FILESYSTEM_TYPES_MAX 2
-#define DFS_FD_MAX 4
+#define DFS_FD_MAX 16
#define RT_USING_DFS_ELMFAT
/* elm-chan's FatFs, Generic FAT Filesystem Module */
@@ -95,7 +93,6 @@
#define RT_DFS_ELM_MAX_SECTOR_SIZE 4096
#define RT_DFS_ELM_REENTRANT
#define RT_USING_DFS_DEVFS
-#define RT_USING_DFS_NET
#define RT_USING_DFS_ROMFS
#define RT_USING_DFS_RAMFS
@@ -136,7 +133,17 @@
#define RT_USING_POSIX_TERMIOS
#define RT_USING_POSIX_AIO
-/* Network stack */
+/* Network */
+
+/* Socket abstraction layer */
+
+#define RT_USING_SAL
+
+/* protocol stack implement */
+
+#define SAL_USING_LWIP
+#define SAL_USING_POSIX
+#define SAL_PROTO_FAMILIES_NUM 4
/* light weight TCP/IP stack */
diff --git a/bsp/stm32f40x/.config b/bsp/stm32f40x/.config
index f48f3ca340..f900be8d0c 100644
--- a/bsp/stm32f40x/.config
+++ b/bsp/stm32f40x/.config
@@ -13,13 +13,22 @@ CONFIG_RT_THREAD_PRIORITY_32=y
# CONFIG_RT_THREAD_PRIORITY_256 is not set
CONFIG_RT_THREAD_PRIORITY_MAX=32
CONFIG_RT_TICK_PER_SECOND=100
-CONFIG_RT_DEBUG=y
CONFIG_RT_USING_OVERFLOW_CHECK=y
-CONFIG_RT_DEBUG_INIT=0
-CONFIG_RT_DEBUG_THREAD=0
CONFIG_RT_USING_HOOK=y
+CONFIG_RT_IDEL_HOOK_LIST_SIZE=4
CONFIG_IDLE_THREAD_STACK_SIZE=1024
# CONFIG_RT_USING_TIMER_SOFT is not set
+CONFIG_RT_DEBUG=y
+# CONFIG_RT_DEBUG_INIT_CONFIG is not set
+# CONFIG_RT_DEBUG_THREAD_CONFIG is not set
+# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set
+# CONFIG_RT_DEBUG_IPC_CONFIG is not set
+# CONFIG_RT_DEBUG_TIMER_CONFIG is not set
+# CONFIG_RT_DEBUG_IRQ_CONFIG is not set
+# CONFIG_RT_DEBUG_MEM_CONFIG is not set
+# CONFIG_RT_DEBUG_SLAB_CONFIG is not set
+# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set
+# CONFIG_RT_DEBUG_MODULE_CONFIG is not set
#
# Inter-Thread communication
@@ -46,6 +55,7 @@ CONFIG_RT_USING_HEAP=y
# Kernel Device Object
#
CONFIG_RT_USING_DEVICE=y
+# CONFIG_RT_USING_DEVICE_OPS is not set
# CONFIG_RT_USING_INTERRUPT_INFO is not set
CONFIG_RT_USING_CONSOLE=y
CONFIG_RT_CONSOLEBUF_SIZE=128
@@ -83,6 +93,7 @@ CONFIG_FINSH_CMD_SIZE=80
CONFIG_FINSH_USING_MSH=y
CONFIG_FINSH_USING_MSH_DEFAULT=y
# CONFIG_FINSH_USING_MSH_ONLY is not set
+CONFIG_FINSH_ARG_MAX=10
#
# Device virtual file system
@@ -91,7 +102,7 @@ CONFIG_RT_USING_DFS=y
CONFIG_DFS_USING_WORKDIR=y
CONFIG_DFS_FILESYSTEMS_MAX=2
CONFIG_DFS_FILESYSTEM_TYPES_MAX=2
-CONFIG_DFS_FD_MAX=4
+CONFIG_DFS_FD_MAX=16
CONFIG_RT_USING_DFS_ELMFAT=y
#
@@ -110,7 +121,6 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512
# CONFIG_RT_DFS_ELM_USE_ERASE is not set
CONFIG_RT_DFS_ELM_REENTRANT=y
CONFIG_RT_USING_DFS_DEVFS=y
-# CONFIG_RT_USING_DFS_NET is not set
# CONFIG_RT_USING_DFS_ROMFS is not set
# CONFIG_RT_USING_DFS_RAMFS is not set
# CONFIG_RT_USING_DFS_UFFS is not set
@@ -121,12 +131,14 @@ CONFIG_RT_USING_DFS_DEVFS=y
# Device Drivers
#
CONFIG_RT_USING_DEVICE_IPC=y
+CONFIG_RT_PIPE_BUFSZ=512
CONFIG_RT_USING_SERIAL=y
# CONFIG_RT_USING_CAN is not set
# CONFIG_RT_USING_HWTIMER is not set
# CONFIG_RT_USING_CPUTIME is not set
# CONFIG_RT_USING_I2C is not set
CONFIG_RT_USING_PIN=y
+# CONFIG_RT_USING_PWM is not set
# CONFIG_RT_USING_MTD_NOR is not set
# CONFIG_RT_USING_MTD_NAND is not set
# CONFIG_RT_USING_RTC is not set
@@ -134,6 +146,7 @@ CONFIG_RT_USING_PIN=y
# CONFIG_RT_USING_SPI is not set
# CONFIG_RT_USING_WDT is not set
# CONFIG_RT_USING_WIFI is not set
+# CONFIG_RT_USING_AUDIO is not set
#
# Using USB
@@ -146,13 +159,28 @@ CONFIG_RT_USING_PIN=y
#
CONFIG_RT_USING_LIBC=y
CONFIG_RT_USING_PTHREADS=y
-# CONFIG_RT_USING_POSIX is not set
-# CONFIG_HAVE_SYS_SIGNALS is not set
+CONFIG_RT_USING_POSIX=y
+# CONFIG_RT_USING_POSIX_MMAP is not set
+# CONFIG_RT_USING_POSIX_TERMIOS is not set
+# CONFIG_RT_USING_POSIX_AIO is not set
+# CONFIG_RT_USING_LWP is not set
#
-# Network stack
+# Network
#
+#
+# Socket abstraction layer
+#
+CONFIG_RT_USING_SAL=y
+
+#
+# protocol stack implement
+#
+CONFIG_SAL_USING_LWIP=y
+CONFIG_SAL_USING_POSIX=y
+CONFIG_SAL_PROTO_FAMILIES_NUM=4
+
#
# light weight TCP/IP stack
#
@@ -189,6 +217,8 @@ CONFIG_RT_LWIP_TCP_WND=8192
CONFIG_RT_LWIP_TCPTHREAD_PRIORITY=12
CONFIG_RT_LWIP_TCPTHREAD_MBOX_SIZE=4
CONFIG_RT_LWIP_TCPTHREAD_STACKSIZE=1024
+# CONFIG_LWIP_NO_RX_THREAD is not set
+# CONFIG_LWIP_NO_TX_THREAD is not set
CONFIG_RT_LWIP_ETHTHREAD_PRIORITY=15
CONFIG_RT_LWIP_ETHTHREAD_STACKSIZE=512
CONFIG_RT_LWIP_ETHTHREAD_MBOX_SIZE=4
@@ -228,20 +258,6 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# RT-Thread online packages
#
-#
-# system packages
-#
-
-#
-# RT-Thread GUI Engine
-#
-# CONFIG_PKG_USING_GUIENGINE is not set
-# CONFIG_PKG_USING_PERSIMMON is not set
-# CONFIG_PKG_USING_LWEXT4 is not set
-# CONFIG_PKG_USING_PARTITION is not set
-# CONFIG_PKG_USING_SQLITE is not set
-# CONFIG_PKG_USING_RTI is not set
-
#
# IoT - internet of things
#
@@ -250,6 +266,7 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# CONFIG_PKG_USING_MONGOOSE is not set
# CONFIG_PKG_USING_WEBTERMINAL is not set
# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
# CONFIG_PKG_USING_LJSON is not set
# CONFIG_PKG_USING_EZXML is not set
# CONFIG_PKG_USING_NANOPB is not set
@@ -271,6 +288,8 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# CONFIG_PKG_USING_COAP is not set
# CONFIG_PKG_USING_NOPOLL is not set
# CONFIG_PKG_USING_NETUTILS is not set
+# CONFIG_PKG_USING_ONENET is not set
+# CONFIG_PKG_USING_AT_DEVICE is not set
#
# security packages
@@ -282,6 +301,7 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
#
# language packages
#
+# CONFIG_PKG_USING_LUA is not set
# CONFIG_PKG_USING_JERRYSCRIPT is not set
# CONFIG_PKG_USING_MICROPYTHON is not set
@@ -289,22 +309,53 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# multimedia packages
#
# CONFIG_PKG_USING_OPENMV is not set
+# CONFIG_PKG_USING_MUPDF is not set
#
# tools packages
#
# CONFIG_PKG_USING_CMBACKTRACE is not set
+# CONFIG_PKG_USING_EASYFLASH is not set
# CONFIG_PKG_USING_EASYLOGGER is not set
# CONFIG_PKG_USING_SYSTEMVIEW is not set
-# CONFIG_PKG_USING_IPERF is not set
+
+#
+# system packages
+#
+# CONFIG_PKG_USING_GUIENGINE is not set
+# CONFIG_PKG_USING_PERSIMMON is not set
+# CONFIG_PKG_USING_CAIRO is not set
+# CONFIG_PKG_USING_PIXMAN is not set
+# CONFIG_PKG_USING_LWEXT4 is not set
+# CONFIG_PKG_USING_PARTITION is not set
+# CONFIG_PKG_USING_FAL is not set
+# CONFIG_PKG_USING_SQLITE is not set
+# CONFIG_PKG_USING_RTI is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
+
+#
+# peripheral libraries and drivers
+#
+# CONFIG_PKG_USING_STM32F4_HAL is not set
+# CONFIG_PKG_USING_STM32F4_DRIVERS is not set
+# CONFIG_PKG_USING_REALTEK_AMEBA is not set
#
# miscellaneous packages
#
+# CONFIG_PKG_USING_OPTPARSE is not set
# CONFIG_PKG_USING_FASTLZ is not set
# CONFIG_PKG_USING_MINILZO is not set
# CONFIG_PKG_USING_QUICKLZ is not set
# CONFIG_PKG_USING_MULTIBUTTON is not set
+# CONFIG_PKG_USING_CANFESTIVAL is not set
+# CONFIG_PKG_USING_ZLIB is not set
+# CONFIG_PKG_USING_DSTR is not set
+
+#
+# sample package
+#
+# CONFIG_PKG_USING_SAMPLES is not set
#
# example package: hello
diff --git a/bsp/stm32f40x/project.uvproj b/bsp/stm32f40x/project.uvproj
index 5ed81ecb57..81d13c4eab 100644
--- a/bsp/stm32f40x/project.uvproj
+++ b/bsp/stm32f40x/project.uvproj
@@ -343,7 +343,7 @@
RT_USING_ARM_LIBC, USE_STDPERIPH_DRIVER
- applications;.;drivers;Libraries\STM32F4xx_StdPeriph_Driver\inc;Libraries\CMSIS\ST\STM32F4xx\Include;Libraries\CMSIS\Include;..\..\include;..\..\libcpu\arm\cortex-m4;..\..\libcpu\arm\common;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\armlibc;..\..\components\libc\pthreads;..\..\components\libc\time;..\..\components\net\lwip-2.0.2\src;..\..\components\net\lwip-2.0.2\src\include;..\..\components\net\lwip-2.0.2\src\include\ipv4;..\..\components\net\lwip-2.0.2\src\arch\include;..\..\components\net\lwip-2.0.2\src\include\netif;..\..\components\net\lwip-2.0.2\src\include\posix
+ applications;.;drivers;Libraries\STM32F4xx_StdPeriph_Driver\inc;Libraries\CMSIS\ST\STM32F4xx\Include;Libraries\CMSIS\Include;..\..\include;..\..\libcpu\arm\cortex-m4;..\..\libcpu\arm\common;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\armlibc;..\..\components\libc\pthreads;..\..\components\libc\time;..\..\components\net\lwip-2.0.2\src;..\..\components\net\lwip-2.0.2\src\include;..\..\components\net\lwip-2.0.2\src\include\ipv4;..\..\components\net\lwip-2.0.2\src\arch\include;..\..\components\net\lwip-2.0.2\src\include\netif;..\..\components\net\sal_socket\include;..\..\components\net\sal_socket\include\dfs_net;..\..\components\net\sal_socket\include\socket;..\..\components\net\sal_socket\include\dfs_net\sys_select;..\..\components\net\sal_socket\include\socket\sys_socket
@@ -838,6 +838,20 @@
..\..\components\dfs\src\dfs_posix.c
+
+
+ poll.c
+ 1
+ ..\..\components\dfs\src\poll.c
+
+
+
+
+ select.c
+ 1
+ ..\..\components\dfs\src\select.c
+
+
devfs.c
@@ -1043,13 +1057,6 @@
..\..\components\libc\compilers\armlibc\libc.c
-
-
- libc_syms.c
- 1
- ..\..\components\libc\compilers\armlibc\libc_syms.c
-
-
mem_std.c
@@ -1428,6 +1435,51 @@
+
+ SAL
+
+
+ sal_ipaddr.c
+ 1
+ ..\..\components\net\sal_socket\src\sal_ipaddr.c
+
+
+
+
+ sal_socket.c
+ 1
+ ..\..\components\net\sal_socket\src\sal_socket.c
+
+
+
+
+ net_netdb.c
+ 1
+ ..\..\components\net\sal_socket\socket\net_netdb.c
+
+
+
+
+ net_sockets.c
+ 1
+ ..\..\components\net\sal_socket\socket\net_sockets.c
+
+
+
+
+ af_inet_lwip.c
+ 1
+ ..\..\components\net\sal_socket\impl\af_inet_lwip.c
+
+
+
+
+ dfs_net.c
+ 1
+ ..\..\components\net\sal_socket\dfs_net\dfs_net.c
+
+
+
diff --git a/bsp/stm32f40x/project.uvprojx b/bsp/stm32f40x/project.uvprojx
index b38265bb00..74e509d3f7 100644
--- a/bsp/stm32f40x/project.uvprojx
+++ b/bsp/stm32f40x/project.uvprojx
@@ -1,39 +1,43 @@
- 1.1
+
+ 2.1
+
### uVision Project, (C) Keil Software
+
rt-thread_stm32f4xx
0x4
ARM-ADS
+ 5060422::V5.06 update 4 (build 422)::ARMCC
STM32F407VG
STMicroelectronics
- Keil.STM32F4xx_DFP.2.2.0
+ Keil.STM32F4xx_DFP.2.11.0
http://www.keil.com/pack
IROM(0x08000000,0x100000) IRAM(0x20000000,0x20000) IRAM2(0x10000000,0x10000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE
-
-
+
+
UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407VGTx$CMSIS\Flash\STM32F4xx_1024.FLM))
0
$$Device:STM32F407VGTx$Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
$$Device:STM32F407VGTx$CMSIS\SVD\STM32F40x.svd
0
0
-
-
-
+
+
+
ST\STM32F4xx\
ST\STM32F4xx\
@@ -57,29 +61,35 @@
0
0
-
-
+
+
0
0
+ 0
+ 0
0
0
-
-
+
+
0
0
+ 0
+ 0
1
0
fromelf --bin !L --output rtthread.bin
-
+
0
0
+ 0
+ 0
0
-
+
0
@@ -93,8 +103,9 @@
0
0
3
-
-
+
+
+ 1
SARMCM3.DLL
@@ -114,44 +125,6 @@
0
16
-
- 0
- 1
- 1
- 1
- 1
- 1
- 1
- 1
- 0
-
-
- 1
- 1
- 1
- 1
- 1
- 1
- 0
- 1
-
- 0
- 8
-
-
-
-
-
-
-
-
-
-
-
-
-
- STLink\ST-LINKIII-KEIL.dll
-
@@ -162,9 +135,14 @@
1
4100
+ 1
STLink\ST-LINKIII-KEIL.dll
"" ()
-
+
+
+
+
+ 0
@@ -196,7 +174,7 @@
0
0
"Cortex-M4"
-
+
0
0
0
@@ -211,6 +189,7 @@
0
0
0
+ 0
3
3
0
@@ -327,7 +306,7 @@
0x10000
-
+
1
@@ -342,11 +321,21 @@
0
0
0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
-
+
RT_USING_ARM_LIBC, USE_STDPERIPH_DRIVER
-
- applications;.;drivers;Libraries\STM32F4xx_StdPeriph_Driver\inc;Libraries\CMSIS\ST\STM32F4xx\Include;Libraries\CMSIS\Include;..\..\include;..\..\libcpu\arm\cortex-m4;..\..\libcpu\arm\common;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\armlibc;..\..\components\libc\pthreads;..\..\components\libc\time;..\..\components\net\lwip-2.0.2\src;..\..\components\net\lwip-2.0.2\src\include;..\..\components\net\lwip-2.0.2\src\include\ipv4;..\..\components\net\lwip-2.0.2\src\arch\include;..\..\components\net\lwip-2.0.2\src\include\netif;..\..\components\net\lwip-2.0.2\src\include\posix
+
+ applications;.;drivers;Libraries\STM32F4xx_StdPeriph_Driver\inc;Libraries\CMSIS\ST\STM32F4xx\Include;Libraries\CMSIS\Include;..\..\include;..\..\libcpu\arm\cortex-m4;..\..\libcpu\arm\common;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\armlibc;..\..\components\libc\pthreads;..\..\components\libc\time;..\..\components\net\lwip-2.0.2\src;..\..\components\net\lwip-2.0.2\src\include;..\..\components\net\lwip-2.0.2\src\include\ipv4;..\..\components\net\lwip-2.0.2\src\arch\include;..\..\components\net\lwip-2.0.2\src\include\netif;..\..\components\net\sal_socket\include;..\..\components\net\sal_socket\include\dfs_net;..\..\components\net\sal_socket\include\socket;..\..\components\net\sal_socket\include\dfs_net\sys_select;..\..\components\net\sal_socket\include\socket\sys_socket
@@ -357,11 +346,14 @@
0
0
0
+ 0
+ 0
+ 0
-
-
-
-
+
+
+
+
@@ -373,12 +365,13 @@
0
0x08000000
0x20000000
-
-
-
+
+
+
+
--keep *.o(.rti_fn.*) --keep *.o(FSymTab) --keep *.o(VSymTab)
-
-
+
+
@@ -391,8 +384,6 @@
1
applications\application.c
-
-
startup.c
1
@@ -408,29 +399,21 @@
1
drivers\board.c
-
-
stm32f4xx_it.c
1
drivers\stm32f4xx_it.c
-
-
usart.c
1
drivers\usart.c
-
-
stm32f4xx_eth.c
1
drivers\stm32f4xx_eth.c
-
-
gpio.c
1
@@ -446,225 +429,161 @@
1
Libraries\CMSIS\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c
-
-
misc.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\misc.c
-
-
stm32f4xx_adc.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_adc.c
-
-
stm32f4xx_can.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_can.c
-
-
stm32f4xx_crc.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_crc.c
-
-
stm32f4xx_cryp.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp.c
-
-
stm32f4xx_cryp_aes.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_aes.c
-
-
stm32f4xx_cryp_des.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_des.c
-
-
stm32f4xx_cryp_tdes.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_tdes.c
-
-
stm32f4xx_dac.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dac.c
-
-
stm32f4xx_dbgmcu.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dbgmcu.c
-
-
stm32f4xx_dcmi.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dcmi.c
-
-
stm32f4xx_dma.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma.c
-
-
stm32f4xx_exti.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_exti.c
-
-
stm32f4xx_flash.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash.c
-
-
stm32f4xx_fsmc.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fsmc.c
-
-
stm32f4xx_gpio.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c
-
-
stm32f4xx_hash.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash.c
-
-
stm32f4xx_hash_md5.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_md5.c
-
-
stm32f4xx_hash_sha1.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_sha1.c
-
-
stm32f4xx_i2c.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_i2c.c
-
-
stm32f4xx_iwdg.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_iwdg.c
-
-
stm32f4xx_pwr.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_pwr.c
-
-
stm32f4xx_rcc.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rcc.c
-
-
stm32f4xx_rng.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c
-
-
stm32f4xx_rtc.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rtc.c
-
-
stm32f4xx_sdio.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sdio.c
-
-
stm32f4xx_spi.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c
-
-
stm32f4xx_syscfg.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c
-
-
stm32f4xx_tim.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c
-
-
stm32f4xx_usart.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c
-
-
stm32f4xx_wwdg.c
1
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c
-
-
startup_stm32f4xx.s
2
@@ -680,92 +599,66 @@
1
..\..\src\clock.c
-
-
components.c
1
..\..\src\components.c
-
-
device.c
1
..\..\src\device.c
-
-
idle.c
1
..\..\src\idle.c
-
-
ipc.c
1
..\..\src\ipc.c
-
-
irq.c
1
..\..\src\irq.c
-
-
kservice.c
1
..\..\src\kservice.c
-
-
mem.c
1
..\..\src\mem.c
-
-
mempool.c
1
..\..\src\mempool.c
-
-
object.c
1
..\..\src\object.c
-
-
scheduler.c
1
..\..\src\scheduler.c
-
-
signal.c
1
..\..\src\signal.c
-
-
thread.c
1
..\..\src\thread.c
-
-
timer.c
1
@@ -781,29 +674,21 @@
1
..\..\libcpu\arm\cortex-m4\cpuport.c
-
-
context_rvds.S
2
..\..\libcpu\arm\cortex-m4\context_rvds.S
-
-
backtrace.c
1
..\..\libcpu\arm\common\backtrace.c
-
-
div0.c
1
..\..\libcpu\arm\common\div0.c
-
-
showmem.c
1
@@ -819,43 +704,41 @@
1
..\..\components\dfs\src\dfs.c
-
-
dfs_file.c
1
..\..\components\dfs\src\dfs_file.c
-
-
dfs_fs.c
1
..\..\components\dfs\src\dfs_fs.c
-
-
dfs_posix.c
1
..\..\components\dfs\src\dfs_posix.c
-
-
+
+ poll.c
+ 1
+ ..\..\components\dfs\src\poll.c
+
+
+ select.c
+ 1
+ ..\..\components\dfs\src\select.c
+
devfs.c
1
..\..\components\dfs\filesystems\devfs\devfs.c
-
-
dfs_elm.c
1
..\..\components\dfs\filesystems\elmfat\dfs_elm.c
-
-
ff.c
1
@@ -871,50 +754,36 @@
1
..\..\components\drivers\misc\pin.c
-
-
serial.c
1
..\..\components\drivers\serial\serial.c
-
-
completion.c
1
..\..\components\drivers\src\completion.c
-
-
dataqueue.c
1
..\..\components\drivers\src\dataqueue.c
-
-
pipe.c
1
..\..\components\drivers\src\pipe.c
-
-
ringbuffer.c
1
..\..\components\drivers\src\ringbuffer.c
-
-
waitqueue.c
1
..\..\components\drivers\src\waitqueue.c
-
-
workqueue.c
1
@@ -930,106 +799,76 @@
1
..\..\components\finsh\shell.c
-
-
symbol.c
1
..\..\components\finsh\symbol.c
-
-
cmd.c
1
..\..\components\finsh\cmd.c
-
-
msh.c
1
..\..\components\finsh\msh.c
-
-
msh_cmd.c
1
..\..\components\finsh\msh_cmd.c
-
-
msh_file.c
1
..\..\components\finsh\msh_file.c
-
-
finsh_compiler.c
1
..\..\components\finsh\finsh_compiler.c
-
-
finsh_error.c
1
..\..\components\finsh\finsh_error.c
-
-
finsh_heap.c
1
..\..\components\finsh\finsh_heap.c
-
-
finsh_init.c
1
..\..\components\finsh\finsh_init.c
-
-
finsh_node.c
1
..\..\components\finsh\finsh_node.c
-
-
finsh_ops.c
1
..\..\components\finsh\finsh_ops.c
-
-
finsh_parser.c
1
..\..\components\finsh\finsh_parser.c
-
-
finsh_var.c
1
..\..\components\finsh\finsh_var.c
-
-
finsh_vm.c
1
..\..\components\finsh\finsh_vm.c
-
-
finsh_token.c
1
@@ -1045,36 +884,21 @@
1
..\..\components\libc\compilers\armlibc\libc.c
-
-
-
- libc_syms.c
- 1
- ..\..\components\libc\compilers\armlibc\libc_syms.c
-
-
-
mem_std.c
1
..\..\components\libc\compilers\armlibc\mem_std.c
-
-
stdio.c
1
..\..\components\libc\compilers\armlibc\stdio.c
-
-
stubs.c
1
..\..\components\libc\compilers\armlibc\stubs.c
-
-
time.c
1
@@ -1090,85 +914,61 @@
1
..\..\components\libc\pthreads\mqueue.c
-
-
pthread.c
1
..\..\components\libc\pthreads\pthread.c
-
-
pthread_attr.c
1
..\..\components\libc\pthreads\pthread_attr.c
-
-
pthread_barrier.c
1
..\..\components\libc\pthreads\pthread_barrier.c
-
-
pthread_cond.c
1
..\..\components\libc\pthreads\pthread_cond.c
-
-
pthread_mutex.c
1
..\..\components\libc\pthreads\pthread_mutex.c
-
-
pthread_rwlock.c
1
..\..\components\libc\pthreads\pthread_rwlock.c
-
-
pthread_spin.c
1
..\..\components\libc\pthreads\pthread_spin.c
-
-
pthread_tls.c
1
..\..\components\libc\pthreads\pthread_tls.c
-
-
sched.c
1
..\..\components\libc\pthreads\sched.c
-
-
semaphore.c
1
..\..\components\libc\pthreads\semaphore.c
-
-
clock_time.c
1
..\..\components\libc\time\clock_time.c
-
-
posix_sleep.c
1
@@ -1184,246 +984,176 @@
1
..\..\components\net\lwip-2.0.2\src\arch\sys_arch.c
-
-
api_lib.c
1
..\..\components\net\lwip-2.0.2\src\api\api_lib.c
-
-
api_msg.c
1
..\..\components\net\lwip-2.0.2\src\api\api_msg.c
-
-
err.c
1
..\..\components\net\lwip-2.0.2\src\api\err.c
-
-
netbuf.c
1
..\..\components\net\lwip-2.0.2\src\api\netbuf.c
-
-
netdb.c
1
..\..\components\net\lwip-2.0.2\src\api\netdb.c
-
-
netifapi.c
1
..\..\components\net\lwip-2.0.2\src\api\netifapi.c
-
-
sockets.c
1
..\..\components\net\lwip-2.0.2\src\api\sockets.c
-
-
tcpip.c
1
..\..\components\net\lwip-2.0.2\src\api\tcpip.c
-
-
def.c
1
..\..\components\net\lwip-2.0.2\src\core\def.c
-
-
dns.c
1
..\..\components\net\lwip-2.0.2\src\core\dns.c
-
-
inet_chksum.c
1
..\..\components\net\lwip-2.0.2\src\core\inet_chksum.c
-
-
init.c
1
..\..\components\net\lwip-2.0.2\src\core\init.c
-
-
ip.c
1
..\..\components\net\lwip-2.0.2\src\core\ip.c
-
-
memp.c
1
..\..\components\net\lwip-2.0.2\src\core\memp.c
-
-
netif.c
1
..\..\components\net\lwip-2.0.2\src\core\netif.c
-
-
pbuf.c
1
..\..\components\net\lwip-2.0.2\src\core\pbuf.c
-
-
raw.c
1
..\..\components\net\lwip-2.0.2\src\core\raw.c
-
-
stats.c
1
..\..\components\net\lwip-2.0.2\src\core\stats.c
-
-
sys.c
1
..\..\components\net\lwip-2.0.2\src\core\sys.c
-
-
tcp.c
1
..\..\components\net\lwip-2.0.2\src\core\tcp.c
-
-
tcp_in.c
1
..\..\components\net\lwip-2.0.2\src\core\tcp_in.c
-
-
tcp_out.c
1
..\..\components\net\lwip-2.0.2\src\core\tcp_out.c
-
-
timeouts.c
1
..\..\components\net\lwip-2.0.2\src\core\timeouts.c
-
-
udp.c
1
..\..\components\net\lwip-2.0.2\src\core\udp.c
-
-
ethernet.c
1
..\..\components\net\lwip-2.0.2\src\netif\ethernet.c
-
-
ethernetif.c
1
..\..\components\net\lwip-2.0.2\src\netif\ethernetif.c
-
-
lowpan6.c
1
..\..\components\net\lwip-2.0.2\src\netif\lowpan6.c
-
-
autoip.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\autoip.c
-
-
dhcp.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\dhcp.c
-
-
etharp.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\etharp.c
-
-
icmp.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\icmp.c
-
-
igmp.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\igmp.c
-
-
ip4.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4.c
-
-
ip4_addr.c
1
..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4_addr.c
-
-
ip4_frag.c
1
@@ -1431,7 +1161,49 @@
+
+ SAL
+
+
+ sal_ipaddr.c
+ 1
+ ..\..\components\net\sal_socket\src\sal_ipaddr.c
+
+
+ sal_socket.c
+ 1
+ ..\..\components\net\sal_socket\src\sal_socket.c
+
+
+ net_netdb.c
+ 1
+ ..\..\components\net\sal_socket\socket\net_netdb.c
+
+
+ net_sockets.c
+ 1
+ ..\..\components\net\sal_socket\socket\net_sockets.c
+
+
+ af_inet_lwip.c
+ 1
+ ..\..\components\net\sal_socket\impl\af_inet_lwip.c
+
+
+ dfs_net.c
+ 1
+ ..\..\components\net\sal_socket\dfs_net\dfs_net.c
+
+
+
+
+
+
+
+
+
+
diff --git a/bsp/stm32f40x/rtconfig.h b/bsp/stm32f40x/rtconfig.h
index ff72b4914a..92b95c9317 100644
--- a/bsp/stm32f40x/rtconfig.h
+++ b/bsp/stm32f40x/rtconfig.h
@@ -11,12 +11,11 @@
#define RT_THREAD_PRIORITY_32
#define RT_THREAD_PRIORITY_MAX 32
#define RT_TICK_PER_SECOND 100
-#define RT_DEBUG
#define RT_USING_OVERFLOW_CHECK
-#define RT_DEBUG_INIT 0
-#define RT_DEBUG_THREAD 0
#define RT_USING_HOOK
+#define RT_IDEL_HOOK_LIST_SIZE 4
#define IDLE_THREAD_STACK_SIZE 1024
+#define RT_DEBUG
/* Inter-Thread communication */
@@ -62,6 +61,7 @@
#define FINSH_CMD_SIZE 80
#define FINSH_USING_MSH
#define FINSH_USING_MSH_DEFAULT
+#define FINSH_ARG_MAX 10
/* Device virtual file system */
@@ -69,7 +69,7 @@
#define DFS_USING_WORKDIR
#define DFS_FILESYSTEMS_MAX 2
#define DFS_FILESYSTEM_TYPES_MAX 2
-#define DFS_FD_MAX 4
+#define DFS_FD_MAX 16
#define RT_USING_DFS_ELMFAT
/* elm-chan's FatFs, Generic FAT Filesystem Module */
@@ -87,6 +87,7 @@
/* Device Drivers */
#define RT_USING_DEVICE_IPC
+#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
#define RT_USING_PIN
@@ -97,8 +98,19 @@
#define RT_USING_LIBC
#define RT_USING_PTHREADS
+#define RT_USING_POSIX
-/* Network stack */
+/* Network */
+
+/* Socket abstraction layer */
+
+#define RT_USING_SAL
+
+/* protocol stack implement */
+
+#define SAL_USING_LWIP
+#define SAL_USING_POSIX
+#define SAL_PROTO_FAMILIES_NUM 4
/* light weight TCP/IP stack */
@@ -153,11 +165,6 @@
/* RT-Thread online packages */
-/* system packages */
-
-/* RT-Thread GUI Engine */
-
-
/* IoT - internet of things */
@@ -181,9 +188,18 @@
/* tools packages */
+/* system packages */
+
+
+/* peripheral libraries and drivers */
+
+
/* miscellaneous packages */
+/* sample package */
+
+
/* example package: hello */
#define SOC_STM32F4
diff --git a/bsp/stm32f429-apollo/.config b/bsp/stm32f429-apollo/.config
index 68f9b3ad9b..45c584c188 100644
--- a/bsp/stm32f429-apollo/.config
+++ b/bsp/stm32f429-apollo/.config
@@ -14,13 +14,22 @@ CONFIG_RT_THREAD_PRIORITY_32=y
# CONFIG_RT_THREAD_PRIORITY_256 is not set
CONFIG_RT_THREAD_PRIORITY_MAX=32
CONFIG_RT_TICK_PER_SECOND=1000
-CONFIG_RT_DEBUG=y
CONFIG_RT_USING_OVERFLOW_CHECK=y
-CONFIG_RT_DEBUG_INIT=1
-CONFIG_RT_DEBUG_THREAD=0
CONFIG_RT_USING_HOOK=y
+CONFIG_RT_IDEL_HOOK_LIST_SIZE=4
CONFIG_IDLE_THREAD_STACK_SIZE=1024
# CONFIG_RT_USING_TIMER_SOFT is not set
+CONFIG_RT_DEBUG=y
+# CONFIG_RT_DEBUG_INIT_CONFIG is not set
+# CONFIG_RT_DEBUG_THREAD_CONFIG is not set
+# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set
+# CONFIG_RT_DEBUG_IPC_CONFIG is not set
+# CONFIG_RT_DEBUG_TIMER_CONFIG is not set
+# CONFIG_RT_DEBUG_IRQ_CONFIG is not set
+# CONFIG_RT_DEBUG_MEM_CONFIG is not set
+# CONFIG_RT_DEBUG_SLAB_CONFIG is not set
+# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set
+# CONFIG_RT_DEBUG_MODULE_CONFIG is not set
#
# Inter-Thread communication
@@ -48,6 +57,7 @@ CONFIG_RT_USING_HEAP=y
# Kernel Device Object
#
CONFIG_RT_USING_DEVICE=y
+# CONFIG_RT_USING_DEVICE_OPS is not set
# CONFIG_RT_USING_INTERRUPT_INFO is not set
CONFIG_RT_USING_CONSOLE=y
CONFIG_RT_CONSOLEBUF_SIZE=128
@@ -110,9 +120,6 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=4096
# CONFIG_RT_DFS_ELM_USE_ERASE is not set
CONFIG_RT_DFS_ELM_REENTRANT=y
CONFIG_RT_USING_DFS_DEVFS=y
-CONFIG_RT_USING_DFS_NET=y
-CONFIG_HAVE_SYS_SELECT_H=y
-# CONFIG_HAVE_SYS_SOCKET_H is not set
CONFIG_RT_USING_DFS_ROMFS=y
# CONFIG_RT_USING_DFS_RAMFS is not set
# CONFIG_RT_USING_DFS_UFFS is not set
@@ -123,6 +130,7 @@ CONFIG_RT_USING_DFS_ROMFS=y
# Device Drivers
#
CONFIG_RT_USING_DEVICE_IPC=y
+CONFIG_RT_PIPE_BUFSZ=512
CONFIG_RT_USING_SERIAL=y
# CONFIG_RT_USING_CAN is not set
# CONFIG_RT_USING_HWTIMER is not set
@@ -130,6 +138,7 @@ CONFIG_RT_USING_SERIAL=y
CONFIG_RT_USING_I2C=y
CONFIG_RT_USING_I2C_BITOPS=y
# CONFIG_RT_USING_PIN is not set
+# CONFIG_RT_USING_PWM is not set
# CONFIG_RT_USING_MTD_NOR is not set
CONFIG_RT_USING_MTD_NAND=y
# CONFIG_RT_MTD_NAND_DEBUG is not set
@@ -149,6 +158,7 @@ CONFIG_RT_SFUD_USING_SFDP=y
# CONFIG_RT_USING_SPI_WIFI is not set
# CONFIG_RT_USING_WDT is not set
# CONFIG_RT_USING_WIFI is not set
+# CONFIG_RT_USING_AUDIO is not set
#
# Using USB
@@ -165,12 +175,24 @@ CONFIG_RT_USING_POSIX=y
# CONFIG_RT_USING_POSIX_MMAP is not set
# CONFIG_RT_USING_POSIX_TERMIOS is not set
# CONFIG_RT_USING_POSIX_AIO is not set
-# CONFIG_HAVE_SYS_SIGNALS is not set
+# CONFIG_RT_USING_LWP is not set
#
-# Network stack
+# Network
#
+#
+# Socket abstraction layer
+#
+CONFIG_RT_USING_SAL=y
+
+#
+# protocol stack implement
+#
+CONFIG_SAL_USING_LWIP=y
+CONFIG_SAL_USING_POSIX=y
+CONFIG_SAL_PROTO_FAMILIES_NUM=4
+
#
# light weight TCP/IP stack
#
@@ -207,6 +229,8 @@ CONFIG_RT_LWIP_TCP_WND=8196
CONFIG_RT_LWIP_TCPTHREAD_PRIORITY=10
CONFIG_RT_LWIP_TCPTHREAD_MBOX_SIZE=8
CONFIG_RT_LWIP_TCPTHREAD_STACKSIZE=1024
+# CONFIG_LWIP_NO_RX_THREAD is not set
+# CONFIG_LWIP_NO_TX_THREAD is not set
CONFIG_RT_LWIP_ETHTHREAD_PRIORITY=12
CONFIG_RT_LWIP_ETHTHREAD_STACKSIZE=1024
CONFIG_RT_LWIP_ETHTHREAD_MBOX_SIZE=8
@@ -246,20 +270,6 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# RT-Thread online packages
#
-#
-# system packages
-#
-
-#
-# RT-Thread GUI Engine
-#
-# CONFIG_PKG_USING_GUIENGINE is not set
-# CONFIG_PKG_USING_PERSIMMON is not set
-# CONFIG_PKG_USING_LWEXT4 is not set
-# CONFIG_PKG_USING_PARTITION is not set
-# CONFIG_PKG_USING_SQLITE is not set
-# CONFIG_PKG_USING_RTI is not set
-
#
# IoT - internet of things
#
@@ -268,6 +278,7 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# CONFIG_PKG_USING_MONGOOSE is not set
# CONFIG_PKG_USING_WEBTERMINAL is not set
# CONFIG_PKG_USING_CJSON is not set
+# CONFIG_PKG_USING_JSMN is not set
# CONFIG_PKG_USING_LJSON is not set
# CONFIG_PKG_USING_EZXML is not set
# CONFIG_PKG_USING_NANOPB is not set
@@ -290,6 +301,7 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# CONFIG_PKG_USING_NOPOLL is not set
# CONFIG_PKG_USING_NETUTILS is not set
# CONFIG_PKG_USING_ONENET is not set
+# CONFIG_PKG_USING_AT_DEVICE is not set
#
# security packages
@@ -301,14 +313,15 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
#
# language packages
#
+# CONFIG_PKG_USING_LUA is not set
# CONFIG_PKG_USING_JERRYSCRIPT is not set
# CONFIG_PKG_USING_MICROPYTHON is not set
-# CONFIG_PKG_USING_LUA2RTT is not set
#
# multimedia packages
#
# CONFIG_PKG_USING_OPENMV is not set
+# CONFIG_PKG_USING_MUPDF is not set
#
# tools packages
@@ -317,17 +330,44 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# CONFIG_PKG_USING_EASYFLASH is not set
# CONFIG_PKG_USING_EASYLOGGER is not set
# CONFIG_PKG_USING_SYSTEMVIEW is not set
-# CONFIG_PKG_USING_IPERF is not set
+
+#
+# system packages
+#
+# CONFIG_PKG_USING_GUIENGINE is not set
+# CONFIG_PKG_USING_PERSIMMON is not set
+# CONFIG_PKG_USING_CAIRO is not set
+# CONFIG_PKG_USING_PIXMAN is not set
+# CONFIG_PKG_USING_LWEXT4 is not set
+# CONFIG_PKG_USING_PARTITION is not set
+# CONFIG_PKG_USING_FAL is not set
+# CONFIG_PKG_USING_SQLITE is not set
+# CONFIG_PKG_USING_RTI is not set
+# CONFIG_PKG_USING_LITTLEVGL2RTT is not set
+
+#
+# peripheral libraries and drivers
+#
+# CONFIG_PKG_USING_STM32F4_HAL is not set
+# CONFIG_PKG_USING_STM32F4_DRIVERS is not set
+# CONFIG_PKG_USING_REALTEK_AMEBA is not set
#
# miscellaneous packages
#
+# CONFIG_PKG_USING_OPTPARSE is not set
# CONFIG_PKG_USING_FASTLZ is not set
# CONFIG_PKG_USING_MINILZO is not set
# CONFIG_PKG_USING_QUICKLZ is not set
# CONFIG_PKG_USING_MULTIBUTTON is not set
-# CONFIG_PKG_USING_SAMPLES is not set
# CONFIG_PKG_USING_CANFESTIVAL is not set
+# CONFIG_PKG_USING_ZLIB is not set
+# CONFIG_PKG_USING_DSTR is not set
+
+#
+# sample package
+#
+# CONFIG_PKG_USING_SAMPLES is not set
#
# example package: hello
diff --git a/bsp/stm32f429-apollo/drivers/drv_spi_flash.c b/bsp/stm32f429-apollo/drivers/drv_spi_flash.c
index d570e7d602..f6c5748dac 100644
--- a/bsp/stm32f429-apollo/drivers/drv_spi_flash.c
+++ b/bsp/stm32f429-apollo/drivers/drv_spi_flash.c
@@ -84,4 +84,4 @@ static int rt_hw_spi_flash_with_sfud_init(void)
return RT_EOK;
}
-INIT_COMPONENT_EXPORT(rt_hw_spi_flash_with_sfud_init)
+INIT_COMPONENT_EXPORT(rt_hw_spi_flash_with_sfud_init);
diff --git a/bsp/stm32f429-apollo/project.ewp b/bsp/stm32f429-apollo/project.ewp
index 4a742d5399..6534098cdb 100644
--- a/bsp/stm32f429-apollo/project.ewp
+++ b/bsp/stm32f429-apollo/project.ewp
@@ -1,2492 +1,2613 @@
-
- 2
-
- Debug
-
- ARM
-
- 1
-
- General
- 3
-
- 21
- 1
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ICCARM
- 2
-
- 28
- 1
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AARM
- 2
-
- 8
- 1
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- OBJCOPY
- 0
-
- 1
- 1
- 1
-
-
-
-
-
-
-
-
- CUSTOM
- 3
-
-
-
-
-
-
- BICOMP
- 0
-
-
-
- BUILDACTION
- 1
-
-
-
-
-
-
- ILINK
- 0
-
- 14
- 1
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- IARCHIVE
- 0
-
- 0
- 1
- 1
-
-
-
-
-
-
- BILINK
- 0
-
-
-
-
- Release
-
- ARM
-
- 0
-
- General
- 3
-
- 21
- 1
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ICCARM
- 2
-
- 28
- 1
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AARM
- 2
-
- 8
- 1
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- OBJCOPY
- 0
-
- 1
- 1
- 0
-
-
-
-
-
-
-
-
- CUSTOM
- 3
-
-
-
-
-
-
- BICOMP
- 0
-
-
-
- BUILDACTION
- 1
-
-
-
-
-
-
- ILINK
- 0
-
- 14
- 1
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- IARCHIVE
- 0
-
- 0
- 1
- 0
-
-
-
-
-
-
- BILINK
- 0
-
-
-
-
- Drivers
-
- $PROJ_DIR$\drivers/board.c
-
-
- $PROJ_DIR$\drivers/stm32f4xx_it.c
-
-
- $PROJ_DIR$\drivers/usart.c
-
-
- $PROJ_DIR$\drivers/drv_sdram.c
-
-
- $PROJ_DIR$\drivers/drv_rtc.c
-
-
- $PROJ_DIR$\drivers/drv_mpu.c
-
-
- $PROJ_DIR$\drivers/drv_sdio_sd.c
-
-
- $PROJ_DIR$\drivers/drv_nand.c
-
-
- $PROJ_DIR$\drivers/drv_eth.c
-
-
- $PROJ_DIR$\drivers/drv_iic.c
-
-
- $PROJ_DIR$\drivers/drv_pcf8574.c
-
-
- $PROJ_DIR$\drivers/drv_spi.c
-
-
- $PROJ_DIR$\drivers/drv_spi_flash.c
-
-
-
- Applications
-
- $PROJ_DIR$\applications/application.c
-
-
- $PROJ_DIR$\applications/startup.c
-
-
-
- STM32_HAL
-
- $PROJ_DIR$\Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cec.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cryp_ex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dac_ex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dcmi_ex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dfsdm.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma2d.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dsi.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_eth.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_fmpi2c_ex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hash_ex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_hcd.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2s_ex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_irda.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_iwdg.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_ltdc_ex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nand.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_nor.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pccard.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_qspi.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rng.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sai_ex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sdram.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_smartcard.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spdifrx.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sram.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_usart.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_wwdg.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fmc.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_fsmc.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_sdmmc.c
-
-
- $PROJ_DIR$\Libraries/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c
-
-
- $PROJ_DIR$\Libraries/CMSIS/Device/ST/STM32F4xx/Source/Templates/iar/startup_stm32f429xx.s
-
-
-
- Kernel
-
- $PROJ_DIR$\../../src/clock.c
-
-
- $PROJ_DIR$\../../src/components.c
-
-
- $PROJ_DIR$\../../src/device.c
-
-
- $PROJ_DIR$\../../src/idle.c
-
-
- $PROJ_DIR$\../../src/ipc.c
-
-
- $PROJ_DIR$\../../src/irq.c
-
-
- $PROJ_DIR$\../../src/kservice.c
-
-
- $PROJ_DIR$\../../src/mem.c
-
-
- $PROJ_DIR$\../../src/memheap.c
-
-
- $PROJ_DIR$\../../src/mempool.c
-
-
- $PROJ_DIR$\../../src/object.c
-
-
- $PROJ_DIR$\../../src/scheduler.c
-
-
- $PROJ_DIR$\../../src/signal.c
-
-
- $PROJ_DIR$\../../src/thread.c
-
-
- $PROJ_DIR$\../../src/timer.c
-
-
-
- CORTEX-M4
-
- $PROJ_DIR$\../../libcpu/arm/cortex-m4/cpuport.c
-
-
- $PROJ_DIR$\../../libcpu/arm/cortex-m4/context_iar.S
-
-
- $PROJ_DIR$\../../libcpu/arm/common/backtrace.c
-
-
- $PROJ_DIR$\../../libcpu/arm/common/div0.c
-
-
- $PROJ_DIR$\../../libcpu/arm/common/showmem.c
-
-
-
- DeviceDrivers
-
- $PROJ_DIR$\../../components/drivers/i2c/i2c_core.c
-
-
- $PROJ_DIR$\../../components/drivers/i2c/i2c_dev.c
-
-
- $PROJ_DIR$\../../components/drivers/i2c/i2c-bit-ops.c
-
-
- $PROJ_DIR$\../../components/drivers/serial/serial.c
-
-
- $PROJ_DIR$\../../components/drivers/rtc/rtc.c
-
-
- $PROJ_DIR$\../../components/drivers/mtd/mtd_nand.c
-
-
- $PROJ_DIR$\../../components/drivers/spi/spi_core.c
-
-
- $PROJ_DIR$\../../components/drivers/spi/spi_dev.c
-
-
- $PROJ_DIR$\../../components/drivers/spi/spi_flash_sfud.c
-
-
- $PROJ_DIR$\../../components/drivers/spi/sfud/src/sfud.c
-
-
- $PROJ_DIR$\../../components/drivers/spi/sfud/src/sfud_sfdp.c
-
-
- $PROJ_DIR$\../../components/drivers/src/completion.c
-
-
- $PROJ_DIR$\../../components/drivers/src/dataqueue.c
-
-
- $PROJ_DIR$\../../components/drivers/src/pipe.c
-
-
- $PROJ_DIR$\../../components/drivers/src/ringbuffer.c
-
-
- $PROJ_DIR$\../../components/drivers/src/waitqueue.c
-
-
- $PROJ_DIR$\../../components/drivers/src/workqueue.c
-
-
-
- dlib
-
- $PROJ_DIR$\../../components/libc/compilers/dlib/environ.c
-
-
- $PROJ_DIR$\../../components/libc/compilers/dlib/libc.c
-
-
- $PROJ_DIR$\../../components/libc/compilers/dlib/rmtx.c
-
-
- $PROJ_DIR$\../../components/libc/compilers/dlib/stdio.c
-
-
- $PROJ_DIR$\../../components/libc/compilers/dlib/syscall_close.c
-
-
- $PROJ_DIR$\../../components/libc/compilers/dlib/syscall_lseek.c
-
-
- $PROJ_DIR$\../../components/libc/compilers/dlib/syscall_mem.c
-
-
- $PROJ_DIR$\../../components/libc/compilers/dlib/syscall_open.c
-
-
- $PROJ_DIR$\../../components/libc/compilers/dlib/syscall_read.c
-
-
- $PROJ_DIR$\../../components/libc/compilers/dlib/syscall_remove.c
-
-
- $PROJ_DIR$\../../components/libc/compilers/dlib/syscall_write.c
-
-
-
- finsh
-
- $PROJ_DIR$\../../components/finsh/shell.c
-
-
- $PROJ_DIR$\../../components/finsh/symbol.c
-
-
- $PROJ_DIR$\../../components/finsh/cmd.c
-
-
- $PROJ_DIR$\../../components/finsh/finsh_compiler.c
-
-
- $PROJ_DIR$\../../components/finsh/finsh_error.c
-
-
- $PROJ_DIR$\../../components/finsh/finsh_heap.c
-
-
- $PROJ_DIR$\../../components/finsh/finsh_init.c
-
-
- $PROJ_DIR$\../../components/finsh/finsh_node.c
-
-
- $PROJ_DIR$\../../components/finsh/finsh_ops.c
-
-
- $PROJ_DIR$\../../components/finsh/finsh_parser.c
-
-
- $PROJ_DIR$\../../components/finsh/finsh_var.c
-
-
- $PROJ_DIR$\../../components/finsh/finsh_vm.c
-
-
- $PROJ_DIR$\../../components/finsh/finsh_token.c
-
-
-
- lwIP
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/arch/sys_arch.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/api/api_lib.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/api/api_msg.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/api/err.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/api/netbuf.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/api/netdb.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/api/netifapi.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/api/sockets.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/api/tcpip.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/def.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/dns.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/inet_chksum.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/init.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/ip.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/memp.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/netif.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/pbuf.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/raw.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/stats.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/sys.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/tcp.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/tcp_in.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/tcp_out.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/timeouts.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/udp.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/netif/ethernet.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/netif/ethernetif.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/netif/lowpan6.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/ipv4/autoip.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/ipv4/dhcp.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/ipv4/etharp.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/ipv4/icmp.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/ipv4/igmp.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/ipv4/ip4.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/ipv4/ip4_addr.c
-
-
- $PROJ_DIR$\../../components/net/lwip-2.0.2/src/core/ipv4/ip4_frag.c
-
-
-
- Filesystem
-
- $PROJ_DIR$\../../components/dfs/src/dfs.c
-
-
- $PROJ_DIR$\../../components/dfs/src/dfs_file.c
-
-
- $PROJ_DIR$\../../components/dfs/src/dfs_fs.c
-
-
- $PROJ_DIR$\../../components/dfs/src/dfs_posix.c
-
-
- $PROJ_DIR$\../../components/dfs/src/poll.c
-
-
- $PROJ_DIR$\../../components/dfs/src/select.c
-
-
- $PROJ_DIR$\../../components/dfs/filesystems/romfs/dfs_romfs.c
-
-
- $PROJ_DIR$\../../components/dfs/filesystems/romfs/romfs.c
-
-
- $PROJ_DIR$\../../components/dfs/filesystems/devfs/devfs.c
-
-
- $PROJ_DIR$\../../components/dfs/filesystems/net/dfs_net.c
-
-
- $PROJ_DIR$\../../components/dfs/filesystems/net/net_netdb.c
-
-
- $PROJ_DIR$\../../components/dfs/filesystems/net/net_sockets.c
-
-
- $PROJ_DIR$\../../components/dfs/filesystems/elmfat/dfs_elm.c
-
-
- $PROJ_DIR$\../../components/dfs/filesystems/elmfat/ff.c
-
-
-
+
+
+
+ 2
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 24
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Release
+
+ ARM
+
+ 0
+
+ General
+ 3
+
+ 24
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 0
+
+
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Applications
+
+ $PROJ_DIR$\applications\application.c
+
+
+ $PROJ_DIR$\applications\startup.c
+
+
+
+ CORTEX-M4
+
+ $PROJ_DIR$\..\..\libcpu\arm\common\backtrace.c
+
+
+ $PROJ_DIR$\..\..\libcpu\arm\cortex-m4\context_iar.S
+
+
+ $PROJ_DIR$\..\..\libcpu\arm\cortex-m4\cpuport.c
+
+
+ $PROJ_DIR$\..\..\libcpu\arm\common\div0.c
+
+
+ $PROJ_DIR$\..\..\libcpu\arm\common\showmem.c
+
+
+
+ DeviceDrivers
+
+ $PROJ_DIR$\..\..\components\drivers\src\completion.c
+
+
+ $PROJ_DIR$\..\..\components\drivers\src\dataqueue.c
+
+
+ $PROJ_DIR$\..\..\components\drivers\i2c\i2c-bit-ops.c
+
+
+ $PROJ_DIR$\..\..\components\drivers\i2c\i2c_core.c
+
+
+ $PROJ_DIR$\..\..\components\drivers\i2c\i2c_dev.c
+
+
+ $PROJ_DIR$\..\..\components\drivers\mtd\mtd_nand.c
+
+
+ $PROJ_DIR$\..\..\components\drivers\src\pipe.c
+
+
+ $PROJ_DIR$\..\..\components\drivers\src\ringbuffer.c
+
+
+ $PROJ_DIR$\..\..\components\drivers\rtc\rtc.c
+
+
+ $PROJ_DIR$\..\..\components\drivers\serial\serial.c
+
+
+ $PROJ_DIR$\..\..\components\drivers\spi\sfud\src\sfud.c
+
+
+ $PROJ_DIR$\..\..\components\drivers\spi\sfud\src\sfud_sfdp.c
+
+
+ $PROJ_DIR$\..\..\components\drivers\spi\spi_core.c
+
+
+ $PROJ_DIR$\..\..\components\drivers\spi\spi_dev.c
+
+
+ $PROJ_DIR$\..\..\components\drivers\spi\spi_flash_sfud.c
+
+
+ $PROJ_DIR$\..\..\components\drivers\src\waitqueue.c
+
+
+ $PROJ_DIR$\..\..\components\drivers\src\workqueue.c
+
+
+
+ dlib
+
+ $PROJ_DIR$\..\..\components\libc\compilers\dlib\environ.c
+
+
+ $PROJ_DIR$\..\..\components\libc\compilers\dlib\libc.c
+
+
+ $PROJ_DIR$\..\..\components\libc\compilers\dlib\rmtx.c
+
+
+ $PROJ_DIR$\..\..\components\libc\compilers\dlib\stdio.c
+
+
+ $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_close.c
+
+
+ $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_lseek.c
+
+
+ $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_mem.c
+
+
+ $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_open.c
+
+
+ $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_read.c
+
+
+ $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_remove.c
+
+
+ $PROJ_DIR$\..\..\components\libc\compilers\dlib\syscall_write.c
+
+
+ $PROJ_DIR$\..\..\components\libc\compilers\dlib\time.c
+
+
+
+ Drivers
+
+ $PROJ_DIR$\drivers\board.c
+
+
+ $PROJ_DIR$\drivers\drv_eth.c
+
+
+ $PROJ_DIR$\drivers\drv_i2c.c
+
+
+ $PROJ_DIR$\drivers\drv_mpu.c
+
+
+ $PROJ_DIR$\drivers\drv_nand.c
+
+
+ $PROJ_DIR$\drivers\drv_pcf8574.c
+
+
+ $PROJ_DIR$\drivers\drv_rtc.c
+
+
+ $PROJ_DIR$\drivers\drv_sdio_sd.c
+
+
+ $PROJ_DIR$\drivers\drv_sdram.c
+
+
+ $PROJ_DIR$\drivers\drv_spi.c
+
+
+ $PROJ_DIR$\drivers\drv_spi_flash.c
+
+
+ $PROJ_DIR$\drivers\stm32f4xx_it.c
+
+
+ $PROJ_DIR$\drivers\usart.c
+
+
+
+ Filesystem
+
+ $PROJ_DIR$\..\..\components\dfs\filesystems\devfs\devfs.c
+
+
+ $PROJ_DIR$\..\..\components\dfs\src\dfs.c
+
+
+ $PROJ_DIR$\..\..\components\dfs\filesystems\elmfat\dfs_elm.c
+
+
+ $PROJ_DIR$\..\..\components\dfs\src\dfs_file.c
+
+
+ $PROJ_DIR$\..\..\components\dfs\src\dfs_fs.c
+
+
+ $PROJ_DIR$\..\..\components\dfs\src\dfs_posix.c
+
+
+ $PROJ_DIR$\..\..\components\dfs\filesystems\romfs\dfs_romfs.c
+
+
+ $PROJ_DIR$\..\..\components\dfs\filesystems\elmfat\ff.c
+
+
+ $PROJ_DIR$\..\..\components\dfs\src\poll.c
+
+
+ $PROJ_DIR$\..\..\components\dfs\filesystems\romfs\romfs.c
+
+
+ $PROJ_DIR$\..\..\components\dfs\src\select.c
+
+
+
+ finsh
+
+ $PROJ_DIR$\..\..\components\finsh\cmd.c
+
+
+ $PROJ_DIR$\..\..\components\finsh\finsh_compiler.c
+
+
+ $PROJ_DIR$\..\..\components\finsh\finsh_error.c
+
+
+ $PROJ_DIR$\..\..\components\finsh\finsh_heap.c
+
+
+ $PROJ_DIR$\..\..\components\finsh\finsh_init.c
+
+
+ $PROJ_DIR$\..\..\components\finsh\finsh_node.c
+
+
+ $PROJ_DIR$\..\..\components\finsh\finsh_ops.c
+
+
+ $PROJ_DIR$\..\..\components\finsh\finsh_parser.c
+
+
+ $PROJ_DIR$\..\..\components\finsh\finsh_token.c
+
+
+ $PROJ_DIR$\..\..\components\finsh\finsh_var.c
+
+
+ $PROJ_DIR$\..\..\components\finsh\finsh_vm.c
+
+
+ $PROJ_DIR$\..\..\components\finsh\shell.c
+
+
+ $PROJ_DIR$\..\..\components\finsh\symbol.c
+
+
+
+ Kernel
+
+ $PROJ_DIR$\..\..\src\clock.c
+
+
+ $PROJ_DIR$\..\..\src\components.c
+
+
+ $PROJ_DIR$\..\..\src\device.c
+
+
+ $PROJ_DIR$\..\..\src\idle.c
+
+
+ $PROJ_DIR$\..\..\src\ipc.c
+
+
+ $PROJ_DIR$\..\..\src\irq.c
+
+
+ $PROJ_DIR$\..\..\src\kservice.c
+
+
+ $PROJ_DIR$\..\..\src\mem.c
+
+
+ $PROJ_DIR$\..\..\src\memheap.c
+
+
+ $PROJ_DIR$\..\..\src\mempool.c
+
+
+ $PROJ_DIR$\..\..\src\object.c
+
+
+ $PROJ_DIR$\..\..\src\scheduler.c
+
+
+ $PROJ_DIR$\..\..\src\signal.c
+
+
+ $PROJ_DIR$\..\..\src\thread.c
+
+
+ $PROJ_DIR$\..\..\src\timer.c
+
+
+
+ lwIP
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\api_lib.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\api_msg.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\autoip.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\def.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\dhcp.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\dns.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\err.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\etharp.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\netif\ethernet.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\netif\ethernetif.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\icmp.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\igmp.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\inet_chksum.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\init.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ip.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4_addr.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\ipv4\ip4_frag.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\netif\lowpan6.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\memp.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\netbuf.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\netdb.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\netif.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\netifapi.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\pbuf.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\raw.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\sockets.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\stats.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\sys.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\arch\sys_arch.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\tcp.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\tcp_in.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\tcp_out.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\api\tcpip.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\timeouts.c
+
+
+ $PROJ_DIR$\..\..\components\net\lwip-2.0.2\src\core\udp.c
+
+
+
+ SAL
+
+ $PROJ_DIR$\..\..\components\net\sal_socket\impl\af_inet_lwip.c
+
+
+ $PROJ_DIR$\..\..\components\net\sal_socket\dfs_net\dfs_net.c
+
+
+ $PROJ_DIR$\..\..\components\net\sal_socket\socket\net_netdb.c
+
+
+ $PROJ_DIR$\..\..\components\net\sal_socket\socket\net_sockets.c
+
+
+ $PROJ_DIR$\..\..\components\net\sal_socket\src\sal_ipaddr.c
+
+
+ $PROJ_DIR$\..\..\components\net\sal_socket\src\sal_socket.c
+
+
+
+ STM32_HAL
+
+ $PROJ_DIR$\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar\startup_stm32f429xx.s
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc_ex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_can.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dac.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dac_ex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dcmi.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dcmi_ex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dfsdm.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma2d.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dsi.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_eth.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_fmpi2c.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_fmpi2c_ex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_hash.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_hash_ex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_hcd.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2c_ex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2s.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_i2s_ex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_irda.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_iwdg.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_lptim.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_ltdc.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_ltdc_ex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_nand.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_nor.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pccard.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pcd.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pcd_ex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_qspi.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rtc.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rtc_ex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sai.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sai_ex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sd.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sdram.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_smartcard.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spdifrx.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_spi.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_sram.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_tim_ex.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_wwdg.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_fmc.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_fsmc.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_sdmmc.c
+
+
+ $PROJ_DIR$\Libraries\STM32F4xx_HAL_Driver\Src\stm32f4xx_ll_usb.c
+
+
+ $PROJ_DIR$\Libraries\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c
+
+
+
+
+
diff --git a/bsp/stm32f429-apollo/project.uvproj b/bsp/stm32f429-apollo/project.uvproj
index 76f7e2ee62..994592cd52 100644
--- a/bsp/stm32f429-apollo/project.uvproj
+++ b/bsp/stm32f429-apollo/project.uvproj
@@ -359,7 +359,7 @@
USE_HAL_DRIVER, RT_USING_ARM_LIBC, STM32F429xx
- applications;.;drivers;Libraries\STM32F4xx_HAL_Driver\Inc;Libraries\CMSIS\Device\ST\STM32F4xx\Include;Libraries\CMSIS\Include;..\..\include;..\..\libcpu\arm\cortex-m4;..\..\libcpu\arm\common;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\dfs\filesystems\net;..\..\components\dfs\filesystems\net\socket;..\..\components\dfs\filesystems\romfs;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\spi;..\..\components\drivers\include;..\..\components\drivers\spi\sfud\inc;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\armlibc;..\..\components\net\lwip-2.0.2\src;..\..\components\net\lwip-2.0.2\src\include;..\..\components\net\lwip-2.0.2\src\include\ipv4;..\..\components\net\lwip-2.0.2\src\arch\include;..\..\components\net\lwip-2.0.2\src\include\netif
+ applications;.;drivers;Libraries\STM32F4xx_HAL_Driver\Inc;Libraries\CMSIS\Device\ST\STM32F4xx\Include;Libraries\CMSIS\Include;..\..\include;..\..\libcpu\arm\cortex-m4;..\..\libcpu\arm\common;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\dfs\filesystems\romfs;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\spi;..\..\components\drivers\include;..\..\components\drivers\spi\sfud\inc;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\armlibc;..\..\components\net\lwip-2.0.2\src;..\..\components\net\lwip-2.0.2\src\include;..\..\components\net\lwip-2.0.2\src\include\ipv4;..\..\components\net\lwip-2.0.2\src\arch\include;..\..\components\net\lwip-2.0.2\src\include\netif;..\..\components\net\sal_socket\include;..\..\components\net\sal_socket\include\dfs_net;..\..\components\net\sal_socket\include\socket;..\..\components\net\sal_socket\include\dfs_net\sys_select;..\..\components\net\sal_socket\include\socket\sys_socket
@@ -483,16 +483,16 @@
- drv_i2c.c
+ drv_pcf8574.c
1
- drivers\drv_i2c.c
+ drivers\drv_pcf8574.c
- drv_pcf8574.c
+ drv_i2c.c
1
- drivers\drv_pcf8574.c
+ drivers\drv_i2c.c
@@ -509,13 +509,6 @@
drivers\drv_spi_flash.c
-
-
- drivers_drv_i2c.c
- 1
- drivers\drv_i2c.c
-
-
STM32_HAL
@@ -1214,27 +1207,6 @@
..\..\components\dfs\filesystems\elmfat\ff.c
-
-
- dfs_net.c
- 1
- ..\..\components\dfs\filesystems\net\dfs_net.c
-
-
-
-
- net_netdb.c
- 1
- ..\..\components\dfs\filesystems\net\net_netdb.c
-
-
-
-
- net_sockets.c
- 1
- ..\..\components\dfs\filesystems\net\net_sockets.c
-
-
dfs_romfs.c
@@ -1487,13 +1459,6 @@
..\..\components\libc\compilers\armlibc\libc.c
-
-
- libc_syms.c
- 1
- ..\..\components\libc\compilers\armlibc\libc_syms.c
-
-
mem_std.c
@@ -1778,6 +1743,51 @@
+
+ SAL
+
+
+ sal_ipaddr.c
+ 1
+ ..\..\components\net\sal_socket\src\sal_ipaddr.c
+
+
+
+
+ sal_socket.c
+ 1
+ ..\..\components\net\sal_socket\src\sal_socket.c
+
+
+
+
+ net_netdb.c
+ 1
+ ..\..\components\net\sal_socket\socket\net_netdb.c
+
+
+
+
+ net_sockets.c
+ 1
+ ..\..\components\net\sal_socket\socket\net_sockets.c
+
+
+
+
+ af_inet_lwip.c
+ 1
+ ..\..\components\net\sal_socket\impl\af_inet_lwip.c
+
+
+
+
+ dfs_net.c
+ 1
+ ..\..\components\net\sal_socket\dfs_net\dfs_net.c
+
+
+
diff --git a/bsp/stm32f429-apollo/project.uvprojx b/bsp/stm32f429-apollo/project.uvprojx
index 3ddc65df13..61435f8369 100644
--- a/bsp/stm32f429-apollo/project.uvprojx
+++ b/bsp/stm32f429-apollo/project.uvprojx
@@ -10,13 +10,12 @@
rt_thread_stm32f429
0x4
ARM-ADS
- 5060300::V5.06 update 3 (build 300)::ARMCC
- 0
+ 5060422::V5.06 update 4 (build 422)::ARMCC
STM32F429IGHx
STMicroelectronics
- Keil.STM32F4xx_DFP.2.12.0
+ Keil.STM32F4xx_DFP.2.11.0
http://www.keil.com/pack
IRAM(0x20000000,0x30000) IRAM2(0x10000000,0x10000) IROM(0x08000000,0x100000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE
@@ -336,7 +335,7 @@
USE_HAL_DRIVER, RT_USING_ARM_LIBC, STM32F429xx
- applications;.;drivers;Libraries\STM32F4xx_HAL_Driver\Inc;Libraries\CMSIS\Device\ST\STM32F4xx\Include;Libraries\CMSIS\Include;..\..\include;..\..\libcpu\arm\cortex-m4;..\..\libcpu\arm\common;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\dfs\filesystems\net;..\..\components\dfs\filesystems\net\socket;..\..\components\dfs\filesystems\romfs;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\spi;..\..\components\drivers\include;..\..\components\drivers\spi\sfud\inc;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\armlibc;..\..\components\net\lwip-2.0.2\src;..\..\components\net\lwip-2.0.2\src\include;..\..\components\net\lwip-2.0.2\src\include\ipv4;..\..\components\net\lwip-2.0.2\src\arch\include;..\..\components\net\lwip-2.0.2\src\include\netif
+ applications;.;drivers;Libraries\STM32F4xx_HAL_Driver\Inc;Libraries\CMSIS\Device\ST\STM32F4xx\Include;Libraries\CMSIS\Include;..\..\include;..\..\libcpu\arm\cortex-m4;..\..\libcpu\arm\common;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\dfs\filesystems\romfs;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\spi;..\..\components\drivers\include;..\..\components\drivers\spi\sfud\inc;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\armlibc;..\..\components\net\lwip-2.0.2\src;..\..\components\net\lwip-2.0.2\src\include;..\..\components\net\lwip-2.0.2\src\include\ipv4;..\..\components\net\lwip-2.0.2\src\arch\include;..\..\components\net\lwip-2.0.2\src\include\netif;..\..\components\net\sal_socket\include;..\..\components\net\sal_socket\include\dfs_net;..\..\components\net\sal_socket\include\socket;..\..\components\net\sal_socket\include\dfs_net\sys_select;..\..\components\net\sal_socket\include\socket\sys_socket
@@ -440,16 +439,16 @@
1
drivers\drv_eth.c
-
- drv_i2c.c
- 1
- drivers\drv_i2c.c
-
drv_pcf8574.c
1
drivers\drv_pcf8574.c
+
+ drv_i2c.c
+ 1
+ drivers\drv_i2c.c
+
drv_spi.c
1
@@ -970,21 +969,6 @@
1
..\..\components\dfs\filesystems\elmfat\ff.c
-
- dfs_net.c
- 1
- ..\..\components\dfs\filesystems\net\dfs_net.c
-
-
- net_netdb.c
- 1
- ..\..\components\dfs\filesystems\net\net_netdb.c
-
-
- net_sockets.c
- 1
- ..\..\components\dfs\filesystems\net\net_sockets.c
-
dfs_romfs.c
1
@@ -1044,7 +1028,7 @@
--c99
-
+
@@ -1233,11 +1217,6 @@
1
..\..\components\libc\compilers\armlibc\libc.c
-
- libc_syms.c
- 1
- ..\..\components\libc\compilers\armlibc\libc_syms.c
-
mem_std.c
1
@@ -1445,6 +1424,41 @@
+
+ SAL
+
+
+ sal_ipaddr.c
+ 1
+ ..\..\components\net\sal_socket\src\sal_ipaddr.c
+
+
+ sal_socket.c
+ 1
+ ..\..\components\net\sal_socket\src\sal_socket.c
+
+
+ net_netdb.c
+ 1
+ ..\..\components\net\sal_socket\socket\net_netdb.c
+
+
+ net_sockets.c
+ 1
+ ..\..\components\net\sal_socket\socket\net_sockets.c
+
+
+ af_inet_lwip.c
+ 1
+ ..\..\components\net\sal_socket\impl\af_inet_lwip.c
+
+
+ dfs_net.c
+ 1
+ ..\..\components\net\sal_socket\dfs_net\dfs_net.c
+
+
+
diff --git a/bsp/stm32f429-apollo/rtconfig.h b/bsp/stm32f429-apollo/rtconfig.h
index 29f804d0dc..4de160fe17 100644
--- a/bsp/stm32f429-apollo/rtconfig.h
+++ b/bsp/stm32f429-apollo/rtconfig.h
@@ -13,12 +13,11 @@
#define RT_THREAD_PRIORITY_32
#define RT_THREAD_PRIORITY_MAX 32
#define RT_TICK_PER_SECOND 1000
-#define RT_DEBUG
#define RT_USING_OVERFLOW_CHECK
-#define RT_DEBUG_INIT 1
-#define RT_DEBUG_THREAD 0
#define RT_USING_HOOK
+#define RT_IDEL_HOOK_LIST_SIZE 4
#define IDLE_THREAD_STACK_SIZE 1024
+#define RT_DEBUG
/* Inter-Thread communication */
@@ -84,13 +83,12 @@
#define RT_DFS_ELM_MAX_SECTOR_SIZE 4096
#define RT_DFS_ELM_REENTRANT
#define RT_USING_DFS_DEVFS
-#define RT_USING_DFS_NET
-#define HAVE_SYS_SELECT_H
#define RT_USING_DFS_ROMFS
/* Device Drivers */
#define RT_USING_DEVICE_IPC
+#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
#define RT_USING_I2C
#define RT_USING_I2C_BITOPS
@@ -108,7 +106,17 @@
#define RT_USING_LIBC
#define RT_USING_POSIX
-/* Network stack */
+/* Network */
+
+/* Socket abstraction layer */
+
+#define RT_USING_SAL
+
+/* protocol stack implement */
+
+#define SAL_USING_LWIP
+#define SAL_USING_POSIX
+#define SAL_PROTO_FAMILIES_NUM 4
/* light weight TCP/IP stack */
@@ -162,11 +170,6 @@
/* RT-Thread online packages */
-/* system packages */
-
-/* RT-Thread GUI Engine */
-
-
/* IoT - internet of things */
@@ -190,9 +193,18 @@
/* tools packages */
+/* system packages */
+
+
+/* peripheral libraries and drivers */
+
+
/* miscellaneous packages */
+/* sample package */
+
+
/* example package: hello */
#define RT_USING_EXT_SDRAM
diff --git a/bsp/stm32f429-armfly/.config b/bsp/stm32f429-armfly/.config
index f376233901..be7abc5df7 100644
--- a/bsp/stm32f429-armfly/.config
+++ b/bsp/stm32f429-armfly/.config
@@ -14,13 +14,22 @@ CONFIG_RT_THREAD_PRIORITY_32=y
# CONFIG_RT_THREAD_PRIORITY_256 is not set
CONFIG_RT_THREAD_PRIORITY_MAX=32
CONFIG_RT_TICK_PER_SECOND=1000
-CONFIG_RT_DEBUG=y
CONFIG_RT_USING_OVERFLOW_CHECK=y
-CONFIG_RT_DEBUG_INIT=1
-CONFIG_RT_DEBUG_THREAD=0
CONFIG_RT_USING_HOOK=y
+CONFIG_RT_IDEL_HOOK_LIST_SIZE=4
CONFIG_IDLE_THREAD_STACK_SIZE=1024
# CONFIG_RT_USING_TIMER_SOFT is not set
+CONFIG_RT_DEBUG=y
+# CONFIG_RT_DEBUG_INIT_CONFIG is not set
+# CONFIG_RT_DEBUG_THREAD_CONFIG is not set
+# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set
+# CONFIG_RT_DEBUG_IPC_CONFIG is not set
+# CONFIG_RT_DEBUG_TIMER_CONFIG is not set
+# CONFIG_RT_DEBUG_IRQ_CONFIG is not set
+# CONFIG_RT_DEBUG_MEM_CONFIG is not set
+# CONFIG_RT_DEBUG_SLAB_CONFIG is not set
+# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set
+# CONFIG_RT_DEBUG_MODULE_CONFIG is not set
#
# Inter-Thread communication
@@ -113,7 +122,6 @@ CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=4096
# CONFIG_RT_DFS_ELM_USE_ERASE is not set
CONFIG_RT_DFS_ELM_REENTRANT=y
CONFIG_RT_USING_DFS_DEVFS=y
-CONFIG_RT_USING_DFS_NET=y
# CONFIG_RT_USING_DFS_ROMFS is not set
# CONFIG_RT_USING_DFS_RAMFS is not set
# CONFIG_RT_USING_DFS_UFFS is not set
@@ -124,6 +132,7 @@ CONFIG_RT_USING_DFS_NET=y
# Device Drivers
#
CONFIG_RT_USING_DEVICE_IPC=y
+CONFIG_RT_PIPE_BUFSZ=512
CONFIG_RT_USING_SERIAL=y
# CONFIG_RT_USING_CAN is not set
# CONFIG_RT_USING_HWTIMER is not set
@@ -167,9 +176,21 @@ CONFIG_RT_USING_POSIX=y
# CONFIG_RT_USING_LWP is not set
#
-# Network stack
+# Network
#
+#
+# Socket abstraction layer
+#
+CONFIG_RT_USING_SAL=y
+
+#
+# protocol stack implement
+#
+CONFIG_SAL_USING_LWIP=y
+CONFIG_SAL_USING_POSIX=y
+CONFIG_SAL_PROTO_FAMILIES_NUM=4
+
#
# light weight TCP/IP stack
#
@@ -251,10 +272,6 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# IoT - internet of things
#
# CONFIG_PKG_USING_PAHOMQTT is not set
-# CONFIG_PAHOMQTT_PIPE_MODE is not set
-# CONFIG_PAHOMQTT_UDP_MODE is not set
-# CONFIG_PKG_USING_PAHOMQTT_LATEST is not set
-# CONFIG_PKG_USING_PAHOMQTT_V100 is not set
# CONFIG_PKG_USING_WEBCLIENT is not set
# CONFIG_PKG_USING_MONGOOSE is not set
# CONFIG_PKG_USING_WEBTERMINAL is not set
@@ -281,9 +298,8 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# CONFIG_PKG_USING_COAP is not set
# CONFIG_PKG_USING_NOPOLL is not set
# CONFIG_PKG_USING_NETUTILS is not set
-# CONFIG_PKG_USING_NETUTILS_LATEST_VERSION is not set
-# CONFIG_PKG_USING_NETUTILS_V100 is not set
# CONFIG_PKG_USING_ONENET is not set
+# CONFIG_PKG_USING_AT_DEVICE is not set
#
# security packages
@@ -291,13 +307,11 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
# CONFIG_PKG_USING_MBEDTLS is not set
# CONFIG_PKG_USING_libsodium is not set
# CONFIG_PKG_USING_TINYCRYPT is not set
-# CONFIG_PKG_USING_TINYCRYPT_V110 is not set
-# CONFIG_PKG_USING_TINYCRYPT_V100 is not set
-# CONFIG_PKG_USING_TINYCRYPT_LATEST_VERSION is not set
#
# language packages
#
+# CONFIG_PKG_USING_LUA is not set
# CONFIG_PKG_USING_JERRYSCRIPT is not set
# CONFIG_PKG_USING_MICROPYTHON is not set
@@ -334,10 +348,12 @@ CONFIG_LWIP_NETIF_LOOPBACK=0
#
# CONFIG_PKG_USING_STM32F4_HAL is not set
# CONFIG_PKG_USING_STM32F4_DRIVERS is not set
+# CONFIG_PKG_USING_REALTEK_AMEBA is not set
#
# miscellaneous packages
#
+# CONFIG_PKG_USING_OPTPARSE is not set
# CONFIG_PKG_USING_FASTLZ is not set
# CONFIG_PKG_USING_MINILZO is not set
# CONFIG_PKG_USING_QUICKLZ is not set
diff --git a/bsp/stm32f429-armfly/drivers/drv_spi_flash.c b/bsp/stm32f429-armfly/drivers/drv_spi_flash.c
index ab5c41abcd..00b8cb75e0 100644
--- a/bsp/stm32f429-armfly/drivers/drv_spi_flash.c
+++ b/bsp/stm32f429-armfly/drivers/drv_spi_flash.c
@@ -106,5 +106,5 @@ static int rt_hw_spi_flash_init(void)
{
return w25qxx_init(SPI_FLASH_CHIP, SPI_FLASH_DEVICE_NAME);
}
-INIT_COMPONENT_EXPORT(rt_hw_spi_flash_init)
+INIT_COMPONENT_EXPORT(rt_hw_spi_flash_init);
#endif
diff --git a/bsp/stm32f429-armfly/project.uvprojx b/bsp/stm32f429-armfly/project.uvprojx
index d5af13563b..752283b635 100644
--- a/bsp/stm32f429-armfly/project.uvprojx
+++ b/bsp/stm32f429-armfly/project.uvprojx
@@ -10,8 +10,7 @@
rt-thread_stm32f4xx
0x4
ARM-ADS
- 5060750::V5.06 update 6 (build 750)::ARMCC
- 0
+ 5060422::V5.06 update 4 (build 422)::ARMCC
STM32F429BITx
@@ -324,7 +323,6 @@
0
0
0
- 0
0
1
1
@@ -337,7 +335,7 @@
USE_HAL_DRIVER, RT_USING_ARM_LIBC, STM32F429xx
- applications;.;drivers;Libraries\STM32F4xx_HAL_Driver\Inc;Libraries\CMSIS\Device\ST\STM32F4xx\Include;Libraries\CMSIS\Include;..\..\include;..\..\libcpu\arm\cortex-m4;..\..\libcpu\arm\common;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\dfs\filesystems\net;..\..\components\dfs\filesystems\net\socket;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\spi;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\armlibc;..\..\components\net\lwip-2.0.2\src;..\..\components\net\lwip-2.0.2\src\include;..\..\components\net\lwip-2.0.2\src\include\ipv4;..\..\components\net\lwip-2.0.2\src\arch\include;..\..\components\net\lwip-2.0.2\src\include\netif
+ applications;.;drivers;Libraries\STM32F4xx_HAL_Driver\Inc;Libraries\CMSIS\Device\ST\STM32F4xx\Include;Libraries\CMSIS\Include;..\..\include;..\..\libcpu\arm\cortex-m4;..\..\libcpu\arm\common;..\..\components\dfs\include;..\..\components\dfs\filesystems\devfs;..\..\components\dfs\filesystems\elmfat;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\drivers\spi;..\..\components\drivers\include;..\..\components\drivers\include;..\..\components\finsh;..\..\components\libc\compilers\armlibc;..\..\components\net\lwip-2.0.2\src;..\..\components\net\lwip-2.0.2\src\include;..\..\components\net\lwip-2.0.2\src\include\ipv4;..\..\components\net\lwip-2.0.2\src\arch\include;..\..\components\net\lwip-2.0.2\src\include\netif;..\..\components\net\sal_socket\include;..\..\components\net\sal_socket\include\dfs_net;..\..\components\net\sal_socket\include\socket;..\..\components\net\sal_socket\include\dfs_net\sys_select;..\..\components\net\sal_socket\include\socket\sys_socket
@@ -946,21 +944,6 @@
1
..\..\components\dfs\filesystems\elmfat\ff.c
-
- dfs_net.c
- 1
- ..\..\components\dfs\filesystems\net\dfs_net.c
-
-
- net_netdb.c
- 1
- ..\..\components\dfs\filesystems\net\net_netdb.c
-
-
- net_sockets.c
- 1
- ..\..\components\dfs\filesystems\net\net_sockets.c
-
@@ -998,7 +981,6 @@
2
2
2
- 2
2
0
0
@@ -1412,6 +1394,41 @@
+
+ SAL
+
+
+ sal_ipaddr.c
+ 1
+ ..\..\components\net\sal_socket\src\sal_ipaddr.c
+
+
+ sal_socket.c
+ 1
+ ..\..\components\net\sal_socket\src\sal_socket.c
+
+
+ net_netdb.c
+ 1
+ ..\..\components\net\sal_socket\socket\net_netdb.c
+
+
+ net_sockets.c
+ 1
+ ..\..\components\net\sal_socket\socket\net_sockets.c
+
+
+ af_inet_lwip.c
+ 1
+ ..\..\components\net\sal_socket\impl\af_inet_lwip.c
+
+
+ dfs_net.c
+ 1
+ ..\..\components\net\sal_socket\dfs_net\dfs_net.c
+
+
+
::CMSIS
diff --git a/bsp/stm32f429-armfly/rtconfig.h b/bsp/stm32f429-armfly/rtconfig.h
index 5ddea82fb7..0f302ccee4 100644
--- a/bsp/stm32f429-armfly/rtconfig.h
+++ b/bsp/stm32f429-armfly/rtconfig.h
@@ -13,12 +13,11 @@
#define RT_THREAD_PRIORITY_32
#define RT_THREAD_PRIORITY_MAX 32
#define RT_TICK_PER_SECOND 1000
-#define RT_DEBUG
#define RT_USING_OVERFLOW_CHECK
-#define RT_DEBUG_INIT 1
-#define RT_DEBUG_THREAD 0
#define RT_USING_HOOK
+#define RT_IDEL_HOOK_LIST_SIZE 4
#define IDLE_THREAD_STACK_SIZE 1024
+#define RT_DEBUG
/* Inter-Thread communication */
@@ -87,11 +86,11 @@
#define RT_DFS_ELM_MAX_SECTOR_SIZE 4096
#define RT_DFS_ELM_REENTRANT
#define RT_USING_DFS_DEVFS
-#define RT_USING_DFS_NET
/* Device Drivers */
#define RT_USING_DEVICE_IPC
+#define RT_PIPE_BUFSZ 512
#define RT_USING_SERIAL
#define RT_USING_I2C
#define RT_USING_I2C_BITOPS
@@ -108,7 +107,17 @@
#define RT_USING_LIBC
#define RT_USING_POSIX
-/* Network stack */
+/* Network */
+
+/* Socket abstraction layer */
+
+#define RT_USING_SAL
+
+/* protocol stack implement */
+
+#define SAL_USING_LWIP
+#define SAL_USING_POSIX
+#define SAL_PROTO_FAMILIES_NUM 4
/* light weight TCP/IP stack */
diff --git a/components/CMSIS/Kconfig b/components/CMSIS/Kconfig
index 8a27f44405..f428eea543 100644
--- a/components/CMSIS/Kconfig
+++ b/components/CMSIS/Kconfig
@@ -12,7 +12,7 @@ config RT_USING_RTT_CMSIS
bool "Using CMSIS Header files in RT-Thread"
default n
help
- Use CMSIS header files in RT-Thread/components/CMSIS. Otherwise, use the
+ Use CMSIS header files in RT-Thread/components/CMSIS. Otherwise, use the
CMSIS header files in BSP.
endmenu
diff --git a/components/dfs/Kconfig b/components/dfs/Kconfig
index 87b346026d..368a085052 100644
--- a/components/dfs/Kconfig
+++ b/components/dfs/Kconfig
@@ -13,14 +13,14 @@ if RT_USING_DFS
default y
config DFS_FILESYSTEMS_MAX
- int "The maximal number of mounted file system"
+ int "The maximal number of mounted file system"
default 4 if RT_USING_DFS_NFS
- default 2
+ default 2
config DFS_FILESYSTEM_TYPES_MAX
int "The maximal number of file system type"
default 4 if RT_USING_DFS_NFS
- default 2
+ default 2
config DFS_FD_MAX
int "The maximal number of opened files"
@@ -28,7 +28,7 @@ if RT_USING_DFS
config RT_USING_DFS_ELMFAT
bool "Enable elm-chan fatfs"
- default y
+ default n
help
FatFs is a generic FAT/exFAT file system module for small embedded systems.
@@ -40,9 +40,9 @@ if RT_USING_DFS
config RT_DFS_ELM_WORD_ACCESS
bool "Using RT_DFS_ELM_WORD_ACCESS"
- default y
+ default y
- choice
+ choice
prompt "Support long file name"
default RT_DFS_ELM_USE_LFN_0
@@ -95,14 +95,6 @@ if RT_USING_DFS
bool "Using devfs for device objects"
default y
- config RT_USING_DFS_NET
- bool "Enable BSD socket operated by file system API"
- select RT_USING_LWIP
- select RT_USING_POSIX
- default n
- help
- Let BSD socket operated by file system API, such as read/write and involveed in select/poll POSIX APIs.
-
config RT_USING_DFS_ROMFS
bool "Enable ReadOnly file system on flash"
default n
@@ -117,7 +109,7 @@ if RT_USING_DFS
default n
if RT_USING_DFS_UFFS
- choice
+ choice
prompt "UFFS ECC mode"
default RT_UFFS_ECC_MODE_1
diff --git a/components/dfs/filesystems/net/SConscript b/components/dfs/filesystems/net/SConscript
deleted file mode 100644
index 0b5e45c090..0000000000
--- a/components/dfs/filesystems/net/SConscript
+++ /dev/null
@@ -1,17 +0,0 @@
-# RT-Thread building script for component
-
-from building import *
-
-cwd = GetCurrentDir()
-src = Glob('*.c')
-CPPPATH = [cwd]
-
-if not GetDepend('HAVE_SYS_SELECT_H'):
- CPPPATH += [cwd + '/select']
-
-if not GetDepend('HAVE_SYS_SOCKET_H'):
- CPPPATH += [cwd + '/socket']
-
-group = DefineGroup('Filesystem', src, depend = ['RT_USING_DFS', 'RT_USING_DFS_NET'], CPPPATH = CPPPATH)
-
-Return('group')
diff --git a/components/dfs/filesystems/net/net_sockets.c b/components/dfs/filesystems/net/net_sockets.c
deleted file mode 100644
index 5e598c331a..0000000000
--- a/components/dfs/filesystems/net/net_sockets.c
+++ /dev/null
@@ -1,362 +0,0 @@
-/*
- * File : lwip_sockets.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2015, RT-Thread Development Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Change Logs:
- * Date Author Notes
- * 2015-02-17 Bernard First version
- */
-
-#include
-#include
-#include
-#include
-
-#include "dfs_net.h"
-
-static void event_callback(struct netconn *conn, enum netconn_evt evt, u16_t len)
-{
- int s;
- struct lwip_sock *sock;
- uint32_t event = 0;
- SYS_ARCH_DECL_PROTECT(lev);
-
- LWIP_UNUSED_ARG(len);
-
- /* Get socket */
- if (conn)
- {
- s = conn->socket;
- if (s < 0)
- {
- /* Data comes in right away after an accept, even though
- * the server task might not have created a new socket yet.
- * Just count down (or up) if that's the case and we
- * will use the data later. Note that only receive events
- * can happen before the new socket is set up. */
- SYS_ARCH_PROTECT(lev);
- if (conn->socket < 0)
- {
- if (evt == NETCONN_EVT_RCVPLUS)
- {
- conn->socket--;
- }
- SYS_ARCH_UNPROTECT(lev);
- return;
- }
- s = conn->socket;
- SYS_ARCH_UNPROTECT(lev);
- }
-
- sock = lwip_tryget_socket(s);
- if (!sock)
- {
- return;
- }
- }
- else
- {
- return;
- }
-
- SYS_ARCH_PROTECT(lev);
- /* Set event as required */
- switch (evt)
- {
- case NETCONN_EVT_RCVPLUS:
- sock->rcvevent++;
- break;
- case NETCONN_EVT_RCVMINUS:
- sock->rcvevent--;
- break;
- case NETCONN_EVT_SENDPLUS:
- sock->sendevent = 1;
- break;
- case NETCONN_EVT_SENDMINUS:
- sock->sendevent = 0;
- break;
- case NETCONN_EVT_ERROR:
- sock->errevent = 1;
- break;
- default:
- LWIP_ASSERT("unknown event", 0);
- break;
- }
-
- if (sock->lastdata || sock->rcvevent > 0) event |= POLLIN;
- if (sock->sendevent) event |= POLLOUT;
- if (sock->errevent) event |= POLLERR;
-
- SYS_ARCH_UNPROTECT(lev);
-
- if (event)
- {
- rt_wqueue_wakeup(&sock->wait_head, (void*)event);
- }
-}
-
-int accept(int s, struct sockaddr *addr, socklen_t *addrlen)
-{
- int new_client = -1;
- int sock = dfs_net_getsocket(s);
-
- new_client = lwip_accept(sock, addr, addrlen);
- if (new_client != -1)
- {
- /* this is a new socket, create it in file system fd */
- int fd;
- struct dfs_fd *d;
- struct lwip_sock *lwsock;
-
- /* allocate a fd */
- fd = fd_new();
- if (fd < 0)
- {
- rt_set_errno(-ENOMEM);
- lwip_close(sock);
-
- return -1;
- }
- d = fd_get(fd);
-
- /* this is a socket fd */
- d->type = FT_SOCKET;
- d->path = RT_NULL;
-
- d->fops = dfs_net_get_fops();
- /* initialize wait head */
- lwsock = lwip_tryget_socket(new_client);
- rt_wqueue_init(&(lwsock->wait_head));
-
- d->flags = O_RDWR; /* set flags as read and write */
- d->size = 0;
- d->pos = 0;
-
- /* set socket to the data of dfs_fd */
- d->data = (void *) new_client;
-
- /* release the ref-count of fd */
- fd_put(d);
-
- return fd;
- }
-
- return new_client;
-}
-RTM_EXPORT(accept);
-
-int bind(int s, const struct sockaddr *name, socklen_t namelen)
-{
- int sock = dfs_net_getsocket(s);
-
- return lwip_bind(sock, name, namelen);
-}
-RTM_EXPORT(bind);
-
-int shutdown(int s, int how)
-{
- int sock;
- struct dfs_fd *d;
-
- d = fd_get(s);
- if (d == RT_NULL)
- {
- rt_set_errno(-EBADF);
-
- return -1;
- }
-
- sock = dfs_net_getsocket(s);
- if (lwip_shutdown(sock, how) == 0)
- {
- /* socket has been closed, delete it from file system fd */
- fd_put(d);
- fd_put(d);
-
- return 0;
- }
-
- return -1;
-}
-RTM_EXPORT(shutdown);
-
-int getpeername(int s, struct sockaddr *name, socklen_t *namelen)
-{
- int sock = dfs_net_getsocket(s);
-
- return lwip_getpeername(sock, name, namelen);
-}
-RTM_EXPORT(getpeername);
-
-int getsockname(int s, struct sockaddr *name, socklen_t *namelen)
-{
- int sock = dfs_net_getsocket(s);
-
- return lwip_getsockname(sock, name, namelen);
-}
-RTM_EXPORT(getsockname);
-
-int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen)
-{
- int sock = dfs_net_getsocket(s);
-
- return lwip_getsockopt(sock, level, optname, optval, optlen);
-}
-RTM_EXPORT(getsockopt);
-
-int setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen)
-{
- int sock = dfs_net_getsocket(s);
-
-#if LWIP_VERSION_MAJOR < 2U
-#error "Your lwIP version is not supported. Please using lwIP 2.0.0+."
-#endif
-
- return lwip_setsockopt(sock, level, optname, optval, optlen);
-}
-RTM_EXPORT(setsockopt);
-
-int connect(int s, const struct sockaddr *name, socklen_t namelen)
-{
- int sock = dfs_net_getsocket(s);
-
- return lwip_connect(sock, name, namelen);
-}
-RTM_EXPORT(connect);
-
-int listen(int s, int backlog)
-{
- int sock = dfs_net_getsocket(s);
-
- return lwip_listen(sock, backlog);
-}
-RTM_EXPORT(listen);
-
-int recv(int s, void *mem, size_t len, int flags)
-{
- int sock = dfs_net_getsocket(s);
-
- return lwip_recv(sock, mem, len, flags);
-}
-RTM_EXPORT(recv);
-
-int recvfrom(int s, void *mem, size_t len, int flags,
- struct sockaddr *from, socklen_t *fromlen)
-{
- int sock = dfs_net_getsocket(s);
-
- return lwip_recvfrom(sock, mem, len, flags, from, fromlen);
-}
-RTM_EXPORT(recvfrom);
-
-int send(int s, const void *dataptr, size_t size, int flags)
-{
- int sock = dfs_net_getsocket(s);
-
- return lwip_send(sock, dataptr, size, flags);
-}
-RTM_EXPORT(send);
-
-int sendto(int s, const void *dataptr, size_t size, int flags,
- const struct sockaddr *to, socklen_t tolen)
-{
- int sock = dfs_net_getsocket(s);
-
- return lwip_sendto(sock, dataptr, size, flags, to, tolen);
-}
-RTM_EXPORT(sendto);
-
-int socket(int domain, int type, int protocol)
-{
- /* create a BSD socket */
- int fd;
- int sock;
- struct dfs_fd *d;
- struct lwip_sock *lwsock;
-
- /* allocate a fd */
- fd = fd_new();
- if (fd < 0)
- {
- rt_set_errno(-ENOMEM);
-
- return -1;
- }
- d = fd_get(fd);
-
- /* create socket in lwip and then put it to the dfs_fd */
- sock = lwip_socket(domain, type, protocol);
- if (sock >= 0)
- {
- /* this is a socket fd */
- d->type = FT_SOCKET;
- d->path = NULL;
-
- d->fops = dfs_net_get_fops();
-
- d->flags = O_RDWR; /* set flags as read and write */
- d->size = 0;
- d->pos = 0;
-
- /* set socket to the data of dfs_fd */
- d->data = (void *) sock;
-
- lwsock = lwip_tryget_socket(sock);
- rt_wqueue_init(&(lwsock->wait_head));
- lwsock->conn->callback = event_callback;
- }
- else
- {
- /* release fd */
- fd_put(d);
- fd_put(d);
-
- rt_set_errno(-ENOMEM);
-
- return -1;
- }
-
- /* release the ref-count of fd */
- fd_put(d);
-
- return fd;
-}
-RTM_EXPORT(socket);
-
-int closesocket(int s)
-{
- int sock = dfs_net_getsocket(s);
- struct dfs_fd *d;
-
- d = fd_get(s);
-
- /* socket has been closed, delete it from file system fd */
- fd_put(d);
- fd_put(d);
-
- return lwip_close(sock);
-}
-RTM_EXPORT(closesocket);
-
-int ioctlsocket(int s, long cmd, void *arg)
-{
- int sock = dfs_net_getsocket(s);
-
- return lwip_ioctl(sock, cmd, arg);
-}
-RTM_EXPORT(ioctlsocket);
diff --git a/components/drivers/Kconfig b/components/drivers/Kconfig
index 8d8e0aa596..4ed6f34d6d 100755
--- a/components/drivers/Kconfig
+++ b/components/drivers/Kconfig
@@ -48,13 +48,13 @@ config RT_USING_CPUTIME
ms_tick = clock_cpu_millisecond(t2 - t1);
us_tick = clock_cpu_microsecond(t2 - t1);
-if RT_USING_CPUTIME
+if RT_USING_CPUTIME
config RT_USING_CPUTIME_CORTEXM
bool "Use DWT for CPU time"
default y
depends on ARCH_ARM_CORTEX_M3 || ARCH_ARM_CORTEX_M4 || ARCH_ARM_CORTEX_M7
help
- Some Cortex-M3/4/7 MCU has Data Watchpoint and Trace Register, use
+ Some Cortex-M3/4/7 MCU has Data Watchpoint and Trace Register, use
the cycle counter in DWT for CPU time.
endif
@@ -103,7 +103,7 @@ config RT_USING_RTC
select PKG_USING_NETUTILS
select PKG_NETUTILS_NTP
default n
-
+
if RTC_SYNC_USING_NTP
config RTC_NTP_FIRST_SYNC_DELAY
int "NTP first sync delay time(second) for network connect"
@@ -153,20 +153,20 @@ config RT_USING_SPI
config RT_USING_SFUD
bool "Using Serial Flash Universal Driver"
default n
- if RT_USING_SFUD
+ if RT_USING_SFUD
config RT_SFUD_USING_SFDP
bool "Using auto probe flash JEDEC SFDP parameter"
default y
-
+
config RT_SFUD_USING_FLASH_INFO_TABLE
bool "Using defined supported flash chip information table"
default y
-
+
config RT_DEBUG_SFUD
bool "Show more SFUD debug information"
default n
endif
-
+
config RT_USING_W25QXX
bool "Using W25QXX SPI NorFlash"
default n
@@ -246,7 +246,7 @@ menu "Using USB"
config USB_PRODUCT_ID
hex "USB Product ID"
default 0x0001
-
+
config RT_USB_DEVICE_COMPOSITE
bool "Enable composite device"
default n
diff --git a/components/libc/Kconfig b/components/libc/Kconfig
index 7ad048e909..2b4f6af8b0 100644
--- a/components/libc/Kconfig
+++ b/components/libc/Kconfig
@@ -22,7 +22,7 @@ if RT_USING_LIBC && RT_USING_DFS
config RT_USING_POSIX_TERMIOS
bool "Enable termios feature"
default n
-
+
config RT_USING_POSIX_AIO
bool "Enable AIO"
default n
diff --git a/components/net/Kconfig b/components/net/Kconfig
index 1b5c96af65..b4c9691ca4 100644
--- a/components/net/Kconfig
+++ b/components/net/Kconfig
@@ -1,4 +1,44 @@
-menu "Network stack"
+menu "Network"
+
+menu "Socket abstraction layer"
+
+config RT_USING_SAL
+ bool "Enable socket abstraction layer"
+ default n
+ select RT_USING_DFS
+
+ if RT_USING_SAL
+
+ menu "protocol stack implement"
+
+ config SAL_USING_LWIP
+ bool "Support lwIP stack"
+ default y if RT_USING_LWIP
+ default n
+ depends on RT_USING_LWIP
+
+ config SAL_USING_AT
+ bool "Support AT Commands stack"
+ default y if RT_USING_AT_SOCKET
+ default n
+ depends on RT_USING_AT_SOCKET
+ endmenu
+
+ config SAL_USING_POSIX
+ bool "Enable BSD socket operated by file system API"
+ select RT_USING_LIBC
+ select RT_USING_POSIX
+ default n
+ help
+ Let BSD socket operated by file system API, such as read/write and involveed in select/poll POSIX APIs.
+
+ config SAL_PROTO_FAMILIES_NUM
+ int "the number of protocol family"
+ default 4
+
+ endif
+
+endmenu
menu "light weight TCP/IP stack"
config RT_USING_LWIP
@@ -349,7 +389,6 @@ config LWIP_USING_DHCPD
endif
endif
-
endif
endmenu
diff --git a/components/net/freemodbus/Kconfig b/components/net/freemodbus/Kconfig
index 1dbeca31d9..9a84efa0c5 100644
--- a/components/net/freemodbus/Kconfig
+++ b/components/net/freemodbus/Kconfig
@@ -1,17 +1,17 @@
menu "Modbus master and slave stack"
config RT_USING_MODBUS
- bool "Enable Modbus stack"
- default n
+ bool "Enable Modbus stack"
+ default n
- if RT_USING_MODBUS
- config RT_MODBUS_MASTER_RTU
- bool "RTU master mode"
- default n
+ if RT_USING_MODBUS
+ config RT_MODBUS_MASTER_RTU
+ bool "RTU master mode"
+ default n
- config RT_MODBUS_SLAVE_RTU
- bool "RTU slave mode"
- default n
+ config RT_MODBUS_SLAVE_RTU
+ bool "RTU slave mode"
+ default n
if RT_MODBUS_SLAVE_RTU
config RT_MODBUS_SLAVE_USE_CONTROL_PIN
bool "Use Contorl Pin"
@@ -22,6 +22,6 @@ config RT_USING_MODBUS
default 10
endif
endif
- endif
+ endif
endmenu
diff --git a/components/net/lwip-1.4.1/src/lwipopts.h b/components/net/lwip-1.4.1/src/lwipopts.h
index 36babb36b9..a5c0e20cbd 100644
--- a/components/net/lwip-1.4.1/src/lwipopts.h
+++ b/components/net/lwip-1.4.1/src/lwipopts.h
@@ -511,7 +511,7 @@
* LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.
* (only used if you use sockets.c)
*/
-#ifdef RT_USING_DFS_NET
+#ifdef SAL_USING_POSIX
#define LWIP_COMPAT_SOCKETS 0
#else
#ifndef LWIP_COMPAT_SOCKETS
diff --git a/components/net/lwip-2.0.2/SConscript b/components/net/lwip-2.0.2/SConscript
index 761681c57d..0fc63f4b26 100644
--- a/components/net/lwip-2.0.2/SConscript
+++ b/components/net/lwip-2.0.2/SConscript
@@ -67,7 +67,7 @@ path = [GetCurrentDir() + '/src',
GetCurrentDir() + '/src/arch/include',
GetCurrentDir() + '/src/include/netif']
-if not GetDepend('RT_USING_POSIX') or not GetDepend('RT_USING_DFS_NET'):
+if not GetDepend('RT_USING_POSIX') or not GetDepend('SAL_USING_POSIX'):
path += [GetCurrentDir() + '/src/include/posix']
if GetDepend(['RT_LWIP_SNMP']):
diff --git a/components/net/lwip-2.0.2/src/api/sockets.c b/components/net/lwip-2.0.2/src/api/sockets.c
index 1a99f48fa4..1d0fb0dd19 100644
--- a/components/net/lwip-2.0.2/src/api/sockets.c
+++ b/components/net/lwip-2.0.2/src/api/sockets.c
@@ -197,7 +197,7 @@ static void sockaddr_to_ipaddr_port(const struct sockaddr* sockaddr, ip_addr_t*
#endif
#include
-#ifdef RT_USING_DFS_NET
+#ifdef SAL_USING_POSIX
#include
#endif
@@ -222,7 +222,7 @@ struct lwip_sock {
/** counter of how many threads are waiting for this socket using select */
SELWAIT_T select_waiting;
-#ifdef RT_USING_DFS_NET
+#ifdef SAL_USING_POSIX
rt_wqueue_t wait_head;
#endif
};
diff --git a/components/net/lwip-2.0.2/src/lwipopts.h b/components/net/lwip-2.0.2/src/lwipopts.h
index 6c48a263a0..364682cba2 100644
--- a/components/net/lwip-2.0.2/src/lwipopts.h
+++ b/components/net/lwip-2.0.2/src/lwipopts.h
@@ -545,7 +545,7 @@
* LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.
* (only used if you use sockets.c)
*/
-#ifdef RT_USING_DFS_NET
+#ifdef SAL_USING_POSIX
#define LWIP_COMPAT_SOCKETS 0
#else
#ifndef LWIP_COMPAT_SOCKETS
diff --git a/components/net/sal_socket/SConscript b/components/net/sal_socket/SConscript
new file mode 100644
index 0000000000..c1cdafab72
--- /dev/null
+++ b/components/net/sal_socket/SConscript
@@ -0,0 +1,31 @@
+# RT-Thread building script for component
+
+from building import *
+
+cwd = GetCurrentDir()
+
+src = Glob('src/*.c')
+src += Glob('socket/*.c')
+
+CPPPATH = [cwd + '/include']
+CPPPATH += [cwd + '/include/dfs_net']
+CPPPATH += [cwd + '/include/socket']
+
+if GetDepend('SAL_USING_LWIP'):
+ src += Glob('impl/af_inet_lwip.c')
+
+if GetDepend('SAL_USING_AT'):
+ src += Glob('impl/af_inet_at.c')
+
+if GetDepend('SAL_USING_POSIX'):
+ src += Glob('dfs_net/*.c')
+
+ if not GetDepend('HAVE_SYS_SELECT_H'):
+ CPPPATH += [cwd + '/include/dfs_net/sys_select']
+
+ if not GetDepend('HAVE_SYS_SOCKET_H'):
+ CPPPATH += [cwd + '/include/socket/sys_socket']
+
+group = DefineGroup('SAL', src, depend = ['RT_USING_SAL'], CPPPATH = CPPPATH)
+
+Return('group')
diff --git a/components/dfs/filesystems/net/dfs_net.c b/components/net/sal_socket/dfs_net/dfs_net.c
similarity index 60%
rename from components/dfs/filesystems/net/dfs_net.c
rename to components/net/sal_socket/dfs_net/dfs_net.c
index 67f8fe8a7f..ee9b685f8c 100644
--- a/components/dfs/filesystems/net/dfs_net.c
+++ b/components/net/sal_socket/dfs_net/dfs_net.c
@@ -1,7 +1,7 @@
/*
* File : dfs_net.c
* This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2015-2016, RT-Thread Development Team
+ * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -22,33 +22,29 @@
* 2015-02-17 Bernard First version
* 2016-05-07 Bernard Rename dfs_lwip to dfs_net
* 2018-03-09 Bernard Fix the last data issue in poll.
+ * 2018-05-24 ChenYong Add socket abstraction layer
*/
#include
+
#include
-#include
-#include
-#include
+#include
-#include
#include
-#include
-#include "dfs_net.h"
-
int dfs_net_getsocket(int fd)
{
- int sock;
+ int socket;
struct dfs_fd *_dfs_fd;
_dfs_fd = fd_get(fd);
if (_dfs_fd == NULL) return -1;
- if (_dfs_fd->type != FT_SOCKET) sock = -1;
- else sock = (int)_dfs_fd->data;
+ if (_dfs_fd->type != FT_SOCKET) socket = -1;
+ else socket = (int)_dfs_fd->data;
fd_put(_dfs_fd); /* put this dfs fd */
- return sock;
+ return socket;
}
static int dfs_net_ioctl(struct dfs_fd* file, int cmd, void* args)
@@ -58,69 +54,30 @@ static int dfs_net_ioctl(struct dfs_fd* file, int cmd, void* args)
static int dfs_net_read(struct dfs_fd* file, void *buf, size_t count)
{
- int sock;
+ int socket = (int) file->data;
- sock = (int)file->data;
- count = lwip_read(sock, buf, count);
-
- return count;
+ return sal_recvfrom(socket, buf, count, 0, NULL, NULL);
}
static int dfs_net_write(struct dfs_fd *file, const void *buf, size_t count)
{
- int sock;
-
- sock = (int)file->data;
- count = lwip_write(sock, buf, count);
+ int socket = (int) file->data;
- return count;
+ return sal_sendto(socket, buf, count, 0, NULL, 0);
}
static int dfs_net_close(struct dfs_fd* file)
{
- int sock;
- int result;
-
- sock = (int)file->data;
- result = lwip_close(sock);
-
- if (result == 0) return RT_EOK;
-
- return -result;
+ int socket = (int) file->data;
+
+ return sal_closesocket(socket);
}
static int dfs_net_poll(struct dfs_fd *file, struct rt_pollreq *req)
{
- int sfd;
- int mask = 0;
- struct lwip_sock *sock;
+ extern int sal_poll(struct dfs_fd *file, struct rt_pollreq *req);
- sfd = (int)file->data;
-
- sock = lwip_tryget_socket(sfd);
- if (sock != NULL)
- {
- rt_base_t level;
-
- rt_poll_add(&sock->wait_head, req);
-
- level = rt_hw_interrupt_disable();
- if (sock->lastdata || sock->rcvevent)
- {
- mask |= POLLIN;
- }
- if (sock->sendevent)
- {
- mask |= POLLOUT;
- }
- if (sock->errevent)
- {
- mask |= POLLERR;
- }
- rt_hw_interrupt_enable(level);
- }
-
- return mask;
+ return sal_poll(file, req);
}
const struct dfs_file_ops _net_fops =
@@ -140,4 +97,3 @@ const struct dfs_file_ops *dfs_net_get_fops(void)
{
return &_net_fops;
}
-
diff --git a/components/net/sal_socket/impl/af_inet_at.c b/components/net/sal_socket/impl/af_inet_at.c
new file mode 100644
index 0000000000..8ddb236e84
--- /dev/null
+++ b/components/net/sal_socket/impl/af_inet_at.c
@@ -0,0 +1,125 @@
+/*
+ * File : af_inet_at.c
+ * This file is part of RT-Thread RTOS
+ * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2018-06-06 ChenYong First version
+ */
+
+#include
+#include
+
+#include
+
+#ifdef SAL_USING_POSIX
+#include
+#endif
+
+#ifdef SAL_USING_POSIX
+static int at_poll(struct dfs_fd *file, struct rt_pollreq *req)
+{
+ int mask = 0;
+ struct at_socket *sock;
+ struct sal_socket *sal_sock;
+
+ sal_sock = sal_get_socket((int) file->data);
+ if(!sal_sock)
+ {
+ return -1;
+ }
+
+ sock = at_get_socket((int)sal_sock->user_data);
+ if (sock != NULL)
+ {
+ rt_base_t level;
+
+ rt_poll_add(&sock->wait_head, req);
+
+ level = rt_hw_interrupt_disable();
+ if (sock->rcvevent)
+ {
+ mask |= POLLIN;
+ }
+ if (sock->sendevent)
+ {
+ mask |= POLLOUT;
+ }
+ if (sock->errevent)
+ {
+ mask |= POLLERR;
+ }
+ rt_hw_interrupt_enable(level);
+ }
+
+ return mask;
+}
+#endif
+
+static const struct proto_ops at_inet_stream_ops =
+{
+ at_socket,
+ at_closesocket,
+ at_bind,
+ NULL,
+ at_connect,
+ NULL,
+ at_sendto,
+ at_recvfrom,
+ at_getsockopt,
+ at_setsockopt,
+ at_shutdown,
+ NULL,
+ NULL,
+ NULL,
+
+#ifdef SAL_USING_POSIX
+ at_poll,
+#else
+ NULL,
+#endif /* SAL_USING_POSIX */
+};
+
+static int at_create(struct sal_socket *socket, int type, int protocol)
+{
+ RT_ASSERT(socket);
+
+ //TODO Check type & protocol
+
+ socket->ops = &at_inet_stream_ops;
+
+ return 0;
+}
+
+static const struct proto_family at_inet_family_ops = {
+ AF_AT,
+ AF_INET,
+ at_create,
+ at_gethostbyname,
+ NULL,
+ at_freeaddrinfo,
+ at_getaddrinfo,
+};
+
+int at_inet_init(void)
+{
+ sal_proto_family_register(&at_inet_family_ops);
+
+ return 0;
+}
+INIT_COMPONENT_EXPORT(at_inet_init);
diff --git a/components/net/sal_socket/impl/af_inet_lwip.c b/components/net/sal_socket/impl/af_inet_lwip.c
new file mode 100644
index 0000000000..deb9239bf4
--- /dev/null
+++ b/components/net/sal_socket/impl/af_inet_lwip.c
@@ -0,0 +1,302 @@
+/*
+ * File : af_inet_lwip.c
+ * This file is part of RT-Thread RTOS
+ * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2018-05-17 ChenYong First version
+ */
+
+#include
+
+#include
+#include
+#include
+#include
+
+#ifdef SAL_USING_POSIX
+#include
+#endif
+
+#include
+
+#if LWIP_VERSION < 0x2000000
+#define SELWAIT_T int
+#else
+#ifndef SELWAIT_T
+#define SELWAIT_T u8_t
+#endif
+#endif
+
+/*
+ * Re-define lwip socket
+ *
+ * NOTE: please make sure the definitions same in lwip::net_socket.c
+ */
+struct lwip_sock {
+ /** sockets currently are built on netconns, each socket has one netconn */
+ struct netconn *conn;
+ /** data that was left from the previous read */
+ void *lastdata;
+ /** offset in the data that was left from the previous read */
+ u16_t lastoffset;
+ /** number of times data was received, set by event_callback(),
+ tested by the receive and select functions */
+ s16_t rcvevent;
+ /** number of times data was ACKed (free send buffer), set by event_callback(),
+ tested by select */
+ u16_t sendevent;
+ /** error happened for this socket, set by event_callback(), tested by select */
+ u16_t errevent;
+ /** last error that occurred on this socket */
+#if LWIP_VERSION < 0x2000000
+ int err;
+#else
+ u8_t err;
+#endif
+ /** counter of how many threads are waiting for this socket using select */
+ SELWAIT_T select_waiting;
+
+#ifdef SAL_USING_POSIX
+ rt_wqueue_t wait_head;
+#endif
+};
+
+extern struct lwip_sock *lwip_tryget_socket(int s);
+
+static void event_callback(struct netconn *conn, enum netconn_evt evt, u16_t len)
+{
+ int s;
+ struct lwip_sock *sock;
+ uint32_t event = 0;
+ SYS_ARCH_DECL_PROTECT(lev);
+
+ LWIP_UNUSED_ARG(len);
+
+ /* Get socket */
+ if (conn)
+ {
+ s = conn->socket;
+ if (s < 0)
+ {
+ /* Data comes in right away after an accept, even though
+ * the server task might not have created a new socket yet.
+ * Just count down (or up) if that's the case and we
+ * will use the data later. Note that only receive events
+ * can happen before the new socket is set up. */
+ SYS_ARCH_PROTECT(lev);
+ if (conn->socket < 0)
+ {
+ if (evt == NETCONN_EVT_RCVPLUS)
+ {
+ conn->socket--;
+ }
+ SYS_ARCH_UNPROTECT(lev);
+ return;
+ }
+ s = conn->socket;
+ SYS_ARCH_UNPROTECT(lev);
+ }
+
+ sock = lwip_tryget_socket(s);
+ if (!sock)
+ {
+ return;
+ }
+ }
+ else
+ {
+ return;
+ }
+
+ SYS_ARCH_PROTECT(lev);
+ /* Set event as required */
+ switch (evt)
+ {
+ case NETCONN_EVT_RCVPLUS:
+ sock->rcvevent++;
+ break;
+ case NETCONN_EVT_RCVMINUS:
+ sock->rcvevent--;
+ break;
+ case NETCONN_EVT_SENDPLUS:
+ sock->sendevent = 1;
+ break;
+ case NETCONN_EVT_SENDMINUS:
+ sock->sendevent = 0;
+ break;
+ case NETCONN_EVT_ERROR:
+ sock->errevent = 1;
+ break;
+ default:
+ LWIP_ASSERT("unknown event", 0);
+ break;
+ }
+
+ if (sock->lastdata || sock->rcvevent > 0)
+ event |= POLLIN;
+ if (sock->sendevent)
+ event |= POLLOUT;
+ if (sock->errevent)
+ event |= POLLERR;
+
+ SYS_ARCH_UNPROTECT(lev);
+
+ if (event)
+ {
+#ifdef SAL_USING_POSIX
+ rt_wqueue_wakeup(&sock->wait_head, (void*) event);
+#endif
+ }
+}
+
+static int inet_socket(int domain, int type, int protocol)
+{
+ int socket;
+
+ socket = lwip_socket(domain, type, protocol);
+ if (socket >= 0)
+ {
+ struct lwip_sock *lwsock;
+
+ lwsock = lwip_tryget_socket(socket);
+ lwsock->conn->callback = event_callback;
+
+#ifdef SAL_USING_POSIX
+ rt_wqueue_init(&lwsock->wait_head);
+#endif
+
+ }
+
+ return socket;
+}
+
+static int inet_accept(int socket, struct sockaddr *addr, socklen_t *addrlen)
+{
+ int new_socket;
+
+ new_socket = lwip_accept(socket, addr, addrlen);
+ if (new_socket >= 0)
+ {
+ struct lwip_sock *lwsock;
+
+ lwsock = lwip_tryget_socket(new_socket);
+
+#ifdef SAL_USING_POSIX
+ rt_wqueue_init(&lwsock->wait_head);
+#endif
+ }
+
+ return new_socket;
+}
+
+static int inet_getsockname(int socket, struct sockaddr *name, socklen_t *namelen)
+{
+#if LWIP_VERSION_MAJOR < 2U
+ rt_kprintf("ERROR: Your lwIP version is not supported. Please using lwIP 2.0.0+.\n");
+ RT_ASSERT(LWIP_VERSION_MAJOR >= 2U);
+#endif
+
+ return lwip_getsockname(socket, name, namelen);
+}
+
+static int inet_poll(struct dfs_fd *file, struct rt_pollreq *req)
+{
+ int mask = 0;
+ struct lwip_sock *sock;
+ struct sal_socket *sal_sock;
+
+ sal_sock = sal_get_socket((int) file->data);
+ if(!sal_sock)
+ {
+ return -1;
+ }
+
+ sock = lwip_tryget_socket((int)sal_sock->user_data);
+ if (sock != NULL)
+ {
+ rt_base_t level;
+
+ rt_poll_add(&sock->wait_head, req);
+
+ level = rt_hw_interrupt_disable();
+ if (sock->lastdata || sock->rcvevent)
+ {
+ mask |= POLLIN;
+ }
+ if (sock->sendevent)
+ {
+ mask |= POLLOUT;
+ }
+ if (sock->errevent)
+ {
+ mask |= POLLERR;
+ }
+ rt_hw_interrupt_enable(level);
+ }
+
+ return mask;
+}
+
+static const struct proto_ops lwip_inet_stream_ops = {
+ inet_socket,
+ lwip_close,
+ lwip_bind,
+ lwip_listen,
+ lwip_connect,
+ inet_accept,
+ lwip_sendto,
+ lwip_recvfrom,
+ lwip_getsockopt,
+ //TODO fix on 1.4.1
+ lwip_setsockopt,
+ lwip_shutdown,
+ lwip_getpeername,
+ inet_getsockname,
+ lwip_ioctl,
+ inet_poll,
+};
+
+static int inet_create(struct sal_socket *socket, int type, int protocol)
+{
+ RT_ASSERT(socket);
+
+ //TODO Check type & protocol
+
+ socket->ops = &lwip_inet_stream_ops;
+
+ return 0;
+}
+
+static const struct proto_family lwip_inet_family_ops = {
+ AF_INET,
+ AF_INET,
+ inet_create,
+ lwip_gethostbyname,
+ lwip_gethostbyname_r,
+ lwip_freeaddrinfo,
+ lwip_getaddrinfo,
+};
+
+int lwip_inet_init(void)
+{
+ sal_proto_family_register(&lwip_inet_family_ops);
+
+ return 0;
+}
+INIT_COMPONENT_EXPORT(lwip_inet_init);
diff --git a/components/dfs/filesystems/net/dfs_net.h b/components/net/sal_socket/include/dfs_net/dfs_net.h
similarity index 97%
rename from components/dfs/filesystems/net/dfs_net.h
rename to components/net/sal_socket/include/dfs_net/dfs_net.h
index 647e6b5f3a..2a21fe3858 100644
--- a/components/dfs/filesystems/net/dfs_net.h
+++ b/components/net/sal_socket/include/dfs_net/dfs_net.h
@@ -30,7 +30,7 @@
extern "C" {
#endif
-#include
+#include
const struct dfs_file_ops* dfs_net_get_fops(void);
int dfs_net_getsocket(int fd);
diff --git a/components/dfs/filesystems/net/select/sys/select.h b/components/net/sal_socket/include/dfs_net/sys_select/sys/select.h
similarity index 94%
rename from components/dfs/filesystems/net/select/sys/select.h
rename to components/net/sal_socket/include/dfs_net/sys_select/sys/select.h
index ce91583904..c2e2d54d3a 100644
--- a/components/dfs/filesystems/net/select/sys/select.h
+++ b/components/net/sal_socket/include/dfs_net/sys_select/sys/select.h
@@ -1,7 +1,7 @@
/*
* File : select.h
* This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2015, RT-Thread Development Team
+ * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
diff --git a/components/net/sal_socket/include/sal.h b/components/net/sal_socket/include/sal.h
new file mode 100644
index 0000000000..8a9dd61b67
--- /dev/null
+++ b/components/net/sal_socket/include/sal.h
@@ -0,0 +1,101 @@
+/*
+ * File : sal.h
+ * This file is part of RT-Thread RTOS
+ * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2018-05-17 ChenYong First version
+ */
+
+#ifndef SAL_H__
+#define SAL_H__
+
+#include
+#include
+
+#if !defined(socklen_t) && !defined(SOCKLEN_T_DEFINED)
+typedef uint32_t socklen_t;
+#endif
+
+/* sal socket magic word */
+#define SAL_SOCKET_MAGIC 0x5A10
+
+/* The maximum number of sockets structure */
+#define SAL_SOCKETS_NUM DFS_FD_MAX
+
+/* The maximum number of protocol families */
+#ifndef SAL_PROTO_FAMILIES_NUM
+#define SAL_PROTO_FAMILIES_NUM 4
+#endif
+
+/* sal socket offset */
+#ifndef SAL_SOCKET_OFFSET
+#define SAL_SOCKET_OFFSET 0
+#endif
+
+struct proto_ops
+{
+ int (*socket) (int domain, int type, int protocol);
+ int (*closesocket)(int s);
+ int (*bind) (int s, const struct sockaddr *name, socklen_t namelen);
+ int (*listen) (int s, int backlog);
+ int (*connect) (int s, const struct sockaddr *name, socklen_t namelen);
+ int (*accept) (int s, struct sockaddr *addr, socklen_t *addrlen);
+ int (*sendto) (int s, const void *data, size_t size, int flags, const struct sockaddr *to, socklen_t tolen);
+ int (*recvfrom) (int s, void *mem, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen);
+ int (*getsockopt) (int s, int level, int optname, void *optval, socklen_t *optlen);
+ int (*setsockopt) (int s, int level, int optname, const void *optval, socklen_t optlen);
+ int (*shutdown) (int s, int how);
+ int (*getpeername)(int s, struct sockaddr *name, socklen_t *namelen);
+ int (*getsockname)(int s, struct sockaddr *name, socklen_t *namelen);
+ int (*ioctlsocket)(int s, long cmd, void *arg);
+ int (*poll) (struct dfs_fd *file, struct rt_pollreq *req);
+};
+
+struct sal_socket
+{
+ uint32_t magic; /* sal socket magic word */
+
+ int socket; /* sal socket descriptor */
+ int domain;
+ int type;
+ int protocol;
+
+ const struct proto_ops *ops; /* socket options */
+ void *user_data; /* specific sal socket data */
+};
+
+struct proto_family
+{
+ int family; /* primary protocol families type*/
+ int sec_family; /* secondary protocol families type*/
+ int (*create)(struct sal_socket *sal_socket, int type, int protocol); /* register socket options */
+
+ struct hostent* (*gethostbyname) (const char *name);
+ int (*gethostbyname_r)(const char *name, struct hostent *ret, char *buf, size_t buflen, struct hostent **result, int *h_errnop);
+ void (*freeaddrinfo) (struct addrinfo *ai);
+ int (*getaddrinfo) (const char *nodename, const char *servname, const struct addrinfo *hints, struct addrinfo **res);
+};
+
+/* SAL socket initialization */
+int sal_init(void);
+
+int sal_proto_family_register(const struct proto_family *pf);
+struct sal_socket *sal_get_socket(int sock);
+
+#endif /* SAL_H__ */
diff --git a/components/net/sal_socket/include/sal_ipaddr.h b/components/net/sal_socket/include/sal_ipaddr.h
new file mode 100644
index 0000000000..814d1d16e9
--- /dev/null
+++ b/components/net/sal_socket/include/sal_ipaddr.h
@@ -0,0 +1,138 @@
+/*
+ * File : sal_ipaddr.h
+ * This file is part of RT-Thread RTOS
+ * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2018-05-18 ChenYong First version
+ */
+#ifndef SAL_IPADDR_H__
+#define SAL_IPADDR_H__
+
+#include "sal_type.h"
+
+/** IPv4 only: set the IP address given as an u32_t */
+#define ip4_addr_set_u32(dest_ipaddr, src_u32) ((dest_ipaddr)->addr = (src_u32))
+/** IPv4 only: get the IP address as an u32_t */
+#define ip4_addr_get_u32(src_ipaddr) ((src_ipaddr)->addr)
+
+#define IP4ADDR_STRLEN_MAX 16
+
+/* These macros should be calculated by the preprocessor and are used
+ with compile-time constants only (so that there is no little-endian
+ overhead at runtime). */
+#define PP_HTONS(x) ((((x) & 0x00ffUL) << 8) | (((x) & 0xff00UL) >> 8))
+#define PP_NTOHS(x) PP_HTONS(x)
+#define PP_HTONL(x) ((((x) & 0x000000ffUL) << 24) | \
+ (((x) & 0x0000ff00UL) << 8) | \
+ (((x) & 0x00ff0000UL) >> 8) | \
+ (((x) & 0xff000000UL) >> 24))
+#define PP_NTOHL(x) PP_HTONL(x)
+
+#define htons(x) (u16_t)PP_HTONS(x)
+#define ntohs(x) (u16_t)PP_NTOHS(x)
+#define htonl(x) (u32_t)PP_HTONL(x)
+#define ntohl(x) (u32_t)PP_NTOHL(x)
+
+/* If your port already typedef's in_addr_t, define IN_ADDR_T_DEFINED
+ to prevent this code from redefining it. */
+#if !defined(in_addr_t) && !defined(IN_ADDR_T_DEFINED)
+typedef u32_t in_addr_t;
+#endif
+
+struct in_addr
+{
+ in_addr_t s_addr;
+};
+
+struct in6_addr
+{
+ union
+ {
+ u32_t u32_addr[4];
+ u8_t u8_addr[16];
+ } un;
+#define s6_addr un.u8_addr
+};
+
+enum sal_ip_addr_type
+{
+ /** IPv4 */
+ IPADDR_TYPE_V4 = 0U,
+ /** IPv6 */
+ IPADDR_TYPE_V6 = 6U,
+ /** IPv4+IPv6 ("dual-stack") */
+ IPADDR_TYPE_ANY = 46U
+};
+
+typedef struct ip4_addr
+{
+ u32_t addr;
+} ip4_addr_t;
+
+typedef struct ip6_addr
+{
+ u32_t addr[4];
+} ip6_addr_t;
+
+typedef struct _ip_addr
+{
+ union
+ {
+ ip6_addr_t ip6;
+ ip4_addr_t ip4;
+ } u_addr;
+ /** @ref sal_ip_addr_type */
+ u8_t type;
+} ip_addr_t;
+
+/** 255.255.255.255 */
+#define IPADDR_NONE ((u32_t)0xffffffffUL)
+/** 127.0.0.1 */
+#define IPADDR_LOOPBACK ((u32_t)0x7f000001UL)
+/** 0.0.0.0 */
+#define IPADDR_ANY ((u32_t)0x00000000UL)
+/** 255.255.255.255 */
+#define IPADDR_BROADCAST ((u32_t)0xffffffffUL)
+
+/** 255.255.255.255 */
+#define INADDR_NONE IPADDR_NONE
+/** 127.0.0.1 */
+#define INADDR_LOOPBACK IPADDR_LOOPBACK
+/** 0.0.0.0 */
+#define INADDR_ANY IPADDR_ANY
+/** 255.255.255.255 */
+#define INADDR_BROADCAST IPADDR_BROADCAST
+
+#define IPADDR_BROADCAST_STRING "255.255.255.255"
+
+in_addr_t sal_ipaddr_addr(const char *cp);
+int sal_ip4addr_aton(const char *cp, ip4_addr_t *addr);
+char *sal_ip4addr_ntoa(const ip4_addr_t *addr);
+char *sal_ip4addr_ntoa_r(const ip4_addr_t *addr, char *buf, int buflen);
+
+#define inet_addr(cp) sal_ipaddr_addr(cp)
+#define inet_aton(cp,addr) sal_ip4addr_aton(cp,(ip4_addr_t*)addr)
+#define inet_ntoa(addr) sal_ip4addr_ntoa((const ip4_addr_t*)&(addr))
+#define inet_ntoa_r(addr, buf, buflen) sal_ip4addr_ntoa_r((const ip4_addr_t*)&(addr), buf, buflen)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* SAL_IPADDR_H__ */
diff --git a/components/net/sal_socket/include/sal_netdb.h b/components/net/sal_socket/include/sal_netdb.h
new file mode 100644
index 0000000000..12f7abe6b7
--- /dev/null
+++ b/components/net/sal_socket/include/sal_netdb.h
@@ -0,0 +1,91 @@
+/*
+ * File : sal_netdb.h
+ * This file is part of RT-Thread RTOS
+ * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2018-05-24 ChenYong First version
+ */
+#ifndef SAL_NETDB_H__
+#define SAL_NETDB_H__
+
+#include
+
+#define EAI_NONAME 200
+#define EAI_SERVICE 201
+#define EAI_FAIL 202
+#define EAI_MEMORY 203
+#define EAI_FAMILY 204
+
+#define HOST_NOT_FOUND 210
+#define NO_DATA 211
+#define NO_RECOVERY 212
+#define TRY_AGAIN 213
+
+#define AI_PASSIVE 0x01
+#define AI_CANONNAME 0x02
+#define AI_NUMERICHOST 0x04
+#define AI_NUMERICSERV 0x08
+#define AI_V4MAPPED 0x10
+#define AI_ALL 0x20
+#define AI_ADDRCONFIG 0x40
+
+/* input flags for structure addrinfo */
+#define AI_PASSIVE 0x01
+#define AI_CANONNAME 0x02
+#define AI_NUMERICHOST 0x04
+#define AI_NUMERICSERV 0x08
+#define AI_V4MAPPED 0x10
+#define AI_ALL 0x20
+#define AI_ADDRCONFIG 0x40
+
+#define DNS_MAX_NAME_LENGTH 256
+
+struct hostent {
+ char *h_name; /* Official name of the host. */
+ char **h_aliases; /* A pointer to an array of pointers to alternative host names,
+ terminated by a null pointer. */
+ int h_addrtype; /* Address type. */
+ int h_length; /* The length, in bytes, of the address. */
+ char **h_addr_list; /* A pointer to an array of pointers to network addresses (in
+ network byte order) for the host, terminated by a null pointer. */
+#define h_addr h_addr_list[0] /* for backward compatibility */
+};
+
+struct addrinfo {
+ int ai_flags; /* Input flags. */
+ int ai_family; /* Address family of socket. */
+ int ai_socktype; /* Socket type. */
+ int ai_protocol; /* Protocol of socket. */
+ socklen_t ai_addrlen; /* Length of socket address. */
+ struct sockaddr *ai_addr; /* Socket address of socket. */
+ char *ai_canonname; /* Canonical name of service location. */
+ struct addrinfo *ai_next; /* Pointer to next in list. */
+};
+
+struct hostent *sal_gethostbyname(const char *name);
+
+int sal_gethostbyname_r(const char *name, struct hostent *ret, char *buf,
+ size_t buflen, struct hostent **result, int *h_errnop);
+void sal_freeaddrinfo(struct addrinfo *ai);
+int sal_getaddrinfo(const char *nodename,
+ const char *servname,
+ const struct addrinfo *hints,
+ struct addrinfo **res);
+
+#endif /* SAL_NETDB_H__ */
diff --git a/components/net/sal_socket/include/sal_socket.h b/components/net/sal_socket/include/sal_socket.h
new file mode 100644
index 0000000000..0261561613
--- /dev/null
+++ b/components/net/sal_socket/include/sal_socket.h
@@ -0,0 +1,166 @@
+/*
+ * File : sal_socket.h
+ * This file is part of RT-Thread RTOS
+ * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2018-05-24 ChenYong First version
+ */
+
+#ifndef SAL_SOCKET_H__
+#define SAL_SOCKET_H__
+
+#include "sal_ipaddr.h"
+
+#if !defined(socklen_t) && !defined(SOCKLEN_T_DEFINED)
+typedef uint32_t socklen_t;
+#endif
+
+#if !defined(sa_family_t) && !defined(SA_FAMILY_T_DEFINED)
+typedef uint8_t sa_family_t;
+#endif
+
+/* If your port already typedef's in_port_t, define IN_PORT_T_DEFINED
+ to prevent this code from redefining it. */
+#if !defined(in_port_t) && !defined(IN_PORT_T_DEFINED)
+typedef uint16_t in_port_t;
+#endif
+
+/* Socket protocol types (TCP/UDP/RAW) */
+#define SOCK_STREAM 1
+#define SOCK_DGRAM 2
+#define SOCK_RAW 3
+
+#define SOCK_MAX (SOCK_RAW + 1)
+
+/*
+ * Option flags per-socket. These must match the SOF_ flags in ip.h (checked in init.c)
+ */
+#define SO_REUSEADDR 0x0004 /* Allow local address reuse */
+#define SO_KEEPALIVE 0x0008 /* keep connections alive */
+#define SO_BROADCAST 0x0020 /* permit to send and to receive broadcast messages (see IP_SOF_BROADCAST option) */
+
+/*
+ * Additional options, not kept in so_options.
+ */
+#define SO_DEBUG 0x0001 /* Unimplemented: turn on debugging info recording */
+#define SO_ACCEPTCONN 0x0002 /* socket has had listen() */
+#define SO_DONTROUTE 0x0010 /* Unimplemented: just use interface addresses */
+#define SO_USELOOPBACK 0x0040 /* Unimplemented: bypass hardware when possible */
+#define SO_LINGER 0x0080 /* linger on close if data present */
+#define SO_DONTLINGER ((int)(~SO_LINGER))
+#define SO_OOBINLINE 0x0100 /* Unimplemented: leave received OOB data in line */
+#define SO_REUSEPORT 0x0200 /* Unimplemented: allow local address & port reuse */
+#define SO_SNDBUF 0x1001 /* Unimplemented: send buffer size */
+#define SO_RCVBUF 0x1002 /* receive buffer size */
+#define SO_SNDLOWAT 0x1003 /* Unimplemented: send low-water mark */
+#define SO_RCVLOWAT 0x1004 /* Unimplemented: receive low-water mark */
+#define SO_SNDTIMEO 0x1005 /* send timeout */
+#define SO_RCVTIMEO 0x1006 /* receive timeout */
+#define SO_ERROR 0x1007 /* get error status and clear */
+#define SO_TYPE 0x1008 /* get socket type */
+#define SO_CONTIMEO 0x1009 /* Unimplemented: connect timeout */
+#define SO_NO_CHECK 0x100a /* don't create UDP checksum */
+
+/*
+ * Level number for (get/set)sockopt() to apply to socket itself.
+ */
+#define SOL_SOCKET 0xfff /* options for socket level */
+
+#define AF_UNSPEC 0
+#define AF_INET 2
+#define AF_INET6 10
+#define AF_CAN 29 /* Controller Area Network */
+#define AF_AT 45 /* AT socket */
+#define PF_INET AF_INET
+#define PF_INET6 AF_INET6
+#define PF_UNSPEC AF_UNSPEC
+#define PF_CAN AF_CAN
+#define PF_AT AF_AT
+
+#define AF_MAX (AF_AT + 1) /* For now.. */
+
+#define IPPROTO_IP 0
+#define IPPROTO_ICMP 1
+#define IPPROTO_TCP 6
+#define IPPROTO_UDP 17
+#define IPPROTO_IPV6 41
+#define IPPROTO_ICMPV6 58
+#define IPPROTO_UDPLITE 136
+#define IPPROTO_RAW 255
+
+/* Flags we can use with send and recv. */
+#define MSG_PEEK 0x01 /* Peeks at an incoming message */
+#define MSG_WAITALL 0x02 /* Unimplemented: Requests that the function block until the full amount of data requested can be returned */
+#define MSG_OOB 0x04 /* Unimplemented: Requests out-of-band data. The significance and semantics of out-of-band data are protocol-specific */
+#define MSG_DONTWAIT 0x08 /* Nonblocking i/o for this operation only */
+#define MSG_MORE 0x10 /* Sender will send more */
+
+/*
+ * Options for level IPPROTO_TCP
+ */
+#define TCP_NODELAY 0x01 /* don't delay send to coalesce packets */
+#define TCP_KEEPALIVE 0x02 /* send KEEPALIVE probes when idle for pcb->keep_idle milliseconds */
+#define TCP_KEEPIDLE 0x03 /* set pcb->keep_idle - Same as TCP_KEEPALIVE, but use seconds for get/setsockopt */
+#define TCP_KEEPINTVL 0x04 /* set pcb->keep_intvl - Use seconds for get/setsockopt */
+#define TCP_KEEPCNT 0x05 /* set pcb->keep_cnt - Use number of probes sent for get/setsockopt */
+
+struct sockaddr {
+ uint8_t sa_len;
+ sa_family_t sa_family;
+ char sa_data[14];
+};
+
+/* members are in network byte order */
+struct sockaddr_in {
+ uint8_t sin_len;
+ sa_family_t sin_family;
+ in_port_t sin_port;
+ struct in_addr sin_addr;
+#define SIN_ZERO_LEN 8
+ char sin_zero[SIN_ZERO_LEN];
+};
+
+struct sockaddr_storage {
+ uint8_t s2_len;
+ sa_family_t ss_family;
+ char s2_data1[2];
+ uint32_t s2_data2[3];
+#if SAL_IPV6
+ u32_t s2_data3[3];
+#endif /* SAL_IPV6 */
+};
+
+int sal_accept(int socket, struct sockaddr *addr, socklen_t *addrlen);
+int sal_bind(int socket, const struct sockaddr *name, socklen_t namelen);
+int sal_shutdown(int socket, int how);
+int sal_getpeername (int socket, struct sockaddr *name, socklen_t *namelen);
+int sal_getsockname (int socket, struct sockaddr *name, socklen_t *namelen);
+int sal_getsockopt (int socket, int level, int optname, void *optval, socklen_t *optlen);
+int sal_setsockopt (int socket, int level, int optname, const void *optval, socklen_t optlen);
+int sal_connect(int socket, const struct sockaddr *name, socklen_t namelen);
+int sal_listen(int socket, int backlog);
+int sal_recvfrom(int socket, void *mem, size_t len, int flags,
+ struct sockaddr *from, socklen_t *fromlen);
+int sal_sendto(int socket, const void *dataptr, size_t size, int flags,
+ const struct sockaddr *to, socklen_t tolen);
+int sal_socket(int domain, int type, int protocol);
+int sal_closesocket(int socket);
+int sal_ioctlsocket(int socket, long cmd, void *arg);
+
+#endif /* SAL_SOCKET_H__ */
diff --git a/components/net/sal_socket/include/sal_type.h b/components/net/sal_socket/include/sal_type.h
new file mode 100644
index 0000000000..0446d5f4e1
--- /dev/null
+++ b/components/net/sal_socket/include/sal_type.h
@@ -0,0 +1,40 @@
+/*
+ * File : sal_type.h
+ * This file is part of RT-Thread RTOS
+ * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2018-05-17 ChenYong First version
+ */
+
+#ifndef SAL_TYPE_H__
+#define SAL_TYPE_H__
+
+#include
+#include
+
+typedef int8_t err_t;
+typedef uint8_t u8_t;
+typedef int8_t s8_t;
+typedef uint16_t u16_t;
+typedef int16_t s16_t;
+typedef uint32_t u32_t;
+typedef int32_t s32_t;
+typedef uintptr_t mem_ptr_t;
+
+#endif /* SAL_TYPE_H__ */
diff --git a/components/dfs/filesystems/net/arpa/inet.h b/components/net/sal_socket/include/socket/arpa/inet.h
similarity index 92%
rename from components/dfs/filesystems/net/arpa/inet.h
rename to components/net/sal_socket/include/socket/arpa/inet.h
index 395f3489ba..e7d856d434 100644
--- a/components/dfs/filesystems/net/arpa/inet.h
+++ b/components/net/sal_socket/include/socket/arpa/inet.h
@@ -1,7 +1,7 @@
/*
* File : inet.h
* This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2015, RT-Thread Development Team
+ * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -25,6 +25,6 @@
#ifndef INET_H__
#define INET_H__
-#include
+#include
#endif
diff --git a/components/dfs/filesystems/net/netdb.h b/components/net/sal_socket/include/socket/netdb.h
similarity index 90%
rename from components/dfs/filesystems/net/netdb.h
rename to components/net/sal_socket/include/socket/netdb.h
index bf509c371a..c1ffbb826c 100644
--- a/components/dfs/filesystems/net/netdb.h
+++ b/components/net/sal_socket/include/socket/netdb.h
@@ -1,7 +1,7 @@
/*
* File : netdb.h
* This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2015, RT-Thread Development Team
+ * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -20,6 +20,7 @@
* Change Logs:
* Date Author Notes
* 2015-02-17 Bernard First version
+ * 2108-05-24 ChenYong Add socket abstraction layer
*/
#ifndef NETDB_H__
@@ -29,7 +30,7 @@
extern "C" {
#endif
-#include
+#include
struct hostent *gethostbyname(const char *name);
diff --git a/components/dfs/filesystems/net/netinet/in.h b/components/net/sal_socket/include/socket/netinet/in.h
similarity index 92%
rename from components/dfs/filesystems/net/netinet/in.h
rename to components/net/sal_socket/include/socket/netinet/in.h
index 24fe8b5409..d01a9b3f89 100644
--- a/components/dfs/filesystems/net/netinet/in.h
+++ b/components/net/sal_socket/include/socket/netinet/in.h
@@ -1,7 +1,7 @@
/*
* File : in.h
* This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2015, RT-Thread Development Team
+ * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -25,7 +25,7 @@
#ifndef IN_H__
#define IN_H__
-#include
+#include
#ifndef IN6_IS_ADDR_MULTICAST
#define IN6_IS_ADDR_MULTICAST(a) (((uint8_t *) (a))[0] == 0xff)
diff --git a/components/dfs/filesystems/net/netinet/tcp.h b/components/net/sal_socket/include/socket/netinet/tcp.h
similarity index 92%
rename from components/dfs/filesystems/net/netinet/tcp.h
rename to components/net/sal_socket/include/socket/netinet/tcp.h
index c157b0bb38..aafb0f15d0 100644
--- a/components/dfs/filesystems/net/netinet/tcp.h
+++ b/components/net/sal_socket/include/socket/netinet/tcp.h
@@ -1,7 +1,7 @@
/*
* File : tcp.h
* This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2015, RT-Thread Development Team
+ * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -25,6 +25,6 @@
#ifndef TCP_H__
#define TCP_H__
-#include
+#include
#endif
diff --git a/components/dfs/filesystems/net/netinet/udp.h b/components/net/sal_socket/include/socket/netinet/udp.h
similarity index 92%
rename from components/dfs/filesystems/net/netinet/udp.h
rename to components/net/sal_socket/include/socket/netinet/udp.h
index 6eef3ee774..4b84755e68 100644
--- a/components/dfs/filesystems/net/netinet/udp.h
+++ b/components/net/sal_socket/include/socket/netinet/udp.h
@@ -1,7 +1,7 @@
/*
* File : udp.h
* This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2015, RT-Thread Development Team
+ * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -25,6 +25,6 @@
#ifndef UDP_H__
#define UDP_H__
-#include
+#include
#endif
diff --git a/components/dfs/filesystems/net/socket/sys/socket.h b/components/net/sal_socket/include/socket/sys_socket/sys/socket.h
similarity index 55%
rename from components/dfs/filesystems/net/socket/sys/socket.h
rename to components/net/sal_socket/include/socket/sys_socket/sys/socket.h
index 4ed96fe222..2b0357ff81 100644
--- a/components/dfs/filesystems/net/socket/sys/socket.h
+++ b/components/net/sal_socket/include/socket/sys_socket/sys/socket.h
@@ -1,7 +1,7 @@
/*
* File : socket.h
* This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2015, RT-Thread Development Team
+ * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -20,74 +20,18 @@
* Change Logs:
* Date Author Notes
* 2015-02-17 Bernard First version
+ * 2018-05-17 ChenYong Add socket abstraction layer
*/
-#ifndef SOCKET_H__
-#define SOCKET_H__
+#ifndef SYS_SOCKET_H_
+#define SYS_SOCKET_H_
+
+#include
#ifdef __cplusplus
extern "C" {
#endif
-#include
-#include
-#include
-#include
-
-#include
-
-#if LWIP_VERSION < 0x2000000
-typedef uint16_t sa_family_t;
-typedef uint16_t in_port_t;
-
-struct sockaddr_storage
-{
- sa_family_t ss_family; /* Address family */
- char ss_data[14]; /* 14-bytes of address data */
-};
-#endif
-
-#if LWIP_VERSION < 0x2000000
-#define SELWAIT_T int
-#else
-#ifndef SELWAIT_T
-#define SELWAIT_T u8_t
-#endif
-#endif
-
-/*
- * Re-define lwip socket
- *
- * NOTE: please make sure the definitions same in lwip::net_socket.c
- */
-struct lwip_sock {
- /** sockets currently are built on netconns, each socket has one netconn */
- struct netconn *conn;
- /** data that was left from the previous read */
- void *lastdata;
- /** offset in the data that was left from the previous read */
- u16_t lastoffset;
- /** number of times data was received, set by event_callback(),
- tested by the receive and select functions */
- s16_t rcvevent;
- /** number of times data was ACKed (free send buffer), set by event_callback(),
- tested by select */
- u16_t sendevent;
- /** error happened for this socket, set by event_callback(), tested by select */
- u16_t errevent;
- /** last error that occurred on this socket */
-#if LWIP_VERSION < 0x2000000
- int err;
-#else
- u8_t err;
-#endif
- /** counter of how many threads are waiting for this socket using select */
- SELWAIT_T select_waiting;
-
- rt_wqueue_t wait_head;
-};
-struct lwip_sock *lwip_tryget_socket(int s);
-
int accept(int s, struct sockaddr *addr, socklen_t *addrlen);
int bind(int s, const struct sockaddr *name, socklen_t namelen);
int shutdown(int s, int how);
@@ -111,4 +55,4 @@ int ioctlsocket(int s, long cmd, void *arg);
}
#endif
-#endif
+#endif /* _SYS_SOCKET_H_ */
diff --git a/components/dfs/filesystems/net/net_netdb.c b/components/net/sal_socket/socket/net_netdb.c
similarity index 81%
rename from components/dfs/filesystems/net/net_netdb.c
rename to components/net/sal_socket/socket/net_netdb.c
index 1e14dfb093..5acab36403 100644
--- a/components/dfs/filesystems/net/net_netdb.c
+++ b/components/net/sal_socket/socket/net_netdb.c
@@ -1,5 +1,5 @@
/*
- * File : netdb.c
+ * File : net_netdb.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2015, RT-Thread Development Team
*
@@ -20,26 +20,28 @@
* Change Logs:
* Date Author Notes
* 2015-02-17 Bernard First version
+ * 2108-05-24 ChenYong Add socket abstraction layer
*/
-#include "netdb.h"
-#include
+#include
+
+#include
struct hostent *gethostbyname(const char *name)
{
- return lwip_gethostbyname(name);
+ return sal_gethostbyname(name);
}
RTM_EXPORT(gethostbyname);
int gethostbyname_r(const char *name, struct hostent *ret, char *buf,
size_t buflen, struct hostent **result, int *h_errnop)
{
- return lwip_gethostbyname_r(name, ret, buf, buflen, result, h_errnop);
+ return sal_gethostbyname_r(name, ret, buf, buflen, result, h_errnop);
}
void freeaddrinfo(struct addrinfo *ai)
{
- lwip_freeaddrinfo(ai);
+ sal_freeaddrinfo(ai);
}
RTM_EXPORT(freeaddrinfo);
@@ -48,6 +50,6 @@ int getaddrinfo(const char *nodename,
const struct addrinfo *hints,
struct addrinfo **res)
{
- return lwip_getaddrinfo(nodename, servname, hints, res);
+ return sal_getaddrinfo(nodename, servname, hints, res);
}
RTM_EXPORT(getaddrinfo);
diff --git a/components/net/sal_socket/socket/net_sockets.c b/components/net/sal_socket/socket/net_sockets.c
new file mode 100644
index 0000000000..f181ee14d5
--- /dev/null
+++ b/components/net/sal_socket/socket/net_sockets.c
@@ -0,0 +1,284 @@
+/*
+ * File : net_sockets.c
+ * This file is part of RT-Thread RTOS
+ * COPYRIGHT (C) 2015, RT-Thread Development Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2015-02-17 Bernard First version
+ * 2018-05-17 ChenYong Add socket abstraction layer
+ */
+
+#include
+#include
+#include
+#include
+
+#include
+
+int accept(int s, struct sockaddr *addr, socklen_t *addrlen)
+{
+ int new_socket = -1;
+ int socket = dfs_net_getsocket(s);
+
+ new_socket = sal_accept(socket, addr, addrlen);
+ if (new_socket != -1)
+ {
+ /* this is a new socket, create it in file system fd */
+ int fd;
+ struct dfs_fd *d;
+
+ /* allocate a fd */
+ fd = fd_new();
+ if (fd < 0)
+ {
+ rt_set_errno(-ENOMEM);
+ sal_closesocket(socket);
+
+ return -1;
+ }
+
+ d = fd_get(fd);
+ if(d)
+ {
+ /* this is a socket fd */
+ d->type = FT_SOCKET;
+ d->path = NULL;
+
+ d->fops = dfs_net_get_fops();
+
+ d->flags = O_RDWR; /* set flags as read and write */
+ d->size = 0;
+ d->pos = 0;
+
+ /* set socket to the data of dfs_fd */
+ d->data = (void *) new_socket;
+
+ /* release the ref-count of fd */
+ fd_put(d);
+
+ return fd;
+ }
+
+ return -1;
+ }
+
+ return -1;
+}
+RTM_EXPORT(accept);
+
+int bind(int s, const struct sockaddr *name, socklen_t namelen)
+{
+ int socket = dfs_net_getsocket(s);
+
+ return sal_bind(socket, name, namelen);
+}
+RTM_EXPORT(bind);
+
+int shutdown(int s, int how)
+{
+ int socket;
+ struct dfs_fd *d;
+
+ d = fd_get(s);
+ if (d == NULL)
+ {
+ rt_set_errno(-EBADF);
+
+ return -1;
+ }
+
+ socket = dfs_net_getsocket(s);
+ if (sal_shutdown(socket, how) == 0)
+ {
+ /* socket has been closed, delete it from file system fd */
+ fd_put(d);
+ fd_put(d);
+
+ return 0;
+ }
+
+ return -1;
+
+}
+RTM_EXPORT(shutdown);
+
+int getpeername(int s, struct sockaddr *name, socklen_t *namelen)
+{
+ int socket = dfs_net_getsocket(s);
+
+ return sal_getpeername(socket, name, namelen);
+}
+RTM_EXPORT(getpeername);
+
+int getsockname(int s, struct sockaddr *name, socklen_t *namelen)
+{
+ int socket = dfs_net_getsocket(s);
+
+ return sal_getsockname(socket, name, namelen);
+}
+RTM_EXPORT(getsockname);
+
+int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen)
+{
+ int socket = dfs_net_getsocket(s);
+
+ return sal_getsockopt(socket, level, optname, optval, optlen);
+}
+RTM_EXPORT(getsockopt);
+
+int setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen)
+{
+ int socket = dfs_net_getsocket(s);
+
+ return sal_setsockopt(socket, level, optname, optval, optlen);
+}
+RTM_EXPORT(setsockopt);
+
+int connect(int s, const struct sockaddr *name, socklen_t namelen)
+{
+ int socket = dfs_net_getsocket(s);
+
+ return sal_connect(socket, name, namelen);
+}
+RTM_EXPORT(connect);
+
+int listen(int s, int backlog)
+{
+ int socket = dfs_net_getsocket(s);
+
+ return sal_listen(socket, backlog);
+}
+RTM_EXPORT(listen);
+
+int recv(int s, void *mem, size_t len, int flags)
+{
+ int socket = dfs_net_getsocket(s);
+
+ return sal_recvfrom(socket, mem, len, flags, NULL, NULL);
+}
+RTM_EXPORT(recv);
+
+int recvfrom(int s, void *mem, size_t len, int flags,
+ struct sockaddr *from, socklen_t *fromlen)
+{
+ int socket = dfs_net_getsocket(s);
+
+ return sal_recvfrom(socket, mem, len, flags, from, fromlen);
+}
+RTM_EXPORT(recvfrom);
+
+int send(int s, const void *dataptr, size_t size, int flags)
+{
+ int socket = dfs_net_getsocket(s);
+
+ return sal_sendto(socket, dataptr, size, flags, NULL, 0);
+}
+RTM_EXPORT(send);
+
+int sendto(int s, const void *dataptr, size_t size, int flags,
+ const struct sockaddr *to, socklen_t tolen)
+{
+ int socket = dfs_net_getsocket(s);
+
+ return sal_sendto(socket, dataptr, size, flags, to, tolen);
+}
+RTM_EXPORT(sendto);
+
+int socket(int domain, int type, int protocol)
+{
+ /* create a BSD socket */
+ int fd;
+ int socket;
+ struct dfs_fd *d;
+
+ /* allocate a fd */
+ fd = fd_new();
+ if (fd < 0)
+ {
+ rt_set_errno(-ENOMEM);
+
+ return -1;
+ }
+ d = fd_get(fd);
+
+ /* create socket and then put it to the dfs_fd */
+ socket = sal_socket(domain, type, protocol);
+ if (socket >= 0)
+ {
+ /* this is a socket fd */
+ d->type = FT_SOCKET;
+ d->path = NULL;
+
+ d->fops = dfs_net_get_fops();
+
+ d->flags = O_RDWR; /* set flags as read and write */
+ d->size = 0;
+ d->pos = 0;
+
+ /* set socket to the data of dfs_fd */
+ d->data = (void *) socket;
+ }
+ else
+ {
+ /* release fd */
+ fd_put(d);
+ fd_put(d);
+
+ rt_set_errno(-ENOMEM);
+
+ return -1;
+ }
+
+ /* release the ref-count of fd */
+ fd_put(d);
+
+ return fd;
+}
+RTM_EXPORT(socket);
+
+int closesocket(int s)
+{
+ int socket = dfs_net_getsocket(s);
+ struct dfs_fd *d;
+
+ d = fd_get(s);
+ if(!d)
+ {
+ return -1;
+ }
+
+ if (sal_closesocket(socket) == 0)
+ {
+ /* socket has been closed, delete it from file system fd */
+ fd_put(d);
+ fd_put(d);
+
+ return 0;
+ }
+
+ return -1;
+}
+RTM_EXPORT(closesocket);
+
+int ioctlsocket(int s, long cmd, void *arg)
+{
+ int socket = dfs_net_getsocket(s);
+
+ return sal_ioctlsocket(socket, cmd, arg);
+}
+RTM_EXPORT(ioctlsocket);
diff --git a/components/net/sal_socket/src/sal_ipaddr.c b/components/net/sal_socket/src/sal_ipaddr.c
new file mode 100644
index 0000000000..0060ccec45
--- /dev/null
+++ b/components/net/sal_socket/src/sal_ipaddr.c
@@ -0,0 +1,271 @@
+/*
+ * File : sal_ipaddr.c
+ * This file is part of RT-Thread RTOS
+ * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2018-05-18 ChenYong First version
+ */
+
+#include
+#include
+
+/* Here for now until needed in other places in lwIP */
+#ifndef isprint
+#define in_range(c, lo, up) ((u8_t)c >= lo && (u8_t)c <= up)
+#define isprint(c) in_range(c, 0x20, 0x7f)
+#define isdigit(c) in_range(c, '0', '9')
+#define isxdigit(c) (isdigit(c) || in_range(c, 'a', 'f') || in_range(c, 'A', 'F'))
+#define islower(c) in_range(c, 'a', 'z')
+#define isspace(c) (c == ' ' || c == '\f' || c == '\n' || c == '\r' || c == '\t' || c == '\v')
+#endif
+
+
+/**
+ * Check whether "cp" is a valid ascii representation
+ * of an Internet address and convert to a binary address.
+ * Returns 1 if the address is valid, 0 if not.
+ * This replaces inet_addr, the return value from which
+ * cannot distinguish between failure and a local broadcast address.
+ *
+ * @param cp IP address in ascii representation (e.g. "127.0.0.1")
+ * @param addr pointer to which to save the ip address in network order
+ * @return 1 if cp could be converted to addr, 0 on failure
+ */
+int sal_ip4addr_aton(const char *cp, ip4_addr_t *addr)
+{
+ u32_t val;
+ u8_t base;
+ char c;
+ u32_t parts[4];
+ u32_t *pp = parts;
+
+ c = *cp;
+ for (;;)
+ {
+ /*
+ * Collect number up to ``.''.
+ * Values are specified as for C:
+ * 0x=hex, 0=octal, 1-9=decimal.
+ */
+ if (!isdigit(c))
+ {
+ return 0;
+ }
+ val = 0;
+ base = 10;
+ if (c == '0')
+ {
+ c = *++cp;
+ if (c == 'x' || c == 'X')
+ {
+ base = 16;
+ c = *++cp;
+ }
+ else
+ {
+ base = 8;
+ }
+ }
+ for (;;)
+ {
+ if (isdigit(c))
+ {
+ val = (val * base) + (u32_t) (c - '0');
+ c = *++cp;
+ }
+ else if (base == 16 && isxdigit(c))
+ {
+ val = (val << 4) | (u32_t) (c + 10 - (islower(c) ? 'a' : 'A'));
+ c = *++cp;
+ }
+ else
+ {
+ break;
+ }
+ }
+ if (c == '.')
+ {
+ /*
+ * Internet format:
+ * a.b.c.d
+ * a.b.c (with c treated as 16 bits)
+ * a.b (with b treated as 24 bits)
+ */
+ if (pp >= parts + 3)
+ {
+ return 0;
+ }
+ *pp++ = val;
+ c = *++cp;
+ }
+ else
+ {
+ break;
+ }
+ }
+ /*
+ * Check for trailing characters.
+ */
+ if (c != '\0' && !isspace(c))
+ {
+ return 0;
+ }
+ /*
+ * Concoct the address according to
+ * the number of parts specified.
+ */
+ switch (pp - parts + 1)
+ {
+
+ case 0:
+ return 0; /* initial nondigit */
+
+ case 1: /* a -- 32 bits */
+ break;
+
+ case 2: /* a.b -- 8.24 bits */
+ if (val > 0xffffffUL)
+ {
+ return 0;
+ }
+ if (parts[0] > 0xff)
+ {
+ return 0;
+ }
+ val |= parts[0] << 24;
+ break;
+
+ case 3: /* a.b.c -- 8.8.16 bits */
+ if (val > 0xffff)
+ {
+ return 0;
+ }
+ if ((parts[0] > 0xff) || (parts[1] > 0xff))
+ {
+ return 0;
+ }
+ val |= (parts[0] << 24) | (parts[1] << 16);
+ break;
+
+ case 4: /* a.b.c.d -- 8.8.8.8 bits */
+ if (val > 0xff)
+ {
+ return 0;
+ }
+ if ((parts[0] > 0xff) || (parts[1] > 0xff) || (parts[2] > 0xff))
+ {
+ return 0;
+ }
+ val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8);
+ break;
+ default:
+ RT_ASSERT(0);
+ break;
+ }
+ if (addr)
+ {
+ ip4_addr_set_u32(addr, htonl(val));
+ }
+ return 1;
+}
+
+/**
+ * Same as ipaddr_ntoa, but reentrant since a user-supplied buffer is used.
+ *
+ * @param addr ip address in network order to convert
+ * @param buf target buffer where the string is stored
+ * @param buflen length of buf
+ * @return either pointer to buf which now holds the ASCII
+ * representation of addr or NULL if buf was too small
+ */
+char *sal_ip4addr_ntoa_r(const ip4_addr_t *addr, char *buf, int buflen)
+{
+ u32_t s_addr;
+ char inv[3];
+ char *rp;
+ u8_t *ap;
+ u8_t rem;
+ u8_t n;
+ u8_t i;
+ int len = 0;
+
+ s_addr = ip4_addr_get_u32(addr);
+
+ rp = buf;
+ ap = (u8_t *) &s_addr;
+ for (n = 0; n < 4; n++)
+ {
+ i = 0;
+ do
+ {
+ rem = *ap % (u8_t) 10;
+ *ap /= (u8_t) 10;
+ inv[i++] = (char) ('0' + rem);
+ } while (*ap);
+ while (i--)
+ {
+ if (len++ >= buflen)
+ {
+ return NULL;
+ }
+ *rp++ = inv[i];
+ }
+ if (len++ >= buflen)
+ {
+ return NULL;
+ }
+ *rp++ = '.';
+ ap++;
+ }
+ *--rp = 0;
+ return buf;
+}
+
+
+/**
+ * Convert numeric IP address into decimal dotted ASCII representation.
+ * returns ptr to static buffer; not reentrant!
+ *
+ * @param addr ip address in network order to convert
+ * @return pointer to a global static (!) buffer that holds the ASCII
+ * representation of addr
+ */
+char *sal_ip4addr_ntoa(const ip4_addr_t *addr)
+{
+ static char str[IP4ADDR_STRLEN_MAX];
+ return sal_ip4addr_ntoa_r(addr, str, IP4ADDR_STRLEN_MAX);
+}
+
+
+/**
+ * Ascii internet address interpretation routine.
+ * The value returned is in network order.
+ *
+ * @param cp IP address in ascii representation (e.g. "127.0.0.1")
+ * @return ip address in network order
+ */
+in_addr_t sal_ipaddr_addr(const char *cp)
+{
+ ip4_addr_t val;
+
+ if (sal_ip4addr_aton(cp, &val)) {
+ return ip4_addr_get_u32(&val);
+ }
+ return (IPADDR_NONE);
+}
diff --git a/components/net/sal_socket/src/sal_socket.c b/components/net/sal_socket/src/sal_socket.c
new file mode 100644
index 0000000000..71aaa2c658
--- /dev/null
+++ b/components/net/sal_socket/src/sal_socket.c
@@ -0,0 +1,730 @@
+/*
+ * File : sal_socket.c
+ * This file is part of RT-Thread RTOS
+ * COPYRIGHT (C) 2006 - 2018, RT-Thread Development Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2018-05-23 ChenYong First version
+ */
+
+#include
+#include
+
+#include
+#include
+#include
+
+#define DBG_ENABLE
+#define DBG_SECTION_NAME "SAL_SOC"
+#define DBG_LEVEL DBG_INFO
+#define DBG_COLOR
+#include
+
+/* the socket table used to dynamic allocate sockets */
+struct sal_socket_table
+{
+ uint32_t max_socket;
+ struct sal_socket **sockets;
+};
+
+/* The global array of available protocol families */
+static struct proto_family proto_families[SAL_PROTO_FAMILIES_NUM];
+/* The global socket table */
+static struct sal_socket_table socket_table;
+static struct rt_mutex sal_core_lock;
+static rt_bool_t init_ok = RT_FALSE;
+
+/**
+ * SAL (Socket Abstraction Layer) initialization.
+ *
+ * @return result
+ * >= 0: initialize success
+ */
+int sal_init(void)
+{
+ if(init_ok)
+ {
+ LOG_D("Socket Abstraction Layer is already initialized.");
+ return 0;
+ }
+
+ /* clean sal socket table */
+ memset(&socket_table, 0, sizeof(socket_table));
+ /* create sal socket lock */
+ rt_mutex_init(&sal_core_lock, "sal_lock", RT_IPC_FLAG_FIFO);
+
+ LOG_I("Socket Abstraction Layer initialize success.");
+ init_ok = RT_TRUE;
+
+ return 0;
+}
+INIT_COMPONENT_EXPORT(sal_init);
+
+/**
+ * this function will register the current protocol family to the global array of protocol families.
+ *
+ * @param pf protocol families structure
+ *
+ * @return 0 : protocol families structure index
+ * -1 : the global array of available protocol families is full
+ */
+int sal_proto_family_register(const struct proto_family *pf)
+{
+ rt_base_t level;
+ int idx;
+
+ /* disable interrupt */
+ level = rt_hw_interrupt_disable();
+
+ /* find an empty protocol family entry */
+ for(idx = 0; idx < SAL_PROTO_FAMILIES_NUM && proto_families[idx].create; idx++);
+
+ /* can't find an empty protocol family entry */
+ if(idx == SAL_PROTO_FAMILIES_NUM)
+ {
+ /* enable interrupt */
+ rt_hw_interrupt_enable(level);
+
+ return -1;
+ }
+
+ proto_families[idx].family = pf->family;
+ proto_families[idx].sec_family = pf->sec_family;
+ proto_families[idx].create = pf->create;
+
+ proto_families[idx].gethostbyname = pf->gethostbyname;
+ proto_families[idx].gethostbyname_r = pf->gethostbyname_r;
+ proto_families[idx].freeaddrinfo = pf->freeaddrinfo;
+ proto_families[idx].getaddrinfo = pf->getaddrinfo;
+
+ /* enable interrupt */
+ rt_hw_interrupt_enable(level);
+
+ return 0;
+}
+
+/**
+ * this function will get socket structure by sal socket descriptor
+ *
+ * @param socket sal socket index
+ *
+ * @return socket structure of the current sal socket index
+ */
+struct sal_socket *sal_get_socket(int socket)
+{
+ struct sal_socket_table *st = &socket_table;
+
+ if (socket < 0 || socket >= (int) st->max_socket)
+ {
+ return RT_NULL;
+ }
+
+ socket = socket - SAL_SOCKET_OFFSET;
+ /* check socket structure valid or not */
+ if (st->sockets[socket]->magic != SAL_SOCKET_MAGIC)
+ {
+ return RT_NULL;
+ }
+
+ return st->sockets[socket];
+}
+
+/**
+ * this function will lock sal socket.
+ *
+ * @note please don't invoke it on ISR.
+ */
+static void sal_lock(void)
+{
+ rt_err_t result;
+
+ result = rt_mutex_take(&sal_core_lock, RT_WAITING_FOREVER);
+ if (result != RT_EOK)
+ {
+ RT_ASSERT(0);
+ }
+}
+
+/**
+ * this function will lock sal socket.
+ *
+ * @note please don't invoke it on ISR.
+ */
+static void sal_unlock(void)
+{
+ rt_mutex_release(&sal_core_lock);
+}
+
+/**
+ * this function will get protocol family structure by family type
+ *
+ * @param family protocol family
+ *
+ * @return protocol family structure address
+ */
+static struct proto_family *get_proto_family(int family)
+{
+ int idx;
+
+ for (idx = 0; idx < SAL_PROTO_FAMILIES_NUM; idx++)
+ {
+ if (proto_families[idx].family == family && proto_families[idx].create)
+ {
+ return &proto_families[idx];
+ }
+ }
+ /* compare the secondary protocol families when primary protocol families find failed */
+ for (idx = 0; idx < SAL_PROTO_FAMILIES_NUM; idx++)
+ {
+ if (proto_families[idx].sec_family == family && proto_families[idx].create)
+ {
+ return &proto_families[idx];
+ }
+ }
+
+ return RT_NULL;
+}
+
+/**
+ * this function will initialize socket structure and set socket options
+ *
+ * @param family protocol family
+ * @param type socket type
+ * @param protocol transfer Protocol
+ * @param res socket structure address
+ *
+ * @return 0 : socket initialize success
+ * -1 : input the wrong family
+ * -2 : input the wrong socket type
+ * -3 : get protocol family structure failed
+ * -4 : set socket options failed
+ */
+static int socket_init(int family, int type, int protocol, struct sal_socket **res)
+{
+ struct sal_socket *sock;
+ struct proto_family *pf;
+
+ if (family < 0 || family > AF_MAX)
+ {
+ return -1;
+ }
+
+ if (type < 0 || type > SOCK_MAX)
+ {
+ return -2;
+ }
+
+ sock = *res;
+ sock->domain = family;
+ sock->type = type;
+ sock->protocol = protocol;
+
+ /* get socket protocol family structure */
+ if ((pf = get_proto_family(family)) == RT_NULL)
+ {
+ return -3;
+ }
+
+ /* registered the current socket options */
+ if (pf->create(sock, type, protocol) != 0)
+ {
+ return -4;
+ }
+
+ return 0;
+}
+
+static int socket_alloc(struct sal_socket_table *st, int f_socket)
+{
+ int idx;
+
+ /* find an empty socket entry */
+ for (idx = f_socket; idx < (int) st->max_socket; idx++)
+ {
+ if (st->sockets[idx] == RT_NULL)
+ break;
+ if (st->sockets[idx]->ops == RT_NULL)
+ break;
+ }
+
+ /* allocate a larger sockte container */
+ if (idx == (int) st->max_socket && st->max_socket < SAL_SOCKETS_NUM)
+ {
+ int cnt, index;
+ struct sal_socket **sockets;
+
+ /* increase the number of FD with 4 step length */
+ cnt = st->max_socket + 4;
+ cnt = cnt > SAL_SOCKETS_NUM ? SAL_SOCKETS_NUM : cnt;
+
+ sockets = rt_realloc(st->sockets, cnt * sizeof(struct sal_socket *));
+ if (sockets == RT_NULL)
+ goto __result; /* return st->max_socket */
+
+ /* clean the new allocated fds */
+ for (index = st->max_socket; index < cnt; index++)
+ {
+ sockets[index] = RT_NULL;
+ }
+
+ st->sockets = sockets;
+ st->max_socket = cnt;
+ }
+
+ /* allocate 'struct sal_socket' */
+ if (idx < (int) st->max_socket && st->sockets[idx] == RT_NULL)
+ {
+ st->sockets[idx] = rt_malloc(sizeof(struct sal_socket));
+ if (st->sockets[idx] == RT_NULL)
+ {
+ idx = st->max_socket;
+ }
+ }
+
+__result:
+ return idx;
+
+}
+
+/**
+ * this function will return a empty sal socket structure address
+ *
+ * @return sal socket structure address
+ */
+static int socket_new(void)
+{
+ struct sal_socket *sock;
+ struct sal_socket_table *st = &socket_table;
+ int idx;
+
+ sal_lock();
+
+ /* find an empty sal socket entry */
+ idx = socket_alloc(st, 0);
+
+ /* can't find an empty sal socket entry */
+ if (idx == (int) st->max_socket)
+ {
+ idx = -(1 + SAL_SOCKET_OFFSET);
+ goto __result;
+ }
+
+ sock = st->sockets[idx];
+ sock->socket = idx + SAL_SOCKET_OFFSET;
+ sock->magic = SAL_SOCKET_MAGIC;
+
+__result:
+ sal_unlock();
+ return idx + SAL_SOCKET_OFFSET;
+}
+
+int sal_accept(int socket, struct sockaddr *addr, socklen_t *addrlen)
+{
+ int new_socket;
+ struct sal_socket *sock;
+
+ sock = sal_get_socket(socket);
+ if (!sock)
+ {
+ return -1;
+ }
+
+ if (sock->ops->accept == RT_NULL)
+ {
+ return -RT_ENOSYS;
+ }
+
+ new_socket = sock->ops->accept((int) sock->user_data, addr, addrlen);
+ if (new_socket != -1)
+ {
+ int retval;
+ int new_socket;
+ struct sal_socket *new_sock;
+
+ /* allocate a new socket structure and registered socket options */
+ new_socket = socket_new();
+ if (new_socket < 0)
+ {
+ return -1;
+ }
+ new_sock = sal_get_socket(new_socket);
+
+ retval = socket_init(sock->domain, sock->type, sock->protocol, &new_sock);
+ if (retval < 0)
+ {
+ LOG_E("New socket registered failed, return error %d.", retval);
+ return -1;
+ }
+
+ /* socket struct user_data used to store the acquired new socket */
+ new_sock->user_data = (void *) new_socket;
+
+ return new_sock->socket;
+ }
+
+ return -1;
+}
+
+int sal_bind(int socket, const struct sockaddr *name, socklen_t namelen)
+{
+ struct sal_socket *sock;
+
+ sock = sal_get_socket(socket);
+ if (!sock)
+ {
+ return -1;
+ }
+
+ if (sock->ops->bind == RT_NULL)
+ {
+ return -RT_ENOSYS;
+ }
+
+ return sock->ops->bind((int) sock->user_data, name, namelen);
+}
+
+int sal_shutdown(int socket, int how)
+{
+ struct sal_socket *sock;
+
+ sock = sal_get_socket(socket);
+ if (!sock)
+ {
+ return -1;
+ }
+
+ if (sock->ops->shutdown == RT_NULL)
+ {
+ return -RT_ENOSYS;
+ }
+
+ if (sock->ops->shutdown((int) sock->user_data, how) == 0)
+ {
+ memset(sock, 0x00, sizeof(struct sal_socket));
+ return 0;
+ }
+
+ return -1;
+}
+
+int sal_getpeername(int socket, struct sockaddr *name, socklen_t *namelen)
+{
+ struct sal_socket *sock;
+
+ sock = sal_get_socket(socket);
+ if (!sock)
+ {
+ return -1;
+ }
+
+ if (sock->ops->getpeername == RT_NULL)
+ {
+ return -RT_ENOSYS;
+ }
+
+ return sock->ops->getpeername((int) sock->user_data, name, namelen);
+}
+
+int sal_getsockname(int socket, struct sockaddr *name, socklen_t *namelen)
+{
+ struct sal_socket *sock;
+
+ sock = sal_get_socket(socket);
+ if (!sock)
+ {
+ return -1;
+ }
+
+ if (sock->ops->getsockname == RT_NULL)
+ {
+ return -RT_ENOSYS;
+ }
+
+ return sock->ops->getsockname((int) sock->user_data, name, namelen);
+}
+
+int sal_getsockopt(int socket, int level, int optname, void *optval, socklen_t *optlen)
+{
+ struct sal_socket *sock;
+
+ sock = sal_get_socket(socket);
+ if (!sock)
+ {
+ return -1;
+ }
+
+ if (sock->ops->getsockopt == RT_NULL)
+ {
+ return -RT_ENOSYS;
+ }
+
+ return sock->ops->getsockopt((int) sock->user_data, level, optname, optval, optlen);
+}
+
+int sal_setsockopt(int socket, int level, int optname, const void *optval, socklen_t optlen)
+{
+ struct sal_socket *sock;
+
+ sock = sal_get_socket(socket);
+ if (!sock)
+ {
+ return -1;
+ }
+
+ if (sock->ops->setsockopt == RT_NULL)
+ {
+ return -RT_ENOSYS;
+ }
+
+ return sock->ops->setsockopt((int) sock->user_data, level, optname, optval, optlen);
+}
+
+int sal_connect(int socket, const struct sockaddr *name, socklen_t namelen)
+{
+ struct sal_socket *sock;
+
+ sock = sal_get_socket(socket);
+ if (!sock)
+ {
+ return -1;
+ }
+
+ if (sock->ops->connect == RT_NULL)
+ {
+ return -RT_ENOSYS;
+ }
+
+ return sock->ops->connect((int) sock->user_data, name, namelen);
+}
+
+int sal_listen(int socket, int backlog)
+{
+ struct sal_socket *sock;
+
+ sock = sal_get_socket(socket);
+ if (!sock)
+ {
+ return -1;
+ }
+
+ if (sock->ops->listen == RT_NULL)
+ {
+ return -RT_ENOSYS;
+ }
+
+ return sock->ops->listen((int) sock->user_data, backlog);
+}
+
+int sal_recvfrom(int socket, void *mem, size_t len, int flags,
+ struct sockaddr *from, socklen_t *fromlen)
+{
+ struct sal_socket *sock;
+
+ sock = sal_get_socket(socket);
+ if (!sock)
+ {
+ return -1;
+ }
+
+ if (sock->ops->recvfrom == RT_NULL)
+ {
+ return -RT_ENOSYS;
+ }
+
+ return sock->ops->recvfrom((int) sock->user_data, mem, len, flags, from, fromlen);
+}
+
+int sal_sendto(int socket, const void *dataptr, size_t size, int flags,
+ const struct sockaddr *to, socklen_t tolen)
+{
+ struct sal_socket *sock;
+
+ sock = sal_get_socket(socket);
+ if (!sock)
+ {
+ return -1;
+ }
+
+ if (sock->ops->sendto == RT_NULL)
+ {
+ return -RT_ENOSYS;
+ }
+
+ return sock->ops->sendto((int) sock->user_data, dataptr, size, flags, to, tolen);
+}
+
+int sal_socket(int domain, int type, int protocol)
+{
+ int retval;
+ int socket, proto_socket;
+ struct sal_socket *sock;
+
+ /* allocate a new socket and registered socket options */
+ socket = socket_new();
+ if (socket < 0)
+ {
+ return -1;
+ }
+ sock = sal_get_socket(socket);
+
+ retval = socket_init(domain, type, protocol, &sock);
+ if (retval < 0)
+ {
+ LOG_E("SAL socket protocol family input failed, return error %d.", retval);
+ return -1;
+ }
+
+ if (sock->ops->socket == RT_NULL)
+ {
+ return -RT_ENOSYS;
+ }
+
+ proto_socket = sock->ops->socket(domain, type, protocol);
+ if (proto_socket >= 0)
+ {
+ sock->user_data = (void *) proto_socket;
+
+ return sock->socket;
+ }
+
+ return -1;
+}
+
+int sal_closesocket(int socket)
+{
+ struct sal_socket *sock;
+
+ sock = sal_get_socket(socket);
+ if (!sock)
+ {
+ return -1;
+ }
+
+ if (sock->ops->closesocket == RT_NULL)
+ {
+ return -RT_ENOSYS;
+ }
+
+ if (sock->ops->closesocket((int) sock->user_data) == 0)
+ {
+ memset(sock, 0x00, sizeof(struct sal_socket));
+ return 0;
+ }
+
+ return -1;
+}
+
+int sal_ioctlsocket(int socket, long cmd, void *arg)
+{
+ struct sal_socket *sock;
+
+ sock = sal_get_socket(socket);
+ if (!sock)
+ {
+ return -1;
+ }
+
+ if (sock->ops->ioctlsocket == RT_NULL)
+ {
+ return -RT_ENOSYS;
+ }
+
+ return sock->ops->ioctlsocket((int) sock->user_data, cmd, arg);
+}
+
+int sal_poll(struct dfs_fd *file, struct rt_pollreq *req)
+{
+ struct sal_socket *sock;
+ int socket = (int) file->data;
+
+ sock = sal_get_socket(socket);
+ if (!sock)
+ {
+ return -1;
+ }
+
+ if (sock->ops->poll == RT_NULL)
+ {
+ return -RT_ENOSYS;
+ }
+
+ return sock->ops->poll(file, req);
+}
+
+struct hostent *sal_gethostbyname(const char *name)
+{
+ int i;
+
+ for (i = 0; i < SAL_PROTO_FAMILIES_NUM; ++i)
+ {
+ if (proto_families[i].gethostbyname)
+ {
+ return proto_families[i].gethostbyname(name);
+ }
+ }
+
+ return RT_NULL;
+}
+
+int sal_gethostbyname_r(const char *name, struct hostent *ret, char *buf,
+ size_t buflen, struct hostent **result, int *h_errnop)
+{
+ int i;
+
+ for (i = 0; i < SAL_PROTO_FAMILIES_NUM; ++i)
+ {
+ if (proto_families[i].gethostbyname_r)
+ {
+ return proto_families[i].gethostbyname_r(name, ret, buf, buflen, result, h_errnop);
+ }
+ }
+
+ return -1;
+}
+
+void sal_freeaddrinfo(struct addrinfo *ai)
+{
+ int i;
+
+ for (i = 0; i < SAL_PROTO_FAMILIES_NUM; ++i)
+ {
+ if (proto_families[i].freeaddrinfo)
+ {
+ proto_families[i].freeaddrinfo(ai);
+ return;
+ }
+ }
+}
+
+int sal_getaddrinfo(const char *nodename,
+ const char *servname,
+ const struct addrinfo *hints,
+ struct addrinfo **res)
+{
+ int i;
+
+ for (i = 0; i < SAL_PROTO_FAMILIES_NUM; ++i)
+ {
+ if (proto_families[i].getaddrinfo)
+ {
+ return proto_families[i].getaddrinfo(nodename, servname, hints, res);
+ }
+ }
+
+ return -1;
+}
diff --git a/components/vbus/Kconfig b/components/vbus/Kconfig
index 3b0f245b5a..af58f78624 100644
--- a/components/vbus/Kconfig
+++ b/components/vbus/Kconfig
@@ -10,8 +10,8 @@ if RT_USING_VBUS
default n
help
When enable remote file system, the application can visit the remote file system
- through VBUS with POSIX file I/O.
-
+ through VBUS with POSIX file I/O.
+
config RT_USING_VBUS_RSHELL
bool "Enable Remote Shell on VBUS"
default n
diff --git a/examples/network/chargen.c b/examples/network/chargen.c
index 7db47da76f..218449b845 100644
--- a/examples/network/chargen.c
+++ b/examples/network/chargen.c
@@ -1,13 +1,13 @@
#include
#include
-#ifdef RT_USING_DFS_NET
+#ifdef SAL_USING_POSIX
#include // only dfs_net
#include
#else
#define read lwip_read
#define write lwip_write
-#endif /* RT_USING_DFS_NET */
+#endif /* SAL_USING_POSIX */
#include "netdb.h"
diff --git a/examples/test/device_test.c b/examples/test/device_test.c
index c1902fe919..d62c2168ff 100644
--- a/examples/test/device_test.c
+++ b/examples/test/device_test.c
@@ -480,7 +480,7 @@ int device_test(const char * device_name)
device = rt_device_find(device_name);
if( device == RT_NULL)
{
- rt_kprintf("device %s: not found!\r\n");
+ rt_kprintf("device %s: not found!\r\n", device_name);
return RT_ERROR;
}
diff --git a/include/libc/libc_fdset.h b/include/libc/libc_fdset.h
index 057cc7fed2..74c4ba1cb2 100644
--- a/include/libc/libc_fdset.h
+++ b/include/libc/libc_fdset.h
@@ -35,7 +35,7 @@
#else
-#ifdef RT_USING_DFS_NET
+#ifdef SAL_USING_POSIX
#ifdef FD_SETSIZE
#undef FD_SETSIZE
diff --git a/include/rtdbg.h b/include/rtdbg.h
index 84e4b97d3f..f53aba8de9 100644
--- a/include/rtdbg.h
+++ b/include/rtdbg.h
@@ -60,7 +60,7 @@
#define DBG_ERROR 3
#ifndef DBG_SECTION_NAME
-#define DBG_SECTION_NAME "[ DBG]"
+#define DBG_SECTION_NAME "DBG"
#endif
#ifdef DBG_ENABLE
diff --git a/include/rtdebug.h b/include/rtdebug.h
index 417ba70185..040d19e684 100644
--- a/include/rtdebug.h
+++ b/include/rtdebug.h
@@ -29,8 +29,8 @@
#error "POSIX poll/select, stdin need file system(RT_USING_DFS) and device file system(RT_USING_DFS_DEVFS)"
#endif
-#if defined(RT_USING_LWIP) && !defined(RT_USING_DFS_NET)
-#error "POSIX poll/select, stdin need file BSD socket API(RT_USING_DFS_NET)"
+#if defined(RT_USING_LWIP) && !defined(SAL_USING_POSIX)
+#error "POSIX poll/select, stdin need file BSD socket API(SAL_USING_POSIX)"
#endif
#if !defined(RT_USING_LIBC)