diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | support/make/build-rules.mk | 3 | ||||
-rwxr-xr-x | support/scripts/reset.py | 43 | ||||
-rw-r--r-- | wirish/rules.mk | 2 |
4 files changed, 43 insertions, 6 deletions
@@ -3,3 +3,4 @@ main.cpp libmaple.layout tags TAGS +*~ diff --git a/support/make/build-rules.mk b/support/make/build-rules.mk index 274152c..3892af9 100644 --- a/support/make/build-rules.mk +++ b/support/make/build-rules.mk @@ -23,9 +23,6 @@ ifndef V SILENT_OBJDUMP = @echo ' [OBJDUMP] ' $(OBJDUMP); endif -DFU := dfu-util -OPENOCD := openocd - BUILDDIRS := TGT_BIN := diff --git a/support/scripts/reset.py b/support/scripts/reset.py index cc944ee..7cafefc 100755 --- a/support/scripts/reset.py +++ b/support/scripts/reset.py @@ -1,13 +1,52 @@ #!/usr/bin/python -# NOTE: On Mac OSX this script must be run as sudo? +# NOTE: On Mac OSX this script must be run as sudo? import serial import os +import sys from struct import pack +def get_maple_device_path_osx(): + """Try to find the device file for the Maple on OS X. If there + are multiple possibilities, ask the user what to do. If the user + chooses not to say, returns None.""" + possible_maple_paths = [x for x in os.listdir('/dev') if \ + 'tty.usbmodem' in x] + if len(possible_maple_paths) == 1: + return possible_maple_paths[0] + else: + print 'Attempting to reset Maple, but found multiple ' + \ + 'candidates for the Maple device:' + for (i,p) in enumerate(possible_maple_paths): + print '\t%d. %s' % (i+1,os.path.join('/dev',p)) + + prompt = 'Enter a number to select one, or q to quit: ' + while True: + resp = raw_input(prompt).strip().lower() + if resp == 'q': return None + + try: + i = int(resp, 10) + except ValueError: + pass + else: + if 0 <= i-1 < len(possible_maple_paths): + return os.path.join('/dev',possible_maple_paths[i-1]) + prompt = 'Please enter a number from the list, or q to quit: ' + +os_sysname = os.uname()[0] +if os_sysname == 'Linux': + maple_path = '/dev/maple' +elif os_sysname == 'Darwin': + maple_path = get_maple_device_path_osx() + if maple_path is None: sys.exit() +else: + # TODO [mbolivar] special cases for windows, BSD, whatever? + maple_path = '/dev/maple' + try: - ser = serial.Serial('/dev/maple', baudrate=115200, xonxoff=1) + ser = serial.Serial(maple_path, baudrate=115200, xonxoff=1) ser.open() # try to toggle DTR/RTS (old scheme) diff --git a/wirish/rules.mk b/wirish/rules.mk index b2110bd..fcd25c6 100644 --- a/wirish/rules.mk +++ b/wirish/rules.mk @@ -24,7 +24,7 @@ cppSRCS_$(d) := wirish_math.cpp \ comm/HardwareSerial.cpp \ comm/HardwareSPI.cpp \ usb_serial.cpp \ - HardwareTimer.cpp \ + HardwareTimer.cpp \ cxxabi-compat.cpp cFILES_$(d) := $(cSRCS_$(d):%=$(d)/%) |