summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2026-04-14 13:17:12 +0700
committerhathach <[email protected]>2026-04-14 13:17:12 +0700
commitb55786e43af764397ebadf96609d77826d38bffe (patch)
tree60cfbefe23a1e45f00687c5492ff40723885ed5c
parent44b0ee05390b0f97d006a016b25fa513699e0a96 (diff)
refactor rp2040 family.cmake to use family_configure_example() and apply WARN_FLAGS to tinyusb sources and examples sources only (skip 3rd party library and mcu vendor)
-rw-r--r--examples/host/msc_file_explorer/CMakeLists.txt14
-rw-r--r--hw/bsp/family_support.cmake38
-rw-r--r--hw/bsp/rp2040/FreeRTOSConfig/FreeRTOSConfig.h144
-rw-r--r--hw/bsp/rp2040/family.cmake117
4 files changed, 177 insertions, 136 deletions
diff --git a/examples/host/msc_file_explorer/CMakeLists.txt b/examples/host/msc_file_explorer/CMakeLists.txt
index 21703030c..3c6d3352a 100644
--- a/examples/host/msc_file_explorer/CMakeLists.txt
+++ b/examples/host/msc_file_explorer/CMakeLists.txt
@@ -23,13 +23,6 @@ target_sources(${PROJECT_NAME} PUBLIC
${TOP}/lib/fatfs/source/ffunicode.c
)
-# Suppress warnings on fatfs
-if (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
- set_source_files_properties(${TOP}/lib/fatfs/source/ff.c PROPERTIES
- COMPILE_FLAGS "-Wno-conversion -Wno-cast-qual"
- )
-endif ()
-
# Example include
target_include_directories(${PROJECT_NAME} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/src
@@ -40,3 +33,10 @@ target_include_directories(${PROJECT_NAME} PUBLIC
# Configure compilation flags and libraries for the example without RTOS.
# See the corresponding function in hw/bsp/FAMILY/family.cmake for details.
family_configure_host_example(${PROJECT_NAME} noos)
+
+# Suppress warnings on fatfs
+if (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
+ set_source_files_properties(${TOP}/lib/fatfs/source/ff.c PROPERTIES
+ COMPILE_OPTIONS "-Wno-conversion -Wno-cast-qual"
+ )
+endif ()
diff --git a/hw/bsp/family_support.cmake b/hw/bsp/family_support.cmake
index d69884407..cb8ec6cf8 100644
--- a/hw/bsp/family_support.cmake
+++ b/hw/bsp/family_support.cmake
@@ -378,32 +378,10 @@ function(family_add_rtos TARGET RTOS)
if (NOT TARGET FreeRTOS-Kernel)
set(FREERTOS_KERNEL_PATH ${TOP}/hw/mcu/raspberry_pi/FreeRTOS-Kernel)
set(FREERTOS_CONFIG_FILE_DIRECTORY ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/${FAMILY}/FreeRTOSConfig)
- if (PICO_PLATFORM STREQUAL "rp2040")
- set(FREERTOS_PORT_PATH ${FREERTOS_KERNEL_PATH}/portable/ThirdParty/GCC/RP2040)
- else()
- set(FREERTOS_PORT_PATH ${FREERTOS_KERNEL_PATH}/portable/ThirdParty/GCC/RP2350_ARM_NTZ)
- endif()
- include(${FREERTOS_PORT_PATH}/library.cmake)
+ # FreeRTOS_Kernel_import.cmake auto-selects RP2040/RP2350/RISC-V port based on PICO_PLATFORM
+ include(${FREERTOS_KERNEL_PATH}/portable/ThirdParty/GCC/RP2040/FreeRTOS_Kernel_import.cmake)
endif()
target_link_libraries(${TARGET} PUBLIC FreeRTOS-Kernel-Static)
-
- # Suppress warnings in FreeRTOS kernel port sources
- foreach(_ft IN ITEMS FreeRTOS-Kernel FreeRTOS-Kernel-Core FreeRTOS-Kernel-Static)
- get_target_property(_srcs ${_ft} INTERFACE_SOURCES)
- if (_srcs)
- set_source_files_properties(${_srcs} PROPERTIES COMPILE_OPTIONS "-w")
- endif()
- endforeach()
-
- # FreeRTOS headers use undefined macros in #if (triggers -Wundef/-Werror).
- # Convert all FreeRTOS include dirs to SYSTEM to suppress warnings.
- foreach(_ft IN ITEMS FreeRTOS-Kernel FreeRTOS-Kernel-Core)
- get_target_property(_incs ${_ft} INTERFACE_INCLUDE_DIRECTORIES)
- if (_incs)
- set_target_properties(${_ft} PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "")
- target_include_directories(${_ft} SYSTEM INTERFACE ${_incs})
- endif()
- endforeach()
else()
# All other families: use upstream FreeRTOS-Kernel with add_subdirectory
if (NOT TARGET freertos_config)
@@ -420,13 +398,6 @@ function(family_add_rtos TARGET RTOS)
target_link_libraries(${TARGET} PUBLIC freertos_kernel)
endif()
- # RP2040: remove CFG_TUSB_OS=OPT_OS_PICO from tinyusb_common_base to avoid redefinition
- if (FAMILY STREQUAL "rp2040" AND TARGET tinyusb_common_base)
- get_target_property(_defs tinyusb_common_base INTERFACE_COMPILE_DEFINITIONS)
- list(REMOVE_ITEM _defs "CFG_TUSB_OS=${TINYUSB_OPT_OS}")
- set_property(TARGET tinyusb_common_base PROPERTY INTERFACE_COMPILE_DEFINITIONS ${_defs})
- endif()
-
target_compile_definitions(${TARGET} PUBLIC CFG_TUSB_OS=OPT_OS_FREERTOS)
elseif (RTOS STREQUAL "threadx")
if (NOT TARGET threadx)
@@ -507,9 +478,10 @@ function(family_configure_common TARGET RTOS)
target_compile_definitions(${TARGET} PUBLIC LOGGER_UART)
endif ()
- # rp2040 family handles warnings and linker map in its own family_configure_example
if (FAMILY STREQUAL "rp2040")
- # skip - handled by rp2040_family_configure_example_warnings
+ # RP2040: apply warnings per-source-file (not per-target) since Pico SDK sources
+ # are INTERFACE and would not inherit target-level warnings correctly
+ family_add_default_example_warnings(${TARGET})
elseif (CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
target_compile_options(${TARGET} PRIVATE ${WARN_FLAGS_${CMAKE_C_COMPILER_ID}})
target_link_options(${TARGET} PUBLIC "LINKER:-Map=$<TARGET_FILE:${TARGET}>.map")
diff --git a/hw/bsp/rp2040/FreeRTOSConfig/FreeRTOSConfig.h b/hw/bsp/rp2040/FreeRTOSConfig/FreeRTOSConfig.h
new file mode 100644
index 000000000..fe030e6dc
--- /dev/null
+++ b/hw/bsp/rp2040/FreeRTOSConfig/FreeRTOSConfig.h
@@ -0,0 +1,144 @@
+/*
+ * FreeRTOS V202111.00
+ * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * http://www.FreeRTOS.org
+ * http://aws.amazon.com/freertos
+ *
+ * 1 tab == 4 spaces!
+ */
+
+#ifndef FREERTOS_CONFIG_H
+#define FREERTOS_CONFIG_H
+
+/* Scheduler Related */
+#define configUSE_PREEMPTION 1
+#define configUSE_TICKLESS_IDLE 0
+#define configUSE_IDLE_HOOK 0
+#define configUSE_TICK_HOOK 0
+#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )
+#define configMAX_PRIORITIES 5
+#define configMINIMAL_STACK_SIZE ( configSTACK_DEPTH_TYPE ) 128
+#define configUSE_16_BIT_TICKS 0
+#define configIDLE_SHOULD_YIELD 1
+
+/* Synchronization Related */
+#define configUSE_MUTEXES 1
+#define configUSE_RECURSIVE_MUTEXES 1
+#define configUSE_APPLICATION_TASK_TAG 0
+#define configUSE_COUNTING_SEMAPHORES 1
+#define configQUEUE_REGISTRY_SIZE 4
+#define configUSE_QUEUE_SETS 0
+#define configUSE_TIME_SLICING 0
+#define configUSE_NEWLIB_REENTRANT 0
+#define configENABLE_BACKWARD_COMPATIBILITY 1
+#define configNUM_THREAD_LOCAL_STORAGE_POINTERS 5
+
+/* System */
+#define configSTACK_DEPTH_TYPE uint32_t
+#define configMESSAGE_BUFFER_LENGTH_TYPE size_t
+
+/* Memory allocation related definitions. */
+#define configSUPPORT_STATIC_ALLOCATION 1
+#define configSUPPORT_DYNAMIC_ALLOCATION 0
+#define configTOTAL_HEAP_SIZE ( configSUPPORT_DYNAMIC_ALLOCATION * 4 * 1024 )
+#define configAPPLICATION_ALLOCATED_HEAP 0
+
+/* Hook function related definitions. */
+#define configCHECK_FOR_STACK_OVERFLOW 2
+#define configUSE_MALLOC_FAILED_HOOK 0
+#define configUSE_DAEMON_TASK_STARTUP_HOOK 0
+#define configCHECK_HANDLER_INSTALLATION 0
+
+/* Run time and task stats gathering related definitions. */
+#define configGENERATE_RUN_TIME_STATS 0
+#define configRECORD_STACK_HIGH_ADDRESS 1
+#define configUSE_TRACE_FACILITY 1
+#define configUSE_STATS_FORMATTING_FUNCTIONS 0
+
+/* Co-routine definitions. */
+#define configUSE_CO_ROUTINES 0
+#define configMAX_CO_ROUTINE_PRIORITIES 2
+
+/* Software timer related definitions. */
+#define configUSE_TIMERS 1
+#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 2 )
+#define configTIMER_QUEUE_LENGTH 32
+#define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE
+
+/* SMP port configuration (set by the RP2xxx SMP port of FreeRTOS) */
+#if FREE_RTOS_KERNEL_SMP
+#ifndef configNUMBER_OF_CORES
+#define configNUMBER_OF_CORES 1
+#endif
+#define configNUM_CORES configNUMBER_OF_CORES
+#define configTICK_CORE 0
+#define configRUN_MULTIPLE_PRIORITIES 1
+#if configNUMBER_OF_CORES > 1
+#define configUSE_CORE_AFFINITY 1
+#endif
+#define configUSE_PASSIVE_IDLE_HOOK 0
+#endif
+
+/* RP2040/RP2350 specific */
+#define configSUPPORT_PICO_SYNC_INTEROP 1
+#define configSUPPORT_PICO_TIME_INTEROP 1
+#define configUSE_DYNAMIC_EXCEPTION_HANDLERS 0
+
+/* Macros used in #if without #ifdef guards in port headers,
+ * must be explicitly defined to avoid -Wundef warnings. */
+#ifndef PICO_DIVIDER_DISABLE_INTERRUPTS
+#define PICO_DIVIDER_DISABLE_INTERRUPTS 0
+#endif
+#define portARMV8M_MINOR_VERSION 0
+
+#if defined(PICO_RP2350) && PICO_RP2350
+/* Cortex-M33 port configuration (RP2350). */
+#define configENABLE_MPU 0
+#define configENABLE_FPU 1
+#define configENABLE_MVE 0
+#define configENABLE_TRUSTZONE 0
+#define configRUN_FREERTOS_SECURE_ONLY 1
+#define configMAX_SYSCALL_INTERRUPT_PRIORITY 16
+#endif
+
+#include <assert.h>
+#define configASSERT(x) assert(x)
+
+/* Set the following definitions to 1 to include the API function, or zero
+to exclude the API function. */
+#define INCLUDE_vTaskPrioritySet 0
+#define INCLUDE_uxTaskPriorityGet 0
+#define INCLUDE_vTaskDelete 0
+#define INCLUDE_vTaskSuspend 1 // required for portMAX_DELAY
+#define INCLUDE_xResumeFromISR 0
+#define INCLUDE_vTaskDelayUntil 1
+#define INCLUDE_vTaskDelay 1
+#define INCLUDE_xTaskGetSchedulerState 0
+#define INCLUDE_xTaskGetCurrentTaskHandle 1
+#define INCLUDE_uxTaskGetStackHighWaterMark 0
+#define INCLUDE_xTaskGetIdleTaskHandle 0
+#define INCLUDE_xTimerGetTimerDaemonTaskHandle 0
+#define INCLUDE_pcTaskGetTaskName 0
+#define INCLUDE_eTaskGetState 0
+#define INCLUDE_xEventGroupSetBitFromISR 1
+#define INCLUDE_xTimerPendFunctionCall 1
+
+#endif /* FREERTOS_CONFIG_H */
diff --git a/hw/bsp/rp2040/family.cmake b/hw/bsp/rp2040/family.cmake
index f125caafe..1e49c7194 100644
--- a/hw/bsp/rp2040/family.cmake
+++ b/hw/bsp/rp2040/family.cmake
@@ -194,41 +194,27 @@ endif()
# Functions
#------------------------------------
function(family_add_default_example_warnings TARGET)
+ if (DEFINED PICO_TINYUSB_NO_EXAMPLE_WARNINGS)
+ return()
+ endif ()
+
# Apply warnings to all TinyUSB interface library sources as well as examples sources
# we cannot set compile options for target since it will not propagate to INTERFACE sources then picosdk files
+ get_target_property(EXAMPLE_SOURCES ${TARGET} SOURCES)
+ set_source_files_properties(${EXAMPLE_SOURCES} PROPERTIES COMPILE_OPTIONS "${WARN_FLAGS_${CMAKE_C_COMPILER_ID}}")
+
foreach(TINYUSB_TARGET IN ITEMS tinyusb_common_base tinyusb_device_base tinyusb_host_base tinyusb_host_max3421 tinyusb_bsp)
get_target_property(TINYUSB_SOURCES ${TINYUSB_TARGET} INTERFACE_SOURCES)
set_source_files_properties(${TINYUSB_SOURCES} PROPERTIES COMPILE_OPTIONS "${WARN_FLAGS_${CMAKE_C_COMPILER_ID}}")
- endforeach()
-
- # Also apply to example sources, but filter out any source files from lib/ (e.g. fatfs)
- get_target_property(EXAMPLE_SOURCES ${TARGET} SOURCES)
- set(FILTERED_SOURCES "")
- foreach(SOURCE_FILE IN LISTS EXAMPLE_SOURCES)
- string(FIND "${SOURCE_FILE}" "${TOP}/lib" FOUND_POS)
- if(FOUND_POS EQUAL -1)
- list(APPEND FILTERED_SOURCES ${SOURCE_FILE})
- endif()
- endforeach()
- set_source_files_properties(${FILTERED_SOURCES} PROPERTIES COMPILE_OPTIONS "${WARN_FLAGS_${CMAKE_C_COMPILER_ID}}")
+ endforeach()
if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 12.0 AND NO_WARN_RWX_SEGMENTS_SUPPORTED)
target_link_options(${TARGET} PRIVATE "LINKER:--no-warn-rwx-segments")
endif()
-
- if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 10.0)
- target_compile_options(${TARGET} PRIVATE -Wconversion)
- endif()
-
- if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 8.0)
- target_compile_options(${TARGET} PRIVATE -Wcast-function-type -Wstrict-overflow)
- endif()
-
- if (CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 6.0)
- target_compile_options(${TARGET} PRIVATE -Wno-strict-aliasing)
- endif()
- endif()
+ elseif (CMAKE_C_COMPILER_ID STREQUAL "Clang")
+ target_compile_options(${TARGET} PRIVATE -Wno-unreachable-code)
+ endif ()
endfunction()
function(family_add_board BOARD_TARGET)
@@ -239,16 +225,21 @@ endfunction()
function(family_configure_example TARGET RTOS)
# Set OS per-target: FreeRTOS or Pico SDK
if (NOT DEFINED RTOS)
- set(RTOS noos CACHE STRING "RTOS")
+ set(RTOS noos)
endif ()
- family_configure_common(${TARGET} ${RTOS})
-
# Set OS for non-RTOS targets (RTOS targets get it from family_add_rtos)
- if (NOT RTOS STREQUAL "freertos")
+ if (RTOS STREQUAL noos)
target_compile_definitions(${TARGET} PUBLIC CFG_TUSB_OS=${TINYUSB_OPT_OS})
+ else ()
+ # remove CFG_TUSB_OS=OPT_OS_PICO from tinyusb_common_base to avoid redefinition
+ # NOTE: cannot remove it from interface declaration as pico-sdk use that
+ get_target_property(_defs tinyusb_common_base INTERFACE_COMPILE_DEFINITIONS)
+ list(REMOVE_ITEM _defs "CFG_TUSB_OS=${TINYUSB_OPT_OS}")
+ set_property(TARGET tinyusb_common_base PROPERTY INTERFACE_COMPILE_DEFINITIONS ${_defs})
endif()
+ family_configure_common(${TARGET} ${RTOS})
pico_add_extra_outputs(${TARGET})
pico_enable_stdio_uart(${TARGET} 1)
@@ -260,21 +251,9 @@ function(family_configure_example TARGET RTOS)
endfunction()
-function(rp2040_family_configure_example_warnings TARGET)
- if (NOT PICO_TINYUSB_NO_EXAMPLE_WARNINGS)
- family_add_default_example_warnings(${TARGET})
- endif()
- if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
- target_compile_options(${TARGET} PRIVATE -Wno-unreachable-code)
- endif()
- suppress_tinyusb_warnings()
-endfunction()
-
-
function(family_configure_device_example TARGET RTOS)
family_configure_example(${TARGET} ${RTOS})
target_link_libraries(${TARGET} PUBLIC pico_stdlib tinyusb_device)
- rp2040_family_configure_example_warnings(${TARGET})
endfunction()
@@ -296,7 +275,6 @@ endfunction()
function(family_configure_host_example TARGET RTOS)
family_configure_example(${TARGET} ${RTOS})
target_link_libraries(${TARGET} PUBLIC pico_stdlib tinyusb_host)
- rp2040_family_configure_example_warnings(${TARGET})
# For rp2040 enable pico-pio-usb
if (TARGET tinyusb_pico_pio_usb)
@@ -317,8 +295,7 @@ endfunction()
function(family_configure_dual_usb_example TARGET RTOS)
family_configure_example(${TARGET} ${RTOS})
# require tinyusb_pico_pio_usb
- target_link_libraries(${TARGET} PUBLIC pico_stdlib tinyusb_device tinyusb_host tinyusb_pico_pio_usb )
- rp2040_family_configure_example_warnings(${TARGET})
+ target_link_libraries(${TARGET} PUBLIC pico_stdlib tinyusb_device tinyusb_host tinyusb_pico_pio_usb)
endfunction()
@@ -329,7 +306,6 @@ function(check_and_add_pico_pio_usb_support)
#------------------------------------
# PIO USB for both host and device
#------------------------------------
-
if (NOT DEFINED PICO_PIO_USB_PATH)
set(PICO_PIO_USB_PATH "${TOP}/hw/mcu/raspberry_pi/Pico-PIO-USB")
endif()
@@ -385,54 +361,3 @@ function(family_initialize_project PROJECT DIR)
# now re-check for adding Pico-PIO_USB support now SDK is definitely available
check_and_add_pico_pio_usb_support()
endfunction()
-
-
-# This method must be called from the project scope to suppress known warnings in TinyUSB source files
-function(suppress_tinyusb_warnings)
- # some of these are pretty silly warnings only occurring in some older GCC versions 9 or prior
- if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
- if (CMAKE_C_COMPILER_VERSION VERSION_LESS 10.0)
- set(CONVERSION_WARNING_FILES
- ${PICO_TINYUSB_PATH}/src/tusb.c
- ${PICO_TINYUSB_PATH}/src/common/tusb_fifo.c
- ${PICO_TINYUSB_PATH}/src/device/usbd.c
- ${PICO_TINYUSB_PATH}/src/device/usbd_control.c
- ${PICO_TINYUSB_PATH}/src/host/usbh.c
- ${PICO_TINYUSB_PATH}/src/class/cdc/cdc_device.c
- ${PICO_TINYUSB_PATH}/src/class/cdc/cdc_host.c
- ${PICO_TINYUSB_PATH}/src/class/hid/hid_device.c
- ${PICO_TINYUSB_PATH}/src/class/hid/hid_host.c
- ${PICO_TINYUSB_PATH}/src/class/audio/audio_device.c
- ${PICO_TINYUSB_PATH}/src/class/dfu/dfu_device.c
- ${PICO_TINYUSB_PATH}/src/class/dfu/dfu_rt_device.c
- ${PICO_TINYUSB_PATH}/src/class/midi/midi_device.c
- ${PICO_TINYUSB_PATH}/src/class/usbtmc/usbtmc_device.c
- ${PICO_TINYUSB_PATH}/src/portable/raspberrypi/rp2040/hcd_rp2040.c
- )
- foreach(SOURCE_FILE IN LISTS CONVERSION_WARNING_FILES)
- set_source_files_properties(${SOURCE_FILE} PROPERTIES COMPILE_FLAGS "-Wno-conversion")
- endforeach()
- endif()
-
- if (TARGET tinyusb_pico_pio_usb)
- set_source_files_properties(
- ${PICO_TINYUSB_PATH}/hw/mcu/raspberry_pi/Pico-PIO-USB/src/pio_usb_device.c
- ${PICO_TINYUSB_PATH}/hw/mcu/raspberry_pi/Pico-PIO-USB/src/pio_usb.c
- ${PICO_TINYUSB_PATH}/hw/mcu/raspberry_pi/Pico-PIO-USB/src/pio_usb_host.c
- ${PICO_TINYUSB_PATH}/src/portable/raspberrypi/pio_usb/hcd_pio_usb.c
- PROPERTIES
- COMPILE_FLAGS "-Wno-conversion -Wno-cast-qual -Wno-attributes")
- endif()
- elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang")
- set_source_files_properties(
- ${PICO_TINYUSB_PATH}/src/class/cdc/cdc_device.c
- COMPILE_FLAGS "-Wno-unreachable-code")
- set_source_files_properties(
- ${PICO_TINYUSB_PATH}/src/class/cdc/cdc_host.c
- COMPILE_FLAGS "-Wno-unreachable-code-fallthrough")
- set_source_files_properties(
- ${PICO_TINYUSB_PATH}/lib/fatfs/source/ff.c
- PROPERTIES
- COMPILE_FLAGS "-Wno-cast-qual")
- endif()
-endfunction()