C
Qt Quick Ultralite freertos_app_switch 示例
cmake_minimum_required (VERSION 3.21.1) project(freertos_app_switch VERSION 0.0.1 LANGUAGES C CXX ASM) if (NOT TARGET Qul::Core) find_package(Qul) endif() if(QUL_PLATFORM STREQUAL "qt" OR QUL_PLATFORM STREQUAL "example-baremetal") message(STATUS "Skipping freertos_app_switch.") elseif(NOT QUL_OS STREQUAL "FreeRTOS") message(STATUS "Operating system is not FreeRTOS. Skipping freertos_app_switch.") else() add_library(app_switch_freertos_kernel STATIC) target_link_libraries(app_switch_freertos_kernel PRIVATE Qul::PlatformArchitecture Qul::PlatformBSPConfig ) # Enforce symbols to be put in the binary, otherwise LTO will strip them if(NOT IAR) target_link_libraries(app_switch_freertos_kernel PRIVATE -Wl,-u,vTaskSwitchContext) endif() target_include_directories(app_switch_freertos_kernel PUBLIC ${QUL_PLATFORM_TARGET_DIR}) if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/freertos/${QUL_PLATFORM}/freertos.cmake) include(${CMAKE_CURRENT_LIST_DIR}/freertos/${QUL_PLATFORM}/freertos.cmake) endif() target_compile_definitions(app_switch_freertos_kernel PRIVATE USE_FreeRTOS_HEAP_4) # Add common sources target_sources(app_switch_freertos_kernel PRIVATE ${FREERTOS_DIR}/portable/MemMang/heap_4.c ) endif() if(TARGET app_switch_freertos_kernel) # FreeRTOS support implemented for this platform qul_add_target(freertos_app_switch src/main.cpp src/devcontrol.cpp QML_PROJECT mcu_freertos_app_switch.qmlproject ) target_link_libraries(freertos_app_switch PRIVATE Qul::PlatformBSPConfig app_switch_freertos_kernel ) include(src/${QUL_PLATFORM}/board.cmake) endif()