diff --git a/platformio/__init__.py b/platformio/__init__.py index 4f9d2e11..299738de 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -14,7 +14,7 @@ import sys -VERSION = (2, 10, "2.dev0") +VERSION = (2, 10, "2.dev1") __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio" diff --git a/platformio/boards/intel.json b/platformio/boards/intel.json index 8d5f97be..34950dc8 100644 --- a/platformio/boards/intel.json +++ b/platformio/boards/intel.json @@ -20,7 +20,8 @@ "maximum_ram_size": 81920, "maximum_size": 155648, "protocol": "script", - "require_upload_port" : true + "require_upload_port" : true, + "use_1200bps_touch": true }, "url": "https://www.arduino.cc/en/Main/ArduinoBoard101", "vendor": "Intel" diff --git a/platformio/builder/scripts/intel_arc32.py b/platformio/builder/scripts/intel_arc32.py index 0a651cd2..f654234f 100644 --- a/platformio/builder/scripts/intel_arc32.py +++ b/platformio/builder/scripts/intel_arc32.py @@ -23,6 +23,14 @@ from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Builder, Default, env = DefaultEnvironment() + +def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621 + + if env.get("BOARD_OPTIONS", {}).get("upload", {}).get( + "use_1200bps_touch", False): + env.TouchSerialPort("$UPLOAD_PORT", 1200) + + env.Replace( AR="arc-elf32-ar", AS="arc-elf32-as", @@ -178,7 +186,7 @@ AlwaysBuild(target_size) # upload = env.Alias(["upload", "uploadlazy"], target_firm, - [env.AutodetectUploadPort, "$UPLOADCMD"]) + [env.AutodetectUploadPort, BeforeUpload, "$UPLOADCMD"]) AlwaysBuild(upload) # diff --git a/platformio/builder/tools/pioupload.py b/platformio/builder/tools/pioupload.py index ede4ca74..37cd4826 100644 --- a/platformio/builder/tools/pioupload.py +++ b/platformio/builder/tools/pioupload.py @@ -37,13 +37,15 @@ def FlushSerialBuffer(env, port): def TouchSerialPort(env, port, baudrate): + port = env.subst(port) + print "Forcing reset using %dbps open/close on port %s" % (baudrate, port) if system() != "Windows": try: - s = Serial(env.subst(port)) + s = Serial(port) s.close() except: # pylint: disable=W0702 pass - s = Serial(port=env.subst(port), baudrate=baudrate) + s = Serial(port=port, baudrate=baudrate) s.setDTR(False) s.close() sleep(0.4)