57 lines
2.3 KiB
CMake
57 lines
2.3 KiB
CMake
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)
|
|
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)
|
|
|
|
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()
|
|
|
|
|
|
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")
|
|
|
|
|
|
# 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) |