From 9c7acb2b074ce873fc53358844e493d23cd1a58a Mon Sep 17 00:00:00 2001 From: Tilen Majerle Date: Sat, 3 Jun 2023 09:40:00 +0200 Subject: [PATCH] Updates --- cube-ide-cmake-demo-proj/.vscode/tasks.json | 4 +- cube-ide-cmake-demo-proj/CMakeLists.txt | 18 ++-- .../cmake/gcc-arm-none-eabi.cmake | 11 +- .../cmake_generated/cmake_generated.cmake | 14 +-- .../h735g-dk-touchgfx/.vscode/tasks.json | 4 +- .../h735g-dk-touchgfx/CMakeLists.txt | 18 ++-- .../cmake/gcc-arm-none-eabi.cmake | 11 +- .../cmake_generated/cmake_generated.cmake | 102 +++++++++--------- .../h735g-dk-usart/.vscode/tasks.json | 4 +- script-projects/h735g-dk-usart/CMakeLists.txt | 18 ++-- .../cmake/gcc-arm-none-eabi.cmake | 11 +- .../cmake_generated/cmake_generated.cmake | 24 ++--- templates/.vscode/tasks.json | 4 +- templates/CMakeLists_template.txt | 8 ++ 14 files changed, 134 insertions(+), 117 deletions(-) diff --git a/cube-ide-cmake-demo-proj/.vscode/tasks.json b/cube-ide-cmake-demo-proj/.vscode/tasks.json index 7606a82..f7d155f 100644 --- a/cube-ide-cmake-demo-proj/.vscode/tasks.json +++ b/cube-ide-cmake-demo-proj/.vscode/tasks.json @@ -1,6 +1,6 @@ { - "version": "2.0.0", - "tasks": [ + "version": "2.0.0", + "tasks": [ { "type": "cppbuild", "label": "Build project", diff --git a/cube-ide-cmake-demo-proj/CMakeLists.txt b/cube-ide-cmake-demo-proj/CMakeLists.txt index 7590f0c..efd234f 100644 --- a/cube-ide-cmake-demo-proj/CMakeLists.txt +++ b/cube-ide-cmake-demo-proj/CMakeLists.txt @@ -30,11 +30,17 @@ set(cpu_PARAMS # Sources set(sources_SRCS) +# Include directories for all compilers +set(include_DIRS) + # Include directories for each compiler set(include_c_DIRS) set(include_cxx_DIRS) set(include_asm_DIRS) +# Symbols definition for all compilers +set(symbols_SYMB) + # Symbols definition for each compiler set(symbols_c_SYMB) set(symbols_cxx_SYMB) @@ -70,6 +76,7 @@ target_sources(${CMAKE_PROJECT_NAME} PUBLIC ${sources_SRCS}) # Add include paths target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE + ${include_DIRS} $<$: ${include_c_DIRS}> $<$: ${include_cxx_DIRS}> $<$: ${include_asm_DIRS}> @@ -77,6 +84,7 @@ target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE # Add project symbols (macros) target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE + ${symbols_SYMB} $<$: ${symbols_c_SYMB}> $<$: ${symbols_cxx_SYMB}> $<$: ${symbols_asm_SYMB}> @@ -128,17 +136,9 @@ target_link_options(${CMAKE_PROJECT_NAME} PRIVATE -Wl,--print-memory-usage ) -# Execute post-build to print size +# Execute post-build to print size, generate hex and bin add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_SIZE} $ -) - -# Convert output to hex and binary -add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_OBJCOPY} -O ihex $ ${CMAKE_PROJECT_NAME}.hex -) - -# Convert to bin file -> add conditional check? -add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_OBJCOPY} -O binary $ ${CMAKE_PROJECT_NAME}.bin ) diff --git a/cube-ide-cmake-demo-proj/cmake/gcc-arm-none-eabi.cmake b/cube-ide-cmake-demo-proj/cmake/gcc-arm-none-eabi.cmake index 3577ff8..4048ae5 100644 --- a/cube-ide-cmake-demo-proj/cmake/gcc-arm-none-eabi.cmake +++ b/cube-ide-cmake-demo-proj/cmake/gcc-arm-none-eabi.cmake @@ -4,12 +4,15 @@ set(CMAKE_SYSTEM_PROCESSOR arm) # Some default GCC settings # arm-none-eabi- must be part of path environment set(TOOLCHAIN_PREFIX arm-none-eabi-) -set(FLAGS "-fdata-sections -ffunction-sections --specs=nano.specs -Wl,--gc-sections") -set(CPP_FLAGS "-fno-rtti -fno-exceptions -fno-threadsafe-statics") +set(FLAGS "-fdata-sections -ffunction-sections -Wl,--gc-sections") +set(CPP_FLAGS "${FLAGS} -fno-rtti -fno-exceptions -fno-threadsafe-statics") -set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc ${FLAGS}) +set(CMAKE_C_FLAGS ${FLAGS}) +set(CMAKE_CXX_FLAGS ${CPP_FLAGS}) + +set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc) set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER}) -set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++ ${FLAGS} ${CPP_FLAGS}) +set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++) set(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy) set(CMAKE_SIZE ${TOOLCHAIN_PREFIX}size) diff --git a/cube-ide-cmake-demo-proj/cmake_generated/cmake_generated.cmake b/cube-ide-cmake-demo-proj/cmake_generated/cmake_generated.cmake index 68f8d1e..7ffe4cb 100644 --- a/cube-ide-cmake-demo-proj/cmake_generated/cmake_generated.cmake +++ b/cube-ide-cmake-demo-proj/cmake_generated/cmake_generated.cmake @@ -11,8 +11,8 @@ set(cpu_PARAMS ${cpu_PARAMS} # Other parameters # -mcpu, -mfloat, -mfloat-abi, ... -mcpu=cortex-m7 - -mfpu=fpv5-d16 -mfloat-abi=hard + -mfpu=fpv5-d16 ) # Linker script @@ -38,9 +38,9 @@ set(sources_SRCS ${sources_SRCS} # Include directories set(include_c_DIRS ${include_c_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/Core/Inc - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Inc ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/CMSIS/Device/ST/STM32H7xx/Include ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/CMSIS/Include + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Inc ) set(include_cxx_DIRS ${include_cxx_DIRS} @@ -52,15 +52,15 @@ set(include_asm_DIRS ${include_asm_DIRS} # Symbols definition set(symbols_c_SYMB ${symbols_c_SYMB} "DEBUG" - "STM32H735xx" - "USE_FULL_LL_DRIVER" - "HSE_VALUE=25000000" + "EXTERNAL_CLOCK_VALUE=12288000" "HSE_STARTUP_TIMEOUT=100" + "HSE_VALUE=25000000" + "HSI_VALUE=64000000" "LSE_STARTUP_TIMEOUT=5000" "LSE_VALUE=32768" - "EXTERNAL_CLOCK_VALUE=12288000" - "HSI_VALUE=64000000" "LSI_VALUE=32000" + "STM32H735xx" + "USE_FULL_LL_DRIVER" "VDD_VALUE=3300" ) set(symbols_cxx_SYMB ${symbols_cxx_SYMB} diff --git a/script-projects/h735g-dk-touchgfx/.vscode/tasks.json b/script-projects/h735g-dk-touchgfx/.vscode/tasks.json index 7606a82..f7d155f 100644 --- a/script-projects/h735g-dk-touchgfx/.vscode/tasks.json +++ b/script-projects/h735g-dk-touchgfx/.vscode/tasks.json @@ -1,6 +1,6 @@ { - "version": "2.0.0", - "tasks": [ + "version": "2.0.0", + "tasks": [ { "type": "cppbuild", "label": "Build project", diff --git a/script-projects/h735g-dk-touchgfx/CMakeLists.txt b/script-projects/h735g-dk-touchgfx/CMakeLists.txt index 04aa7dd..bbe2d56 100644 --- a/script-projects/h735g-dk-touchgfx/CMakeLists.txt +++ b/script-projects/h735g-dk-touchgfx/CMakeLists.txt @@ -30,11 +30,17 @@ set(cpu_PARAMS # Sources set(sources_SRCS) +# Include directories for all compilers +set(include_DIRS) + # Include directories for each compiler set(include_c_DIRS) set(include_cxx_DIRS) set(include_asm_DIRS) +# Symbols definition for all compilers +set(symbols_SYMB) + # Symbols definition for each compiler set(symbols_c_SYMB) set(symbols_cxx_SYMB) @@ -70,6 +76,7 @@ target_sources(${CMAKE_PROJECT_NAME} PUBLIC ${sources_SRCS}) # Add include paths target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE + ${include_DIRS} $<$: ${include_c_DIRS}> $<$: ${include_cxx_DIRS}> $<$: ${include_asm_DIRS}> @@ -77,6 +84,7 @@ target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE # Add project symbols (macros) target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE + ${symbols_SYMB} $<$: ${symbols_c_SYMB}> $<$: ${symbols_cxx_SYMB}> $<$: ${symbols_asm_SYMB}> @@ -128,17 +136,9 @@ target_link_options(${CMAKE_PROJECT_NAME} PRIVATE -Wl,--print-memory-usage ) -# Execute post-build to print size +# Execute post-build to print size, generate hex and bin add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_SIZE} $ -) - -# Convert output to hex and binary -add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_OBJCOPY} -O ihex $ ${CMAKE_PROJECT_NAME}.hex -) - -# Convert to bin file -> add conditional check? -add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_OBJCOPY} -O binary $ ${CMAKE_PROJECT_NAME}.bin ) diff --git a/script-projects/h735g-dk-touchgfx/cmake/gcc-arm-none-eabi.cmake b/script-projects/h735g-dk-touchgfx/cmake/gcc-arm-none-eabi.cmake index 3577ff8..4048ae5 100644 --- a/script-projects/h735g-dk-touchgfx/cmake/gcc-arm-none-eabi.cmake +++ b/script-projects/h735g-dk-touchgfx/cmake/gcc-arm-none-eabi.cmake @@ -4,12 +4,15 @@ set(CMAKE_SYSTEM_PROCESSOR arm) # Some default GCC settings # arm-none-eabi- must be part of path environment set(TOOLCHAIN_PREFIX arm-none-eabi-) -set(FLAGS "-fdata-sections -ffunction-sections --specs=nano.specs -Wl,--gc-sections") -set(CPP_FLAGS "-fno-rtti -fno-exceptions -fno-threadsafe-statics") +set(FLAGS "-fdata-sections -ffunction-sections -Wl,--gc-sections") +set(CPP_FLAGS "${FLAGS} -fno-rtti -fno-exceptions -fno-threadsafe-statics") -set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc ${FLAGS}) +set(CMAKE_C_FLAGS ${FLAGS}) +set(CMAKE_CXX_FLAGS ${CPP_FLAGS}) + +set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc) set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER}) -set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++ ${FLAGS} ${CPP_FLAGS}) +set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++) set(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy) set(CMAKE_SIZE ${TOOLCHAIN_PREFIX}size) diff --git a/script-projects/h735g-dk-touchgfx/cmake_generated/cmake_generated.cmake b/script-projects/h735g-dk-touchgfx/cmake_generated/cmake_generated.cmake index cd9291a..185ffcf 100644 --- a/script-projects/h735g-dk-touchgfx/cmake_generated/cmake_generated.cmake +++ b/script-projects/h735g-dk-touchgfx/cmake_generated/cmake_generated.cmake @@ -11,8 +11,8 @@ set(cpu_PARAMS ${cpu_PARAMS} # Other parameters # -mcpu, -mfloat, -mfloat-abi, ... -mcpu=cortex-m7 - -mfpu=fpv5-d16 -mfloat-abi=hard + -mfpu=fpv5-d16 ) # Linker script @@ -22,8 +22,19 @@ set(linker_script_SRC ${linker_script_SRC} # Sources set(sources_SRCS ${sources_SRCS} - ${CMAKE_CURRENT_SOURCE_DIR}/STM32H735G-DK.ioc + ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/freertos.c + ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/main.c + ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/stm32h7xx_hal_msp.c + ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/stm32h7xx_hal_timebase_tim.c + ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/stm32h7xx_it.c ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/system_stm32h7xx.c + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/Components/ft5336/ft5336.c + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/Components/ft5336/ft5336_reg.c + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/Components/mx25lm51245g/mx25lm51245g.c + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/Components/s70kl1281/s70kl1281.c + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/STM32H735G-DK/stm32h735g_discovery_bus.c + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/STM32H735G-DK/stm32h735g_discovery_ospi.c + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/STM32H735G-DK/stm32h735g_discovery_ts.c ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_crc.c @@ -51,41 +62,18 @@ set(sources_SRCS ${sources_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.c ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/croutine.c ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/event_groups.c - ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.c ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/list.c ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c + ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.c ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/queue.c ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.c ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/tasks.c ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/timers.c - ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/freertos.c - ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/main.c - ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/stm32h7xx_hal_msp.c - ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/stm32h7xx_hal_timebase_tim.c - ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/stm32h7xx_it.c ${CMAKE_CURRENT_SOURCE_DIR}/STM32CubeIDE/Application/User/Core/syscalls.c ${CMAKE_CURRENT_SOURCE_DIR}/STM32CubeIDE/Application/User/Core/sysmem.c - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/Components/ft5336/ft5336.c - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/Components/ft5336/ft5336_reg.c - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/Components/mx25lm51245g/mx25lm51245g.c - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/Components/s70kl1281/s70kl1281.c - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/STM32H735G-DK/stm32h735g_discovery_bus.c - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/STM32H735G-DK/stm32h735g_discovery_ospi.c - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/STM32H735G-DK/stm32h735g_discovery_ts.c + ${CMAKE_CURRENT_SOURCE_DIR}/STM32CubeIDE/Application/User/Startup/startup_stm32h735igkx.s + ${CMAKE_CURRENT_SOURCE_DIR}/STM32H735G-DK.ioc ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/App/app_touchgfx.c - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/CortexMMCUInstrumentation.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/STM32TouchController.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/TouchGFXGPIO.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/TouchGFXHAL.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/generated/OSWrappers.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/generated/STM32DMA.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/generated/TouchGFXConfiguration.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/generated/TouchGFXGeneratedHAL.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/gui/src/common/FrontendApplication.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/gui/src/containers/ScrollList_myContainer.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/gui/src/model/Model.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/gui/src/screen1_screen/Screen1Presenter.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/gui/src/screen1_screen/Screen1View.cpp ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/generated/fonts/src/ApplicationFontProvider.cpp ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/generated/fonts/src/CachedFont.cpp ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/generated/fonts/src/FontCache.cpp @@ -110,53 +98,65 @@ set(sources_SRCS ${sources_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/generated/texts/src/LanguageGb.cpp ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/generated/texts/src/Texts.cpp ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/generated/texts/src/TypedTextDatabase.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/STM32CubeIDE/Application/User/Startup/startup_stm32h735igkx.s + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/gui/src/common/FrontendApplication.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/gui/src/containers/ScrollList_myContainer.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/gui/src/model/Model.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/gui/src/screen1_screen/Screen1Presenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/gui/src/screen1_screen/Screen1View.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/CortexMMCUInstrumentation.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/STM32TouchController.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/TouchGFXGPIO.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/TouchGFXHAL.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/generated/OSWrappers.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/generated/STM32DMA.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/generated/TouchGFXConfiguration.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/generated/TouchGFXGeneratedHAL.cpp ) # Include directories set(include_c_DIRS ${include_c_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/Core/Inc - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/App - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/generated - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/Components/Common + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/STM32H735G-DK + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/CMSIS/Device/ST/STM32H7xx/Include + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/CMSIS/Include ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Inc ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy - ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/include + ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/ST/touchgfx/framework/include ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 + ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/include ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/CMSIS/Device/ST/STM32H7xx/Include - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/CMSIS/Include - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/Components/Common - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/STM32H735G-DK - ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/ST/touchgfx/framework/include + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/App ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/generated/fonts/include ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/generated/gui_generated/include ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/generated/images/include ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/generated/texts/include - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/gui/include ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/generated/videos/include + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/gui/include + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/generated ) set(include_cxx_DIRS ${include_cxx_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/Core/Inc - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/App - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/generated - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/Components/Common + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/STM32H735G-DK + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/CMSIS/Device/ST/STM32H7xx/Include + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/CMSIS/Include ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Inc ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy - ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/include + ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/ST/touchgfx/framework/include ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 + ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/include ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/CMSIS/Device/ST/STM32H7xx/Include - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/CMSIS/Include - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/Components/Common - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/BSP/STM32H735G-DK - ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/ST/touchgfx/framework/include + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/App ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/generated/fonts/include ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/generated/gui_generated/include ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/generated/images/include ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/generated/texts/include - ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/gui/include ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/generated/videos/include + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/gui/include + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target + ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/generated ) set(include_asm_DIRS ${include_asm_DIRS} @@ -164,14 +164,14 @@ set(include_asm_DIRS ${include_asm_DIRS} # Symbols definition set(symbols_c_SYMB ${symbols_c_SYMB} - "USE_HAL_DRIVER" "DEBUG" "STM32H735xx" + "USE_HAL_DRIVER" ) set(symbols_cxx_SYMB ${symbols_cxx_SYMB} - "USE_HAL_DRIVER" "DEBUG" "STM32H735xx" + "USE_HAL_DRIVER" ) set(symbols_asm_SYMB ${symbols_asm_SYMB} "DEBUG" diff --git a/script-projects/h735g-dk-usart/.vscode/tasks.json b/script-projects/h735g-dk-usart/.vscode/tasks.json index 7606a82..f7d155f 100644 --- a/script-projects/h735g-dk-usart/.vscode/tasks.json +++ b/script-projects/h735g-dk-usart/.vscode/tasks.json @@ -1,6 +1,6 @@ { - "version": "2.0.0", - "tasks": [ + "version": "2.0.0", + "tasks": [ { "type": "cppbuild", "label": "Build project", diff --git a/script-projects/h735g-dk-usart/CMakeLists.txt b/script-projects/h735g-dk-usart/CMakeLists.txt index 99e0915..da5c0e3 100644 --- a/script-projects/h735g-dk-usart/CMakeLists.txt +++ b/script-projects/h735g-dk-usart/CMakeLists.txt @@ -30,11 +30,17 @@ set(cpu_PARAMS # Sources set(sources_SRCS) +# Include directories for all compilers +set(include_DIRS) + # Include directories for each compiler set(include_c_DIRS) set(include_cxx_DIRS) set(include_asm_DIRS) +# Symbols definition for all compilers +set(symbols_SYMB) + # Symbols definition for each compiler set(symbols_c_SYMB) set(symbols_cxx_SYMB) @@ -70,6 +76,7 @@ target_sources(${CMAKE_PROJECT_NAME} PUBLIC ${sources_SRCS}) # Add include paths target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE + ${include_DIRS} $<$: ${include_c_DIRS}> $<$: ${include_cxx_DIRS}> $<$: ${include_asm_DIRS}> @@ -77,6 +84,7 @@ target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE # Add project symbols (macros) target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE + ${symbols_SYMB} $<$: ${symbols_c_SYMB}> $<$: ${symbols_cxx_SYMB}> $<$: ${symbols_asm_SYMB}> @@ -128,17 +136,9 @@ target_link_options(${CMAKE_PROJECT_NAME} PRIVATE -Wl,--print-memory-usage ) -# Execute post-build to print size +# Execute post-build to print size, generate hex and bin add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_SIZE} $ -) - -# Convert output to hex and binary -add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_OBJCOPY} -O ihex $ ${CMAKE_PROJECT_NAME}.hex -) - -# Convert to bin file -> add conditional check? -add_custom_command(TARGET ${CMAKE_PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_OBJCOPY} -O binary $ ${CMAKE_PROJECT_NAME}.bin ) diff --git a/script-projects/h735g-dk-usart/cmake/gcc-arm-none-eabi.cmake b/script-projects/h735g-dk-usart/cmake/gcc-arm-none-eabi.cmake index 3577ff8..4048ae5 100644 --- a/script-projects/h735g-dk-usart/cmake/gcc-arm-none-eabi.cmake +++ b/script-projects/h735g-dk-usart/cmake/gcc-arm-none-eabi.cmake @@ -4,12 +4,15 @@ set(CMAKE_SYSTEM_PROCESSOR arm) # Some default GCC settings # arm-none-eabi- must be part of path environment set(TOOLCHAIN_PREFIX arm-none-eabi-) -set(FLAGS "-fdata-sections -ffunction-sections --specs=nano.specs -Wl,--gc-sections") -set(CPP_FLAGS "-fno-rtti -fno-exceptions -fno-threadsafe-statics") +set(FLAGS "-fdata-sections -ffunction-sections -Wl,--gc-sections") +set(CPP_FLAGS "${FLAGS} -fno-rtti -fno-exceptions -fno-threadsafe-statics") -set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc ${FLAGS}) +set(CMAKE_C_FLAGS ${FLAGS}) +set(CMAKE_CXX_FLAGS ${CPP_FLAGS}) + +set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc) set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER}) -set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++ ${FLAGS} ${CPP_FLAGS}) +set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++) set(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy) set(CMAKE_SIZE ${TOOLCHAIN_PREFIX}size) diff --git a/script-projects/h735g-dk-usart/cmake_generated/cmake_generated.cmake b/script-projects/h735g-dk-usart/cmake_generated/cmake_generated.cmake index 49a96a0..a1f290e 100644 --- a/script-projects/h735g-dk-usart/cmake_generated/cmake_generated.cmake +++ b/script-projects/h735g-dk-usart/cmake_generated/cmake_generated.cmake @@ -11,8 +11,8 @@ set(cpu_PARAMS ${cpu_PARAMS} # Other parameters # -mcpu, -mfloat, -mfloat-abi, ... -mcpu=cortex-m7 - -mfpu=fpv5-d16 -mfloat-abi=hard + -mfpu=fpv5-d16 ) # Linker script @@ -29,12 +29,6 @@ set(sources_SRCS ${sources_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/sysmem.c ${CMAKE_CURRENT_SOURCE_DIR}/Core/Src/system_stm32h7xx.c ${CMAKE_CURRENT_SOURCE_DIR}/Core/Startup/startup_stm32h735igkx.s - ${CMAKE_CURRENT_SOURCE_DIR}/FATFS/App/fatfs.c - ${CMAKE_CURRENT_SOURCE_DIR}/FATFS/Target/user_diskio.c - ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FatFs/src/diskio.c - ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FatFs/src/ff.c - ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FatFs/src/ff_gen_drv.c - ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FatFs/src/option/syscall.c ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal.c ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_cortex.c ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_dma.c @@ -55,18 +49,24 @@ set(sources_SRCS ${sources_SRCS} ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_tim_ex.c ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart.c ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c + ${CMAKE_CURRENT_SOURCE_DIR}/FATFS/App/fatfs.c + ${CMAKE_CURRENT_SOURCE_DIR}/FATFS/Target/user_diskio.c + ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FatFs/src/diskio.c + ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FatFs/src/ff.c + ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FatFs/src/ff_gen_drv.c + ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FatFs/src/option/syscall.c ) # Include directories set(include_c_DIRS ${include_c_DIRS} - ${CMAKE_CURRENT_SOURCE_DIR}/FATFS/Target - ${CMAKE_CURRENT_SOURCE_DIR}/FATFS/App ${CMAKE_CURRENT_SOURCE_DIR}/Core/Inc + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/CMSIS/Device/ST/STM32H7xx/Include + ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/CMSIS/Include ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Inc ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Inc/Legacy + ${CMAKE_CURRENT_SOURCE_DIR}/FATFS/App + ${CMAKE_CURRENT_SOURCE_DIR}/FATFS/Target ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FatFs/src - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/CMSIS/Device/ST/STM32H7xx/Include - ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/CMSIS/Include ) set(include_cxx_DIRS ${include_cxx_DIRS} @@ -78,8 +78,8 @@ set(include_asm_DIRS ${include_asm_DIRS} # Symbols definition set(symbols_c_SYMB ${symbols_c_SYMB} "DEBUG" - "USE_HAL_DRIVER" "STM32H735xx" + "USE_HAL_DRIVER" ) set(symbols_cxx_SYMB ${symbols_cxx_SYMB} diff --git a/templates/.vscode/tasks.json b/templates/.vscode/tasks.json index 7606a82..f7d155f 100644 --- a/templates/.vscode/tasks.json +++ b/templates/.vscode/tasks.json @@ -1,6 +1,6 @@ { - "version": "2.0.0", - "tasks": [ + "version": "2.0.0", + "tasks": [ { "type": "cppbuild", "label": "Build project", diff --git a/templates/CMakeLists_template.txt b/templates/CMakeLists_template.txt index 2ffc12b..3b2c066 100644 --- a/templates/CMakeLists_template.txt +++ b/templates/CMakeLists_template.txt @@ -30,11 +30,17 @@ set(cpu_PARAMS # Sources set(sources_SRCS) +# Include directories for all compilers +set(include_DIRS) + # Include directories for each compiler set(include_c_DIRS) set(include_cxx_DIRS) set(include_asm_DIRS) +# Symbols definition for all compilers +set(symbols_SYMB) + # Symbols definition for each compiler set(symbols_c_SYMB) set(symbols_cxx_SYMB) @@ -70,6 +76,7 @@ target_sources(${CMAKE_PROJECT_NAME} PUBLIC ${sources_SRCS}) # Add include paths target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE + ${include_DIRS} $<$: ${include_c_DIRS}> $<$: ${include_cxx_DIRS}> $<$: ${include_asm_DIRS}> @@ -77,6 +84,7 @@ target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE # Add project symbols (macros) target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE + ${symbols_SYMB} $<$: ${symbols_c_SYMB}> $<$: ${symbols_cxx_SYMB}> $<$: ${symbols_asm_SYMB}>