toolchain.cmake 1.2 KB

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