cc3200: Improve uniflash script and make it a bit more verbose.

This commit is contained in:
Daniel Campora 2015-08-19 14:00:20 +02:00
parent b864e7afe4
commit ec8589e4c9
1 changed files with 34 additions and 9 deletions

View File

@ -22,6 +22,27 @@ def print_exception(e):
print ('Exception: {}, on line {}'.format(e, sys.exc_info()[-1].tb_lineno))
def execute(command):
process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
cmd_log = ""
# Poll process for new output until finished
while True:
nextline = process.stdout.readline()
if nextline == '' and process.poll() != None:
break
sys.stdout.write(nextline)
sys.stdout.flush()
cmd_log += nextline
output = process.communicate()[0]
exitCode = process.returncode
if exitCode == 0:
return cmd_log
else:
raise ProcessException(command, exitCode, output)
def main():
cmd_parser = argparse.ArgumentParser(description='Flash the WiPy and optionally run a small test on it.')
cmd_parser.add_argument('-u', '--uniflash', default=None, help='the path to the uniflash cli executable')
@ -30,7 +51,7 @@ def main():
cmd_parser.add_argument('-s', '--servicepack', default=None, help='the path to the servicepack file')
args = cmd_parser.parse_args()
result = 1
output = ""
com_port = 'com=' + str(args.port)
servicepack_path = 'spPath=' + args.servicepack
@ -38,19 +59,23 @@ def main():
if args.uniflash == None or args.config == None:
raise ValueError('uniflash path and config path are mandatory')
if args.servicepack == None:
subprocess.check_call([args.uniflash, '-config', args.config, '-setOptions', com_port, '-operations', 'format', 'program'], stderr=subprocess.STDOUT)
output += execute([args.uniflash, '-config', args.config, '-setOptions', com_port, '-operations', 'format', 'program'])
else:
subprocess.check_call([args.uniflash, '-config', args.config, '-setOptions', com_port, servicepack_path, '-operations', 'format', 'servicePackUpdate', 'program'], stderr=subprocess.STDOUT)
result = 0
output += execute([args.uniflash, '-config', args.config, '-setOptions', com_port, servicepack_path, '-operations', 'format', 'servicePackUpdate', 'program'])
except Exception as e:
print_exception(e)
output = ""
finally:
if result:
print ("ERROR: Programming failed!")
if "Finish Executing operation: program" in output:
print("======================================")
print("Board programmed OK")
print("======================================")
sys.exit(0)
else:
print ("Board programmed OK")
sys.exit(result)
print("======================================")
print("ERROR: Programming failed!")
print("======================================")
sys.exit(1)
if __name__ == "__main__":
main()