CMakeLists.txt 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. set(CMAKE_SYSTEM_NAME Generic)
  2. set(CMAKE_SYSTEM_VERSION 1)
  3. cmake_minimum_required(VERSION 3.8)
  4. cmake_policy(SET CMP0069 NEW)
  5. project(ping-pong VERSION 0.1
  6. DESCRIPTION "ping-pong with rotor light"
  7. LANGUAGES C CXX ASM)
  8. set(CMAKE_CXX_STANDARD 17)
  9. set(CMAKE_C_STANDARD 11)
  10. # Enable assembler files preprocessing
  11. add_compile_options($<$<COMPILE_LANGUAGE:ASM>:-x$<SEMICOLON>assembler-with-cpp>)
  12. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-register")
  13. if (NOT ("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "Cortex-M7" ))
  14. message(FATAL_ERROR "wrong system processor ${CMAKE_SYSTEM_PROCESSOR}, expected: Cortex-M7")
  15. endif()
  16. set(LINKER_SCRIPT ${CMAKE_CURRENT_SOURCE_DIR}/STM32H743ZITx_FLASH.ld)
  17. add_definitions(-DDEBUG
  18. -DUSE_FULL_LL_DRIVER
  19. -DHSE_VALUE=8000000
  20. -DSTM32H743xx
  21. -DUSE_FULL_ASSERT
  22. )
  23. add_executable(${PROJECT_NAME}
  24. ping-pong-poll.cpp
  25. startup_stm32h743xx.s
  26. Core/Src/main.c
  27. Core/Src/gpio.c
  28. Core/Src/stm32h7xx_it.c
  29. Core/Src/system_stm32h7xx.c
  30. Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_utils.c
  31. Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_rcc.c
  32. Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_pwr.c
  33. Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_gpio.c
  34. Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_ll_exti.c
  35. ${LINKER_SCRIPT})
  36. target_include_directories(${PROJECT_NAME} PUBLIC
  37. ${CMAKE_CURRENT_SOURCE_DIR}/Core/Inc
  38. ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Inc
  39. ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/CMSIS/Device/ST/STM32H7xx/Include
  40. ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/CMSIS/Include)
  41. target_link_libraries(${PROJECT_NAME} rotor_light)
  42. target_link_options(${PROJECT_NAME} PUBLIC
  43. LINKER:-Map=${PROJECT_BINARY_DIR}/${PROJECT_NAME}.map
  44. -T ${LINKER_SCRIPT})
  45. set_target_properties(${PROJECT_NAME} PROPERTIES SUFFIX .elf)