# Generated Cmake Pico project file # Сгенерированный файл проекта CMake для Pico cmake_minimum_required(VERSION 3.13) # Set standard versions for C and C++ # Установка стандартов языков C и C++ set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD 17) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # Initialise pico_sdk from installed location # Инициализация pico_sdk из установленного местоположения # (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 == # == НЕ РЕДАКТИРУЙТЕ СЛЕДУЮЩИЕ СТРОКИ для корректной работы расширения VS Code для Raspberry Pi Pico == 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() # ==================================================================================== # Define the target board as Pico 2 (RP2350) # Определение целевой платы как Pico 2 (RP2350) set(PICO_BOARD pico2 CACHE STRING "Board type") # Path to the FreeRTOS Kernel sources # Путь к исходным кодам ядра FreeRTOS set(PICO_FREERTOS "${CMAKE_CURRENT_LIST_DIR}/freertos_sources/FreeRTOS-Kernel") message(STATUS "FreeRTOS Path: ${PICO_FREERTOS}") message(STATUS "Путь к FreeRTOS: ${PICO_FREERTOS}") # Pull in Raspberry Pi Pico SDK (must be before project) # Подключение Raspberry Pi Pico SDK (должно быть выполнено до определения проекта) include(pico_sdk_import.cmake) project(rtos_sample C CXX ASM) # Disable standard Pico SDK C++ operator overrides to avoid conflicts with FreeRTOS heap management # Отключаем стандартные переопределения операторов C++ в Pico SDK, чтобы избежать конфликтов с управлением кучей FreeRTOS # For Pico SDK 2.x+ the target pico_cxx_options is used # Для Pico SDK 2.x+ используется таргет pico_cxx_options add_compile_definitions(PICO_CXX_ENABLE_NEW_DELETE_OVERRIDES=0) # Initialise the Raspberry Pi Pico SDK # Инициализация Raspberry Pi Pico SDK pico_sdk_init() # Configure FreeRTOS Kernel paths and configuration file location # Настройка путей ядра FreeRTOS и расположения файла конфигурации SET(FREERTOS_KERNEL_PATH "${PICO_FREERTOS}" CACHE STRING "MyFreeRTOStutorial") SET(FREERTOS_CONFIG_FILE_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/port/FreeRTOS-Kernel" CACHE STRING "Local Config") # Include FreeRTOS configuration and kernel import scripts # Подключение конфигурации FreeRTOS и скриптов импорта ядра include("${FREERTOS_CONFIG_FILE_DIRECTORY}/freertos_config.cmake") include(FreeRTOS_Kernel_import.cmake) # Add the main executable # Добавление основного исполняемого файла add_executable(rtos_sample rtos_sample.cpp ) # Set program name and version for the binary # Установка имени и версии программы для бинарного файла pico_set_program_name(rtos_sample "rtos_sample") pico_set_program_version(rtos_sample "0.1") # Configure standard I/O: Disable UART, Enable USB # Настройка стандартного ввода-вывода: Отключить UART, Включить USB pico_enable_stdio_uart(rtos_sample 0) pico_enable_stdio_usb(rtos_sample 1) # Link required libraries: FreeRTOS Kernel (Heap 4), config, and Pico stdlib # Привязка необходимых библиотек: Ядро FreeRTOS (Heap 4), конфигурация и стандартная библиотека Pico target_link_libraries(rtos_sample FreeRTOS-Kernel-Heap4 freertos_config pico_stdlib) # EXPLICITLY tell Pico SDK not to use its own new_delete.cpp # ЯВНО ГОВОРИМ PICO SDK НЕ ИСПОЛЬЗОВАТЬ СВОЙ new_delete.cpp # This line must come AFTER pico_sdk_init() # Эта строка должна идти ПОСЛЕ pico_sdk_init() set_target_properties(pico_cxx_options PROPERTIES PICO_CXX_ENABLE_NEW_DELETE_OVERRIDES 0) # Allow multiple definitions (linker will take the first one found) # Разрешает множественные определения (линкер возьмет первую попавшуюся функцию) target_link_options(rtos_sample PRIVATE "-Wl,--allow-multiple-definition") # Add project root to include directories # Добавление корня проекта в директории поиска заголовочных файлов target_include_directories(rtos_sample PRIVATE ${CMAKE_CURRENT_LIST_DIR} ) # Generate extra output files (e.g., .bin, .hex) # Генерация дополнительных выходных файлов (например, .bin, .hex) pico_add_extra_outputs(rtos_sample)