CMakeLists.txt 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. cmake_minimum_required(VERSION 3.16)
  2. set(FLASHER_DIR ${CMAKE_CURRENT_LIST_DIR}/../..)
  3. set(CMAKE_TOOLCHAIN_FILE ${FLASHER_DIR}/submodules/stm32-cmake/cmake/stm32_gcc.cmake)
  4. project(stm32_flasher C ASM)
  5. find_package(CMSIS COMPONENTS STM32H7_M7 REQUIRED)
  6. find_package(HAL COMPONENTS STM32H7_M7 PWR RCC GPIO UART CORTEX REQUIRED)
  7. include_directories(${CMAKE_CURRENT_SOURCE_DIR} Core/Inc)
  8. include(${CMAKE_CURRENT_LIST_DIR}/../common/bin2array.cmake)
  9. create_resources(${CMAKE_CURRENT_LIST_DIR}/../binaries/Hello-world Core/Src/binaries.c)
  10. add_executable(${CMAKE_PROJECT_NAME}
  11. ../common/example_common.c
  12. Core/Src/main.c
  13. Core/Src/stm32h7xx_hal_msp.c
  14. Core/Src/stm32h7xx_it.c
  15. Core/Src/libc_compat.c
  16. Core/Src/binaries.c
  17. )
  18. target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE ../common)
  19. set(PORT STM32)
  20. set(STM32_CHIP STM32H743VI)
  21. set(CORE_USED M7)
  22. add_subdirectory(${FLASHER_DIR} ${CMAKE_BINARY_DIR}/flasher)
  23. target_link_libraries(${CMAKE_PROJECT_NAME}
  24. PRIVATE
  25. HAL::STM32::H7::M7::PWREx
  26. HAL::STM32::H7::M7::RCCEx
  27. HAL::STM32::H7::M7::GPIO
  28. HAL::STM32::H7::M7::UARTEx
  29. HAL::STM32::H7::M7::CORTEX
  30. CMSIS::STM32::H743VI::M7
  31. STM32::Nano
  32. flasher
  33. )
  34. stm32_print_size_of_target(${CMAKE_PROJECT_NAME})
  35. stm32_generate_binary_file(${CMAKE_PROJECT_NAME})
  36. stm32_generate_hex_file(${CMAKE_PROJECT_NAME})