toolchain.cmake 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. set(CMAKE_SYSTEM_NAME Generic)
  2. set(CMAKE_SYSTEM_PROCESSOR Cortex-M4)
  3. set(TOOLCHAIN_PREFIX arm-none-eabi-)
  4. set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc)
  5. set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++)
  6. set(CMAKE_ASM_COMPILER ${TOOLCHAIN_PREFIX}gcc)
  7. set(CMAKE_AR ${TOOLCHAIN_PREFIX}ar)
  8. set(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy)
  9. set(CMAKE_OBJDUMP ${TOOLCHAIN_PREFIX}objdump)
  10. set(CMAKE_SIZE_UTIL ${TOOLCHAIN_PREFIX}size)
  11. set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
  12. set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
  13. set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
  14. set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
  15. set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
  16. add_compile_options(
  17. -mcpu=cortex-m4
  18. -mthumb
  19. -mfpu=fpv4-sp-d16
  20. -mfloat-abi=hard
  21. -fdata-sections
  22. -ffunction-sections
  23. -fdelete-null-pointer-checks
  24. $<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>
  25. $<$<COMPILE_LANGUAGE:CXX>:-fno-rtti>
  26. $<$<COMPILE_LANGUAGE:CXX>:-fno-threadsafe-statics>
  27. -fmax-errors=1
  28. -Wall
  29. )
  30. set(LINKER_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/STM32F407VGTx_FLASH.ld)
  31. add_link_options(
  32. -mcpu=cortex-m4
  33. -mthumb
  34. -mfpu=fpv4-sp-d16
  35. -mfloat-abi=hard
  36. -specs=nano.specs
  37. -specs=nosys.specs
  38. -lnosys
  39. -Wl,-Map=${PROJECT_NAME}.map,--cref
  40. -Wl,--gc-sections
  41. )