初始化版本
This commit is contained in:
42
cmake/toolchain_arm_gcc.cmake
Normal file
42
cmake/toolchain_arm_gcc.cmake
Normal file
@ -0,0 +1,42 @@
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
set(CMAKE_SYSTEM_PROCESSOR arm)
|
||||
set(CMAKE_CROSSCOMPILING TRUE)
|
||||
set(CMAKE_EXECUTABLE_SUFFIX ".elf")
|
||||
set(CMAKE_EXECUTABLE_SUFFIX_C ".elf")
|
||||
set(CMAKE_EXECUTABLE_SUFFIX_CXX ".elf")
|
||||
set(CMAKE_EXECUTABLE_SUFFIX_ASM ".elf")
|
||||
|
||||
set(CMAKE_C_LINK_EXECUTABLE
|
||||
"<CMAKE_C_COMPILER> <FLAGS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
|
||||
|
||||
set(CMAKE_CXX_LINK_EXECUTABLE
|
||||
"<CMAKE_CXX_COMPILER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
|
||||
|
||||
set(CMAKE_ASM_LINK_EXECUTABLE
|
||||
"<CMAKE_ASM_COMPILER> <FLAGS> <CMAKE_ASM_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>")
|
||||
|
||||
set(CMAKE_C_COMPILER_WORKS 1)
|
||||
set(CMAKE_CXX_COMPILER_WORKS 1)
|
||||
|
||||
# Toolchain prefix
|
||||
# set(TOOLCHAIN_PATH "D:/ARM_GCC/bin/")
|
||||
# set(TOOLCHAIN_PREFIX "${TOOLCHAIN_PATH}arm-none-eabi-")
|
||||
set(TOOLCHAIN_PREFIX "arm-none-eabi-")
|
||||
|
||||
set(CMAKE_C_COMPILER "${TOOLCHAIN_PREFIX}gcc")
|
||||
set(CMAKE_CXX_COMPILER "${TOOLCHAIN_PREFIX}g++")
|
||||
set(CMAKE_ASM_COMPILER "${TOOLCHAIN_PREFIX}gcc")
|
||||
set(CMAKE_OBJCOPY "${TOOLCHAIN_PREFIX}objcopy")
|
||||
set(CMAKE_SIZE "${TOOLCHAIN_PREFIX}size")
|
||||
set(CMAKE_GDB "${TOOLCHAIN_PREFIX}gdb")
|
||||
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||
|
||||
# Compiler flags
|
||||
set(CPU_FLAGS "-mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard")
|
||||
set(COMMON_FLAGS "${CPU_FLAGS} -Wall -Wextra -ffunction-sections -fdata-sections -g3 -O0")
|
||||
|
||||
set(CMAKE_C_FLAGS "${COMMON_FLAGS} -std=c99")
|
||||
set(CMAKE_CXX_FLAGS "${COMMON_FLAGS} -std=c++11 -fno-rtti -fno-exceptions")
|
||||
set(CMAKE_ASM_FLAGS "${CPU_FLAGS} -x assembler-with-cpp")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CPU_FLAGS} -Wl,--gc-sections --specs=nano.specs --specs=nosys.specs")
|
||||
Reference in New Issue
Block a user