# Generated Cmake Pico project file cmake_minimum_required(VERSION 3.13) set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD 17) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # Initialise pico_sdk from installed location # (note this can come from environment, CMake cache etc) # == DO NOT EDIT THE FOLLOWING LINES for the Raspberry Pi Pico VS Code Extension to work == if(WIN32) set(USERHOME $ENV{USERPROFILE}) else() set(USERHOME $ENV{HOME}) endif() set(sdkVersion 2.3.1) set(toolchainVersion 15_2_Rel1) set(picotoolVersion 2.3.1) set(picoVscode ${USERHOME}/.pico-sdk/cmake/pico-vscode.cmake) if (EXISTS ${picoVscode}) include(${picoVscode}) endif() # ==================================================================================== set(PICO_BOARD pico2 CACHE STRING "Board type") # Pull in Raspberry Pi Pico SDK (must be before project) include(pico_sdk_import.cmake) project(tinykernel C CXX ASM) # Initialise the Raspberry Pi Pico SDK pico_sdk_init() # Tinykernel: minimal preemptive task scheduler (Cortex-M33 / RP2350) add_library(tinykernel_lib STATIC src/scheduler.cpp src/port/m33/port_m33.c src/port/m33/context.S ) target_include_directories(tinykernel_lib PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include ) target_link_libraries(tinykernel_lib PUBLIC pico_stdlib) # Add executable. Default name is the project name, version 0.1 add_executable(tinykernel main.cpp ) pico_set_program_name(tinykernel "tinykernel") pico_set_program_version(tinykernel "0.1") # Modify the below lines to enable/disable output over UART/USB pico_enable_stdio_uart(tinykernel 1) pico_enable_stdio_usb(tinykernel 0) # Add the standard library to the build target_link_libraries(tinykernel pico_stdlib tinykernel_lib) # Add the standard include files to the build target_include_directories(tinykernel PRIVATE ${CMAKE_CURRENT_LIST_DIR} ) pico_add_extra_outputs(tinykernel)