153 lines
4.7 KiB
CMake
153 lines
4.7 KiB
CMake
|
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(MCU_FLAGS "-mcpu=cortex-m4 -mthumb -mthumb-interwork -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections")
|
||
|
|
||
|
set(CMAKE_ASM_FLAGS "-c ${MCU_FLAGS} -x assembler-with-cpp -Wa,-mimplicit-it=thumb -gdwarf-2")
|
||
|
|
||
|
set(CMAKE_C_FLAGS "${MCU_FLAGS} -Dgcc -w -Wno-unknown-pragmas -O0 -gdwarf-2 -g")
|
||
|
set(CMAKE_C_FLAGS_DEBUG "-O0 -gdwarf-2 -g")
|
||
|
set(CMAKE_C_FLAGS_RELEASE "-O3")
|
||
|
|
||
|
set(LINKER_SCRIPT STM32F407ZGTX_FLASH.ld)
|
||
|
set(CMAKE_EXE_LINKER_FLAGS "${MCU_FLAGS} -Wl,--gc-sections,-Map=${PROJECT_NAME}.map,--cref,-u,Reset_Handler -T${LINKER_SCRIPT}")
|
||
|
#set(CMAKE_EXE_LINKER_FLAGS "--specs=nano.specs -specs=nosys.specs -nostartfiles -T${LINKER_SCRIPT} -Wl,-Map=${PROJECT_BINARY_DIR}/${PROJECT_NAME}.map,--cref -Wl,--gc-sections")
|
||
|
|
||
|
set(SRC_PATH ../../src)
|
||
|
|
||
|
include_directories(${SRC_PATH}/App)
|
||
|
include_directories(${SRC_PATH}/Bsp)
|
||
|
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
|
||
|
)
|
||
|
|
||
|
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/stm32f4xx_it.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}
|
||
|
${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"
|
||
|
# )
|