Add Pico W and lwIP support

This commit is contained in:
graham sanderson
2022-06-29 23:03:32 -05:00
parent 77c04e458c
commit 5e9a5e827b
36 changed files with 2915 additions and 13 deletions

View File

@ -41,11 +41,6 @@ target_link_libraries(kitchen_sink_libs INTERFACE
pico_unique_id
pico_util
)
# todo this is full of warnings atm
#if (TARGET tinyusb_device)
# target_include_directories(kitchen_sink_libs INTERFACE ${CMAKE_CURRENT_LIST_DIR})
# target_link_libraries(kitchen_sink_libs INTERFACE tinyusb_device)
#endif()
add_library(kitchen_sink_options INTERFACE)
@ -63,7 +58,7 @@ target_compile_options(kitchen_sink_options INTERFACE
-Wcast-qual
-Wfloat-equal
-Wmissing-format-attribute
-Wconversion
#-Wconversion
-Wsign-compare
$<$<COMPILE_LANGUAGE:C>:-Wstrict-prototypes>
@ -100,6 +95,13 @@ if (COMMAND suppress_tinyusb_warnings)
# TinyUSB itself, so we have to guard against TinyUSB not being present with the above if
suppress_tinyusb_warnings()
endif()
if (TARGET pico_lwip)
set_source_files_properties(
${PICO_LWIP_PATH}/src/core/ipv4/ip4_frag.c
PROPERTIES
COMPILE_FLAGS "-Wno-null-dereference")
endif()
target_link_libraries(kitchen_sink_extra_stdio kitchen_sink_libs kitchen_sink_options)
pico_add_extra_outputs(kitchen_sink_extra_stdio)
pico_enable_stdio_usb(kitchen_sink_extra_stdio 1)
@ -119,3 +121,25 @@ add_executable(kitchen_sink_cpp ${CMAKE_CURRENT_LIST_DIR}/kitchen_sink_cpp.cpp)
target_link_libraries(kitchen_sink_cpp kitchen_sink_libs kitchen_sink_options)
pico_set_program_name(kitchen_sink_cpp "Wombat tentacles CPP")
pico_add_extra_outputs(kitchen_sink_cpp)
if (TARGET pico_cyw43_arch)
# for lwipopts.h
add_executable(kitchen_sink_lwip_poll ${CMAKE_CURRENT_LIST_DIR}/kitchen_sink.c)
target_link_libraries(kitchen_sink_lwip_poll kitchen_sink_libs kitchen_sink_options)
pico_add_extra_outputs(kitchen_sink_lwip_poll)
target_link_libraries(kitchen_sink_lwip_poll
pico_cyw43_arch_lwip_poll)
# for lwipopts.h
target_include_directories(kitchen_sink_lwip_poll PRIVATE
${CMAKE_CURRENT_LIST_DIR})
add_executable(kitchen_sink_lwip_background ${CMAKE_CURRENT_LIST_DIR}/kitchen_sink.c)
target_link_libraries(kitchen_sink_lwip_background kitchen_sink_libs kitchen_sink_options)
pico_add_extra_outputs(kitchen_sink_lwip_background)
target_link_libraries(kitchen_sink_lwip_background
pico_cyw43_arch_lwip_threadsafe_background)
# for lwipopts.h
target_include_directories(kitchen_sink_lwip_background PRIVATE
${CMAKE_CURRENT_LIST_DIR})
endif()

View File

@ -47,6 +47,9 @@
#include "pico/sync.h"
#include "pico/time.h"
#include "pico/unique_id.h"
#if LIB_PICO_CYW43_ARCH
#include "pico/cyw43_arch.h"
#endif
#include "hardware/structs/adc.h"
#include "hardware/structs/bus_ctrl.h"

View File

@ -0,0 +1,14 @@
#ifndef _LWIPOPTS_H
#define _LWIPOPTS_H
// dummy lwip opts to allow compilation
#define NO_SYS 1
#define LWIP_DHCP 1
#define LWIP_RAW 1
#define LWIP_NETIF_HOSTNAME 1
#define LWIP_NETIF_STATUS_CALLBACK 1
#define LWIP_DNS 1
#define LWIP_SOCKET 0
#define LWIP_NETCONN 0
#endif