Merge branch 'develop' of https://github.com/ivankravets/platformio into feature/panStamp

This commit is contained in:
Valeriy Koval committed 2015-03-16 18:40:58 +02:00
commit e76efef6c7
28 files changed
+101 -44

No files matched your search

@@ -2,6 +2,8 @@
# See LICENSE for details.
"""
Arduino
Arduino Framework allows writing cross-platform software to control
devices attached to a wide range of Arduino boards to create all
kinds of creative coding, interactive objects, spaces or physical experiences.
@@ -2,6 +2,8 @@
# See LICENSE for details.
"""
CMSIS
The ARM Cortex Microcontroller Software Interface Standard (CMSIS) is a
vendor-independent hardware abstraction layer for the Cortex-M processor
series and specifies debugger interfaces. The CMSIS enables consistent and
@@ -2,6 +2,8 @@
# See LICENSE for details.
"""
Energia
Energia framework enables pretty much anyone to start easily creating
microcontroller-based projects and applications. Its easy-to-use libraries
and functions provide developers of all experience levels to start
@@ -2,7 +2,9 @@
# See LICENSE for details.
"""
The libopencm3 framework aims to create a free/libre/open-source
libOpenCM3
The libOpenCM3 framework aims to create a free/libre/open-source
firmware library for various ARM Cortex-M0(+)/M3/M4 microcontrollers,
including ST STM32, Ti Tiva and Stellaris, NXP LPC 11xx, 13xx, 15xx,
17xx parts, Atmel SAM3, Energy Micro EFM32 and others.
@@ -2,6 +2,8 @@
# See LICENSE for details.
"""
mbed
The mbed framework The mbed SDK has been designed to provide enough
hardware abstraction to be intuitive and concise, yet powerful enough to
build complex projects. It is built on the low-level ARM CMSIS APIs,
@@ -2,6 +2,8 @@
# See LICENSE for details.
"""
SPL
The ST Standard Peripheral Library provides a set of functions for
handling the peripherals on the STM32 Cortex-M3 family.
The idea is to save the user (the new user, in particular) having to deal
+5 -5
View File
@@ -18,18 +18,18 @@ def cli(query, json_output):
platforms.sort()
for platform in platforms:
p = PlatformFactory.newPlatform(platform)
name = p.get_name()
type_ = p.get_type()
description = p.get_description()
if query == "all":
query = ""
search_data = "%s %s %s" % (name, description, p.get_packages())
search_data = "%s %s %s" % (type_, description, p.get_packages())
if query and query.lower() not in search_data.lower():
continue
data.append({
"name": name,
"type": type_,
"description": description,
"packages": p.get_packages()
})
@@ -38,9 +38,9 @@ def cli(query, json_output):
click.echo(json.dumps(data))
else:
for item in data:
click.secho(item['name'], fg="cyan", nl=False)
click.secho(item['type'], fg="cyan", nl=False)
click.echo(" (available packages: %s)" % ", ".join(
p.get_packages().keys()))
click.secho("-" * len(item['name']), fg="cyan")
click.secho("-" * len(item['type']), fg="cyan")
click.echo(item['description'])
click.echo()
+1 -1
View File
@@ -30,7 +30,7 @@ def cli(ctx, platform):
p = PlatformFactory.newPlatform(platform)
click.echo("{name:<20} - {description} [ {url} ]".format(
name=click.style(p.get_name(), fg="cyan"),
name=click.style(p.get_type(), fg="cyan"),
description=p.get_description(), url=p.get_vendor_url()))
installed_packages = PackageManager.get_installed()
+3
View File
@@ -37,6 +37,9 @@ class AtmelavrPlatform(BasePlatform):
}
}
def get_name(self):
return "Atmel AVR"
def on_run_err(self, line): # pylint: disable=R0201
# fix STDERR "flash written" for avrdude
if "avrdude" in line:
+3
View File
@@ -34,3 +34,6 @@ class AtmelsamPlatform(BasePlatform):
"default": True
}
}
def get_name(self):
return "Atmel SAM"
+27 -24
View File
@@ -100,17 +100,17 @@ def get_packages():
class PlatformFactory(object):
@staticmethod
def get_clsname(name):
return "%sPlatform" % name.title()
def get_clsname(type_):
return "%sPlatform" % type_.title()
@staticmethod
def load_module(name, path):
def load_module(type_, path):
module = None
try:
module = load_source(
"platformio.platforms.%s" % name, path)
"platformio.platforms.%s" % type_, path)
except ImportError:
raise exception.UnknownPlatform(name)
raise exception.UnknownPlatform(type_)
return module
@classmethod
@@ -123,15 +123,15 @@ class PlatformFactory(object):
for p in listdir(pdir):
if p in ("__init__.py", "base.py") or not p.endswith(".py"):
continue
name = p[:-3]
type_ = p[:-3]
path = join(pdir, p)
try:
isplatform = hasattr(
cls.load_module(name, path),
cls.get_clsname(name)
cls.load_module(type_, path),
cls.get_clsname(type_)
)
if isplatform:
platforms[name] = path
platforms[type_] = path
except exception.UnknownPlatform:
pass
@@ -139,20 +139,20 @@ class PlatformFactory(object):
return platforms
installed_platforms = {}
for name in get_state_item("installed_platforms", []):
if name in platforms:
installed_platforms[name] = platforms[name]
for type_ in get_state_item("installed_platforms", []):
if type_ in platforms:
installed_platforms[type_] = platforms[type_]
return installed_platforms
@classmethod
def newPlatform(cls, name):
def newPlatform(cls, type_):
platforms = cls.get_platforms()
if name not in platforms:
raise exception.UnknownPlatform(name)
if type_ not in platforms:
raise exception.UnknownPlatform(type_)
_instance = getattr(
cls.load_module(name, platforms[name]),
cls.get_clsname(name)
cls.load_module(type_, platforms[type_]),
cls.get_clsname(type_)
)()
assert isinstance(_instance, BasePlatform)
return _instance
@@ -166,12 +166,15 @@ class BasePlatform(object):
def __init__(self):
self._found_error = False
def get_name(self):
def get_type(self):
return self.__class__.__name__[:-8].lower()
def get_name(self):
return self.get_type().title()
def get_build_script(self):
builtin = join(util.get_source_dir(), "builder", "scripts", "%s.py" %
self.get_name())
self.get_type())
if isfile(builtin):
return builtin
raise NotImplementedError()
@@ -235,14 +238,14 @@ class BasePlatform(object):
# register installed platform
data = get_state_item("installed_platforms", [])
if self.get_name() not in data:
data.append(self.get_name())
if self.get_type() not in data:
data.append(self.get_type())
set_state_item("installed_platforms", data)
return len(requirements)
def uninstall(self):
platform = self.get_name()
platform = self.get_type()
installed_platforms = PlatformFactory.get_platforms(
installed=True).keys()
@@ -286,8 +289,8 @@ class BasePlatform(object):
installed=True).keys()
installed_packages = PackageManager.get_installed()
if self.get_name() not in installed_platforms:
raise exception.PlatformNotInstalledYet(self.get_name())
if self.get_type() not in installed_platforms:
raise exception.PlatformNotInstalledYet(self.get_type())
if "clean" in targets:
targets.remove("clean")
+3
View File
@@ -26,3 +26,6 @@ class FreescalekinetisPlatform(BasePlatform):
"default": True
}
}
def get_name(self):
return "Freescale Kinetis"
+3
View File
@@ -28,3 +28,6 @@ class Nordicnrf51Platform(BasePlatform):
"default": True
}
}
def get_name(self):
return "Nordic nRF51"
+3
View File
@@ -28,3 +28,6 @@ class NxplpcPlatform(BasePlatform):
"default": True
}
}
def get_name(self):
return "NXP LPC"
+3
View File
@@ -49,3 +49,6 @@ class Ststm32Platform(BasePlatform):
"default": True
}
}
def get_name(self):
return "ST STM32"
+3
View File
@@ -41,6 +41,9 @@ class TeensyPlatform(BasePlatform):
}
}
def get_name(self):
return "Teensy"
def run(self, variables, targets):
for v in variables:
if "BOARD=" not in v:
+3
View File
@@ -31,3 +31,6 @@ class Timsp430Platform(BasePlatform):
"default": True
}
}
def get_name(self):
return "TI MSP430"
+3
View File
@@ -39,3 +39,6 @@ class TitivaPlatform(BasePlatform):
"default": True
}
}
def get_name(self):
return "TI TIVA"
+4 -3
View File
@@ -284,10 +284,11 @@ def get_frameworks(type_=None):
_doc_start = fcontent.index('"""') + 3
fdoc = fcontent[
_doc_start:fcontent.index('"""', _doc_start)].strip()
description = " ".join(fdoc.split("\n")[:-2])
doclines = [l.strip() for l in fdoc.splitlines() if l.strip()]
frameworks[_type] = {
"description": description,
"url": fdoc.split("\n")[-1].strip(),
"name": doclines[0],
"description": " ".join(doclines[1:-1]),
"url": doclines[-1],
"script": script_path
}
get_frameworks._cache = frameworks # pylint: disable=W0212