foc/project/cmake/toolchain-arm-none-eabi.cmake

57 lines
2.3 KiB
CMake
Raw Normal View History

2023-08-23 01:43:35 +00:00
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR arm)
# set(CMAKE_SYSROOT /home/devel/rasp-pi-rootfs)
# set(CMAKE_STAGING_PREFIX /home/devel/stage)
if (WIN32)
set(TOOLCHAIN_PATH D:/gcc-arm-none-eabi-win32)
set(TOOLCHAIN_PREFIX arm-none-eabi-)
set(CMAKE_ASM_COMPILER ${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}gcc.exe)
set(CMAKE_C_COMPILER ${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}gcc.exe)
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}gcc.exe)
set(CMAKE_AR ${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}ar.exe)
2023-09-01 10:30:05 +00:00
set(CMAKE_OBJCOPY ${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}objcopy.exe)
set(CMAKE_OBJDUMP ${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}objdump.exe)
set(CMAKE_SIZE ${TOOLCHAIN_PATH}/bin/${TOOLCHAIN_PREFIX}size.exe)
2023-08-23 01:43:35 +00:00
elseif(UNIX)
set(CMAKE_ASM_COMPILER arm-none-eabi-gcc)
set(CMAKE_C_COMPILER arm-none-eabi-gcc)
set(CMAKE_CXX_COMPILER arm-none-eabi-g++)
set(CMAKE_AR arm-none-eabi-ar)
set(CMAKE_OBJCOPY arm-none-eabi-objcopy)
set(CMAKE_OBJDUMP arm-none-eabi-objdump)
set(CMAKE_SIZE arm-none-eabi-objdump)
endif()
2023-08-30 01:30:31 +00:00
set(MCU_FLAGS "-mcpu=cortex-m4 -mthumb -mthumb-interwork -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections")
set(CMAKE_ASM_FLAGS "-c ${MCU_FLAGS} -x assembler-with-cpp -Wa,-mimplicit-it=thumb -gdwarf-2")
set(CMAKE_C_FLAGS "${MCU_FLAGS} -Dgcc -w -Wno-unknown-pragmas -O0 -gdwarf-2 -g")
set(CMAKE_C_FLAGS_DEBUG "-O0 -gdwarf-2 -g")
set(CMAKE_C_FLAGS_RELEASE "-O3")
set(LINKER_SCRIPT STM32F407ZGTX_FLASH.ld)
set(CMAKE_EXE_LINKER_FLAGS "${MCU_FLAGS} -Wl,--gc-sections,-Map=${PROJECT_NAME}.map,--cref,-u,Reset_Handler -T${LINKER_SCRIPT}")
#set(CMAKE_EXE_LINKER_FLAGS "--specs=nano.specs -specs=nosys.specs -nostartfiles -T${LINKER_SCRIPT} -Wl,-Map=${PROJECT_BINARY_DIR}/${PROJECT_NAME}.map,--cref -Wl,--gc-sections")
2023-08-29 06:57:24 +00:00
2023-08-23 01:43:35 +00:00
# find additional toolchain executables
find_program(ARM_SIZE_EXECUTABLE arm-none-eabi-size)
find_program(ARM_GDB_EXECUTABLE arm-none-eabi-gdb)
find_program(ARM_OBJCOPY_EXECUTABLE arm-none-eabi-objcopy)
find_program(ARM_OBJDUMP_EXECUTABLE arm-none-eabi-objdump)
#set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
# search for program/library/include in the build host directories
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)