From 3143b122488aa6cb2f7be4afe690b39b4c032f64 Mon Sep 17 00:00:00 2001 From: tux Date: Tue, 11 Nov 2025 15:04:05 +0800 Subject: [PATCH] auto detect toolchain --- cmake/CompileOptions.cmake | 2 +- cmake/Toolchain/gcc-arm-none-eabi.cmake | 36 ++++++++++++------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/cmake/CompileOptions.cmake b/cmake/CompileOptions.cmake index bb836bd..7838eb9 100644 --- a/cmake/CompileOptions.cmake +++ b/cmake/CompileOptions.cmake @@ -20,7 +20,7 @@ target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE # 添加目标编译选项 target_compile_options(${CMAKE_PROJECT_NAME} PRIVATE -mthumb - # -mthumb-interwork + -mthumb-interwork -mfpu=fpv5-d16 -mfloat-abi=hard ) \ No newline at end of file diff --git a/cmake/Toolchain/gcc-arm-none-eabi.cmake b/cmake/Toolchain/gcc-arm-none-eabi.cmake index f07a7f2..7d2065e 100644 --- a/cmake/Toolchain/gcc-arm-none-eabi.cmake +++ b/cmake/Toolchain/gcc-arm-none-eabi.cmake @@ -1,5 +1,5 @@ -set(CMAKE_SYSTEM_NAME Generic) -set(CMAKE_SYSTEM_PROCESSOR arm) +set(CMAKE_SYSTEM_NAME Generic) +set(CMAKE_SYSTEM_PROCESSOR arm) #set(CMAKE_C_COMPILER_FORCED TRUE) #set(CMAKE_CXX_COMPILER_FORCED TRUE) @@ -8,18 +8,18 @@ set(CMAKE_SYSTEM_PROCESSOR arm) # Some default GCC settings # arm-none-eabi- must be part of path environment -set(TOOLCHAIN_PREFIX arm-none-eabi-) +set(TOOLCHAIN_PREFIX arm-none-eabi-) -set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc) -set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER}) -set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++) -set(CMAKE_LINKER ${TOOLCHAIN_PREFIX}g++) -set(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy) -set(CMAKE_SIZE ${TOOLCHAIN_PREFIX}size) +set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc) +set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER}) +set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++) +set(CMAKE_LINKER ${TOOLCHAIN_PREFIX}g++) +set(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy) +set(CMAKE_SIZE ${TOOLCHAIN_PREFIX}size) -set(CMAKE_EXECUTABLE_SUFFIX_ASM ".elf") -set(CMAKE_EXECUTABLE_SUFFIX_C ".elf") -set(CMAKE_EXECUTABLE_SUFFIX_CXX ".elf") +set(CMAKE_EXECUTABLE_SUFFIX_ASM ".elf") +set(CMAKE_EXECUTABLE_SUFFIX_C ".elf") +set(CMAKE_EXECUTABLE_SUFFIX_CXX ".elf") set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) @@ -28,26 +28,26 @@ set(TARGET_FLAGS "-mcpu=cortex-m7 -mfpu=fpv5-d16 -mfloat-abi=hard ") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TARGET_FLAGS}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wpedantic -fdata-sections -ffunction-sections") -if (CMAKE_BUILD_TYPE MATCHES "Debug") +if(CMAKE_BUILD_TYPE MATCHES "Debug") set(CMAKE_C_FLAGS_DEBUG "-O0 -g") set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g") -elseif (CMAKE_BUILD_TYPE MATCHES "Release") +elseif(CMAKE_BUILD_TYPE MATCHES "Release") set(CMAKE_C_FLAGS_RELEASE "-O3") set(CMAKE_CXX_FLAGS_RELEASE "-O3") -elseif (CMAKE_BUILD_TYPE MATCHES "RelWithDebInfo") +elseif(CMAKE_BUILD_TYPE MATCHES "RelWithDebInfo") set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g") set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g") -elseif (CMAKE_BUILD_TYPE MATCHES "MinSizeRel") +elseif(CMAKE_BUILD_TYPE MATCHES "MinSizeRel") set(CMAKE_C_FLAGS_MINSIZEREL "-Os") set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os") -endif () +endif() set(CMAKE_ASM_FLAGS "${CMAKE_C_FLAGS} -x assembler-with-cpp -MMD -MP") set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -fno-rtti -fno-exceptions -fno-threadsafe-statics") set(CMAKE_C_LINK_FLAGS "${TARGET_FLAGS}") +set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -T \"${CMAKE_SOURCE_DIR}/STM32H723XG_FLASH.ld\"") set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} --specs=nano.specs") - set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -Wl,-Map=${CMAKE_PROJECT_NAME}.map -Wl,--gc-sections") set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -Wl,--start-group -lc -lm -Wl,--end-group") set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -Wl,--print-memory-usage")