CMakeLists.txt 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. cmake_minimum_required(VERSION 3.13)
  2. set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/stm32_gcc.cmake)
  3. if(NOT TEST_FAMILIES)
  4. set(TEST_FAMILIES F0 F1 F2 F3 F4 F7 G0 G4 H7 L0 L1 L4 L5)
  5. endif()
  6. project(cmsis-test C ASM)
  7. if(FETCH_ST_SOURCES)
  8. stm32_fetch_cmsis(${TEST_FAMILIES})
  9. endif()
  10. find_package(CMSIS REQUIRED)
  11. set(SOURCES main.c)
  12. include(stm32/devices)
  13. foreach(FAMILY ${TEST_FAMILIES})
  14. stm32_get_devices_by_family(DEVICES FAMILY ${FAMILY})
  15. stm32_get_cores(CORES FAMILY ${FAMILY})
  16. foreach(DEVICE ${DEVICES})
  17. stm32_get_chip_type(${FAMILY} ${DEVICE} TYPE)
  18. if(NOT CORES)
  19. stm32_get_memory_info(FAMILY ${FAMILY} DEVICE ${DEVICE} FLASH SIZE FLASH_SIZE)
  20. stm32_get_memory_info(FAMILY ${FAMILY} DEVICE ${DEVICE} RAM SIZE RAM_SIZE)
  21. message(STATUS "STM32${DEVICE}: ${FAMILY} family, type ${TYPE}, ${FLASH_SIZE} flash, ${RAM_SIZE} RAM")
  22. add_executable(cmsis-test-${DEVICE} ${SOURCES})
  23. target_link_libraries(cmsis-test-${DEVICE} CMSIS::STM32::${DEVICE} STM32::NoSys)
  24. else()
  25. stm32_get_cores(CORES FAMILY ${FAMILY} DEVICE ${DEVICE})
  26. foreach(CORE ${DEV_CORES})
  27. stm32_get_memory_info(FAMILY ${FAMILY} DEVICE ${DEVICE} CORE ${CORE} FLASH SIZE FLASH_SIZE)
  28. stm32_get_memory_info(FAMILY ${FAMILY} DEVICE ${DEVICE} CORE ${CORE} RAM SIZE RAM_SIZE)
  29. message(STATUS "STM32${DEVICE}: ${FAMILY} family, type ${TYPE}, core ${CORE}, ${FLASH_SIZE} flash, ${RAM_SIZE} RAM")
  30. add_executable(cmsis-test-${DEVICE}-${CORE} ${SOURCES})
  31. target_link_libraries(cmsis-test-${DEVICE}-${CORE} CMSIS::STM32::${DEVICE}::${CORE} STM32::NoSys)
  32. endforeach()
  33. endif()
  34. endforeach()
  35. endforeach()