{ "version": 3, "cmakeMinimumRequired": { "major": 3, "minor": 21, "patch": 0 }, "configurePresets": [ { "name": "base", "hidden": true, "generator": "Unix Makefiles", "binaryDir": "${sourceDir}/build/${presetName}", "environment": { }, "cacheVariables": { "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" } }, { "name": "arm-gcc", "hidden": true, "displayName": "GNU Arm GCC Toolchain", "description": "Using GNU Arm Embedded Toolchain", "inherits": "base", "environment": { "CPU_FLAGS":"-mcpu=cortex-m3 -mthumb -DSTM32F103xB -DUSE_FULL_LL_DRIVER", "COMPILE_FLAGS":"-Wall -Wextra -fdata-sections -ffunction-sections -Wno-pedantic -Wno-unused-parameter -Wno-cast-function-type", "ASM_FLAGS":"", "DEBUG_FLAGS": "", "LINK_FLAGS":"-Wl,--gc-sections --specs=nano.specs --specs=nosys.specs -Wl,-Map=${sourceDir}/build/${presetName}/${presetName}.map", "LINK_SCRIPT":"${sourceDir}/$env{CPU_MODEL_NAME}/Link.ld" }, "cacheVariables": { "CMAKE_SYSTEM_NAME": "Generic", "CMAKE_C_COMPILER": "$env{TOOLCHAIN_PATH}/arm-none-eabi-gcc$env{EXE_SUFFIX}", "CMAKE_ASM_COMPILER": "$env{TOOLCHAIN_PATH}/arm-none-eabi-gcc$env{EXE_SUFFIX}", "CMAKE_LINKER": "$env{TOOLCHAIN_PATH}/arm-none-eabi-ld$env{EXE_SUFFIX}", "CMAKE_OBJCOPY": "$env{TOOLCHAIN_PATH}/arm-none-eabi-objcopy$env{EXE_SUFFIX}", "CMAKE_OBJDUMP": "$env{TOOLCHAIN_PATH}/arm-none-eabi-objdump$env{EXE_SUFFIX}", "CMAKE_SIZE": "$env{TOOLCHAIN_PATH}/arm-none-eabi-size$env{EXE_SUFFIX}", "CMAKE_C_COMPILER_WORKS": "true", "CMAKE_CXX_COMPILER_WORKS": "true" } }, { "name": "arm-gcc-debug", "hidden": true, "displayName": "GNU ARM GCC Debug", "inherits": "arm-gcc", "environment": { "DEBUG_FLAGS":"-Og -g0" }, "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "CMAKE_C_FLAGS_INIT":"$env{CPU_FLAGS} $env{COMPILE_FLAGS} $env{DEBUG_FLAGS}", "CMAKE_ASM_FLAGS_INIT":"$env{CPU_FLAGS} $env{ASM_FLAGS}", "CMAKE_EXE_LINKER_FLAGS_INIT":"$env{LINK_FLAGS} -T$env{LINK_SCRIPT}" } }, { "name": "arm-gcc-release", "hidden": true, "displayName": "GNU ARM GCC Release", "inherits": "arm-gcc", "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", "CMAKE_C_FLAGS_INIT":"$env{CPU_FLAGS} $env{COMPILE_FLAGS} $env{DEBUG_FLAGS}", "CMAKE_ASM_FLAGS_INIT":"$env{CPU_FLAGS} $env{ASM_FLAGS}", "CMAKE_EXE_LINKER_FLAGS_INIT":"$env{LINK_FLAGS} -T$env{LINK_SCRIPT}" } }, { "name": "armcc-v6", "hidden": true, "displayName": "ARMCC V6 Toolchain", "description": "Using Arm Compiler 6 (armclang)", "inherits": "base", "cacheVariables": { "CMAKE_SYSTEM_NAME": "Generic", "CMAKE_C_COMPILER": "armclang", "CMAKE_CXX_COMPILER": "armclang", "CMAKE_ASM_COMPILER": "armasm", "CMAKE_LINKER": "armlink", "CMAKE_OBJCOPY": "fromelf", "CMAKE_OBJDUMP": "fromelf", "CMAKE_SIZE": "fromelf", "CMAKE_C_COMPILER_WORKS": "true" } }, { "name": "armcc-v5-base", "hidden": true, "displayName": "ARMCC V5 Toolchain", "description": "Using Arm Compiler 5 (armcc)", "inherits": "base", "environment": { "CPU_FLAGS":"--cpu Cortex-M3 --apcs=interwork", "COMPILE_FLAGS": "--diag_suppress=1,68,1207,3731 --c99 --split_sections -DSTM32F103xB -D__MICROLIB -DUSE_FULL_LL_DRIVER -D__UVISION_VERSION=\"538\"", "ASM_FLAGS":"--cpu=Cortex-M3 --apcs=interwork --pd \"__MICROLIB SETA 1\" --pd \"__UVISION_VERSION SETA 538\" --pd \"STM32F103xB SETA 1\" --pd \"USE_FULL_LL_DRIVER SETA 1\" --xref --cpreproc ", "LINK_FLAGS":"--library_type=microlib --strict --summary_stderr --info summarysizes --map --xref --callgraph --symbols --info sizes --info totals --info unused --info veneers --list \"${sourceDir}/build/${presetName}/${presetName}.map\"", "LINK_SCRIPT":"${sourceDir}/$env{CPU_MODEL_NAME}/Link.ld" }, "cacheVariables": { "CMAKE_SYSTEM_NAME": "Generic", "CMAKE_C_COMPILER": "$env{TOOLCHAIN_PATH}/armcc.exe", "CMAKE_CXX_COMPILER": "$env{TOOLCHAIN_PATH}/armcc.exe", "CMAKE_ASM_COMPILER": "$env{TOOLCHAIN_PATH}/armasm.exe", "CMAKE_LINKER": "$env{TOOLCHAIN_PATH}/armlink.exe", "CMAKE_OBJCOPY": "$env{TOOLCHAIN_PATH}/fromelf.exe", "CMAKE_OBJDUMP": "$env{TOOLCHAIN_PATH}/fromelf.exe", "CMAKE_SIZE": "$env{TOOLCHAIN_PATH}/fromelf.exe", "CMAKE_C_COMPILER_WORKS": "true", "CMAKE_CXX_COMPILER_WORKS": "true", "CMAKE_TRY_COMPILE_TARGET_TYPE": "STATIC_LIBRARY" } }, { "name": "armcc-v5-debug", "hidden": true, "displayName": "ARM Compiler 5 (AC5) - Debug", "description": "使用 Keil AC5 工具链进行调试构建", "inherits": "armcc-v5-base", "environment": { "DEBUG_FLAGS": "-O0" }, "cacheVariables": { "CMAKE_BUILD_TYPE": "Debug", "CMAKE_C_FLAGS_INIT":"$env{CPU_FLAGS} $env{COMPILE_FLAGS} $env{DEBUG_FLAGS}", "CMAKE_ASM_FLAGS_INIT":"$env{CPU_FLAGS} $env{ASM_FLAGS}", "CMAKE_EXE_LINKER_FLAGS_INIT":"$env{LINK_FLAGS} --scatter=\"$env{LINK_SCRIPT}\"" } }, { "name": "armcc-v5-release", "hidden": true, "displayName": "ARM Compiler 5 (AC5) - Release", "description": "使用 Keil AC5 工具链进行调试构建", "inherits": "armcc-v5-base", "environment": { "DEBUG_FLAGS": "-O2" }, "cacheVariables": { "CMAKE_BUILD_TYPE": "Release", "CMAKE_C_FLAGS_INIT":"$env{CPU_FLAGS} $env{COMPILE_FLAGS} $env{DEBUG_FLAGS}", "CMAKE_ASM_FLAGS_INIT":"$env{CPU_FLAGS} $env{ASM_FLAGS}", "CMAKE_EXE_LINKER_FLAGS_INIT":"$env{LINK_FLAGS} --scatter=\"$env{LINK_SCRIPT}\"" } } ], "buildPresets": [ { "name": "build-gcc-debug", "configurePreset": "arm-gcc-debug", "configuration": "Debug" }, { "name": "build-gcc-release", "configurePreset": "arm-gcc-release", "configuration": "Release" }, { "name": "build-armcc-v6-release", "configurePreset": "armcc-v6", "configuration": "Release" }, { "name": "build-armcc-v5-debug", "configurePreset": "armcc-v5-debug", "configuration": "Debug" }, { "name": "build-armcc-v5-release", "configurePreset": "armcc-v5-release", "configuration": "Release" } ] }