mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-30 01:57:13 +02:00
Better checking of program size before uploading // Issue #689
This commit is contained in:
@ -171,6 +171,3 @@ if "envdump" in COMMAND_LINE_TARGETS:
|
|||||||
if "idedata" in COMMAND_LINE_TARGETS:
|
if "idedata" in COMMAND_LINE_TARGETS:
|
||||||
print json.dumps(env.DumpIDEData())
|
print json.dumps(env.DumpIDEData())
|
||||||
env.Exit()
|
env.Exit()
|
||||||
|
|
||||||
if set(["upload", "uploadlazy", "program"]) & set(COMMAND_LINE_TARGETS):
|
|
||||||
env.CheckUploadSize()
|
|
||||||
|
@ -142,7 +142,7 @@ AlwaysBuild(target_size)
|
|||||||
#
|
#
|
||||||
|
|
||||||
upload = env.Alias(["upload", "uploadlazy"], target_firm,
|
upload = env.Alias(["upload", "uploadlazy"], target_firm,
|
||||||
[BeforeUpload, "$UPLOADHEXCMD"])
|
[env.CheckUploadSize, BeforeUpload, "$UPLOADHEXCMD"])
|
||||||
AlwaysBuild(upload)
|
AlwaysBuild(upload)
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -159,7 +159,8 @@ AlwaysBuild(uploadeep)
|
|||||||
# Target: Upload firmware using external programmer
|
# Target: Upload firmware using external programmer
|
||||||
#
|
#
|
||||||
|
|
||||||
program = env.Alias("program", target_firm, [BeforeUpload, "$PROGRAMHEXCMD"])
|
program = env.Alias("program", target_firm,
|
||||||
|
[env.CheckUploadSize, BeforeUpload, "$PROGRAMHEXCMD"])
|
||||||
AlwaysBuild(program)
|
AlwaysBuild(program)
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -174,10 +174,11 @@ AlwaysBuild(target_size)
|
|||||||
#
|
#
|
||||||
|
|
||||||
if env.subst("$BOARD") == "zero":
|
if env.subst("$BOARD") == "zero":
|
||||||
upload = env.Alias(["upload", "uploadlazy"], target_firm, "$UPLOADCMD")
|
upload = env.Alias(["upload", "uploadlazy"], target_firm,
|
||||||
|
[env.CheckUploadSize, "$UPLOADCMD"])
|
||||||
else:
|
else:
|
||||||
upload = env.Alias(["upload", "uploadlazy"], target_firm,
|
upload = env.Alias(["upload", "uploadlazy"], target_firm,
|
||||||
[BeforeUpload, "$UPLOADCMD"])
|
[env.CheckUploadSize, BeforeUpload, "$UPLOADCMD"])
|
||||||
|
|
||||||
AlwaysBuild(upload)
|
AlwaysBuild(upload)
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ def UploadToDisk(_, target, source, env): # pylint: disable=W0613,W0621
|
|||||||
"Please restart your board.")
|
"Please restart your board.")
|
||||||
|
|
||||||
|
|
||||||
def CheckUploadSize(env):
|
def CheckUploadSize(_, target, source, env): # pylint: disable=W0613,W0621
|
||||||
max_size = int(env.get("BOARD_OPTIONS", {}).get("upload", {}).get(
|
max_size = int(env.get("BOARD_OPTIONS", {}).get("upload", {}).get(
|
||||||
"maximum_size", 0))
|
"maximum_size", 0))
|
||||||
if max_size == 0 or "SIZETOOL" not in env:
|
if max_size == 0 or "SIZETOOL" not in env:
|
||||||
@ -141,8 +141,7 @@ def CheckUploadSize(env):
|
|||||||
|
|
||||||
sysenv = environ.copy()
|
sysenv = environ.copy()
|
||||||
sysenv['PATH'] = str(env['ENV']['PATH'])
|
sysenv['PATH'] = str(env['ENV']['PATH'])
|
||||||
cmd = [env.subst("$SIZETOOL"), "-B"]
|
cmd = [env.subst("$SIZETOOL"), "-B", str(source[0])]
|
||||||
cmd.append(env.subst(join("$BUILD_DIR", "$PROGNAME$PROGSUFFIX")))
|
|
||||||
result = util.exec_command(cmd, env=sysenv)
|
result = util.exec_command(cmd, env=sysenv)
|
||||||
if result['returncode'] != 0:
|
if result['returncode'] != 0:
|
||||||
return
|
return
|
||||||
|
Reference in New Issue
Block a user