Merge branch 'release/v2.9.1'

This commit is contained in:
Ivan Kravets
2016-04-30 18:20:45 +03:00
10 changed files with 157 additions and 50 deletions

View File

@ -4,6 +4,12 @@ Release Notes
PlatformIO 2.0
--------------
2.9.1 (2016-04-30)
~~~~~~~~~~~~~~~~~~
* Handle prototype pointers while converting ``*.ino`` to ``.cpp``
(`issue #639 <https://github.com/platformio/platformio/issues/639>`_)
2.9.0 (2016-04-28)
~~~~~~~~~~~~~~~~~~

View File

@ -224,6 +224,13 @@ Arduino
- 32 Kb
- 2 Kb
* - ``chiwawa``
- `Arduino Industrial 101 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-industrial-101>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``diecimilaatmega168``
- `Arduino Duemilanove or Diecimila ATmega168 <http://arduino.cc/en/Main/ArduinoBoardDiecimila>`_
- ATMEGA168
@ -239,28 +246,28 @@ Arduino
- 2 Kb
* - ``due``
- `Arduino Due (Programming Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_
- `Arduino Due (Programming Port) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-due>`_
- SAM3X8E
- 84 MHz
- 512 Kb
- 32 Kb
* - ``dueUSB``
- `Arduino Due (USB Native Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_
- `Arduino Due (USB Native Port) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-due>`_
- SAM3X8E
- 84 MHz
- 512 Kb
- 32 Kb
* - ``esplora``
- `Arduino Esplora <http://arduino.cc/en/Main/ArduinoBoardEsplora>`_
- `Arduino Esplora <http://www.arduino.org/products/boards/4-arduino-boards/arduino-esplora>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``ethernet``
- `Arduino Ethernet <http://arduino.cc/en/Main/ArduinoBoardEthernet>`_
- `Arduino Ethernet <http://www.arduino.org/products/boards/4-arduino-boards/arduino-ethernet>`_
- ATMEGA328P
- 16 MHz
- 32 Kb
@ -274,7 +281,14 @@ Arduino
- 2 Kb
* - ``leonardo``
- `Arduino Leonardo <http://arduino.cc/en/Main/arduinoBoardLeonardo>`_
- `Arduino Leonardo <http://www.arduino.org/products/boards/4-arduino-boards/arduino-leonardo>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``leonardoeth``
- `Arduino Leonardo ETH <http://www.arduino.org/products/boards/4-arduino-boards/arduino-leonardo-eth>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
@ -295,28 +309,28 @@ Arduino
- 2 Kb
* - ``megaADK``
- `Arduino Mega ADK <http://arduino.cc/en/Main/ArduinoBoardMegaADK>`_
- `Arduino Mega ADK <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-adk>`_
- ATMEGA2560
- 16 MHz
- 256 Kb
- 8 Kb
* - ``megaatmega1280``
- `Arduino Mega or Mega 2560 ATmega1280 <http://arduino.cc/en/Main/arduinoBoardMega>`_
- `Arduino Mega or Mega 2560 ATmega1280 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-2560>`_
- ATMEGA1280
- 16 MHz
- 128 Kb
- 8 Kb
* - ``megaatmega2560``
- `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://arduino.cc/en/Main/arduinoBoardMega2560>`_
- `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-2560>`_
- ATMEGA2560
- 16 MHz
- 256 Kb
- 8 Kb
* - ``micro``
- `Arduino Micro <http://arduino.cc/en/Main/ArduinoBoardMicro>`_
- `Arduino Micro <http://www.arduino.org/products/boards/4-arduino-boards/arduino-micro>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
@ -337,14 +351,14 @@ Arduino
- 2 Kb
* - ``nanoatmega168``
- `Arduino Nano ATmega168 <http://arduino.cc/en/Main/ArduinoBoardNano>`_
- `Arduino Nano ATmega168 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-nano>`_
- ATMEGA168
- 16 MHz
- 16 Kb
- 1 Kb
* - ``nanoatmega328``
- `Arduino Nano ATmega328 <http://arduino.cc/en/Main/ArduinoBoardNano>`_
- `Arduino Nano ATmega328 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-nano>`_
- ATMEGA328P
- 16 MHz
- 32 Kb
@ -379,28 +393,35 @@ Arduino
- 2 Kb
* - ``robotControl``
- `Arduino Robot Control <http://arduino.cc/en/Main/Robot>`_
- `Arduino Robot Control <http://www.arduino.org/products/boards/4-arduino-boards/arduino-robot>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``robotMotor``
- `Arduino Robot Motor <http://arduino.cc/en/Main/Robot>`_
- `Arduino Robot Motor <http://www.arduino.org/products/boards/4-arduino-boards/arduino-robot>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``uno``
- `Arduino Uno <http://arduino.cc/en/Main/ArduinoBoardUno>`_
- `Arduino Uno <http://www.arduino.org/products/boards/4-arduino-boards/arduino-uno>`_
- ATMEGA328P
- 16 MHz
- 32 Kb
- 2 Kb
* - ``yun``
- `Arduino Yun <http://arduino.cc/en/Main/ArduinoBoardYun>`_
- `Arduino Yun <http://www.arduino.org/products/boards/4-arduino-boards/arduino-yun>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``yunmini``
- `Arduino Yun Mini <http://www.arduino.org/products/boards/4-arduino-boards/arduino-yun-mini>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
@ -897,6 +918,26 @@ LightUp
- 32 Kb
- 2.5 Kb
Linino
~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``one``
- `Linino One <http://www.linino.org/portfolio/linino-one/>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
LowPowerLab
~~~~~~~~~~~

View File

@ -78,28 +78,28 @@ Arduino
- RAM
* - ``due``
- `Arduino Due (Programming Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_
- `Arduino Due (Programming Port) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-due>`_
- SAM3X8E
- 84 MHz
- 512 Kb
- 32 Kb
* - ``megaatmega2560``
- `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://arduino.cc/en/Main/arduinoBoardMega2560>`_
- `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-2560>`_
- ATMEGA2560
- 16 MHz
- 256 Kb
- 8 Kb
* - ``nanoatmega328``
- `Arduino Nano ATmega328 <http://arduino.cc/en/Main/ArduinoBoardNano>`_
- `Arduino Nano ATmega328 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-nano>`_
- ATMEGA328P
- 16 MHz
- 32 Kb
- 2 Kb
* - ``uno``
- `Arduino Uno <http://arduino.cc/en/Main/ArduinoBoardUno>`_
- `Arduino Uno <http://www.arduino.org/products/boards/4-arduino-boards/arduino-uno>`_
- ATMEGA328P
- 16 MHz
- 32 Kb

View File

@ -15,8 +15,8 @@
* Cross-platform build system without external dependencies to the OS software:
- 200+ embedded boards
- 15+ development platforms
- 250+ embedded boards
- 20+ development platforms
- 10+ frameworks
* C/C++ Intelligent code completion

View File

@ -18,8 +18,8 @@ PlatformIO IDE is the next-generation integrated development environment for IoT
* Cross-platform build system without external dependencies to the OS software:
- 200+ embedded boards
- 15+ development platforms
- 250+ embedded boards
- 20+ development platforms
- 10+ frameworks
* C/C++ Intelligent Code Completion

View File

@ -214,6 +214,13 @@ Arduino
- 32 Kb
- 2 Kb
* - ``chiwawa``
- `Arduino Industrial 101 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-industrial-101>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``diecimilaatmega168``
- `Arduino Duemilanove or Diecimila ATmega168 <http://arduino.cc/en/Main/ArduinoBoardDiecimila>`_
- ATMEGA168
@ -229,14 +236,14 @@ Arduino
- 2 Kb
* - ``esplora``
- `Arduino Esplora <http://arduino.cc/en/Main/ArduinoBoardEsplora>`_
- `Arduino Esplora <http://www.arduino.org/products/boards/4-arduino-boards/arduino-esplora>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``ethernet``
- `Arduino Ethernet <http://arduino.cc/en/Main/ArduinoBoardEthernet>`_
- `Arduino Ethernet <http://www.arduino.org/products/boards/4-arduino-boards/arduino-ethernet>`_
- ATMEGA328P
- 16 MHz
- 32 Kb
@ -250,7 +257,14 @@ Arduino
- 2 Kb
* - ``leonardo``
- `Arduino Leonardo <http://arduino.cc/en/Main/arduinoBoardLeonardo>`_
- `Arduino Leonardo <http://www.arduino.org/products/boards/4-arduino-boards/arduino-leonardo>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``leonardoeth``
- `Arduino Leonardo ETH <http://www.arduino.org/products/boards/4-arduino-boards/arduino-leonardo-eth>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
@ -271,28 +285,28 @@ Arduino
- 2 Kb
* - ``megaADK``
- `Arduino Mega ADK <http://arduino.cc/en/Main/ArduinoBoardMegaADK>`_
- `Arduino Mega ADK <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-adk>`_
- ATMEGA2560
- 16 MHz
- 256 Kb
- 8 Kb
* - ``megaatmega1280``
- `Arduino Mega or Mega 2560 ATmega1280 <http://arduino.cc/en/Main/arduinoBoardMega>`_
- `Arduino Mega or Mega 2560 ATmega1280 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-2560>`_
- ATMEGA1280
- 16 MHz
- 128 Kb
- 8 Kb
* - ``megaatmega2560``
- `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://arduino.cc/en/Main/arduinoBoardMega2560>`_
- `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-mega-2560>`_
- ATMEGA2560
- 16 MHz
- 256 Kb
- 8 Kb
* - ``micro``
- `Arduino Micro <http://arduino.cc/en/Main/ArduinoBoardMicro>`_
- `Arduino Micro <http://www.arduino.org/products/boards/4-arduino-boards/arduino-micro>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
@ -313,14 +327,14 @@ Arduino
- 2 Kb
* - ``nanoatmega168``
- `Arduino Nano ATmega168 <http://arduino.cc/en/Main/ArduinoBoardNano>`_
- `Arduino Nano ATmega168 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-nano>`_
- ATMEGA168
- 16 MHz
- 16 Kb
- 1 Kb
* - ``nanoatmega328``
- `Arduino Nano ATmega328 <http://arduino.cc/en/Main/ArduinoBoardNano>`_
- `Arduino Nano ATmega328 <http://www.arduino.org/products/boards/4-arduino-boards/arduino-nano>`_
- ATMEGA328P
- 16 MHz
- 32 Kb
@ -355,28 +369,35 @@ Arduino
- 2 Kb
* - ``robotControl``
- `Arduino Robot Control <http://arduino.cc/en/Main/Robot>`_
- `Arduino Robot Control <http://www.arduino.org/products/boards/4-arduino-boards/arduino-robot>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``robotMotor``
- `Arduino Robot Motor <http://arduino.cc/en/Main/Robot>`_
- `Arduino Robot Motor <http://www.arduino.org/products/boards/4-arduino-boards/arduino-robot>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``uno``
- `Arduino Uno <http://arduino.cc/en/Main/ArduinoBoardUno>`_
- `Arduino Uno <http://www.arduino.org/products/boards/4-arduino-boards/arduino-uno>`_
- ATMEGA328P
- 16 MHz
- 32 Kb
- 2 Kb
* - ``yun``
- `Arduino Yun <http://arduino.cc/en/Main/ArduinoBoardYun>`_
- `Arduino Yun <http://www.arduino.org/products/boards/4-arduino-boards/arduino-yun>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
* - ``yunmini``
- `Arduino Yun Mini <http://www.arduino.org/products/boards/4-arduino-boards/arduino-yun-mini>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
@ -579,6 +600,26 @@ LightUp
- 32 Kb
- 2.5 Kb
Linino
~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``one``
- `Linino One <http://www.linino.org/portfolio/linino-one/>`_
- ATMEGA32U4
- 16 MHz
- 32 Kb
- 2.5 Kb
LowPowerLab
~~~~~~~~~~~

View File

@ -99,14 +99,14 @@ Arduino
- RAM
* - ``due``
- `Arduino Due (Programming Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_
- `Arduino Due (Programming Port) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-due>`_
- SAM3X8E
- 84 MHz
- 512 Kb
- 32 Kb
* - ``dueUSB``
- `Arduino Due (USB Native Port) <http://arduino.cc/en/Main/arduinoBoardDue>`_
- `Arduino Due (USB Native Port) <http://www.arduino.org/products/boards/4-arduino-boards/arduino-due>`_
- SAM3X8E
- 84 MHz
- 512 Kb

View File

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

View File

@ -34,8 +34,8 @@ class InoToCPPConverter(object):
""",
re.X | re.M | re.I
)
DETECTMAIN_RE = re.compile(r"void\s+(setup|loop)\s*\(", re.M | re.I)
PROTOPTRS_TPLRE = r"\([^&\(]*&(%s)[^\)]*\)"
def __init__(self, nodes):
self.nodes = nodes
@ -50,22 +50,37 @@ class InoToCPPConverter(object):
if (set([match.group(2).strip(), match.group(3).strip()]) &
reserved_keywords):
continue
prototypes.append((file_path, match.start(), match.group(1)))
prototypes.append({"path": file_path, "match": match})
return prototypes
@staticmethod
def append_prototypes(contents, prototypes):
def append_prototypes(self, file_path, contents, prototypes):
result = []
if not prototypes:
return result
first_pos = prototypes[0][1]
result.append(contents[:first_pos].strip())
result.append("%s;" % ";\n".join([p[2] for p in prototypes]))
prototype_names = set(
[p['match'].group(3).strip() for p in prototypes])
split_pos = prototypes[0]['match'].start()
for item in prototypes:
if item['path'] == file_path:
split_pos = item['match'].start()
break
match_ptrs = re.search(
self.PROTOPTRS_TPLRE % ("|".join(prototype_names)),
contents[:split_pos],
re.M
)
if match_ptrs:
split_pos = contents.rfind("\n", 0, match_ptrs.start())
result.append(contents[:split_pos].strip())
result.append("%s;" %
";\n".join([p['match'].group(1) for p in prototypes]))
result.append('#line %d "%s"' % (
contents.count("\n", 0, first_pos + len(prototypes[0][2])) + 1,
prototypes[0][0].replace("\\", "/")))
result.append(contents[first_pos:].strip())
contents.count("\n", 0, split_pos) + 2,
file_path.replace("\\", "/")))
result.append(contents[split_pos:].strip())
return result
@ -91,7 +106,8 @@ class InoToCPPConverter(object):
result.append('#line 1 "%s"' % file_path.replace("\\", "/"))
if is_first and prototypes:
result += self.append_prototypes(contents, prototypes)
result += self.append_prototypes(
file_path, contents, prototypes)
else:
result.append(contents)
is_first = False

View File

@ -36,5 +36,8 @@ class Lattice_ice40Platform(BasePlatform):
}
}
def get_name(self):
return "Lattice iCE40"
def is_embedded(self):
return True