diff --git a/cube-ide-cmake-demo-proj/.vscode/tasks.json b/cube-ide-cmake-demo-proj/.vscode/tasks.json index f7d155f..338cb9b 100644 --- a/cube-ide-cmake-demo-proj/.vscode/tasks.json +++ b/cube-ide-cmake-demo-proj/.vscode/tasks.json @@ -42,6 +42,7 @@ "args": [ "--connect", "port=swd", + "mode=UR", //Under reset "--download", "${command:cmake.launchTargetPath}", "-hardRst", // Hardware reset - if rst pin is connected "-rst", // Software reset (backup) @@ -59,6 +60,7 @@ "args": [ "--connect", "port=swd", + "mode=UR", //Under reset "sn=", "--download", "${command:cmake.launchTargetPath}", "-hardRst", // Hardware reset - if rst pin is connected diff --git a/cube-ide-cmake-demo-proj/CMakeLists.txt b/cube-ide-cmake-demo-proj/CMakeLists.txt index efd234f..39f5a09 100644 --- a/cube-ide-cmake-demo-proj/CMakeLists.txt +++ b/cube-ide-cmake-demo-proj/CMakeLists.txt @@ -21,11 +21,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS ON) # Core MCU flags, CPU type, instruction set and FPU setup -set(cpu_PARAMS - # Other parameters - # -mthumb - # -mcpu, -mfloat, -mfloat-abi, ... -) +set(cpu_PARAMS) # Sources set(sources_SRCS) 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 7ffe4cb..3df2d53 100644 --- a/cube-ide-cmake-demo-proj/cmake_generated/cmake_generated.cmake +++ b/cube-ide-cmake-demo-proj/cmake_generated/cmake_generated.cmake @@ -8,17 +8,14 @@ cmake_minimum_required(VERSION 3.22) set(cpu_PARAMS ${cpu_PARAMS} -mthumb - # Other parameters - # -mcpu, -mfloat, -mfloat-abi, ... + # -mcpu, -mfloat, -mfloat-abi config -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 ) # Linker script -set(linker_script_SRC ${linker_script_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/STM32H735IGKX_FLASH.ld -) +set(linker_script_SRC ${linker_script_SRC}${CMAKE_CURRENT_SOURCE_DIR}/STM32H735IGKX_FLASH.ld) # Sources set(sources_SRCS ${sources_SRCS} @@ -42,12 +39,8 @@ set(include_c_DIRS ${include_c_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/CMSIS/Include ${CMAKE_CURRENT_SOURCE_DIR}/Drivers/STM32H7xx_HAL_Driver/Inc ) -set(include_cxx_DIRS ${include_cxx_DIRS} - -) -set(include_asm_DIRS ${include_asm_DIRS} - -) +set(include_cxx_DIRS ${include_cxx_DIRS}) +set(include_asm_DIRS ${include_asm_DIRS}) # Symbols definition set(symbols_c_SYMB ${symbols_c_SYMB} @@ -63,22 +56,16 @@ set(symbols_c_SYMB ${symbols_c_SYMB} "USE_FULL_LL_DRIVER" "VDD_VALUE=3300" ) -set(symbols_cxx_SYMB ${symbols_cxx_SYMB} - -) +set(symbols_cxx_SYMB ${symbols_cxx_SYMB}) set(symbols_asm_SYMB ${symbols_asm_SYMB} "DEBUG" ) # Link directories -set(link_DIRS ${link_DIRS} - -) +set(link_DIRS ${link_DIRS}) # Link libraries -set(link_LIBS ${link_LIBS} - -) +set(link_LIBS ${link_LIBS}) # Compiler options set(compiler_OPTS ${compiler_OPTS}) diff --git a/script-projects/h735g-dk-touchgfx/.vscode/tasks.json b/script-projects/h735g-dk-touchgfx/.vscode/tasks.json index f7d155f..338cb9b 100644 --- a/script-projects/h735g-dk-touchgfx/.vscode/tasks.json +++ b/script-projects/h735g-dk-touchgfx/.vscode/tasks.json @@ -42,6 +42,7 @@ "args": [ "--connect", "port=swd", + "mode=UR", //Under reset "--download", "${command:cmake.launchTargetPath}", "-hardRst", // Hardware reset - if rst pin is connected "-rst", // Software reset (backup) @@ -59,6 +60,7 @@ "args": [ "--connect", "port=swd", + "mode=UR", //Under reset "sn=", "--download", "${command:cmake.launchTargetPath}", "-hardRst", // Hardware reset - if rst pin is connected diff --git a/script-projects/h735g-dk-touchgfx/CMakeLists.txt b/script-projects/h735g-dk-touchgfx/CMakeLists.txt index bbe2d56..8dd6eae 100644 --- a/script-projects/h735g-dk-touchgfx/CMakeLists.txt +++ b/script-projects/h735g-dk-touchgfx/CMakeLists.txt @@ -21,11 +21,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS ON) # Core MCU flags, CPU type, instruction set and FPU setup -set(cpu_PARAMS - # Other parameters - # -mthumb - # -mcpu, -mfloat, -mfloat-abi, ... -) +set(cpu_PARAMS) # Sources set(sources_SRCS) 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 185ffcf..8ca6e96 100644 --- a/script-projects/h735g-dk-touchgfx/cmake_generated/cmake_generated.cmake +++ b/script-projects/h735g-dk-touchgfx/cmake_generated/cmake_generated.cmake @@ -8,17 +8,14 @@ cmake_minimum_required(VERSION 3.22) set(cpu_PARAMS ${cpu_PARAMS} -mthumb - # Other parameters - # -mcpu, -mfloat, -mfloat-abi, ... + # -mcpu, -mfloat, -mfloat-abi config -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 ) # Linker script -set(linker_script_SRC ${linker_script_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/STM32CubeIDE/STM32H735IGKX_FLASH.ld -) +set(linker_script_SRC ${linker_script_SRC}${CMAKE_CURRENT_SOURCE_DIR}/STM32CubeIDE/STM32H735IGKX_FLASH.ld) # Sources set(sources_SRCS ${sources_SRCS} @@ -158,9 +155,7 @@ set(include_cxx_DIRS ${include_cxx_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target ${CMAKE_CURRENT_SOURCE_DIR}/TouchGFX/target/generated ) -set(include_asm_DIRS ${include_asm_DIRS} - -) +set(include_asm_DIRS ${include_asm_DIRS}) # Symbols definition set(symbols_c_SYMB ${symbols_c_SYMB} @@ -183,9 +178,7 @@ set(link_DIRS ${link_DIRS} ) # Link libraries -set(link_LIBS ${link_LIBS} - :libtouchgfx-float-abi-hard.a -) +set(link_LIBS ${link_LIBS}:libtouchgfx-float-abi-hard.a) # Compiler options set(compiler_OPTS ${compiler_OPTS}) diff --git a/script-projects/h735g-dk-usart/.vscode/tasks.json b/script-projects/h735g-dk-usart/.vscode/tasks.json index f7d155f..338cb9b 100644 --- a/script-projects/h735g-dk-usart/.vscode/tasks.json +++ b/script-projects/h735g-dk-usart/.vscode/tasks.json @@ -42,6 +42,7 @@ "args": [ "--connect", "port=swd", + "mode=UR", //Under reset "--download", "${command:cmake.launchTargetPath}", "-hardRst", // Hardware reset - if rst pin is connected "-rst", // Software reset (backup) @@ -59,6 +60,7 @@ "args": [ "--connect", "port=swd", + "mode=UR", //Under reset "sn=", "--download", "${command:cmake.launchTargetPath}", "-hardRst", // Hardware reset - if rst pin is connected diff --git a/script-projects/h735g-dk-usart/CMakeLists.txt b/script-projects/h735g-dk-usart/CMakeLists.txt index da5c0e3..ec6ef75 100644 --- a/script-projects/h735g-dk-usart/CMakeLists.txt +++ b/script-projects/h735g-dk-usart/CMakeLists.txt @@ -21,11 +21,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS ON) # Core MCU flags, CPU type, instruction set and FPU setup -set(cpu_PARAMS - # Other parameters - # -mthumb - # -mcpu, -mfloat, -mfloat-abi, ... -) +set(cpu_PARAMS) # Sources set(sources_SRCS) 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 a1f290e..c748288 100644 --- a/script-projects/h735g-dk-usart/cmake_generated/cmake_generated.cmake +++ b/script-projects/h735g-dk-usart/cmake_generated/cmake_generated.cmake @@ -8,17 +8,14 @@ cmake_minimum_required(VERSION 3.22) set(cpu_PARAMS ${cpu_PARAMS} -mthumb - # Other parameters - # -mcpu, -mfloat, -mfloat-abi, ... + # -mcpu, -mfloat, -mfloat-abi config -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 ) # Linker script -set(linker_script_SRC ${linker_script_SRC} - ${CMAKE_CURRENT_SOURCE_DIR}/STM32H735IGKX_FLASH.ld -) +set(linker_script_SRC ${linker_script_SRC}${CMAKE_CURRENT_SOURCE_DIR}/STM32H735IGKX_FLASH.ld) # Sources set(sources_SRCS ${sources_SRCS} @@ -68,12 +65,8 @@ set(include_c_DIRS ${include_c_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/FATFS/Target ${CMAKE_CURRENT_SOURCE_DIR}/Middlewares/Third_Party/FatFs/src ) -set(include_cxx_DIRS ${include_cxx_DIRS} - -) -set(include_asm_DIRS ${include_asm_DIRS} - -) +set(include_cxx_DIRS ${include_cxx_DIRS}) +set(include_asm_DIRS ${include_asm_DIRS}) # Symbols definition set(symbols_c_SYMB ${symbols_c_SYMB} @@ -81,22 +74,16 @@ set(symbols_c_SYMB ${symbols_c_SYMB} "STM32H735xx" "USE_HAL_DRIVER" ) -set(symbols_cxx_SYMB ${symbols_cxx_SYMB} - -) +set(symbols_cxx_SYMB ${symbols_cxx_SYMB}) set(symbols_asm_SYMB ${symbols_asm_SYMB} "DEBUG" ) # Link directories -set(link_DIRS ${link_DIRS} - -) +set(link_DIRS ${link_DIRS}) # Link libraries -set(link_LIBS ${link_LIBS} - -) +set(link_LIBS ${link_LIBS}) # Compiler options set(compiler_OPTS ${compiler_OPTS}) diff --git a/stm32-cube-cmake-vscode.py b/stm32-cube-cmake-vscode.py index b77767a..095d012 100644 --- a/stm32-cube-cmake-vscode.py +++ b/stm32-cube-cmake-vscode.py @@ -31,6 +31,7 @@ import traceback NEWLINE_INDENTED = '\n ' +NEWLINE = '\n' # # Generate parser object @@ -536,8 +537,7 @@ def parse_and_generate(projectFolderBasePath, args): # Check all files in the same directory as .cproject/.project directory templatefiledata = templatefiledata.replace( '{{sr:sources_SRCS}}', - NEWLINE_INDENTED.join([gen_relative_path_to_cmake_folder( - projectFolderBasePath, p) for p in source_files_paths]) + (NEWLINE_INDENTED + NEWLINE_INDENTED.join([gen_relative_path_to_cmake_folder(projectFolderBasePath, p) for p in source_files_paths]) + NEWLINE) if len(source_files_paths) > 0 else '' ) # @@ -559,8 +559,9 @@ def parse_and_generate(projectFolderBasePath, args): # Normalize path to remove "Debug" from path paths.append(os.path.normpath(path)) paths.sort() - templatefiledata = templatefiledata.replace('{{sr:' + varname + '}}', NEWLINE_INDENTED.join( - [gen_relative_path_to_cmake_folder(projectFolderBasePath, p) for p in paths])) + templatefiledata = templatefiledata.replace('{{sr:' + varname + '}}', + (NEWLINE_INDENTED + NEWLINE_INDENTED.join([gen_relative_path_to_cmake_folder(projectFolderBasePath, p) for p in paths]) + NEWLINE) if len(paths) > 0 else '') + # # Check all symbols (global defines) @@ -570,8 +571,8 @@ def parse_and_generate(projectFolderBasePath, args): for compiler in ['c', 'cxx', 'asm']: varname = 'symbols_' + compiler + '_SYMB' data_obj['confs'][conf][compiler]['symbols'].sort() - templatefiledata = templatefiledata.replace('{{sr:' + varname + '}}', NEWLINE_INDENTED.join( - ["\"" + f + "\"" for f in data_obj['confs'][conf][compiler]['symbols']])) + templatefiledata = templatefiledata.replace('{{sr:' + varname + '}}', + (NEWLINE_INDENTED + NEWLINE_INDENTED.join(["\"" + f + "\"" for f in data_obj['confs'][conf][compiler]['symbols']]) + NEWLINE) if len(data_obj['confs'][conf][compiler]['symbols']) else '') # # Setup linked libraries @@ -583,10 +584,9 @@ def parse_and_generate(projectFolderBasePath, args): # Do some optimizations with path if necessary pass libs.sort() - templatefiledata = templatefiledata.replace('{{sr:link_DIRS}}', NEWLINE_INDENTED.join([gen_relative_path_to_cmake_folder( - projectFolderBasePath, os.path.normpath(os.path.join(CProjBasePath, 'Debug', p))) for p in paths])) - templatefiledata = templatefiledata.replace( - '{{sr:link_LIBS}}', NEWLINE_INDENTED.join(libs)) + templatefiledata = templatefiledata.replace('{{sr:link_DIRS}}', + (NEWLINE_INDENTED + NEWLINE_INDENTED.join([gen_relative_path_to_cmake_folder(projectFolderBasePath, os.path.normpath(os.path.join(CProjBasePath, 'Debug', p))) for p in paths]) + NEWLINE) if len(paths) > 0 else '') + templatefiledata = templatefiledata.replace('{{sr:link_LIBS}}', NEWLINE_INDENTED.join(libs)) # # Setup linker script diff --git a/templates/CMakeLists_template.txt b/templates/CMakeLists_template.txt index 3b2c066..2381b39 100644 --- a/templates/CMakeLists_template.txt +++ b/templates/CMakeLists_template.txt @@ -21,11 +21,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS ON) # Core MCU flags, CPU type, instruction set and FPU setup -set(cpu_PARAMS - # Other parameters - # -mthumb - # -mcpu, -mfloat, -mfloat-abi, ... -) +set(cpu_PARAMS) # Sources set(sources_SRCS) diff --git a/templates/cmake_generated/cmake_generated_template.cmake b/templates/cmake_generated/cmake_generated_template.cmake index 8d6735f..0192954 100644 --- a/templates/cmake_generated/cmake_generated_template.cmake +++ b/templates/cmake_generated/cmake_generated_template.cmake @@ -8,52 +8,31 @@ cmake_minimum_required(VERSION 3.22) set(cpu_PARAMS ${cpu_PARAMS} -mthumb - # Other parameters - # -mcpu, -mfloat, -mfloat-abi, ... + # -mcpu, -mfloat, -mfloat-abi config {{sr:cpu_params}} ) # Linker script -set(linker_script_SRC ${linker_script_SRC} - {{sr:linker_script_SRC}} -) +set(linker_script_SRC ${linker_script_SRC}{{sr:linker_script_SRC}}) # Sources -set(sources_SRCS ${sources_SRCS} - {{sr:sources_SRCS}} -) +set(sources_SRCS ${sources_SRCS}{{sr:sources_SRCS}}) # Include directories -set(include_c_DIRS ${include_c_DIRS} - {{sr:include_c_DIRS}} -) -set(include_cxx_DIRS ${include_cxx_DIRS} - {{sr:include_cxx_DIRS}} -) -set(include_asm_DIRS ${include_asm_DIRS} - {{sr:include_asm_DIRS}} -) +set(include_c_DIRS ${include_c_DIRS}{{sr:include_c_DIRS}}) +set(include_cxx_DIRS ${include_cxx_DIRS}{{sr:include_cxx_DIRS}}) +set(include_asm_DIRS ${include_asm_DIRS}{{sr:include_asm_DIRS}}) # Symbols definition -set(symbols_c_SYMB ${symbols_c_SYMB} - {{sr:symbols_c_SYMB}} -) -set(symbols_cxx_SYMB ${symbols_cxx_SYMB} - {{sr:symbols_cxx_SYMB}} -) -set(symbols_asm_SYMB ${symbols_asm_SYMB} - {{sr:symbols_asm_SYMB}} -) +set(symbols_c_SYMB ${symbols_c_SYMB}{{sr:symbols_c_SYMB}}) +set(symbols_cxx_SYMB ${symbols_cxx_SYMB}{{sr:symbols_cxx_SYMB}}) +set(symbols_asm_SYMB ${symbols_asm_SYMB}{{sr:symbols_asm_SYMB}}) # Link directories -set(link_DIRS ${link_DIRS} - {{sr:link_DIRS}} -) +set(link_DIRS ${link_DIRS}{{sr:link_DIRS}}) # Link libraries -set(link_LIBS ${link_LIBS} - {{sr:link_LIBS}} -) +set(link_LIBS ${link_LIBS}{{sr:link_LIBS}}) # Compiler options set(compiler_OPTS ${compiler_OPTS})