Better checking of program size before uploading // Issue #689

This commit is contained in:
Ivan Kravets
2016-06-11 00:55:38 +03:00
parent 60ff546fec
commit f2c1e279c9
4 changed files with 8 additions and 10 deletions

View File

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

View File

@ -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)
# #

View File

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

View File

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