aboutsummaryrefslogtreecommitdiff
path: root/cc3200/tools
diff options
context:
space:
mode:
authorDamien George2017-09-06 13:40:51 +1000
committerDamien George2017-09-06 13:40:51 +1000
commit01dd7804b87d60b2deab16712eccb3b97351a9b7 (patch)
tree1aa21f38a872b8e62a3d4e4f74f68033c6f827e4 /cc3200/tools
parenta9862b30068fc9df1022f08019fb35aaa5085f64 (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.py76
-rw-r--r--cc3200/tools/smoke.py.exp95
-rw-r--r--cc3200/tools/uniflash.py81
-rw-r--r--cc3200/tools/update-wipy.py200
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()