Implement 'boards' command // Resolve #11
This commit is contained in:
@@ -11,7 +11,7 @@ from time import sleep
|
||||
from SCons.Script import (AlwaysBuild, Builder, COMMAND_LINE_TARGETS, Default,
|
||||
DefaultEnvironment, Exit)
|
||||
|
||||
from platformio.util import get_serialports, reset_serialport
|
||||
from platformio.util import get_serialports
|
||||
|
||||
env = DefaultEnvironment()
|
||||
|
||||
@@ -41,7 +41,10 @@ env.Replace(
|
||||
"-mmcu=$BOARD_MCU"
|
||||
],
|
||||
|
||||
CXXFLAGS=["-fno-exceptions"],
|
||||
CXXFLAGS=[
|
||||
"-fno-exceptions",
|
||||
"-fno-threadsafe-statics"
|
||||
],
|
||||
|
||||
CPPDEFINES=[
|
||||
"F_CPU=$BOARD_F_CPU"
|
||||
@@ -101,7 +104,7 @@ env.Append(
|
||||
)
|
||||
|
||||
|
||||
def reset_device():
|
||||
def before_upload():
|
||||
|
||||
def rpi_sysgpio(path, value):
|
||||
with open(path, "w") as f:
|
||||
@@ -115,7 +118,7 @@ def reset_device():
|
||||
rpi_sysgpio("/sys/class/gpio/gpio18/value", 0)
|
||||
rpi_sysgpio("/sys/class/gpio/unexport", 18)
|
||||
else:
|
||||
return reset_serialport(env.subst("$UPLOAD_PORT"))
|
||||
return env.FlushSerialBuffer("$UPLOAD_PORT")
|
||||
|
||||
|
||||
CORELIBS = env.ProcessGeneral()
|
||||
@@ -147,7 +150,7 @@ else:
|
||||
#
|
||||
|
||||
upload = env.Alias(["upload", "uploadlazy"], target_hex, [
|
||||
lambda target, source, env: reset_device(), "$UPLOADHEXCMD"])
|
||||
lambda target, source, env: before_upload(), "$UPLOADHEXCMD"])
|
||||
AlwaysBuild(upload)
|
||||
|
||||
#
|
||||
@@ -155,7 +158,7 @@ AlwaysBuild(upload)
|
||||
#
|
||||
|
||||
uploadeep = env.Alias("uploadeep", target_eep, [
|
||||
lambda target, source, env: reset_device(), "$UPLOADEEPCMD"])
|
||||
lambda target, source, env: before_upload(), "$UPLOADEEPCMD"])
|
||||
AlwaysBuild(uploadeep)
|
||||
|
||||
#
|
||||
|
||||
@@ -12,35 +12,31 @@ from SCons.Script import Import, Return
|
||||
env = None
|
||||
Import("env")
|
||||
|
||||
BOARD_OPTIONS = env.ParseBoardOptions(
|
||||
join("$PLATFORMFW_DIR", "boards.txt"),
|
||||
"${BOARD}"
|
||||
)
|
||||
ARDUINO_VERSION = int(
|
||||
open(join(env.subst("$PLATFORMFW_DIR"),
|
||||
"version.txt")).read().replace(".", "").strip())
|
||||
|
||||
# usb flags
|
||||
ARDUINO_USBDEFINES = []
|
||||
if "build.usb_product" in BOARD_OPTIONS:
|
||||
if "usb_product" in env.subst("${BOARD_OPTIONS['build']}"):
|
||||
ARDUINO_USBDEFINES = [
|
||||
"USB_VID=%s" % BOARD_OPTIONS['build.vid'],
|
||||
"USB_PID=%s" % BOARD_OPTIONS['build.pid'],
|
||||
'USB_PRODUCT=\\"%s\\"' % BOARD_OPTIONS['build.usb_product'].replace(
|
||||
'"', "")
|
||||
"USB_VID=${BOARD_OPTIONS['build']['vid']}",
|
||||
"USB_PID=${BOARD_OPTIONS['build']['pid']}",
|
||||
'USB_PRODUCT=\\"%s\\"' % (env.subst(
|
||||
"${BOARD_OPTIONS['build']['usb_product']}").replace('"', ""))
|
||||
]
|
||||
|
||||
# include board variant
|
||||
env.VariantDir(
|
||||
join("$BUILD_DIR", "FrameworkArduinoVariant"),
|
||||
join("$PLATFORMFW_DIR", "variants", BOARD_OPTIONS['build.variant'])
|
||||
join("$PLATFORMFW_DIR", "variants", "${BOARD_OPTIONS['build']['variant']}")
|
||||
)
|
||||
|
||||
env.Append(
|
||||
CPPDEFINES=[
|
||||
"ARDUINO_ARCH_%s" % env.subst("$PLATFORM").upper()[-3:],
|
||||
"ARDUINO=%d" % ARDUINO_VERSION,
|
||||
"ARDUINO_%s" % BOARD_OPTIONS['build.board']
|
||||
"ARDUINO_${BOARD_OPTIONS['build']['board']}"
|
||||
] + ARDUINO_USBDEFINES,
|
||||
CPPPATH=[
|
||||
join("$BUILD_DIR", "FrameworkArduino"),
|
||||
@@ -48,25 +44,16 @@ env.Append(
|
||||
]
|
||||
)
|
||||
|
||||
if "BOARD_MCU" not in env:
|
||||
env.Replace(BOARD_MCU=BOARD_OPTIONS['build.mcu'])
|
||||
if "BOARD_F_CPU" not in env:
|
||||
env.Replace(BOARD_F_CPU=BOARD_OPTIONS['build.f_cpu'])
|
||||
if "UPLOAD_PROTOCOL" not in env:
|
||||
env.Replace(UPLOAD_PROTOCOL=BOARD_OPTIONS['upload.protocol'])
|
||||
if "UPLOAD_SPEED" not in env:
|
||||
env.Replace(UPLOAD_SPEED=BOARD_OPTIONS['upload.speed'])
|
||||
|
||||
|
||||
libs = []
|
||||
|
||||
#
|
||||
# Target: Build Core Library
|
||||
#
|
||||
|
||||
libs = []
|
||||
|
||||
libs.append(env.BuildLibrary(
|
||||
join("$BUILD_DIR", "FrameworkArduino"),
|
||||
join("$PLATFORMFW_DIR", "cores", BOARD_OPTIONS['build.core'])
|
||||
join("$PLATFORMFW_DIR", "cores", "${BOARD_OPTIONS['build']['core']}")
|
||||
))
|
||||
|
||||
Return("libs")
|
||||
|
||||
@@ -12,10 +12,6 @@ from SCons.Script import Import, Return
|
||||
env = None
|
||||
Import("env")
|
||||
|
||||
BOARD_OPTIONS = env.ParseBoardOptions(
|
||||
join("$PLATFORMFW_DIR", "boards.txt"),
|
||||
"${BOARD}"
|
||||
)
|
||||
ENERGIA_VERSION = int(
|
||||
open(join(env.subst("$PLATFORMFW_DIR"),
|
||||
"version.txt")).read().replace(".", "").strip())
|
||||
@@ -23,7 +19,7 @@ ENERGIA_VERSION = int(
|
||||
# include board variant
|
||||
env.VariantDir(
|
||||
join("$BUILD_DIR", "FrameworkEnergiaVariant"),
|
||||
join("$PLATFORMFW_DIR", "variants", BOARD_OPTIONS['build.variant'])
|
||||
join("$PLATFORMFW_DIR", "variants", "${BOARD_OPTIONS['build']['variant']}")
|
||||
)
|
||||
|
||||
env.Append(
|
||||
@@ -37,31 +33,25 @@ env.Append(
|
||||
]
|
||||
)
|
||||
|
||||
if "BOARD_MCU" not in env:
|
||||
env.Replace(BOARD_MCU=BOARD_OPTIONS['build.mcu'])
|
||||
if "BOARD_F_CPU" not in env:
|
||||
env.Replace(BOARD_F_CPU=BOARD_OPTIONS['build.f_cpu'])
|
||||
if "UPLOAD_PROTOCOL" not in env and "upload.protocol" in BOARD_OPTIONS:
|
||||
env.Replace(UPLOAD_PROTOCOL=BOARD_OPTIONS['upload.protocol'])
|
||||
|
||||
# specific linker script for TIVA devices
|
||||
if "ldscript" in BOARD_OPTIONS:
|
||||
if "ldscript" in env.subst("${BOARD_OPTIONS['build']}"):
|
||||
env.Append(
|
||||
LINKFLAGS=["-T", join("$PLATFORMFW_DIR", "cores",
|
||||
BOARD_OPTIONS['build.core'],
|
||||
BOARD_OPTIONS['ldscript'])]
|
||||
LINKFLAGS=["-T", join(
|
||||
"$PLATFORMFW_DIR", "cores",
|
||||
"${BOARD_OPTIONS['build']['core']}",
|
||||
"${BOARD_OPTIONS['build']['ldscript']}")]
|
||||
)
|
||||
|
||||
|
||||
libs = []
|
||||
|
||||
#
|
||||
# Target: Build Core Library
|
||||
#
|
||||
|
||||
libs = []
|
||||
|
||||
libs.append(env.BuildLibrary(
|
||||
join("$BUILD_DIR", "FrameworkEnergia"),
|
||||
join("$PLATFORMFW_DIR", "cores", BOARD_OPTIONS['build.core'])
|
||||
join("$PLATFORMFW_DIR", "cores", "${BOARD_OPTIONS['build']['core']}")
|
||||
))
|
||||
|
||||
Return("libs")
|
||||
|
||||
Reference in New Issue
Block a user