Show error for invalid LD script

This commit is contained in:
Ivan Kravets
2015-12-28 20:09:48 +02:00
parent 3121ca5669
commit ed68878592
6 changed files with 27 additions and 25 deletions

View File

@ -42,7 +42,7 @@ The list with preconfigured LD scripts is located in public repository
* ``esp8266.flash.1m256.ld`` 1M (256K SPIFFS)
* ``esp8266.flash.1m512.ld`` 1M (512K SPIFFS)
* ``esp8266.flash.2m.ld`` 2M (1M SPIFFS)
* ``esp8266.flash.4m1.ld`` 4M (1M SPIFFS)
* ``esp8266.flash.4m1m.ld`` 4M (1M SPIFFS)
* ``esp8266.flash.4m.ld`` 4M (3M SPIFFS)
To override default LD script please use :ref:`projectconf_build_flags` from

View File

@ -14,7 +14,7 @@
import sys
VERSION = (2, 7, "0.dev4")
VERSION = (2, 7, "0.dev5")
__version__ = ".".join([str(s) for s in VERSION])
__title__ = "platformio"

View File

@ -20,7 +20,7 @@ import platform
from os.path import isfile, join
from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Default,
DefaultEnvironment, Exit, SConscript)
DefaultEnvironment, SConscript)
env = DefaultEnvironment()
@ -28,8 +28,8 @@ SConscript(env.subst(join("$PIOBUILDER_DIR", "scripts", "basearm.py")))
if env.subst("$UPLOAD_PROTOCOL") == "gdb":
if not isfile(join(env.subst("$PROJECT_DIR"), "upload.gdb")):
Exit(
"You are using GDB as firmware uploader. "
env.Exit(
"Error: You are using GDB as firmware uploader. "
"Please specify upload commands in upload.gdb "
"file in project directory!"
)

View File

@ -191,6 +191,7 @@ def GetCompilerType(env):
def GetActualLDScript(env):
script = None
for f in env.get("LINKFLAGS", []):
if f.startswith("-Wl,-T"):
script = env.subst(f[6:].replace('"', "").strip())
@ -200,6 +201,11 @@ def GetActualLDScript(env):
path = join(env.subst(d), script)
if isfile(path):
return path
if script:
env.Exit("Error: Could not find '%s' LD script in LDPATH '%s'" % (
script, env.subst("$LIBPATH")))
return None

View File

@ -18,10 +18,8 @@ from os.path import isfile, join
from shutil import copyfile
from time import sleep
from SCons.Script import Exit
from serial import Serial
from platformio.util import get_logicaldisks, get_serialports, get_systype
from serial import Serial
def FlushSerialBuffer(env, port):
@ -48,7 +46,7 @@ def TouchSerialPort(env, port, baudrate):
sleep(0.4)
def WaitForNewSerialPort(_, before):
def WaitForNewSerialPort(env, before):
new_port = None
elapsed = 0
while elapsed < 10:
@ -63,10 +61,10 @@ def WaitForNewSerialPort(_, before):
elapsed += 0.25
if not new_port:
Exit("Error: Couldn't find a board on the selected port. "
"Check that you have the correct port selected. "
"If it is correct, try pressing the board's reset "
"button after initiating the upload.")
env.Exit("Error: Couldn't find a board on the selected port. "
"Check that you have the correct port selected. "
"If it is correct, try pressing the board's reset "
"button after initiating the upload.")
return new_port
@ -100,10 +98,10 @@ def AutodetectUploadPort(env):
if "UPLOAD_PORT" in env:
print "Auto-detected UPLOAD_PORT/DISK: %s" % env['UPLOAD_PORT']
else:
Exit("Error: Please specify `upload_port` for environment or use "
"global `--upload-port` option.\n"
"For some development platforms this can be a USB flash drive "
"(i.e. /media/<user>/<device name>)\n")
env.Exit("Error: Please specify `upload_port` for environment or use "
"global `--upload-port` option.\n"
"For some development platforms this can be a USB flash "
"drive (i.e. /media/<user>/<device name>)\n")
def UploadToDisk(_, target, source, env): # pylint: disable=W0613,W0621
@ -113,8 +111,8 @@ def UploadToDisk(_, target, source, env): # pylint: disable=W0613,W0621
if not isfile(fpath):
continue
copyfile(fpath, join(env.subst("$UPLOAD_PORT"), "firmware.%s" % ext))
print ("Firmware has been successfully uploaded.\n"
"Please restart your board.")
print("Firmware has been successfully uploaded.\n"
"Please restart your board.")
def exists(_):

View File

@ -19,11 +19,9 @@ from glob import glob
from os import getenv, listdir, sep, walk
from os.path import basename, dirname, isdir, isfile, join, normpath, realpath
from SCons.Script import (COMMAND_LINE_TARGETS, DefaultEnvironment, Exit,
SConscript)
from SCons.Util import case_sensitive_suffixes
from platformio.util import pioversion_to_intstr
from SCons.Script import COMMAND_LINE_TARGETS, DefaultEnvironment, SConscript
from SCons.Util import case_sensitive_suffixes
SRC_BUILD_EXT = ["c", "cpp", "S", "spp", "SPP", "sx", "s", "asm", "ASM"]
SRC_HEADER_EXT = ["h", "hpp"]
@ -183,7 +181,7 @@ def BuildFrameworks(env, frameworks):
if board_frameworks:
frameworks.insert(0, board_frameworks[0])
else:
Exit("Error: Please specify board type")
env.Exit("Error: Please specify board type")
for f in frameworks:
if f in ("arduino", "energia"):
@ -193,7 +191,7 @@ def BuildFrameworks(env, frameworks):
SConscript(env.subst(
join("$PIOBUILDER_DIR", "scripts", "frameworks", "%s.py" % f)))
else:
Exit("Error: This board doesn't support %s framework!" % f)
env.Exit("Error: This board doesn't support %s framework!" % f)
def BuildLibrary(env, variant_dir, src_dir, src_filter=None):