LwIP 2.2.1在STM32F407VET6平台 移植

This commit is contained in:
冯佳
2026-01-29 17:26:04 +08:00
parent ffd33c4644
commit e7e10a8328
2207 changed files with 409723 additions and 165 deletions

105
ThirdParty/lwip-2.2.1/CMakeLists.txt vendored Normal file
View File

@ -0,0 +1,105 @@
# LwIP 2.2.1 CMake configuration for STM32F407VET6
cmake_minimum_required(VERSION 3.22)
# Define LwIP library
add_library(lwip)
# Set LwIP source directories
set(LWIP_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
set(LWIP_INCLUDE_DIR ${LWIP_SRC_DIR}/include)
# Core LwIP sources
target_sources(lwip PRIVATE
# Core IPv4
${LWIP_SRC_DIR}/core/ipv4/acd.c
${LWIP_SRC_DIR}/core/ipv4/autoip.c
${LWIP_SRC_DIR}/core/ipv4/dhcp.c
${LWIP_SRC_DIR}/core/ipv4/etharp.c
${LWIP_SRC_DIR}/core/ipv4/icmp.c
${LWIP_SRC_DIR}/core/ipv4/igmp.c
${LWIP_SRC_DIR}/core/ipv4/ip4.c
${LWIP_SRC_DIR}/core/ipv4/ip4_addr.c
${LWIP_SRC_DIR}/core/ipv4/ip4_frag.c
# Core IPv6
${LWIP_SRC_DIR}/core/ipv6/dhcp6.c
${LWIP_SRC_DIR}/core/ipv6/ethip6.c
${LWIP_SRC_DIR}/core/ipv6/icmp6.c
${LWIP_SRC_DIR}/core/ipv6/inet6.c
${LWIP_SRC_DIR}/core/ipv6/ip6.c
${LWIP_SRC_DIR}/core/ipv6/ip6_addr.c
${LWIP_SRC_DIR}/core/ipv6/ip6_frag.c
${LWIP_SRC_DIR}/core/ipv6/mld6.c
${LWIP_SRC_DIR}/core/ipv6/nd6.c
# Core common
${LWIP_SRC_DIR}/core/altcp.c
${LWIP_SRC_DIR}/core/altcp_alloc.c
${LWIP_SRC_DIR}/core/altcp_tcp.c
${LWIP_SRC_DIR}/core/def.c
${LWIP_SRC_DIR}/core/dns.c
${LWIP_SRC_DIR}/core/inet_chksum.c
${LWIP_SRC_DIR}/core/init.c
${LWIP_SRC_DIR}/core/ip.c
${LWIP_SRC_DIR}/core/mem.c
${LWIP_SRC_DIR}/core/memp.c
${LWIP_SRC_DIR}/core/netif.c
${LWIP_SRC_DIR}/core/pbuf.c
${LWIP_SRC_DIR}/core/raw.c
${LWIP_SRC_DIR}/core/stats.c
${LWIP_SRC_DIR}/core/sys.c
${LWIP_SRC_DIR}/core/tcp.c
${LWIP_SRC_DIR}/core/tcp_in.c
${LWIP_SRC_DIR}/core/tcp_out.c
${LWIP_SRC_DIR}/core/timeouts.c
${LWIP_SRC_DIR}/core/udp.c
# API
${LWIP_SRC_DIR}/api/api_lib.c
${LWIP_SRC_DIR}/api/api_msg.c
${LWIP_SRC_DIR}/api/err.c
${LWIP_SRC_DIR}/api/if_api.c
${LWIP_SRC_DIR}/api/netbuf.c
${LWIP_SRC_DIR}/api/netdb.c
${LWIP_SRC_DIR}/api/netifapi.c
${LWIP_SRC_DIR}/api/sockets.c
${LWIP_SRC_DIR}/api/tcpip.c
# Netif
${LWIP_SRC_DIR}/netif/ethernet.c
)
# Include directories
target_include_directories(lwip PUBLIC
${LWIP_INCLUDE_DIR}
${LWIP_INCLUDE_DIR}/lwip
${LWIP_INCLUDE_DIR}/netif
${CMAKE_CURRENT_SOURCE_DIR}/port
${CMAKE_SOURCE_DIR}/Drivers/STM32F4xx_HAL_Driver/Inc
${CMAKE_SOURCE_DIR}/Drivers/STM32F4xx_HAL_Driver/Inc/Legacy
${CMAKE_SOURCE_DIR}/Drivers/CMSIS/Device/ST/STM32F4xx/Include
${CMAKE_SOURCE_DIR}/Drivers/CMSIS/Include
${CMAKE_SOURCE_DIR}/BSP/Inc
${CMAKE_SOURCE_DIR}/HAL/Inc
${CMAKE_SOURCE_DIR}/Core/Inc
)
# Compiler definitions for STM32F407
target_compile_definitions(lwip PRIVATE
STM32F407xx
LWIP_PLATFORM_DIAGNOSTIC=1
LWIP_NOASSERT=0
)
# Compiler options
target_compile_options(lwip PRIVATE
-Wall
-Wextra
-Wpedantic
-ffunction-sections
-fdata-sections
)
# Add port directory (will contain sys_arch.c and ethernetif.c)
add_subdirectory(port)