first commit
This commit is contained in:
52
CMakeLists.txt
Normal file
52
CMakeLists.txt
Normal file
@@ -0,0 +1,52 @@
|
||||
cmake_minimum_required(VERSION 3.22)
|
||||
|
||||
# ============================================================
|
||||
# STM32F103C8 标准外设库 (StdPeriph V3.5.0) 工程
|
||||
# 工具链文件: cmake/gcc-arm-none-eabi.cmake (在 CLion 的 CMake 设置里指定)
|
||||
# 链接脚本: STM32F103XX_FLASH.ld (64K Flash / 20K RAM)
|
||||
# ============================================================
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_C_EXTENSIONS ON)
|
||||
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE "Debug")
|
||||
endif()
|
||||
|
||||
set(CMAKE_PROJECT_NAME stm32f103_spl_clion)
|
||||
project(${CMAKE_PROJECT_NAME})
|
||||
|
||||
enable_language(C ASM)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE)
|
||||
|
||||
# 标准库外设驱动:全部收集,靠工具链里的 -ffunction-sections + --gc-sections
|
||||
# 自动裁掉未引用的源文件,无需手动挑
|
||||
file(GLOB SPL_SRC "StdPeriph_Driver/src/*.c")
|
||||
|
||||
add_executable(${CMAKE_PROJECT_NAME}
|
||||
CMSIS/startup_stm32f10x_md.s # GCC 版启动文件 (TrueSTUDIO)
|
||||
CMSIS/core_cm3.c
|
||||
CMSIS/system_stm32f10x.c
|
||||
${SPL_SRC}
|
||||
User/main.c
|
||||
)
|
||||
|
||||
target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE
|
||||
CMSIS # stm32f10x.h, core_cm3.h, system_stm32f10x.h
|
||||
StdPeriph_Driver/inc # stm32f10x_gpio.h 等外设头
|
||||
User # stm32f10x_conf.h
|
||||
)
|
||||
|
||||
target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE
|
||||
STM32F10X_MD # STM32F103C8 属于 Medium density
|
||||
USE_STDPERIPH_DRIVER # 启用标准库外设驱动 -> stm32f10x.h 会 include stm32f10x_conf.h
|
||||
)
|
||||
|
||||
# CPU flag(-mcpu=cortex-m3)、链接脚本、nano.specs、gc-sections 都已在工具链文件里设好
|
||||
target_link_libraries(${CMAKE_PROJECT_NAME} m)
|
||||
|
||||
# 打印 Flash / RAM 占用
|
||||
add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD
|
||||
COMMAND ${CMAKE_SIZE} $<TARGET_FILE:${CMAKE_PROJECT_NAME}>
|
||||
COMMENT "Memory usage"
|
||||
)
|
||||
Reference in New Issue
Block a user