From 19eda0554cf6befb9f25809103822377f9c98a17 Mon Sep 17 00:00:00 2001 From: Norym Date: Wed, 20 May 2020 19:55:13 +0200 Subject: [PATCH] cleanup CMake --- Software/firmware/CMakeLists.txt | 7 +++++++ Software/firmware/helper/target.mainunit | 11 +++++++++++ Software/firmware/target/mainunit/CMakeLists.txt | 14 +++----------- .../firmware/target/mainunit/drv/CMakeLists.txt | 2 ++ Software/firmware/target/mainunit/drv/inc/uart.hpp | 4 ++-- .../target/mainunit/drv/src/CMakeLists.txt | 6 ------ .../target/mainunit/drv/system/CMakeLists.txt | 2 ++ .../mainunit/drv/system/cmsis/CMakeLists.txt | 1 + .../mainunit/drv/system/cmsis/inc/stm32l4xx.h | 2 +- .../mainunit/drv/system/cmsis/src/CMakeLists.txt | 6 ------ .../drv/system/cmsis/src/system_stm32l4xx.c | 2 +- .../target/mainunit/drv/system/hal/CMakeLists.txt | 1 + .../mainunit/drv/system/hal/inc/stm32l4xx_hal.h | 2 +- .../mainunit/drv/system/hal/src/CMakeLists.txt | 10 ---------- 14 files changed, 32 insertions(+), 38 deletions(-) create mode 100644 Software/firmware/target/mainunit/drv/CMakeLists.txt create mode 100644 Software/firmware/target/mainunit/drv/system/CMakeLists.txt create mode 100644 Software/firmware/target/mainunit/drv/system/cmsis/CMakeLists.txt create mode 100644 Software/firmware/target/mainunit/drv/system/hal/CMakeLists.txt diff --git a/Software/firmware/CMakeLists.txt b/Software/firmware/CMakeLists.txt index 1c22a76..57983af 100644 --- a/Software/firmware/CMakeLists.txt +++ b/Software/firmware/CMakeLists.txt @@ -15,3 +15,10 @@ add_executable(${PROJECT_NAME} target_link_libraries (${PROJECT_NAME} target womolin) +add_custom_command(OUTPUT ${PROJECT_NAME}.bin + COMMAND "${CMAKE_OBJCOPY} ARGS -O ihex ${PROJECT_NAME} ${PROJECT_NAME}.hex" + DEPENDS ${PROJECT_NAME} + COMMENT "objcopying ${PROJECT_NAME} to ${PROJECT_NAME}.hex") + +add_custom_target(${PROJECT_NAME}.hex ALL DEPENDS ${PROJECT_NAME}) + diff --git a/Software/firmware/helper/target.mainunit b/Software/firmware/helper/target.mainunit index 003a9fb..e4f3745 100644 --- a/Software/firmware/helper/target.mainunit +++ b/Software/firmware/helper/target.mainunit @@ -2,5 +2,16 @@ SET(WOMOLIN_TARGET "TARGET_MAINUNIT") SET(CMAKE_C_COMPILER /opt/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-gcc) SET(CMAKE_CXX_COMPILER "/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-g++") +SET(CMAKE_OBJCOPY "/opt/gcc-arm-none-eabi-9-2019-q4-major/bin/arm-none-eabi-objcopy") SET(CMAKE_CXX_FLAGS -D${WOMOLIN_TARGET}) SET(CMAKE_EXE_LINKER_FLAGS "-specs=nosys.specs") + +SET(CPU "cortex-m4") + +SET(COMMON_COMPILE_FLAGS "-mcpu=${CPU} -mthumb -DSTM32L476xx -DUSE_HAL_DRIVER") + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_COMPILE_FLAGS}") +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_COMPILE_FLAGS}") + +ADD_COMPILE_OPTIONS("-Tdrv/system/cmsis/STM32L476RGTx_FLASH.ld") + diff --git a/Software/firmware/target/mainunit/CMakeLists.txt b/Software/firmware/target/mainunit/CMakeLists.txt index 84f193e..4c50757 100644 --- a/Software/firmware/target/mainunit/CMakeLists.txt +++ b/Software/firmware/target/mainunit/CMakeLists.txt @@ -1,19 +1,10 @@ SET(LIB_NAME "target") project(${LIB_NAME}) -set(DEFINITIONS "${DEFINITIONS} -DSTM32L476xx") -set(DEFINITIONS "${DEFINITIONS} -DUSE_HAL_DRIVER") - -set(CMAKE_C_FLAGS "${DEFINITIONS}") -set(CMAKE_CXX_FLAGS "${DEFINITIONS}") - +#TODO das muss raus include_directories(drv/system/cmsis/inc drv/system/hal/inc drv/inc) -add_compile_options("-Tdrv/system/cmsis/STM32L476RGTx_FLASH.ld") - -add_subdirectory(drv/system/cmsis/src) -add_subdirectory(drv/system/hal/src) -add_subdirectory(drv/src) +add_subdirectory(drv) add_library(${LIB_NAME} hwinit @@ -22,5 +13,6 @@ add_library(${LIB_NAME} unit ) +#TODO nur driver lib moeglich? target_link_libraries( ${LIB_NAME} driver hal cmsis) diff --git a/Software/firmware/target/mainunit/drv/CMakeLists.txt b/Software/firmware/target/mainunit/drv/CMakeLists.txt new file mode 100644 index 0000000..ed9dd44 --- /dev/null +++ b/Software/firmware/target/mainunit/drv/CMakeLists.txt @@ -0,0 +1,2 @@ +add_subdirectory(system) +add_subdirectory(src) diff --git a/Software/firmware/target/mainunit/drv/inc/uart.hpp b/Software/firmware/target/mainunit/drv/inc/uart.hpp index 2ae64dd..b86415f 100644 --- a/Software/firmware/target/mainunit/drv/inc/uart.hpp +++ b/Software/firmware/target/mainunit/drv/inc/uart.hpp @@ -8,8 +8,8 @@ #ifndef INC_UART_HPP_ #define INC_UART_HPP_ -#include "stm32l476xx.h" -#include "stm32l4xx_hal.h" +#include "../system/cmsis/inc/stm32l476xx.h" +#include "../system/hal/inc/stm32l4xx_hal.h" #include "circularbuffer.hpp" diff --git a/Software/firmware/target/mainunit/drv/src/CMakeLists.txt b/Software/firmware/target/mainunit/drv/src/CMakeLists.txt index 0be04c7..502b404 100644 --- a/Software/firmware/target/mainunit/drv/src/CMakeLists.txt +++ b/Software/firmware/target/mainunit/drv/src/CMakeLists.txt @@ -1,12 +1,6 @@ SET(LIB_NAME "driver") project(${LIB_NAME}) -set(DEFINITIONS "${DEFINITIONS} -DSTM32L476xx") -set(DEFINITIONS "${DEFINITIONS} -DUSE_HAL_DRIVER") - -set(CMAKE_C_FLAGS "${DEFINITIONS}") -set(CMAKE_CXX_FLAGS "${DEFINITIONS}") - include_directories(../inc ../system/cmsis/inc ../system/hal/inc) add_library(${LIB_NAME} diff --git a/Software/firmware/target/mainunit/drv/system/CMakeLists.txt b/Software/firmware/target/mainunit/drv/system/CMakeLists.txt new file mode 100644 index 0000000..0219354 --- /dev/null +++ b/Software/firmware/target/mainunit/drv/system/CMakeLists.txt @@ -0,0 +1,2 @@ +add_subdirectory(cmsis) +add_subdirectory(hal) diff --git a/Software/firmware/target/mainunit/drv/system/cmsis/CMakeLists.txt b/Software/firmware/target/mainunit/drv/system/cmsis/CMakeLists.txt new file mode 100644 index 0000000..febd4f0 --- /dev/null +++ b/Software/firmware/target/mainunit/drv/system/cmsis/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(src) diff --git a/Software/firmware/target/mainunit/drv/system/cmsis/inc/stm32l4xx.h b/Software/firmware/target/mainunit/drv/system/cmsis/inc/stm32l4xx.h index 0bf6c83..06432b3 100644 --- a/Software/firmware/target/mainunit/drv/system/cmsis/inc/stm32l4xx.h +++ b/Software/firmware/target/mainunit/drv/system/cmsis/inc/stm32l4xx.h @@ -226,7 +226,7 @@ typedef enum */ #if defined (USE_HAL_DRIVER) - #include "stm32l4xx_hal.h" + #include "../../hal/inc/stm32l4xx_hal.h" #endif /* USE_HAL_DRIVER */ #ifdef __cplusplus diff --git a/Software/firmware/target/mainunit/drv/system/cmsis/src/CMakeLists.txt b/Software/firmware/target/mainunit/drv/system/cmsis/src/CMakeLists.txt index 261a491..e118634 100644 --- a/Software/firmware/target/mainunit/drv/system/cmsis/src/CMakeLists.txt +++ b/Software/firmware/target/mainunit/drv/system/cmsis/src/CMakeLists.txt @@ -1,12 +1,6 @@ SET(LIB_NAME "cmsis") project(${LIB_NAME}) -set(DEFINITIONS "${DEFINITIONS} -DSTM32L476xx") -set(DEFINITIONS "${DEFINITIONS} -DUSE_HAL_DRIVER") - -set(CMAKE_C_FLAGS "${DEFINITIONS}") -set(CMAKE_CXX_FLAGS "${DEFINITIONS}") - include_directories(../inc) enable_language(ASM) diff --git a/Software/firmware/target/mainunit/drv/system/cmsis/src/system_stm32l4xx.c b/Software/firmware/target/mainunit/drv/system/cmsis/src/system_stm32l4xx.c index 1db59ec..1207b97 100644 --- a/Software/firmware/target/mainunit/drv/system/cmsis/src/system_stm32l4xx.c +++ b/Software/firmware/target/mainunit/drv/system/cmsis/src/system_stm32l4xx.c @@ -89,7 +89,7 @@ * @{ */ -#include "stm32l4xx.h" +#include "../inc/stm32l4xx.h" #if !defined (HSE_VALUE) #define HSE_VALUE 8000000U /*!< Value of the External oscillator in Hz */ diff --git a/Software/firmware/target/mainunit/drv/system/hal/CMakeLists.txt b/Software/firmware/target/mainunit/drv/system/hal/CMakeLists.txt new file mode 100644 index 0000000..febd4f0 --- /dev/null +++ b/Software/firmware/target/mainunit/drv/system/hal/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(src) diff --git a/Software/firmware/target/mainunit/drv/system/hal/inc/stm32l4xx_hal.h b/Software/firmware/target/mainunit/drv/system/hal/inc/stm32l4xx_hal.h index b0eca91..099c830 100644 --- a/Software/firmware/target/mainunit/drv/system/hal/inc/stm32l4xx_hal.h +++ b/Software/firmware/target/mainunit/drv/system/hal/inc/stm32l4xx_hal.h @@ -27,7 +27,7 @@ #endif /* Includes ------------------------------------------------------------------*/ -#include "stm32l4xx_hal_conf.h" +#include "../../../inc/stm32l4xx_hal_conf.h" /** @addtogroup STM32L4xx_HAL_Driver * @{ diff --git a/Software/firmware/target/mainunit/drv/system/hal/src/CMakeLists.txt b/Software/firmware/target/mainunit/drv/system/hal/src/CMakeLists.txt index 3cd0797..66c5406 100644 --- a/Software/firmware/target/mainunit/drv/system/hal/src/CMakeLists.txt +++ b/Software/firmware/target/mainunit/drv/system/hal/src/CMakeLists.txt @@ -1,16 +1,6 @@ SET(LIB_NAME "hal") project(${LIB_NAME}) -set(CPU "cortex-m4") - -set(COMMON_COMPILE_FLAGS "-mcpu=${CPU} -mthumb") - -set(DEFINITIONS "${DEFINITIONS} -DSTM32L476xx") -set(DEFINITIONS "${DEFINITIONS} -DUSE_HAL_DRIVER") - -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_COMPILE_FLAGS} ${DEFINITIONS}") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMMON_COMPILE_FLAGS} ${DEFINITIONS}") - include_directories(../inc ../../../inc ../../cmsis/inc) add_library(${LIB_NAME}