cmake_minimum_required(VERSION 3.10) #绕过检查 SET(CMAKE_C_COMPILER_WORKS TURE) SET(CMAKE_CXX_COMPILER_WORKS TURE) project(stm32_template) ENABLE_LANGUAGE(ASM C) add_definitions( -DSTM32F407xx -DUSE_HAL_DRIVER ) set(SRC_PATH ../../src) include_directories(${SRC_PATH}/App) include_directories(${SRC_PATH}/Bsp) include_directories(${SRC_PATH}/Foc) include_directories(${SRC_PATH}/Common) include_directories(${SRC_PATH}/CMSIS/Include) include_directories(${SRC_PATH}/CMSIS/Device/ST/STM32F4xx/Include) include_directories(${SRC_PATH}/STM32F4xx_HAL_Driver/Inc) include_directories(${SRC_PATH}/STM32F4xx_HAL_Driver/Inc/Legacy) include_directories(${SRC_PATH}/rtthread/include) include_directories(${SRC_PATH}/rtthread/components/finsh) # file(GLOB APP_SRC ../../src/app/*.c) set(CMSIS_SRC ${SRC_PATH}/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f407xx.s ${SRC_PATH}/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c ) set(STM32F4xx_HAL_Driver_SRC ${SRC_PATH}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c ${SRC_PATH}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c ${SRC_PATH}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c ${SRC_PATH}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c ${SRC_PATH}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c ${SRC_PATH}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c ${SRC_PATH}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c ${SRC_PATH}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c ${SRC_PATH}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c ${SRC_PATH}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c ${SRC_PATH}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c ${SRC_PATH}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c ${SRC_PATH}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c ${SRC_PATH}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c ${SRC_PATH}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c ${SRC_PATH}/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c ${SRC_PATH}/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_tim.c ) set(RTThread_SRC ${SRC_PATH}/rtthread/libcpu/arm/cortex-m4/context_gcc.S ${SRC_PATH}/rtthread/libcpu/arm/cortex-m4/cpuport.c ${SRC_PATH}/rtthread/src/clock.c ${SRC_PATH}/rtthread/src/components.c ${SRC_PATH}/rtthread/src/cpu.c ${SRC_PATH}/rtthread/src/idle.c ${SRC_PATH}/rtthread/src/ipc.c ${SRC_PATH}/rtthread/src/irq.c ${SRC_PATH}/rtthread/src/kservice.c ${SRC_PATH}/rtthread/src/mem.c ${SRC_PATH}/rtthread/src/memheap.c ${SRC_PATH}/rtthread/src/mempool.c ${SRC_PATH}/rtthread/src/object.c ${SRC_PATH}/rtthread/src/scheduler.c ${SRC_PATH}/rtthread/src/slab.c ${SRC_PATH}/rtthread/src/thread.c ${SRC_PATH}/rtthread/src/timer.c ) set(FinSH_SRC ${SRC_PATH}/rtthread/components/finsh/cmd.c ${SRC_PATH}/rtthread/components/finsh/finsh_port.c ${SRC_PATH}/rtthread/components/finsh/msh.c ${SRC_PATH}/rtthread/components/finsh/shell.c ) set(Bsp_SRC ${SRC_PATH}/Bsp/board.c ${SRC_PATH}/Bsp/gpio.c ${SRC_PATH}/Bsp/usart.c ${SRC_PATH}/Bsp/timer.c ${SRC_PATH}/Bsp/stm32f4xx_it.c ) set(Foc_SRC ${SRC_PATH}/Foc/foc_math.c ${SRC_PATH}/Foc/hall.c ${SRC_PATH}/Foc/svpwm.c ) set(Common_SRC ) set(App_SRC ${SRC_PATH}/App/main.c ) add_executable(${PROJECT_NAME}.elf ${CMSIS_SRC} ${STM32F4xx_HAL_Driver_SRC} #${RTThread_SRC} #${FinSH_SRC} ${Common_SRC} ${Foc_SRC} ${Bsp_SRC} ${App_SRC} ) # add_library(platform # PLATFORM_SRC # ) # add_library(stm32l4xx_hal # STM32L4xx_HAL_SRC # ) # target_link_libraries(${PROJECT_NAME}.elf # ${PROJECT_NAME} # ) # set(ELF_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.elf) # set(HEX_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.hex) # set(BIN_FILE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}.bin) # add_custom_command(TARGET "${PROJECT_NAME}.elf" POST_BUILD # COMMAND ${CMAKE_OBJCOPY} -Obinary ${ELF_FILE} ${BIN_FILE} # COMMAND ${CMAKE_OBJCOPY} -Oihex ${ELF_FILE} ${HEX_FILE} # COMMENT "Building ${PROJECT_NAME}.bin and ${PROJECT_NAME}.hex" # COMMAND ${CMAKE_COMMAND} -E copy ${HEX_FILE} "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.hex" # COMMAND ${CMAKE_COMMAND} -E copy ${BIN_FILE} "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.bin" # COMMAND ${CMAKE_SIZE} --format=berkeley ${PROJECT_NAME}.elf ${PROJECT_NAME}.hex # COMMENT "Invoking: Cross ARM GNU Print Size" # )