CMakeLists.txt 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. # Project name
  2. PROJECT(stm32-template)
  3. CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
  4. ENABLE_LANGUAGE(ASM)
  5. # Select your memory sizes here
  6. # Flash size
  7. SET(STM32_FLASH_SIZE "512K")
  8. # RAM size
  9. SET(STM32_RAM_SIZE "64K")
  10. # Stack address - bottom of RAM => RAM origin + RAM size
  11. SET(STM32_STACK_ADDRESS "0x20010000")
  12. # Origins
  13. SET(STM32_FLASH_ORIGIN "0x08000000")
  14. SET(STM32_RAM_ORIGIN "0x20000000")
  15. # Compiler definitions for std. periph. library
  16. # Select your chip type here
  17. SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSTM32F10X_HD")
  18. SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSTM32F10X_HD")
  19. # Startup sources
  20. # Select your chip type here
  21. SET(STARTUP_SOURCE ${STM32_STARTUP_HD})
  22. # Uncomment needed modules
  23. SET(MOD_SOURCES
  24. ${STM32_MISC_SOURCE}
  25. # ${STM32_ADC_SOURCE}
  26. # ${STM32_BKP_SOURCE}
  27. # ${STM32_CAN_SOURCE}
  28. # ${STM32_CEC_SOURCE}
  29. # ${STM32_CRC_SOURCE}
  30. # ${STM32_DAC_SOURCE}
  31. # ${STM32_DBGMCU_SOURCE}
  32. # ${STM32_DMA_SOURCE}
  33. # ${STM32_EXTI_SOURCE}
  34. # ${STM32_FLASH_SOURCE}
  35. # ${STM32_FSMC_SOURCE}
  36. ${STM32_GPIO_SOURCE}
  37. # ${STM32_I2C_SOURCE}
  38. # ${STM32_IWDG_SOURCE}
  39. # ${STM32_PWR_SOURCE}
  40. ${STM32_RCC_SOURCE}
  41. # ${STM32_RTC_SOURCE}
  42. # ${STM32_SDIO_SOURCE}
  43. # ${STM32_SPI_SOURCE}
  44. ${STM32_TIM_SOURCE}
  45. # ${STM32_USART_SOURCE}
  46. # ${STM32_WWDG_SOURCE}
  47. )
  48. # Project sources
  49. SET(PROJECT_SOURCES
  50. main.c
  51. )
  52. # Configuring linker script for our target
  53. CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/stm32_flash.ld.in ${CMAKE_CURRENT_BINARY_DIR}/stm32_flash.ld)
  54. SET(CMAKE_EXE_LINKER_FLAGS "-T${CMAKE_CURRENT_BINARY_DIR}/stm32_flash.ld ${CMAKE_EXE_LINKER_FLAGS}")
  55. INCLUDE_DIRECTORIES(
  56. ${CMAKE_CURRENT_SOURCE_DIR}/.
  57. ${STM32_StdPeriphLib_INCLUDE_DIRS}
  58. )
  59. # Compile executable (*.elf)
  60. ADD_EXECUTABLE(${CMAKE_PROJECT_NAME}.elf ${PROJECT_SOURCES} ${MOD_SOURCES} ${STARTUP_SOURCE} ${STM32_SYSTEM_SOURCE})
  61. # Convert elf to bin and hex
  62. ADD_CUSTOM_COMMAND(TARGET ${CMAKE_PROJECT_NAME}.elf POST_BUILD COMMAND ${CMAKE_OBJCOPY} ARGS -Oihex ${CMAKE_PROJECT_NAME}.elf ${CMAKE_PROJECT_NAME}.hex)
  63. ADD_CUSTOM_COMMAND(TARGET ${CMAKE_PROJECT_NAME}.elf POST_BUILD COMMAND ${CMAKE_OBJCOPY} ARGS -Obinary ${CMAKE_PROJECT_NAME}.elf ${CMAKE_PROJECT_NAME}.bin)