install AVRDUDE 5.10, faster disk find for LPC1768 (#10849)

This commit is contained in:
Bob Kuhn 2018-05-25 20:26:48 -05:00 committed by Scott Lahteine
parent 645df23eb0
commit 235facd545
9 changed files with 46403 additions and 131 deletions

View File

@ -6,10 +6,10 @@
target_filename = "FIRMWARE.CUR"
target_drive = "REARM"
upload_disk = ""
import os
import subprocess
import platform
current_OS = platform.system()
#env_vars = subprocess.check_output('platformio run -t envdump')
#env_vars = env_vars.split('\n')
@ -21,10 +21,6 @@ build_type = os.environ.get("BUILD_TYPE", 'Not Set')
if not(build_type == 'upload' or build_type == 'traceback' or build_type == 'Not Set') :
exit(0)
print '\nSearching for upload disk'
import platform
current_OS = platform.system()
if current_OS == 'Windows':
@ -43,38 +39,22 @@ if current_OS == 'Windows':
driveStr = driveStr.strip().lstrip('Drives: ') # typical result (string): 'C:\ D:\ E:\ F:\ G:\ H:\ I:\ J:\ K:\ L:\ M:\ Y:\ Z:\'
drives = driveStr.split() # typical result (array of stings): ['C:\\', 'D:\\', 'E:\\', 'F:\\', 'G:\\', 'H:\\', 'I:\\', 'J:\\', 'K:\\', 'L:\\', 'M:\\', 'Y:\\', 'Z:\\']
#
# scan top directory of each drive for FIRMWARE.CUR
# return first drive found
#
import os
upload_disk = 'Disk not found'
target_file_found = False
target_drive_found = False
volume_info = subprocess.check_output('powershell -Command volume ')
volume_info = volume_info.split('\n')
for entry in volume_info:
if target_drive in entry and target_drive_found == False: # set upload if not found target file yet
target_drive_found = True
upload_disk = entry[ : entry.find(' ')] + ':'
for drive in drives:
final_drive_name = drive.strip().rstrip('\\') # typical result (string): 'C:'
# modified version of walklevel()
level=0
some_dir = "/"
some_dir = some_dir.rstrip(os.path.sep)
assert os.path.isdir(some_dir)
num_sep = some_dir.count(os.path.sep)
for root, dirs, files in os.walk(final_drive_name):
num_sep_this = root.count(os.path.sep)
if num_sep + level <= num_sep_this:
del dirs[:]
if target_filename in files:
try:
volume_info = subprocess.check_output('cmd /C dir ' + final_drive_name, stderr=subprocess.STDOUT)
except Exception as e:
continue
else:
if target_drive in volume_info and target_file_found == False: # set upload if not found target file yet
target_drive_found = True
upload_disk = final_drive_name
if target_filename in volume_info:
if target_file_found == False:
upload_disk = root
upload_disk = final_drive_name
target_file_found = True
#
@ -97,7 +77,6 @@ if current_OS == 'Linux':
# platformio.ini will accept this for a Linux upload port designation: 'upload_port = /media/media_name/drive'
#
import os
upload_disk = 'Disk not found'
target_file_found = False
target_drive_found = False

View File

@ -23,6 +23,8 @@
#######################################
#
# Revision: 2.0.1
#
# Description: script to automate PlatformIO builds
# CLI: python auto_build.py build_option
# build_option (required)
@ -103,6 +105,7 @@ current_OS = platform.system()
target_env = ''
board_name = ''
#########
# Python 2 error messages:
# Can't find a usable init.tcl in the following directories ...
@ -208,6 +211,13 @@ def resolve_path(path):
import os
# turn the selection into a partial path
if 0 <= path.find('"'):
path = path[ path.find('"') : ]
if 0 <= path.find(', line '):
path = path.replace(', line ', ':')
path = path.replace('"', '')
#get line and column numbers
line_num = 1
column_num = 1
@ -969,6 +979,7 @@ class output_window(Text):
Text.__init__(self, self.frame, borderwidth=3, relief="sunken")
self.config(tabs=(400,)) # configure Text widget tab stops
self.config(background = 'black', foreground = 'white', font= ("consolas", 12), wrap = 'word', undo = 'True')
# self.config(background = 'black', foreground = 'white', font= ("consolas", 12), wrap = 'none', undo = 'True')
self.config(height = 24, width = 100)
self.config(insertbackground = 'pale green') # keyboard insertion point
self.pack(side='left', fill='both', expand=True)
@ -991,6 +1002,25 @@ class output_window(Text):
self.config(yscrollcommand=scrb.set)
scrb.pack(side='right', fill='y')
# self.scrb_Y = tk.Scrollbar(self.frame, orient='vertical', command=self.yview)
# self.scrb_Y.config(yscrollcommand=self.scrb_Y.set)
# self.scrb_Y.pack(side='right', fill='y')
#
# self.scrb_X = tk.Scrollbar(self.frame, orient='horizontal', command=self.xview)
# self.scrb_X.config(xscrollcommand=self.scrb_X.set)
# self.scrb_X.pack(side='bottom', fill='x')
# scrb_X = tk.Scrollbar(self, orient=tk.HORIZONTAL, command=self.xview) # tk.HORIZONTAL now have a horizsontal scroll bar BUT... shrinks it to a postage stamp and hides far right behind the vertical scroll bar
# self.config(xscrollcommand=scrb_X.set)
# scrb_X.pack(side='bottom', fill='x')
#
# scrb= tk.Scrollbar(self, orient='vertical', command=self.yview)
# self.config(yscrollcommand=scrb.set)
# scrb.pack(side='right', fill='y')
# self.config(height = 240, width = 1000) # didn't get the size baCK TO NORMAL
# self.pack(side='left', fill='both', expand=True) # didn't get the size baCK TO NORMAL
# pop-up menu
self.popup = tk.Menu(self, tearoff=0)
@ -1230,6 +1260,10 @@ def main():
target_env = get_env(board_name, Marlin_ver)
os.environ["BUILD_TYPE"] = build_type # let sub processes know what is happening
os.environ["TARGET_ENV"] = target_env
os.environ["BOARD_NAME"] = board_name
auto_build = output_window()
if 0 <= target_env.find('USB1286'):
copy_boards_dir() # copy custom boards over to PlatformIO if using custom board

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -9,18 +9,21 @@
# Will continue on if a COM port isn't found so that the compilation can be done.
#
import sys
import subprocess
import os
import sys
from SCons.Script import DefaultEnvironment
import platform
current_OS = platform.system()
from SCons.Script import DefaultEnvironment
env = DefaultEnvironment()
build_type = os.environ.get("BUILD_TYPE", 'Not Set')
if not(build_type == 'upload' or build_type == 'traceback' or build_type == 'Not Set') :
env.Replace(UPLOAD_PROTOCOL = 'teensy-gui') # run normal Teensy2 scripts
else:
com_first = ''
com_last = ''
com_CDC = ''
@ -69,6 +72,11 @@ def get_com_port(com_search_text, descr_search_text, start):
elif com_CDC == '':
com_CDC = 'COM_PORT_NOT_FOUND'
while 0 <= com_CDC.find('\n'):
com_CDC = com_CDC.replace('\n', '')
while 0 <= com_CDC.find('\r'):
com_CDC = com_CDC.replace('\r', '')
if com_CDC == 'COM_PORT_NOT_FOUND':
print com_CDC, '\n'
else:
@ -79,33 +87,51 @@ if current_OS == 'Windows':
get_com_port('COM', 'Hardware ID:', 13)
avrdude_conf_path = env.get("PIOHOME_DIR") + '\\packages\\toolchain-atmelavr\\etc\\avrdude.conf'
# avrdude_conf_path = env.get("PIOHOME_DIR") + '\\packages\\toolchain-atmelavr\\etc\\avrdude.conf'
avrdude_conf_path = 'buildroot\\share\\atom\\avrdude.conf'
source_path = env.get("PROJECTBUILD_DIR") + '\\' + env.get("PIOENV") + '\\firmware.hex'
avrdude_exe_path = 'buildroot\\share\\atom\\avrdude_5.10.exe'
upload_string = 'avrdude -p usb1286 -c avr109 -P ' + com_CDC + ' -C ' + avrdude_conf_path + ' -U flash:w:' + source_path + ':i'
# source_path = env.get("PROJECTBUILD_DIR") + '\\' + env.get("PIOENV") + '\\firmware.hex'
source_path = '.pioenvs\\' + env.get("PIOENV") + '\\firmware.hex'
upload_string = avrdude_exe_path + ' -p usb1286 -c avr109 -P ' + com_CDC + ' -U flash:w:' + source_path + ':i'
if current_OS == 'Darwin': # MAC
get_com_port('usbmodem', 'Description:', 13)
avrdude_conf_path = env.get("PIOHOME_DIR") + '/packages/toolchain-atmelavr/etc/avrdude.conf'
# avrdude_conf_path = env.get("PIOHOME_DIR") + '/packages/toolchain-atmelavr/etc/avrdude.conf'
avrdude_conf_path = 'buildroot/share/atom/avrdude_macOS.conf'
source_path = env.get("PROJECTBUILD_DIR") + '/' + env.get("PIOENV") + '/firmware.hex'
upload_string = 'avrdude -p usb1286 -c avr109 -P ' + com_CDC + ' -U flash:w:' + source_path + ':i'
avrdude_exe_path = 'buildroot/share/atom/avrdude_5.10_macOS'
# source_path = env.get("PROJECTBUILD_DIR") + '/' + env.get("PIOENV") + '/firmware.hex'
source_path = '.pioenvs/' + env.get("PIOENV") + '/firmware.hex'
# upload_string = 'avrdude -p usb1286 -c avr109 -P ' + com_CDC + ' -U flash:w:' + source_path + ':i'
upload_string = avrdude_exe_path + ' -p usb1286 -c avr109 -P ' + com_CDC + ' -C ' + avrdude_conf_path + ' -U flash:w:' + source_path + ':i'
print 'upload_string: ', upload_string
if current_OS == 'Linux':
get_com_port('/dev/tty', 'Description:', 13)
avrdude_conf_path = env.get("PIOHOME_DIR") + '/packages/toolchain-atmelavr/etc/avrdude.conf'
# avrdude_conf_path = env.get("PIOHOME_DIR") + '/packages/toolchain-atmelavr/etc/avrdude.conf'
avrdude_conf_path = 'buildroot/share/atom/avrdude_linux.conf'
source_path = env.get("PROJECTBUILD_DIR") + '/' + env.get("PIOENV") + '/firmware.hex'
upload_string = 'avrdude -p usb1286 -c avr109 -P ' + com_CDC + ' -U flash:w:' + source_path + ':i'
avrdude_exe_path = 'buildroot/share/atom/avrdude_5.10_linux'
# source_path = env.get("PROJECTBUILD_DIR") + '/' + env.get("PIOENV") + '/firmware.hex'
source_path = '.pioenvs/' + env.get("PIOENV") + '/firmware.hex'
# upload_string = 'avrdude -p usb1286 -c avr109 -P ' + com_CDC + ' -U flash:w:' + source_path + ':i'
upload_string = avrdude_exe_path + ' -p usb1286 -c avr109 -P ' + com_CDC + ' -C ' + avrdude_conf_path + ' -U flash:w:' + source_path + ':i'
env.Replace(

View File

@ -9,14 +9,19 @@
# Will continue on if a COM port isn't found so that the compilation can be done.
#
import os
import sys
from SCons.Script import DefaultEnvironment
import platform
current_OS = platform.system()
env = DefaultEnvironment()
build_type = os.environ.get("BUILD_TYPE", 'Not Set')
if not(build_type == 'upload' or build_type == 'traceback' or build_type == 'Not Set') :
env.Replace(UPLOAD_PROTOCOL = 'teensy-gui') # run normal Teensy2 scripts
else:
if current_OS == 'Windows':
avrdude_conf_path = env.get("PIOHOME_DIR") + '\\packages\\toolchain-atmelavr\\etc\\avrdude.conf'