53 lines
1.8 KiB
CMake
53 lines
1.8 KiB
CMake
|
|
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)
|
||
|
|
|