Add second upload method through native USB Port for SAM-based boards

This commit is contained in:
Valeriy Koval
2015-03-04 14:11:50 +02:00
parent 148018749a
commit 7d63d6c77c
2 changed files with 49 additions and 0 deletions

View File

@@ -10,10 +10,33 @@ from os.path import join
from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Default,
DefaultEnvironment, SConscript)
from platformio.util import get_serialports
def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621
env.AutodetectUploadPort()
board_type = env.subst("$BOARD")
env.Append(
UPLOADERFLAGS=[
"-U",
"true" if "usb" in board_type.lower(
) or board_type == "digix" else "false"
])
upload_options = env.get("BOARD_OPTIONS", {}).get("upload", {})
if not upload_options.get("disable_flushing", False):
env.FlushSerialBuffer("$UPLOAD_PORT")
before_ports = [i['port'] for i in get_serialports()]
if upload_options.get("use_1200bps_touch", False):
env.TouchSerialPort("$UPLOAD_PORT", 1200)
if upload_options.get("wait_for_upload_port", False):
env.Replace(UPLOAD_PORT=env.WaitForNewSerialPort(before_ports))
env = DefaultEnvironment()