cmake_minimum_required(VERSION 3.13) # 1. ボードとSDKの初期化 set(PICO_BOARD pico CACHE STRING "Board type" FORCE) include(pico_sdk_import.cmake) project(pico_freertos_lcd_project C CXX ASM) pico_sdk_init() # 2. FreeRTOSのパス設定 set(FreeRTOS_KERNEL_PATH ${CMAKE_CURRENT_SOURCE_DIR}/FreeRTOS-Kernel) # 3. ソースファイルリスト set(FREERTOS_SRC ${FreeRTOS_KERNEL_PATH}/tasks.c ${FreeRTOS_KERNEL_PATH}/list.c ${FreeRTOS_KERNEL_PATH}/queue.c ${FreeRTOS_KERNEL_PATH}/timers.c ${FreeRTOS_KERNEL_PATH}/portable/ThirdParty/GCC/RP2040/port.c ${FreeRTOS_KERNEL_PATH}/portable/MemMang/heap_4.c ) # 4. 実行ファイルの定義 add_executable(sample02 main.cpp lcd1602.cpp ${FREERTOS_SRC} ) # 5. インクルードパス設定 target_include_directories(sample02 BEFORE PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ) target_include_directories(sample02 PRIVATE ${FreeRTOS_KERNEL_PATH}/include ${FreeRTOS_KERNEL_PATH}/portable/ThirdParty/GCC/RP2040/include ) # 6. コンパイルフラグと定義 # port.c 内で SIO 構造体を使えるように PICO_RP2040 を定義し、 # SDKのヘッダーを強制的にインクルードさせます target_compile_definitions(sample02 PRIVATE PICO_ON_DEVICE=1 PICO_RP2040=1 ) # 7. リンクライブラリの設定 # エラーの原因になった hardware_sio を削除し、標準的な構成に戻します target_link_libraries(sample02 pico_stdlib pico_multicore hardware_uart hardware_gpio hardware_i2c hardware_timer hardware_exception hardware_irq hardware_clocks hardware_sync hardware_base ) # 8. 出力設定 pico_enable_stdio_usb(sample02 1) pico_enable_stdio_uart(sample02 1) pico_add_extra_outputs(sample02)