-
Notifications
You must be signed in to change notification settings - Fork 0
/
stm32_toolchain.cmake
18 lines (15 loc) · 1.01 KB
/
stm32_toolchain.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_C_COMPILER arm-none-eabi-gcc)
set(CMAKE_CXX_COMPILER arm-none-eabi-g++)
# tests the compiler without invoking the linker, this is problematic when using a custom linker script
#
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
# FIXME! figure out how to remove -fno-exceptions and link to resolve the abort() call
#
# notes 1, adding all of the specific STM32 compiler and linker options here
# 2, the required linker script is provided in the CMakeLists.txt file
# 3, to add floating point printf, snprintf etc., add '-u _printf_float' to the linker flags
# however, the included library code can make calls to malloc(), this is probably not what you want in an embedded application
#
set(CMAKE_CXX_FLAGS_INIT "-mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fno-exceptions -fno-use-cxa-atexit --specs=nano.specs")
set(CMAKE_EXE_LINKER_FLAGS "-mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -lstdc++_nano -lsupc++_nano -lc_nano -Wl,--gc-sections")