cmake_minimum_required(VERSION 3.21) project(STM32 C ASM) set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_C_COMPILER arm-none-eabi-gcc) set(CMAKE_CXX_COMPILER arm-none-eabi-g++) set(CMAKE_ASM_COMPILER arm-none-eabi-gcc) set(CMAKE_AR arm-none-eabi-ar) set(CMAKE_OBJCOPY arm-none-eabi-objcopy) set(CMAKE_OBJDUMP arm-none-eabi-objdump) set(SIZE arm-none-eabi-size) set(CMAKE_C_STANDARD 99) set(CMAKE_SYSTEM_PROCESSOR cortex-m4) add_link_options(-Wl,--print-memory-usage,-Map=${PROJECT_BINARY_DIR}/${PROJECT_NAME}.map) add_link_options(--specs=nosys.specs) add_link_options(-mcpu=${CMAKE_SYSTEM_PROCESSOR} -mthumb -nostdlib) add_link_options(-T ${CMAKE_SOURCE_DIR}/linker.ld) add_compile_options(-mcpu=${CMAKE_SYSTEM_PROCESSOR} -mthumb) add_compile_options(-O0) add_executable(STM32 linker.ld core.S boot.S main.c)