From 959a94b98d020ee2f6a05e36be56c1618dd6ed78 Mon Sep 17 00:00:00 2001 From: hathach Date: Sun, 24 Jan 2021 00:44:17 +0700 Subject: [PATCH] rp2040 audio_test compile --- examples/device/audio_test/CMakeLists.txt | 35 ++++++++++++++++++++ examples/device/audio_test/src/tusb_config.h | 2 ++ examples/device/board_test/CMakeLists.txt | 17 +++++++--- examples/device/cdc_msc/CMakeLists.txt | 21 ++++++++---- hw/bsp/rp2040/family.cmake | 15 --------- tools/build_family.py | 6 ++++ 6 files changed, 71 insertions(+), 25 deletions(-) create mode 100644 examples/device/audio_test/CMakeLists.txt diff --git a/examples/device/audio_test/CMakeLists.txt b/examples/device/audio_test/CMakeLists.txt new file mode 100644 index 000000000..a1dc14b0a --- /dev/null +++ b/examples/device/audio_test/CMakeLists.txt @@ -0,0 +1,35 @@ +# use directory name for project id +get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME) + +# TOP is absolute path to root directory of TinyUSB git repo +set(TOP "../../..") +get_filename_component(TOP "${TOP}" REALPATH) + +# Check for -DFAMILY= +if(FAMILY STREQUAL "rp2040") + cmake_minimum_required(VERSION 3.12) + set(PICO_SDK_PATH ${TOP}/hw/mcu/raspberrypi/pico-sdk) + include(${PICO_SDK_PATH}/pico_sdk_init.cmake) + project(${PROJECT}) + pico_sdk_init() + add_executable(${PROJECT}) + + include(${TOP}/hw/bsp/${FAMILY}/family.cmake) + + # Example source + target_sources(${PROJECT} PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/src/main.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/usb_descriptors.c + ) + + # Example include + target_include_directories(${PROJECT} PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/src + ) + + target_link_libraries(${PROJECT} pico_stdlib) + pico_add_extra_outputs(${PROJECT}) + +else() + message(FATAL_ERROR "Invalid FAMILY specified") +endif() diff --git a/examples/device/audio_test/src/tusb_config.h b/examples/device/audio_test/src/tusb_config.h index 5d94858ea..61e63f073 100644 --- a/examples/device/audio_test/src/tusb_config.h +++ b/examples/device/audio_test/src/tusb_config.h @@ -45,7 +45,9 @@ extern "C" { #define CFG_TUSB_RHPORT0_MODE OPT_MODE_DEVICE #endif +#ifndef CFG_TUSB_OS #define CFG_TUSB_OS OPT_OS_NONE +#endif #ifndef CFG_TUSB_DEBUG #define CFG_TUSB_DEBUG 0 diff --git a/examples/device/board_test/CMakeLists.txt b/examples/device/board_test/CMakeLists.txt index e8cab1656..c405c2eae 100644 --- a/examples/device/board_test/CMakeLists.txt +++ b/examples/device/board_test/CMakeLists.txt @@ -1,5 +1,3 @@ -cmake_minimum_required(VERSION 3.5) - # use directory name for project id get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME) @@ -9,22 +7,33 @@ get_filename_component(TOP "${TOP}" REALPATH) # Check for -DFAMILY= if(FAMILY STREQUAL "esp32s2") + cmake_minimum_required(VERSION 3.5) include(${TOP}/hw/bsp/${FAMILY}/family.cmake) project(${PROJECT}) elseif(FAMILY STREQUAL "rp2040") + cmake_minimum_required(VERSION 3.12) + set(PICO_SDK_PATH ${TOP}/hw/mcu/raspberrypi/pico-sdk) + include(${PICO_SDK_PATH}/pico_sdk_init.cmake) + project(${PROJECT}) + pico_sdk_init() + add_executable(${PROJECT}) + include(${TOP}/hw/bsp/${FAMILY}/family.cmake) # Example source target_sources(${PROJECT} PUBLIC - src/main.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/main.c ) # Example include target_include_directories(${PROJECT} PUBLIC - src + ${CMAKE_CURRENT_SOURCE_DIR}/src ) + target_link_libraries(${PROJECT} pico_stdlib) + pico_add_extra_outputs(${PROJECT}) + else() message(FATAL_ERROR "Invalid FAMILY specified") endif() diff --git a/examples/device/cdc_msc/CMakeLists.txt b/examples/device/cdc_msc/CMakeLists.txt index 0dc9c58e5..a8be05ad0 100644 --- a/examples/device/cdc_msc/CMakeLists.txt +++ b/examples/device/cdc_msc/CMakeLists.txt @@ -1,5 +1,3 @@ -cmake_minimum_required(VERSION 3.5) - # use directory name for project id get_filename_component(PROJECT ${CMAKE_CURRENT_SOURCE_DIR} NAME) @@ -9,24 +7,35 @@ get_filename_component(TOP "${TOP}" REALPATH) # Check for -DFAMILY= if(FAMILY STREQUAL "esp32s2") + cmake_minimum_required(VERSION 3.5) include(${TOP}/hw/bsp/${FAMILY}/family.cmake) project(${PROJECT}) elseif(FAMILY STREQUAL "rp2040") + cmake_minimum_required(VERSION 3.12) + set(PICO_SDK_PATH ${TOP}/hw/mcu/raspberrypi/pico-sdk) + include(${PICO_SDK_PATH}/pico_sdk_init.cmake) + project(${PROJECT}) + pico_sdk_init() + add_executable(${PROJECT}) + include(${TOP}/hw/bsp/${FAMILY}/family.cmake) # Example source target_sources(${PROJECT} PUBLIC - src/main.c - src/msc_disk.c - src/usb_descriptors.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/main.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/msc_disk.c + ${CMAKE_CURRENT_SOURCE_DIR}/src/usb_descriptors.c ) # Example include target_include_directories(${PROJECT} PUBLIC - src + ${CMAKE_CURRENT_SOURCE_DIR}/src ) + target_link_libraries(${PROJECT} pico_stdlib) + pico_add_extra_outputs(${PROJECT}) + else() message(FATAL_ERROR "Invalid FAMILY specified") endif() diff --git a/hw/bsp/rp2040/family.cmake b/hw/bsp/rp2040/family.cmake index ef6c9f41f..dd0123ded 100644 --- a/hw/bsp/rp2040/family.cmake +++ b/hw/bsp/rp2040/family.cmake @@ -1,14 +1,3 @@ -cmake_minimum_required(VERSION 3.12) - -set(PICO_SDK_PATH ${TOP}/hw/mcu/raspberrypi/pico-sdk) -include(${PICO_SDK_PATH}/pico_sdk_init.cmake) - -project(${PROJECT}) - -pico_sdk_init() - -add_executable(${PROJECT}) - # TinyUSB Stack source set(SRC_TINYUSB ${TOP}/src/tusb.c @@ -43,7 +32,3 @@ target_compile_definitions(${PROJECT} PUBLIC CFG_TUSB_MCU=OPT_MCU_RP2040 CFG_TUSB_OS=OPT_OS_PICO ) - -target_link_libraries(${PROJECT} pico_stdlib) - -pico_add_extra_outputs(${PROJECT}) diff --git a/tools/build_family.py b/tools/build_family.py index 7f2c1a706..eb0ef9d82 100644 --- a/tools/build_family.py +++ b/tools/build_family.py @@ -95,7 +95,13 @@ def build_size(example, board): def skip_example(example, board): ex_dir = 'examples/' + example + + # family.mk board_mk = 'hw/bsp/{}/family.mk'.format(family) + + # family.cmake + if not os.path.exists(board_mk): + board_mk = 'hw/bsp/{}/family.cmake'.format(family) with open(board_mk) as mk: mk_contents = mk.read()