Fix optional board "extra_flags" and "ldscript"

This commit is contained in:
Valeriy Koval
2015-02-04 20:23:50 +02:00
parent 5a13454244
commit 9721172481
7 changed files with 31 additions and 38 deletions

View File

@ -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(",")]

View File

@ -43,7 +43,6 @@ env.Append(
]
)
#
# Target: Build Core Library
#

View File

@ -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(

View File

@ -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(

View File

@ -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=[

View File

@ -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(

View File

@ -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'])