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)