diff options
| author | Damien George | 2017-09-06 13:40:51 +1000 |
|---|---|---|
| committer | Damien George | 2017-09-06 13:40:51 +1000 |
| commit | 01dd7804b87d60b2deab16712eccb3b97351a9b7 (patch) | |
| tree | 1aa21f38a872b8e62a3d4e4f74f68033c6f827e4 /cc3200/tools | |
| parent | a9862b30068fc9df1022f08019fb35aaa5085f64 (diff) | |
ports: Make new ports/ sub-directory and move all ports there.
This is to keep the top-level directory clean, to make it clear what is
core and what is a port, and to allow the repository to grow with new ports
in a sustainable way.
Diffstat (limited to 'cc3200/tools')
| -rw-r--r-- | cc3200/tools/smoke.py | 76 | ||||
| -rw-r--r-- | cc3200/tools/smoke.py.exp | 95 | ||||
| -rw-r--r-- | cc3200/tools/uniflash.py | 81 | ||||
| -rw-r--r-- | cc3200/tools/update-wipy.py | 200 |
4 files changed, 0 insertions, 452 deletions
diff --git a/cc3200/tools/smoke.py b/cc3200/tools/smoke.py deleted file mode 100644 index 3ade11cf8..000000000 --- a/cc3200/tools/smoke.py +++ /dev/null @@ -1,76 +0,0 @@ -from machine import Pin -from machine import RTC -import time -import os - -""" -Execute it like this: - -python3 run-tests --target wipy --device 192.168.1.1 ../cc3200/tools/smoke.py -""" - -pin_map = [23, 24, 11, 12, 13, 14, 15, 16, 17, 22, 28, 10, 9, 8, 7, 6, 30, 31, 3, 0, 4, 5] -test_bytes = os.urandom(1024) - -def test_pin_read (pull): - # enable the pull resistor on all pins, then read the value - for p in pin_map: - pin = Pin('GP' + str(p), mode=Pin.IN, pull=pull) - # read the pin value - print(pin()) - -def test_pin_shorts (pull): - if pull == Pin.PULL_UP: - pull_inverted = Pin.PULL_DOWN - else: - pull_inverted = Pin.PULL_UP - # enable all pulls of the specified type - for p in pin_map: - pin = Pin('GP' + str(p), mode=Pin.IN, pull=pull_inverted) - # then change the pull one pin at a time and read its value - i = 0 - while i < len(pin_map): - pin = Pin('GP' + str(pin_map[i]), mode=Pin.IN, pull=pull) - Pin('GP' + str(pin_map[i - 1]), mode=Pin.IN, pull=pull_inverted) - i += 1 - # read the pin value - print(pin()) - -test_pin_read(Pin.PULL_UP) -test_pin_read(Pin.PULL_DOWN) -test_pin_shorts(Pin.PULL_UP) -test_pin_shorts(Pin.PULL_DOWN) - -# create a test directory -os.mkdir('/flash/test') -os.chdir('/flash/test') -print(os.getcwd()) -# create a new file -f = open('test.txt', 'w') -n_w = f.write(test_bytes) -print(n_w == len(test_bytes)) -f.close() -f = open('test.txt', 'r') -r = bytes(f.read(), 'ascii') -# check that we can write and read it correctly -print(r == test_bytes) -f.close() -os.remove('test.txt') -os.chdir('..') -os.rmdir('test') - -ls = os.listdir() -print('test' not in ls) -print(ls) - -# test the real time clock -rtc = RTC() -while rtc.now()[6] > 800: - pass - -time1 = rtc.now() -time.sleep_ms(1000) -time2 = rtc.now() -print(time2[5] - time1[5] == 1) -print(time2[6] - time1[6] < 5000) # microseconds - diff --git a/cc3200/tools/smoke.py.exp b/cc3200/tools/smoke.py.exp deleted file mode 100644 index fdc958c85..000000000 --- a/cc3200/tools/smoke.py.exp +++ /dev/null @@ -1,95 +0,0 @@ -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -/flash/test -True -True -True -['main.py', 'sys', 'lib', 'cert', 'boot.py'] -True -True diff --git a/cc3200/tools/uniflash.py b/cc3200/tools/uniflash.py deleted file mode 100644 index 21da46a56..000000000 --- a/cc3200/tools/uniflash.py +++ /dev/null @@ -1,81 +0,0 @@ -#!/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() diff --git a/cc3200/tools/update-wipy.py b/cc3200/tools/update-wipy.py deleted file mode 100644 index 2d5fe57c2..000000000 --- a/cc3200/tools/update-wipy.py +++ /dev/null @@ -1,200 +0,0 @@ -#!/usr/bin/env python - -""" -The WiPy firmware update script. Transmits the specified firmware file -over FTP, and then resets the WiPy and optionally verifies that software -was correctly updated. - -Usage: - - ./update-wipy.py --file "path_to_mcuimg.bin" --verify - -Or: - - python update-wipy.py --file "path_to_mcuimg.bin" -""" - -import sys -import argparse -import time -import socket -from ftplib import FTP -from telnetlib import Telnet - - -def print_exception(e): - print ('Exception: {}, on line {}'.format(e, sys.exc_info()[-1].tb_lineno)) - - -def ftp_directory_exists(ftpobj, directory_name): - filelist = [] - ftpobj.retrlines('LIST',filelist.append) - for f in filelist: - if f.split()[-1] == directory_name: - return True - return False - - -def transfer_file(args): - with FTP(args.ip, timeout=20) as ftp: - print ('FTP connection established') - - if '230' in ftp.login(args.user, args.password): - print ('Login successful') - - if '250' in ftp.cwd('/flash'): - if not ftp_directory_exists(ftp, 'sys'): - print ('/flash/sys directory does not exist') - if not '550' in ftp.mkd('sys'): - print ('/flash/sys directory created') - else: - print ('Error: cannot create /flash/sys directory') - return False - if '250' in ftp.cwd('sys'): - print ("Entered '/flash/sys' directory") - with open(args.file, "rb") as fwfile: - print ('Firmware image found, initiating transfer...') - if '226' in ftp.storbinary("STOR " + 'mcuimg.bin', fwfile, 512): - print ('File transfer complete') - return True - else: - print ('Error: file transfer failed') - else: - print ('Error: cannot enter /flash/sys directory') - else: - print ('Error: cannot enter /flash directory') - else: - print ('Error: ftp login failed') - - return False - - -def reset_board(args): - success = False - - try: - tn = Telnet(args.ip, timeout=5) - print("Connected via Telnet, trying to login now") - - if b'Login as:' in tn.read_until(b"Login as:", timeout=5): - tn.write(bytes(args.user, 'ascii') + b"\r\n") - - if b'Password:' in tn.read_until(b"Password:", timeout=5): - # needed because of internal implementation details of the WiPy's telnet server - time.sleep(0.2) - tn.write(bytes(args.password, 'ascii') + b"\r\n") - - if b'Type "help()" for more information.' in tn.read_until(b'Type "help()" for more information.', timeout=5): - print("Telnet login succeeded") - tn.write(b'\r\x03\x03') # ctrl-C twice: interrupt any running program - time.sleep(1) - tn.write(b'\r\x02') # ctrl-B: enter friendly REPL - if b'Type "help()" for more information.' in tn.read_until(b'Type "help()" for more information.', timeout=5): - tn.write(b"import machine\r\n") - tn.write(b"machine.reset()\r\n") - time.sleep(2) - print("Reset performed") - success = True - else: - print("Error: cannot enter friendly REPL") - else: - print("Error: telnet login failed") - - except Exception as e: - print_exception(e) - finally: - try: - tn.close() - except Exception as e: - pass - return success - - -def verify_update(args): - success = False - firmware_tag = '' - - def find_tag (tag): - if tag in firmware_tag: - print("Verification passed") - return True - else: - print("Error: verification failed, the git tag doesn't match") - return False - - retries = 0 - while True: - try: - # Specify a longer time out value here because the board has just been - # reset and the wireless connection might not be fully established yet - tn = Telnet(args.ip, timeout=10) - print("Connected via telnet again, lets check the git tag") - break - except socket.timeout: - if retries < 5: - print("Timeout while connecting via telnet, retrying...") - retries += 1 - else: - print('Error: Telnet connection timed out!') - return False - - try: - firmware_tag = tn.read_until (b'with CC3200') - tag_file_path = args.file.rstrip('mcuimg.bin') + 'genhdr/mpversion.h' - - if args.tag is not None: - success = find_tag(bytes(args.tag, 'ascii')) - else: - with open(tag_file_path) as tag_file: - for line in tag_file: - bline = bytes(line, 'ascii') - if b'MICROPY_GIT_HASH' in bline: - bline = bline.lstrip(b'#define MICROPY_GIT_HASH ').replace(b'"', b'').replace(b'\r', b'').replace(b'\n', b'') - success = find_tag(bline) - break - - except Exception as e: - print_exception(e) - finally: - try: - tn.close() - except Exception as e: - pass - return success - - -def main(): - cmd_parser = argparse.ArgumentParser(description='Update the WiPy firmware with the specified image file') - cmd_parser.add_argument('-f', '--file', default=None, help='the path of the firmware file') - cmd_parser.add_argument('-u', '--user', default='micro', help='the username') - cmd_parser.add_argument('-p', '--password', default='python', help='the login password') - cmd_parser.add_argument('--ip', default='192.168.1.1', help='the ip address of the WiPy') - cmd_parser.add_argument('--verify', action='store_true', help='verify that the update succeeded') - cmd_parser.add_argument('-t', '--tag', default=None, help='git tag of the firmware image') - args = cmd_parser.parse_args() - - result = 1 - - try: - if args.file is None: - raise ValueError('the image file path must be specified') - if transfer_file(args): - if reset_board(args): - if args.verify: - print ('Waiting for the WiFi connection to come up again...') - # this time is to allow the system's wireless network card to - # connect to the WiPy again. - time.sleep(5) - if verify_update(args): - result = 0 - else: - result = 0 - - except Exception as e: - print_exception(e) - finally: - sys.exit(result) - - -if __name__ == "__main__": - main() |
