| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- #!/usr/bin/env python
- """
- Flash the WiPy (format, update service pack and program).
- Example:
- > python uniflash.py -u "C:\ti\uniflash_3.2\uniflashCLI.bat" -c "C:\VirtualBoxShared\GitHub\wipy_uniflash.usf" -p 8 -s "C:\ti\CC31xx_CC32xx_ServicePack_1.0.0.10.0\servicepack_1.0.0.10.0.bin"
- or:
- > python uniflash.py -u "C:\ti\uniflash_3.2\uniflashCLI.bat" -c "C:\VirtualBoxShared\GitHub\launchxl_uniflash.usf" -p 8 -s "C:\ti\CC31xx_CC32xx_ServicePack_1.0.0.10.0\servicepack_1.0.0.10.0.bin"
- """
- import sys
- import argparse
- import subprocess
- 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')
- cmd_parser.add_argument('-c', '--config', default=None, help='the path to the uniflash config file')
- cmd_parser.add_argument('-p', '--port', default=8, help='the com serial port')
- cmd_parser.add_argument('-s', '--servicepack', default=None, help='the path to the servicepack file')
- args = cmd_parser.parse_args()
- output = ""
- com_port = 'com=' + str(args.port)
- servicepack_path = 'spPath=' + args.servicepack
- try:
- if args.uniflash == None or args.config == None:
- raise ValueError('uniflash path and config path are mandatory')
- if args.servicepack == None:
- output += execute([args.uniflash, '-config', args.config, '-setOptions', com_port, '-operations', 'format', 'program'])
- else:
- 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 "Finish Executing operation: program" in output:
- print("======================================")
- print("Board programmed OK")
- print("======================================")
- sys.exit(0)
- else:
- print("======================================")
- print("ERROR: Programming failed!")
- print("======================================")
- sys.exit(1)
- if __name__ == "__main__":
- main()
|