#-- Service -------------------------------------------------------------------- SET(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/MODULES/CmakeConfig_GCC_CortexM7/gcc_cm7f.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(HVAC_BOOT_M7) # Project name SET(INTERNAL_HW_YEAR 0x26) SET(INTERNAL_HW_MONTH 0x01) SET(INTERNAL_HW_DAY 0x01) SET(INTERNAL_HW_REV 0x01) SET(INTERNAL_SW_YEAR 0x26) SET(INTERNAL_SW_MONTH 0x02) SET(INTERNAL_SW_DAY 0x02) SET(INTERNAL_SW_REV 0x02) SET(FINGER_YEAR 0x26) SET(FINGER_MONTH 0x02) SET(FINGER_DAY 0x24) SET(FINGER_TESTER_SERIAL \"B\") SET(VECT_TAB_OFFSET "0x00000") #-- Defines -------------------------------------------------------------------- ADD_DEFINITIONS(-DINTERNAL_HW_YEAR=${INTERNAL_HW_YEAR}) ADD_DEFINITIONS(-DINTERNAL_HW_MONTH=${INTERNAL_HW_MONTH}) ADD_DEFINITIONS(-DINTERNAL_HW_DAY=${INTERNAL_HW_DAY}) ADD_DEFINITIONS(-DINTERNAL_HW_REV=${INTERNAL_HW_REV}) ADD_DEFINITIONS(-DINTERNAL_SW_YEAR=${INTERNAL_SW_YEAR}) ADD_DEFINITIONS(-DINTERNAL_SW_MONTH=${INTERNAL_SW_MONTH}) ADD_DEFINITIONS(-DINTERNAL_SW_DAY=${INTERNAL_SW_DAY}) ADD_DEFINITIONS(-DINTERNAL_SW_REV=${INTERNAL_SW_REV}) ADD_DEFINITIONS(-DFINGER_YEAR=${FINGER_YEAR}) ADD_DEFINITIONS(-DFINGER_MONTH=${FINGER_MONTH}) ADD_DEFINITIONS(-DFINGER_DAY=${FINGER_DAY}) ADD_DEFINITIONS(-DFINGER_TESTER_SERIAL=${FINGER_TESTER_SERIAL}) ADD_DEFINITIONS(-DUSING_OS_FREERTOS) ADD_DEFINITIONS(-DVERSION_SEDANL_Y=25) ADD_DEFINITIONS(-DVERSION_SEDANL_M=10) ADD_DEFINITIONS(-DVERSION_SEDANL_D=29) ADD_DEFINITIONS(-DVERSION_SEDANH_Y=25) ADD_DEFINITIONS(-DVERSION_SEDANH_M=10) ADD_DEFINITIONS(-DVERSION_SEDANH_D=29) ADD_DEFINITIONS(-DVERSION_LIMO_Y=25) ADD_DEFINITIONS(-DVERSION_LIMO_M=10) ADD_DEFINITIONS(-DVERSION_LIMO_D=29) ADD_DEFINITIONS(-DVERSION_SUV_Y=25) ADD_DEFINITIONS(-DVERSION_SUV_M=10) ADD_DEFINITIONS(-DVERSION_SUV_D=29) ADD_DEFINITIONS(-DVERSION_MPV_Y=25) ADD_DEFINITIONS(-DVERSION_MPV_M=10) ADD_DEFINITIONS(-DVERSION_MPV_D=29) ADD_DEFINITIONS(-DVECT_TAB_OFFSET=${VECT_TAB_OFFSET}) ADD_DEFINITIONS(-DCMSIS_device_header="interrupt_manager.h") ADD_DEFINITIONS(-DFLASH_PAGE_SIZE=2048) ADD_DEFINITIONS(-DCOM_INT_BIG_BUFFERS) ADD_DEFINITIONS(-DVARIABLE_TABLE_WITH_ID) ADD_DEFINITIONS(-DLFS_THREADSAFE=1) ADD_DEFINITIONS(-DHALF_DUPLEX_NO_DELAY=1) ADD_DEFINITIONS(-DACCESS_ADC=1) ADD_DEFINITIONS(-DACCESS_RTC=1) ADD_DEFINITIONS(-DSTORAGE_ARTERY_CHECK_CLEAR=1) #ADD_DEFINITIONS(-DSTORAGE_ARTERY_CHECK_WRITE_SECTORS=1) # Включение записи по секторам (Тестово, закоментированно) #-- Project paths, Include dirs, Sources list --------------------------------- #ADD_FILES(SOURCES "MODULES/DeviceStartup_ARTERY_AT32F437ZMT7/ld/startup_at32f435_437.s") 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}/APP/FC7240_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") #-- Random BuildId Generation ------------------------------------------------------------ SET(RANDOM_BUILD_ID_GEN_FILE ${CMAKE_SOURCE_DIR}/MODULES/CmakeConfig_RandomBuildIdGenerator/version.cmake) add_custom_target(GEN_RANDOM_BUILD_ID) ADD_CUSTOM_COMMAND(TARGET GEN_RANDOM_BUILD_ID POST_BUILD COMMAND ${CMAKE_COMMAND} -P ${RANDOM_BUILD_ID_GEN_FILE}) #-- Project linking ------------------------------------------------------------ ADD_EXECUTABLE(${PROJECT_NAME}.elf ${SOURCES}) TARGET_LINK_LIBRARIES(${PROJECT_NAME}.elf m) add_dependencies(${PROJECT_NAME}.elf GEN_RANDOM_BUILD_ID) #-- 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)