mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-30 10:07:14 +02:00
Fix optional board "extra_flags" and "ldscript"
This commit is contained in:
@ -84,15 +84,6 @@ if "BOARD" in env:
|
|||||||
env.Replace(UPLOAD_PROTOCOL="${BOARD_OPTIONS['upload']['protocol']}")
|
env.Replace(UPLOAD_PROTOCOL="${BOARD_OPTIONS['upload']['protocol']}")
|
||||||
if "UPLOAD_SPEED" not in env:
|
if "UPLOAD_SPEED" not in env:
|
||||||
env.Replace(UPLOAD_SPEED="${BOARD_OPTIONS['upload']['speed']}")
|
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:
|
if "IGNORE_LIBS" in env:
|
||||||
env['IGNORE_LIBS'] = [l.strip() for l in env['IGNORE_LIBS'].split(",")]
|
env['IGNORE_LIBS'] = [l.strip() for l in env['IGNORE_LIBS'].split(",")]
|
||||||
|
@ -43,7 +43,6 @@ env.Append(
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Target: Build Core Library
|
# Target: Build Core Library
|
||||||
#
|
#
|
||||||
|
@ -156,8 +156,8 @@ merge_ld_scripts(ldscript_path)
|
|||||||
generate_nvic_files()
|
generate_nvic_files()
|
||||||
|
|
||||||
# override ldscript by opencm3
|
# override ldscript by opencm3
|
||||||
assert env['LINKFLAGS'][0] == "-T"
|
assert "-T" in env['LINKFLAGS']
|
||||||
env['LINKFLAGS'][1] = ldscript_path
|
env['LINKFLAGS'][env['LINKFLAGS'].index("-T") + 1] = ldscript_path
|
||||||
|
|
||||||
libs = []
|
libs = []
|
||||||
env.VariantDir(
|
env.VariantDir(
|
||||||
|
@ -50,7 +50,7 @@ if "STM32F40_41xxx" in extra_flags:
|
|||||||
elif "STM32F303xC" in extra_flags:
|
elif "STM32F303xC" in extra_flags:
|
||||||
ignore_files += ["stm32f30x_hrtim.c"]
|
ignore_files += ["stm32f30x_hrtim.c"]
|
||||||
elif "STM32L1XX_MD" in extra_flags:
|
elif "STM32L1XX_MD" in extra_flags:
|
||||||
ignore_files += ["stm32l1xx_flash_ramfunc.c"] # removed warning
|
ignore_files += ["stm32l1xx_flash_ramfunc.c"]
|
||||||
|
|
||||||
libs = []
|
libs = []
|
||||||
libs.append(envsafe.BuildLibrary(
|
libs.append(envsafe.BuildLibrary(
|
||||||
|
@ -48,6 +48,20 @@ env.Replace(
|
|||||||
"-fno-exceptions"
|
"-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"),
|
UPLOADER=join("$PIOPACKAGES_DIR", "tool-stlink", "st-flash"),
|
||||||
UPLOADERFLAGS=[
|
UPLOADERFLAGS=[
|
||||||
"write", # write in flash
|
"write", # write in flash
|
||||||
@ -58,25 +72,6 @@ env.Replace(
|
|||||||
UPLOADCMD="$UPLOADER $UPLOADERFLAGS"
|
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":
|
if env.get("BOARD_OPTIONS", {}).get("build", {}).get("mcu")[-2:] == "m4":
|
||||||
env.Append(
|
env.Append(
|
||||||
ASFLAGS=[
|
ASFLAGS=[
|
||||||
|
@ -59,11 +59,6 @@ env.Replace(
|
|||||||
"F_CPU=$BOARD_F_CPU"
|
"F_CPU=$BOARD_F_CPU"
|
||||||
],
|
],
|
||||||
|
|
||||||
UPLOADER=join("$PIOPACKAGES_DIR", "tool-lm4flash", "lm4flash"),
|
|
||||||
UPLOADCMD="$UPLOADER $SOURCES"
|
|
||||||
)
|
|
||||||
|
|
||||||
env.Append(
|
|
||||||
LINKFLAGS=[
|
LINKFLAGS=[
|
||||||
"-Os",
|
"-Os",
|
||||||
"-nostartfiles",
|
"-nostartfiles",
|
||||||
@ -74,7 +69,10 @@ env.Append(
|
|||||||
"-mfloat-abi=hard",
|
"-mfloat-abi=hard",
|
||||||
"-mfpu=fpv4-sp-d16",
|
"-mfpu=fpv4-sp-d16",
|
||||||
"-fsingle-precision-constant"
|
"-fsingle-precision-constant"
|
||||||
]
|
],
|
||||||
|
|
||||||
|
UPLOADER=join("$PIOPACKAGES_DIR", "tool-lm4flash", "lm4flash"),
|
||||||
|
UPLOADCMD="$UPLOADER $SOURCES"
|
||||||
)
|
)
|
||||||
|
|
||||||
env.Append(
|
env.Append(
|
||||||
|
@ -16,6 +16,16 @@ from platformio.util import get_serialports
|
|||||||
|
|
||||||
def ProcessGeneral(env):
|
def ProcessGeneral(env):
|
||||||
corelibs = []
|
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:
|
if "BUILD_FLAGS" in env:
|
||||||
env.MergeFlags(env['BUILD_FLAGS'])
|
env.MergeFlags(env['BUILD_FLAGS'])
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user