From 57f8bc9f0e5e47325f4ffb38130b5fac3b0edacc Mon Sep 17 00:00:00 2001 From: jkaszowski Date: Fri, 25 Nov 2022 19:20:12 +0100 Subject: [PATCH] split toolchain into two CMakeLists.txt --- 3rdparty/CMakeLists.txt | 75 +++++++++++++++++++ .../Inc}/stm32f4xx_hal_conf.h | 0 CMakeLists.txt | 71 ++++-------------- 3 files changed, 89 insertions(+), 57 deletions(-) create mode 100644 3rdparty/CMakeLists.txt rename {src/bsp/configs => 3rdparty/STM32F4xx_HAL_Driver/Inc}/stm32f4xx_hal_conf.h (100%) diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt new file mode 100644 index 0000000..f313163 --- /dev/null +++ b/3rdparty/CMakeLists.txt @@ -0,0 +1,75 @@ +############################################################################### +# CMSIS +############################################################################### +set(CMSIS_DIR ${CMAKE_CURRENT_LIST_DIR}/CMSIS/) + +set(CMSIS_INC + ${CMSIS_DIR}Device/ST/STM32F4xx/Include/ + ${CMSIS_DIR}Include/ +) + +add_library(CMSIS STATIC + ${CMSIS_DIR}Device/ST/STM32F4xx/Source/gcc/system_stm32f4xx.c) + +target_include_directories(CMSIS PUBLIC + ${CMSIS_INC} +) + +############################################################################### +# HAL +############################################################################### + +set(HAL_DIR ${CMAKE_CURRENT_LIST_DIR}/STM32F4xx_HAL_Driver/) +set(HAL_INC ${HAL_DIR}Inc/) + +set(HAL_SRC + ${HAL_DIR}Src/stm32f4xx_hal.c + ${HAL_DIR}Src/stm32f4xx_hal_cortex.c + ${HAL_DIR}Src/stm32f4xx_hal_rcc_ex.c + ${HAL_DIR}Src/stm32f4xx_hal_rcc.c + ${HAL_DIR}Src/stm32f4xx_hal_gpio.c + ${HAL_DIR}Src/stm32f4xx_hal_pwr.c + ${HAL_DIR}Src/stm32f4xx_hal_pwr_ex.c + ${HAL_DIR}Src/stm32f4xx_hal_sd.c + ${HAL_DIR}Src/stm32f4xx_hal_spi.c + ${HAL_DIR}Src/stm32f4xx_hal_uart.c + ${HAL_DIR}Src/stm32f4xx_ll_sdmmc +) + +#file(GLOB_RECURSE HAL_SRC ${HAL_DIR}/Src/*.*) + +message("HAL FILES: " ${HAL_SRC}) + +add_library(HAL STATIC ${HAL_SRC}) + +target_include_directories(HAL PUBLIC + ${CMSIS_INC} + ${HAL_INC} +) + +############################################################################### +# FatFs +############################################################################### +set(FATFS_DIR ${CMAKE_CURRENT_LIST_DIR}/FATFS) +set(FATFS_INC ${FATFS_DIR}/Inc/) + +file(GLOB_RECURSE FATFS_SRC ${FATFS_DIR}/Src/*.*) + +#message("FATFS FILES: " ${FATFS_SRC}) + +add_library(FATFS STATIC + ${FATFS_SRC} +) + +target_include_directories(FATFS PUBLIC + ${HAL_INC} + ${CMSIS_INC} + ${FATFS_INC} +) + +############################################################################### +# STARTUP +############################################################################### + +add_library(STARTUP STATIC + ${CMSIS_DIR}Device/ST/STM32F4xx/Source/gcc/startup_stm32f412retx.s) diff --git a/src/bsp/configs/stm32f4xx_hal_conf.h b/3rdparty/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_conf.h similarity index 100% rename from src/bsp/configs/stm32f4xx_hal_conf.h rename to 3rdparty/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_conf.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b840a6..8608bc6 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,72 +15,29 @@ set(BIN_FILE ${PROJECT_NAME}.bin) set(HEX_FILEPATH ${CMAKE_BINARY_DIR}/${HEX_FILE}) set(BIN_FILEPATH ${CMAKE_BINARY_DIR}/${BIN_FILE}) set(ELF_FILEPATH ${CMAKE_BINARY_DIR}/${ELF_FILE}) +set(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/prj/linker/STM32F412RETX_FLASH.ld) +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -T${LINKER_SCRIPT}") message("-- Building OBC") # add project source files file(GLOB_RECURSE OBC_SRC src/*.*) -set(HAL - 3rdparty/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c - 3rdparty/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c - 3rdparty/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c - 3rdparty/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c - 3rdparty/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c - 3rdparty/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c - 3rdparty/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c - 3rdparty/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_sd.c - 3rdparty/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c - 3rdparty/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c - 3rdparty/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_sdmmc.c - ) +# add thirdparty libraries +add_subdirectory(3rdparty) -SET(LINKER_SCRIPT ${CMAKE_SOURCE_DIR}/prj/linker/STM32F412RETX_FLASH.ld) -SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -T${LINKER_SCRIPT}") - -add_library(CMSIS - 3rdparty/CMSIS/Device/ST/STM32F4xx/Source/gcc/system_stm32f4xx.c) - -target_include_directories(CMSIS PUBLIC - 3rdparty/CMSIS/Include - 3rdparty/CMSIS/Device/ST/STM32F4xx/Include) - -add_library(STARTUP - 3rdparty/CMSIS/Device/ST/STM32F4xx/Source/gcc/startup_stm32f412retx.s) - -add_library(FATFS - 3rdparty/FATFS/Src/bsp_driver_sd.c - 3rdparty/FATFS/Src/ccsbcs.c - 3rdparty/FATFS/Src/diskio.c - 3rdparty/FATFS/Src/fatfs.c - 3rdparty/FATFS/Src/fatfs_platform.c - 3rdparty/FATFS/Src/ff.c - 3rdparty/FATFS/Src/ff_gen_drv.c - 3rdparty/FATFS/Src/sd_diskio.c - 3rdparty/FATFS/Src/syscall.c - ) - -target_include_directories(FATFS PUBLIC - 3rdparty/FATFS/Inc - src/bsp/configs - 3rdparty/STM32F4xx_HAL_Driver/Inc - 3rdparty/CMSIS/Include - 3rdparty/CMSIS/Device/ST/STM32F4xx/Include - ) - -add_executable(${ELF_FILE} ${OBC_SRC} ${HAL} ${LINKER_SCRIPT}) +add_executable(${ELF_FILE} ${OBC_SRC} ${LINKER_SCRIPT}) target_include_directories(${ELF_FILE} PUBLIC - 3rdparty/STM32F4xx_HAL_Driver/Inc - 3rdparty/CMSIS/Include - 3rdparty/CMSIS/Device/ST/STM32F4xx/Include - 3rdparty/FATFS/Inc - src/bsp - src/bsp/configs - src/proxy/sd - ) - -target_link_libraries(${ELF_FILE} STARTUP CMSIS FATFS) + ${HAL_INC} + ${CMSIS_INC} + ${FATFS_INC} + src/bsp + src/bsp/configs + src/proxy/sd +) + +target_link_libraries(${ELF_FILE} STARTUP FATFS HAL CMSIS) target_compile_options(${ELF_FILE} PRIVATE "-Wall" "-Wextra") add_custom_target(build