toolchain.cmake 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. set(CMAKE_SYSTEM_NAME Generic)
  2. set(CMAKE_SYSTEM_PROCESSOR Cortex-M7)
  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. set(LINKER_SCRIPT ${CMAKE_CURRENT_LIST_DIR}/STM32H743ZITx_FLASH.ld)
  17. set(ARM_OPTIONS
  18. -mcpu=cortex-m7
  19. -mfloat-abi=hard
  20. -mfpu=fpv5-d16
  21. -mthumb
  22. -mthumb-interwork
  23. --specs=nano.specs)
  24. add_compile_options(
  25. ${ARM_OPTIONS}
  26. -fmessage-length=0
  27. -funsigned-char
  28. -ffunction-sections
  29. -fdata-sections
  30. -fno-common
  31. -MMD
  32. -MP)
  33. # use these options to verify the linker can create an ELF file
  34. add_link_options(${ARM_OPTIONS}
  35. -specs=nosys.specs
  36. -lnosys
  37. -lc
  38. -lm
  39. LINKER:--gc-sections
  40. LINKER:--build-id
  41. LINKER:--print-memory-usage)