#-- Service -------------------------------------------------------------------- SET(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/MODULES/CmakeConfig_GCC_CortexM4/gcc_cm4f.cmake) ENABLE_LANGUAGE(ASM) CMAKE_MINIMUM_REQUIRED(VERSION 3.8.0) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0") IF (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) MESSAGE( FATAL_ERROR "In-source builds not allowed. Please make a new directory (called a build directory) and run CMake from there. You may need to remove CMakeCache.txt." ) ENDIF () SET(CMAKE_EXPORT_COMPILE_COMMANDS ON) #-- Project config ------------------------------------------------------------- PROJECT(HW_TEST) # Project name SET(MCUNAME N32G45X) # MCU name SET(USE_STDPERIPH_DRIVER 0) # OSECLK value in Hz (0 if disconnected) SET(OSECLK_VAL 12000000) # OSECLK value in Hz (0 if disconnected) SET(SYSCLK PLL) # SYSCLK source: PLL, OSI, OSE SET(CKO NONE) # Clockout source: PLL, NONE (no clockout) SET(RETARGET 1) # Enable(1) or disable(0) printf retarget SET(RETARGET_USE UART) # ITM or UART printf retarget SET(PRINTF_FLOAT 0) # Enable(1) or disable(0) printf float support SET(SCANF_FLOAT 0) # Enable(1) or disable(0) scanf float support #-- Defines -------------------------------------------------------------------- ADD_DEFINITIONS(-D${MCUNAME}) ADD_DEFINITIONS(-DUSE_STDPERIPH_DRIVER) ADD_DEFINITIONS(-DHSE_VALUE=16000000) ADD_DEFINITIONS(-DCMSIS_device_header="n32g45x.h") #-- Project paths, Include dirs, Sources list --------------------------------- include(modular.cmake) #-- Options -------------------------------------------------------------------- IF (PRINTF_FLOAT STREQUAL "1") SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -u_printf_float") ENDIF () IF (SCANF_FLOAT STREQUAL "1") SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -u_scanf_float") ENDIF () #-- Linker script -------------------------------------------------------------- SET(LDSCRIPT ${CMAKE_SOURCE_DIR}/MODULES/DeviceStartup_NATION_N32G45X/Ld/n32g45x_flash.ld) SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -T ${LDSCRIPT} -Wl,-Map=${CMAKE_BINARY_DIR}/${PROJECT_NAME}.map -Wl,--print-memory-usage") #-- Project linking ------------------------------------------------------------ ADD_EXECUTABLE(${PROJECT_NAME}.elf ${SOURCES}) TARGET_LINK_LIBRARIES(${PROJECT_NAME}.elf) #-- Custom commands ------------------------------------------------------------ ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME}.elf POST_BUILD COMMAND ${CMAKE_OBJCOPY} "-Oihex" ${PROJECT_NAME}.elf ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.hex COMMAND ${CMAKE_OBJCOPY} "-Obinary" ${PROJECT_NAME}.elf ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.bin COMMAND ${CMAKE_OBJDUMP} "-DS" ${PROJECT_NAME}.elf > ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.dasm COMMAND ${CMAKE_SIZE} ${PROJECT_NAME}.elf)