From 5d2519ed50ca0a7700eda1d6dde38cd80a1912e2 Mon Sep 17 00:00:00 2001 From: Tanguy Pruvot Date: Sat, 10 Aug 2019 08:45:36 +0200 Subject: [PATCH] Allow use of Fysetc SoftwareSerialM (#14893) --- Marlin/src/HAL/HAL_STM32F1/SoftwareSerial.cpp | 2 +- .../PlatformIO/scripts/fysetc_STM32F1.py | 24 +++++++++---------- platformio.ini | 3 +-- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/Marlin/src/HAL/HAL_STM32F1/SoftwareSerial.cpp b/Marlin/src/HAL/HAL_STM32F1/SoftwareSerial.cpp index 309500d4817b..99772a03c209 100644 --- a/Marlin/src/HAL/HAL_STM32F1/SoftwareSerial.cpp +++ b/Marlin/src/HAL/HAL_STM32F1/SoftwareSerial.cpp @@ -16,7 +16,7 @@ * along with this program. If not, see . * */ -#ifdef __STM32F1__ +#if defined(__STM32F1__) && !defined(HAVE_SW_SERIAL) /** * Empty class for Software Serial implementation (Custom RX/TX pins) diff --git a/buildroot/share/PlatformIO/scripts/fysetc_STM32F1.py b/buildroot/share/PlatformIO/scripts/fysetc_STM32F1.py index 3f45185ac85e..c34b921454a3 100644 --- a/buildroot/share/PlatformIO/scripts/fysetc_STM32F1.py +++ b/buildroot/share/PlatformIO/scripts/fysetc_STM32F1.py @@ -1,8 +1,7 @@ from os.path import join +from os.path import expandvars Import("env", "projenv") -platform = env.PioPlatform() - # Relocate firmware from 0x08000000 to 0x08002000 #env['CPPDEFINES'].remove(("VECT_TAB_ADDR", 134217728)) #env['CPPDEFINES'].append(("VECT_TAB_ADDR", "0x08010000")) @@ -10,14 +9,11 @@ # Custom HEX from ELF env.AddPostAction( - "$BUILD_DIR/${PROGNAME}.elf", + join("$BUILD_DIR","${PROGNAME}.elf"), env.VerboseAction(" ".join([ - "$OBJCOPY", - "-O", - "ihex", - '"$BUILD_DIR/${PROGNAME}.elf"', - '"$BUILD_DIR/${PROGNAME}.hex"' - ]), "Building $TARGET")) + "$OBJCOPY", "-O ihex", "$TARGET", # TARGET=.pio/build/fysetc_STM32F1/firmware.elf + "'" + join("$BUILD_DIR","${PROGNAME}.hex") + "'", # Note: $BUILD_DIR is a full path + ]), "Building $TARGET")) # please keep $SOURCE variable, it will be replaced with a path to firmware @@ -28,12 +24,16 @@ #) # In-line command with arguments +UPLOAD_TOOL="stm32flash" +platform = env.PioPlatform() +if platform.get_package_dir("tool-stm32duino") != None: + UPLOAD_TOOL=expandvars("'" + join(platform.get_package_dir("tool-stm32duino"),"stm32flash","stm32flash") + "'") + env.Replace( - UPLOADER=platform.get_package_dir("tool-stm32duino") + '/stm32flash/stm32flash', - UPLOADCMD='"${UPLOADER}" -v -i rts,-dtr,dtr,-rts -R -b 115200 -g 0x8000000 -w "${BUILD_DIR}/${PROGNAME}.hex" ${UPLOAD_PORT}' + UPLOADER=UPLOAD_TOOL, + UPLOADCMD=expandvars(UPLOAD_TOOL + " -v -i rts,-dtr,dtr $UPLOAD_PORT -R -w '" + join("$BUILD_DIR","${PROGNAME}.hex") + "'") ) - # Python callback #def on_upload(source, target, env): # print source, target diff --git a/platformio.ini b/platformio.ini index c98b0f4d32fc..d62388726a82 100644 --- a/platformio.ini +++ b/platformio.ini @@ -280,11 +280,10 @@ monitor_speed = 250000 platform = ststm32 framework = arduino board = genericSTM32F103RC -#board_build.core = maple extra_scripts = buildroot/share/PlatformIO/scripts/fysetc_STM32F1.py build_flags = !python Marlin/src/HAL/HAL_STM32F1/STM32F1_flag_script.py ${common.build_flags} -std=gnu++14 - -DDEBUG_LEVEL=0 + -DDEBUG_LEVEL=0 -DHAVE_SW_SERIAL build_unflags = -std=gnu++11 lib_deps = ${common.lib_deps} SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip