diff --git a/platformio/builder/main.py b/platformio/builder/main.py index e2383e00..3bde0b9d 100644 --- a/platformio/builder/main.py +++ b/platformio/builder/main.py @@ -84,15 +84,6 @@ if "BOARD" in env: env.Replace(UPLOAD_PROTOCOL="${BOARD_OPTIONS['upload']['protocol']}") if "UPLOAD_SPEED" not in env: env.Replace(UPLOAD_SPEED="${BOARD_OPTIONS['upload']['speed']}") - # specific linker script - if "ldscript" in env.get("BOARD_OPTIONS", {}).get("build", {}): - env.Replace( - LINKFLAGS=["-T", join( - "$PIOHOME_DIR", "packages", "ldscripts", - "${BOARD_OPTIONS['build']['ldscript']}")] - ) - if "extra_flags" in env.get("BOARD_OPTIONS", {}).get("build", {}): - env.MergeFlags(env.subst("${BOARD_OPTIONS['build']['extra_flags']}")) if "IGNORE_LIBS" in env: env['IGNORE_LIBS'] = [l.strip() for l in env['IGNORE_LIBS'].split(",")] diff --git a/platformio/builder/scripts/frameworks/opencm3.py b/platformio/builder/scripts/frameworks/opencm3.py index 82c9a5bb..d07357c4 100644 --- a/platformio/builder/scripts/frameworks/opencm3.py +++ b/platformio/builder/scripts/frameworks/opencm3.py @@ -156,8 +156,8 @@ merge_ld_scripts(ldscript_path) generate_nvic_files() # override ldscript by opencm3 -assert env['LINKFLAGS'][0] == "-T" -env['LINKFLAGS'][1] = ldscript_path +assert "-T" in env['LINKFLAGS'] +env['LINKFLAGS'][env['LINKFLAGS'].index("-T") + 1] = ldscript_path libs = [] env.VariantDir( diff --git a/platformio/builder/scripts/frameworks/spl.py b/platformio/builder/scripts/frameworks/spl.py index 239a6ba2..62801bfd 100644 --- a/platformio/builder/scripts/frameworks/spl.py +++ b/platformio/builder/scripts/frameworks/spl.py @@ -50,7 +50,7 @@ if "STM32F40_41xxx" in extra_flags: elif "STM32F303xC" in extra_flags: ignore_files += ["stm32f30x_hrtim.c"] elif "STM32L1XX_MD" in extra_flags: - ignore_files += ["stm32l1xx_flash_ramfunc.c"] # removed warning + ignore_files += ["stm32l1xx_flash_ramfunc.c"] libs = [] libs.append(envsafe.BuildLibrary( diff --git a/platformio/builder/scripts/stm32.py b/platformio/builder/scripts/stm32.py index 38b3af25..3793e7de 100644 --- a/platformio/builder/scripts/stm32.py +++ b/platformio/builder/scripts/stm32.py @@ -48,6 +48,20 @@ env.Replace( "-fno-exceptions" ], + CPPDEFINES=[ + "F_CPU=$BOARD_F_CPU", + "${BOARD_OPTIONS['build']['variant'].upper()}" + ], + + LINKFLAGS=[ + "-Os", + "-nostartfiles", + "-nostdlib", + "-Wl,--gc-sections", + "-mthumb", + "-mcpu=${BOARD_OPTIONS['build']['mcu']}" + ], + UPLOADER=join("$PIOPACKAGES_DIR", "tool-stlink", "st-flash"), UPLOADERFLAGS=[ "write", # write in flash @@ -58,25 +72,6 @@ env.Replace( UPLOADCMD="$UPLOADER $UPLOADERFLAGS" ) - -env.Append( - CPPDEFINES=[ - "F_CPU=$BOARD_F_CPU", - "${BOARD_OPTIONS['build']['variant'].upper()}" - ] -) - -env.Append( - LINKFLAGS=[ - "-Os", - "-nostartfiles", - "-nostdlib", - "-Wl,--gc-sections", - "-mthumb", - "-mcpu=${BOARD_OPTIONS['build']['mcu']}" - ] -) - if env.get("BOARD_OPTIONS", {}).get("build", {}).get("mcu")[-2:] == "m4": env.Append( ASFLAGS=[ diff --git a/platformio/builder/scripts/titiva.py b/platformio/builder/scripts/titiva.py index e5c39a88..613e6aef 100644 --- a/platformio/builder/scripts/titiva.py +++ b/platformio/builder/scripts/titiva.py @@ -59,11 +59,6 @@ env.Replace( "F_CPU=$BOARD_F_CPU" ], - UPLOADER=join("$PIOPACKAGES_DIR", "tool-lm4flash", "lm4flash"), - UPLOADCMD="$UPLOADER $SOURCES" -) - -env.Append( LINKFLAGS=[ "-Os", "-nostartfiles", @@ -74,7 +69,10 @@ env.Append( "-mfloat-abi=hard", "-mfpu=fpv4-sp-d16", "-fsingle-precision-constant" - ] + ], + + UPLOADER=join("$PIOPACKAGES_DIR", "tool-lm4flash", "lm4flash"), + UPLOADCMD="$UPLOADER $SOURCES" ) env.Append( diff --git a/platformio/builder/tools/platformio.py b/platformio/builder/tools/platformio.py index 7f6ceb08..09aba659 100644 --- a/platformio/builder/tools/platformio.py +++ b/platformio/builder/tools/platformio.py @@ -16,6 +16,16 @@ from platformio.util import get_serialports def ProcessGeneral(env): corelibs = [] + # specific linker script + if "ldscript" in env.get("BOARD_OPTIONS", {}).get("build", {}): + env.Append( + LINKFLAGS=["-T", join( + "$PIOHOME_DIR", "packages", "ldscripts", + "${BOARD_OPTIONS['build']['ldscript']}")] + ) + if "extra_flags" in env.get("BOARD_OPTIONS", {}).get("build", {}): + env.MergeFlags(env.subst("${BOARD_OPTIONS['build']['extra_flags']}")) + if "BUILD_FLAGS" in env: env.MergeFlags(env['BUILD_FLAGS'])