mirror of
				https://github.com/esp8266/Arduino.git
				synced 2025-10-31 15:50:55 +03:00 
			
		
		
		
	The FS uploader plugins need to be updated to use python3 and not python, or they will fail on Windows (or Linux boxes without an installed python2 interpreter). Update the documents to point to the new versions.
		
			
				
	
	
		
			69 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env python3
 | |
| 
 | |
| # Wrapper for Arduino core / others that can call esptool.py possibly multiple times
 | |
| # Adds pyserial to sys.path automatically based on the path of the current file
 | |
| 
 | |
| # First parameter is pyserial path, second is esptool path, then a series of command arguments
 | |
| # i.e. upload.py tools/pyserial tools/esptool write_flash file 0x0
 | |
| 
 | |
| import sys
 | |
| import os
 | |
| import tempfile
 | |
| 
 | |
| sys.argv.pop(0) # Remove executable name
 | |
| toolspath = os.path.dirname(os.path.realpath(__file__)).replace('\\', '/') # CWD in UNIX format
 | |
| try:
 | |
|     sys.path.insert(0, toolspath + "/pyserial") # Add pyserial dir to search path
 | |
|     sys.path.insert(0, toolspath + "/esptool") # Add esptool dir to search path
 | |
|     import esptool # If this fails, we can't continue and will bomb below
 | |
| except:
 | |
|     sys.stderr.write("pyserial or esptool directories not found next to this upload.py tool.\n")
 | |
|     sys.exit(1)
 | |
| 
 | |
| cmdline = []
 | |
| write_option = ''
 | |
| write_addr = '0x0'
 | |
| erase_addr = ''
 | |
| erase_len = ''
 | |
| 
 | |
| while len(sys.argv):
 | |
|     thisarg = sys.argv.pop(0)
 | |
| 
 | |
|     # We silently replace the 921kbaud setting with 460k to enable backward
 | |
|     # compatibility with the old esptool-ck.exe.  Esptool.py doesn't seem
 | |
|     # work reliably at 921k, but is still significantly faster at 460kbaud.
 | |
|     if thisarg == "921600":
 | |
|         thisarg = "460800"
 | |
| 
 | |
|     # 'erase_flash' command is translated to the write_flash --erase-all option
 | |
|     # https://github.com/esp8266/Arduino/issues/6755#issuecomment-553208688
 | |
|     if thisarg == "erase_flash":
 | |
|         write_option = '--erase-all'
 | |
|     elif thisarg == 'erase_region':
 | |
|         erase_addr = sys.argv.pop(0)
 | |
|         erase_len = sys.argv.pop(0)
 | |
|     elif thisarg == 'write_flash':
 | |
|         write_addr = sys.argv.pop(0)
 | |
|         binary = sys.argv.pop(0)
 | |
|     elif len(thisarg):
 | |
|         cmdline = cmdline + [thisarg]
 | |
| 
 | |
| cmdline = cmdline + ['write_flash']
 | |
| if len(write_option):
 | |
|     cmdline = cmdline + [write_option]
 | |
| cmdline = cmdline + [write_addr, binary]
 | |
| 
 | |
| erase_file = ''
 | |
| if len(erase_addr):
 | |
|     # Generate temporary empty (0xff) file
 | |
|     eraser = tempfile.mkstemp()
 | |
|     erase_file = eraser[1]
 | |
|     os.write(eraser[0], bytearray([255] * int(erase_len, 0)))
 | |
|     os.close(eraser[0])
 | |
|     cmdline = cmdline + [ erase_addr, erase_file ]
 | |
| 
 | |
| esptool.main(cmdline)
 | |
| 
 | |
| if len(erase_file):
 | |
|     os.remove(erase_file)
 |