cmake_minimum_required(VERSION 3.13) if(NOT DEFINED LIB_ROOT) set(LIB_ROOT ${CMAKE_SOURCE_DIR}/../..) endif(NOT DEFINED LIB_ROOT) set(PICO_SDK_PATH ${LIB_ROOT}/submodules/pico-sdk/) include( ${LIB_ROOT}/submodules/pico-sdk/external/pico_sdk_import.cmake) # Pull in FreeRTOS include(${LIB_ROOT}/submodules/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2040/FreeRTOS_Kernel_import.cmake) set(PICOTOOL_FETCH_FROM_GIT_PATH ${LIB_ROOT}/submodules/picotool/) # Include the Pico SDK (make sure to use the correct path to pico_sdk_import.cmake) include(FetchContent) # Define the project set(PROJECT ex6_reboot_to_bootloader) project(${PROJECT} C CXX ASM) # Initialize the Pico SDK pico_sdk_init() include_directories( ${LIB_ROOT}/submodules/pico-sdk/src/rp2040/hardware_structs/include/ ${LIB_ROOT}/submodules/FreeRTOS-Kernel/include/ ${LIB_ROOT}/submodules/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2040/include/ include/ ${LIB_ROOT}/submodules/pico-sdk/src/rp2_common/hardware_exception/include/ ${LIB_ROOT}/submodules/pico-sdk/src/rp2_common/pico_multicore/include/ ) # Create the executable add_executable(${PROJECT} main.c ${LIB_ROOT}/submodules/FreeRTOS-Kernel/tasks.c ${LIB_ROOT}/submodules/FreeRTOS-Kernel/queue.c ${LIB_ROOT}/submodules/FreeRTOS-Kernel/list.c ${LIB_ROOT}/submodules/FreeRTOS-Kernel/portable/ThirdParty/GCC/RP2040/port.c ${LIB_ROOT}/submodules/FreeRTOS-Kernel/portable/MemMang/heap_3.c ${LIB_ROOT}/submodules/FreeRTOS-Kernel/event_groups.c ${LIB_ROOT}/submodules/FreeRTOS-Kernel/timers.c ${LIB_ROOT}/submodules/pico-sdk/src/rp2_common/hardware_exception/exception.c ) # Link against FreeRTOS, Pico SDK, and freertos_config target_link_libraries(${PROJECT} pico_stdlib) pico_add_extra_outputs(${PROJECT}) pico_enable_stdio_usb( ${PROJECT} 1) pico_enable_stdio_uart(${PROJECT} 0)