From b10ef4875fb5a48cf6c702a36b7a0bf6d84c5f78 Mon Sep 17 00:00:00 2001 From: Marti Bolivar Date: Sun, 29 Aug 2010 02:07:32 -0400 Subject: fix reset.py to work on OS X,; .gitignore leaves out ~ files; cleanup support/make/build-rules.mk --- .gitignore | 1 + support/make/build-rules.mk | 3 --- support/scripts/reset.py | 43 +++++++++++++++++++++++++++++++++++++++++-- wirish/rules.mk | 2 +- 4 files changed, 43 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index c764a06..5a4d25f 100644 --- a/.gitignore +++ b/.gitignore @@ -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)/%) -- cgit v1.2.3