library.cmake 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. # Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
  2. #
  3. # SPDX-License-Identifier: BSD-3-Clause
  4. # Called after the Raspberry Pi Pico SDK has been initialized to add our libraries
  5. add_library(FreeRTOS-Kernel-Core INTERFACE)
  6. target_sources(FreeRTOS-Kernel-Core INTERFACE
  7. ${FREERTOS_KERNEL_PATH}/croutine.c
  8. ${FREERTOS_KERNEL_PATH}/event_groups.c
  9. ${FREERTOS_KERNEL_PATH}/list.c
  10. ${FREERTOS_KERNEL_PATH}/queue.c
  11. ${FREERTOS_KERNEL_PATH}/stream_buffer.c
  12. ${FREERTOS_KERNEL_PATH}/tasks.c
  13. ${FREERTOS_KERNEL_PATH}/timers.c
  14. )
  15. target_include_directories(FreeRTOS-Kernel-Core INTERFACE ${FREERTOS_KERNEL_PATH}/include)
  16. if (PICO_SDK_VERSION_STRING VERSION_GREATER_EQUAL "1.3.2")
  17. target_compile_definitions(FreeRTOS-Kernel-Core INTERFACE
  18. PICO_CONFIG_RTOS_ADAPTER_HEADER=${CMAKE_CURRENT_LIST_DIR}/include/freertos_sdk_config.h)
  19. endif()
  20. add_library(FreeRTOS-Kernel INTERFACE)
  21. target_sources(FreeRTOS-Kernel INTERFACE
  22. ${CMAKE_CURRENT_LIST_DIR}/port.c
  23. )
  24. target_include_directories(FreeRTOS-Kernel INTERFACE
  25. ${CMAKE_CURRENT_LIST_DIR}/include
  26. ${FREERTOS_CONFIG_FILE_DIRECTORY})
  27. target_link_libraries(FreeRTOS-Kernel INTERFACE
  28. FreeRTOS-Kernel-Core
  29. pico_base_headers
  30. hardware_clocks
  31. hardware_exception
  32. pico_multicore
  33. )
  34. target_compile_definitions(FreeRTOS-Kernel INTERFACE
  35. LIB_FREERTOS_KERNEL=1
  36. FREE_RTOS_KERNEL_SMP=1
  37. )
  38. add_library(FreeRTOS-Kernel-Static INTERFACE)
  39. target_compile_definitions(FreeRTOS-Kernel-Static INTERFACE
  40. configSUPPORT_STATIC_ALLOCATION=1
  41. configKERNEL_PROVIDED_STATIC_MEMORY=1
  42. )
  43. target_link_libraries(FreeRTOS-Kernel-Static INTERFACE FreeRTOS-Kernel)
  44. add_library(FreeRTOS-Kernel-Heap1 INTERFACE)
  45. target_sources(FreeRTOS-Kernel-Heap1 INTERFACE ${FREERTOS_KERNEL_PATH}/portable/MemMang/heap_1.c)
  46. target_link_libraries(FreeRTOS-Kernel-Heap1 INTERFACE FreeRTOS-Kernel)
  47. add_library(FreeRTOS-Kernel-Heap2 INTERFACE)
  48. target_sources(FreeRTOS-Kernel-Heap2 INTERFACE ${FREERTOS_KERNEL_PATH}/portable/MemMang/heap_2.c)
  49. target_link_libraries(FreeRTOS-Kernel-Heap2 INTERFACE FreeRTOS-Kernel)
  50. add_library(FreeRTOS-Kernel-Heap3 INTERFACE)
  51. target_sources(FreeRTOS-Kernel-Heap3 INTERFACE ${FREERTOS_KERNEL_PATH}/portable/MemMang/heap_3.c)
  52. target_link_libraries(FreeRTOS-Kernel-Heap3 INTERFACE FreeRTOS-Kernel)
  53. add_library(FreeRTOS-Kernel-Heap4 INTERFACE)
  54. target_sources(FreeRTOS-Kernel-Heap4 INTERFACE ${FREERTOS_KERNEL_PATH}/portable/MemMang/heap_4.c)
  55. target_link_libraries(FreeRTOS-Kernel-Heap4 INTERFACE FreeRTOS-Kernel)
  56. add_library(FreeRTOS-Kernel-Heap5 INTERFACE)
  57. target_sources(FreeRTOS-Kernel-Heap5 INTERFACE ${FREERTOS_KERNEL_PATH}/portable/MemMang/heap_5.c)
  58. target_link_libraries(FreeRTOS-Kernel-Heap5 INTERFACE FreeRTOS-Kernel)