Merge branch 'release/v2.6.1'

This commit is contained in:
Ivan Kravets
2015-12-18 20:30:41 +02:00
30 changed files with 576 additions and 113 deletions

View File

@ -4,6 +4,30 @@ Release History
PlatformIO 2.0
--------------
2.6.1 (2015-12-18)
~~~~~~~~~~~~~~~~~~
* Added support for the new ESP8266-based boards (SparkFun ESP8266 Thing,
NodeMCU 0.9 & 1.0, Olimex MOD-WIFI-ESP8266(-DEV), Adafruit HUZZAH ESP8266,
ESPino, SweetPea ESP-210, WeMos D1, WeMos D1 mini) to
`Espressif <http://docs.platformio.org/en/latest/platforms/espressif.html>`__
development platform
* Created public `platformio-pkg-ldscripts <https://github.com/platformio/platformio-pkg-ldscripts.git>`_
repository for LD scripts. Moved common configuration for ESP8266 MCU to
``esp8266.flash.common.ld``
(`issue #379 <https://github.com/platformio/platformio/issues/379>`_)
* Improved documentation for `Espressif <http://docs.platformio.org/en/latest/platforms/espressif.html>`__
development platform: OTA update, custom Flash Size, Upload Speed and CPU
frequency
* Fixed reset method for Espressif NodeMCU (ESP-12E Module)
(`issue #380 <https://github.com/platformio/platformio/issues/380>`_)
* Fixed issue with code builder when build path contains spaces
(`issue #387 <https://github.com/platformio/platformio/issues/387>`_)
* Fixed project generator for Eclipse IDE and "duplicate path entries found
in project path"
(`issue #383 <https://github.com/platformio/platformio/issues/383>`_)
2.6.0 (2015-12-15)
~~~~~~~~~~~~~~~~~~

View File

@ -23,6 +23,7 @@ Here are recent articles about PlatformIO:
2015
^^^^
* Dec 01, 2015 - **JetBrains CLion Blog** - `C++ Annotated: Fall 2015. Arduino Support in CLion using PlatformIO <http://blog.jetbrains.com/clion/2015/12/cpp-annotated-fall-2015/>`_
* Dec 01, 2015 - **Tateno Yuichi** - `ESP8266 を CUI で開発する (Develop a ESP8266 in CUI, Japanese) <http://jaywiggins.com/platformio/arduino/avr/es8266/2015/09/30/platformio-investigation/>`_
* Nov 29, 2015 - **Keith Hughes** - `Using PlatformIO for Embedded Projects <http://smartspacestuff.blogspot.com/2015/11/using-platformio-for-embedded-projects.html>`_
* Nov 22, 2015 - **Michał Seroczyński** - `Using PlatformIO to get started with Arduino in CLion IDE <http://www.ches.pl/using-platformio-get-started-arduino-clion-ide/>`_

View File

@ -69,7 +69,7 @@ release = platformio.__version__
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
exclude_patterns = ['_build']
exclude_patterns = ['_build', '**/*_extra.rst']
# The reST default role (used for this markup: `text`) to use for all
# documents.

View File

@ -245,3 +245,8 @@ Archlinux: libncurses.so.5: cannot open shared object file
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Answered in `issue #291 <https://github.com/platformio/platformio/issues/291>`_.
Monitoring a serial port breaks upload
''''''''''''''''''''''''''''''''''''''
Answered in `issue #384 <https://github.com/platformio/platformio/issues/384>`_.

View File

@ -363,7 +363,7 @@ BQ
- RAM
* - ``zumbt328``
- `BQ ZUM BT-328 board <http://www.bq.com/gb/products/zum.html>`_
- `BQ ZUM BT-328 <http://www.bq.com/gb/products/zum.html>`_
- ATMEGA328P
- 16 MHz
- 32 Kb
@ -484,26 +484,75 @@ Espressif
- Flash
- RAM
* - ``esp01``
- `Espressif ESP8266 ESP-01 board <https://nurdspace.nl/ESP8266>`_
- ESP8266
- 80 MHz
- 512 Kb
- 32 Kb
* - ``esp01_1m``
- `Espressif ESP8266 ESP-01-1MB board <https://nurdspace.nl/ESP8266>`_
* - ``d1``
- `WeMos D1 <http://www.wemos.cc/wiki/doku.php?id=en:d1>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 32 Kb
- 80 Kb
* - ``esp12e``
- `Espressif ESP8266 ESP-12E board (NodeMCU) <https://nurdspace.nl/ESP8266>`_
* - ``d1_mini``
- `WeMos D1 mini <http://www.wemos.cc/wiki/doku.php?id=en:d1_mini>`_
- ESP8266
- 80 MHz
- 4096 Kb
- 32 Kb
- 1024 Kb
- 80 Kb
* - ``esp01``
- `Espressif Generic ESP8266 ESP-01 <https://nurdspace.nl/ESP8266>`_
- ESP8266
- 80 MHz
- 512 Kb
- 80 Kb
* - ``esp12e``
- `Espressif ESP8266 ESP-12E <https://nurdspace.nl/ESP8266>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``esp210``
- `SweetPea ESP-210 <http://wiki.sweetpeas.se/index.php?title=ESP-210>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``espino``
- `ESPino <http://www.espino.io>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``huzzah``
- `Adafruit HUZZAH ESP8266 <https://www.adafruit.com/products/2471>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``modwifi``
- `Olimex MOD-WIFI-ESP8266(-DEV) <https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardware>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``nodemcu``
- `NodeMCU 0.9 & 1.0 <http://www.nodemcu.com/>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``thing``
- `SparkFun ESP8266 Thing <https://www.sparkfun.com/products/13231>`_
- ESP8266
- 80 MHz
- 512 Kb
- 80 Kb
LightUp
~~~~~~~

View File

@ -71,7 +71,8 @@ The Missing Library Manager. *It's here!*
* Automatic library updating
* It runs on Windows, Mac OS X, and Linux (+ARM).
For further details, please refer to :ref:`faq_what_is_platformio`
For further details, please refer to
:ref:`What is PlatformIO? How does it work? <faq_what_is_platformio>`
Contents
--------
@ -94,7 +95,7 @@ Contents
.. toctree::
:caption: Instruments
:maxdepth: 2
:maxdepth: 3
Platforms & Boards <platforms/index>
frameworks/index

View File

@ -368,7 +368,7 @@ BQ
- RAM
* - ``zumbt328``
- `BQ ZUM BT-328 board <http://www.bq.com/gb/products/zum.html>`_
- `BQ ZUM BT-328 <http://www.bq.com/gb/products/zum.html>`_
- ATMEGA328P
- 16 MHz
- 32 Kb

View File

@ -85,23 +85,74 @@ Espressif
- Flash
- RAM
* - ``esp01``
- `Espressif ESP8266 ESP-01 board <https://nurdspace.nl/ESP8266>`_
- ESP8266
- 80 MHz
- 512 Kb
- 32 Kb
* - ``esp01_1m``
- `Espressif ESP8266 ESP-01-1MB board <https://nurdspace.nl/ESP8266>`_
* - ``d1``
- `WeMos D1 <http://www.wemos.cc/wiki/doku.php?id=en:d1>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 32 Kb
- 80 Kb
* - ``esp12e``
- `Espressif ESP8266 ESP-12E board (NodeMCU) <https://nurdspace.nl/ESP8266>`_
* - ``d1_mini``
- `WeMos D1 mini <http://www.wemos.cc/wiki/doku.php?id=en:d1_mini>`_
- ESP8266
- 80 MHz
- 4096 Kb
- 32 Kb
- 1024 Kb
- 80 Kb
* - ``esp01``
- `Espressif Generic ESP8266 ESP-01 <https://nurdspace.nl/ESP8266>`_
- ESP8266
- 80 MHz
- 512 Kb
- 80 Kb
* - ``esp12e``
- `Espressif ESP8266 ESP-12E <https://nurdspace.nl/ESP8266>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``esp210``
- `SweetPea ESP-210 <http://wiki.sweetpeas.se/index.php?title=ESP-210>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``espino``
- `ESPino <http://www.espino.io>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``huzzah``
- `Adafruit HUZZAH ESP8266 <https://www.adafruit.com/products/2471>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``modwifi``
- `Olimex MOD-WIFI-ESP8266(-DEV) <https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardware>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``nodemcu``
- `NodeMCU 0.9 & 1.0 <http://www.nodemcu.com/>`_
- ESP8266
- 80 MHz
- 1024 Kb
- 80 Kb
* - ``thing``
- `SparkFun ESP8266 Thing <https://www.sparkfun.com/products/13231>`_
- ESP8266
- 80 MHz
- 512 Kb
- 80 Kb
.. include:: espressif_extra.rst

View File

@ -0,0 +1,131 @@
.. Copyright 2014-2015 Ivan Kravets <me@ikravets.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
OTA update
----------
There are 2 options:
* Directly specify :option:`platformio run --upload-port` in command line
.. code-block:: bash
platformio run --target upload --upload-port IP_ADDRESS_HERE
* Specify ``upload_port`` option in :ref:`projectconf`
.. code-block:: ini
[env:myenv]
...
upload_port = IP_ADDRESS_HERE
Authentication and upload options
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can pass additional options/flags to OTA uploader using
``upload_flags`` option in :ref:`projectconf`
.. code-block:: ini
[env:myenv]
upload_flags = --port=8266
Available flags
* ``--port=ESP_PORT`` ESP8266 ota Port. Default 8266
* ``--auth=AUTH`` Set authentication password
* ``--spiffs`` Use this option to transmit a SPIFFS image and do not flash
the module
For the full list with available options please run
.. code-block:: bash
~/.platformio/packages/framework-arduinoespressif/tools/espota.py -h
Usage: espota.py [options]
Transmit image over the air to the esp8266 module with OTA support.
Options:
-h, --help show this help message and exit
Destination:
-i ESP_IP, --ip=ESP_IP
ESP8266 IP Address.
-p ESP_PORT, --port=ESP_PORT
ESP8266 ota Port. Default 8266
Authentication:
-a AUTH, --auth=AUTH
Set authentication password.
Image:
-f FILE, --file=FILE
Image file.
-s, --spiffs Use this option to transmit a SPIFFS image and do not
flash the module.
Output:
-d, --debug Show debug output. And override loglevel with debug.
-r, --progress Show progress output. Does not work for ArduinoIDE
Custom CPU Frequency and Upload Speed
-------------------------------------
See :ref:`projectconf_board_f_cpu` and :ref:`projectconf_upload_speed` options
from :ref:`projectconf`
.. code-block:: ini
[env:myenv]
# set frequency to 40MHz
board_f_cpu = 40000000L
upload_speed = 9600
Custom Flash Size
-----------------
The list with preconfigured LD scripts is located in public repository
`platformio-pkg-ldscripts <https://github.com/platformio/platformio-pkg-ldscripts>`_.
* ``esp8266.flash.512k0.ld`` 512K (no SPIFFS)
* ``esp8266.flash.512k64.ld`` 512K (64K SPIFFS)
* ``esp8266.flash.1m64.ld`` 1M (64K SPIFFS)
* ``esp8266.flash.1m128.ld`` 1M (128K SPIFFS)
* ``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.4m.ld`` 4M (3M SPIFFS)
* ``esp8266.flash.8m.ld`` 8M (7M SPIFFS)
* ``esp8266.flash.16m.ld`` 16M (15M SPIFFS)
To override default LD script please use :ref:`projectconf_build_flags` from
:ref:`projectconf`.
.. code-block:: ini
[env:myenv]
build_flags = -Wl,-Tesp8266.flash.4m.ld
Examples
--------
All project examples are located in PlatformIO repository
`Examples for Espressif platform <https://github.com/platformio/platformio/tree/develop/examples/espressif>`_.
* `Native SDK <https://github.com/platformio/platformio/tree/develop/examples/espressif/esp8266-native>`_
* `WebServer <https://github.com/platformio/platformio/tree/develop/examples/espressif/esp8266-webserver>`_
* `WiFiScan <https://github.com/platformio/platformio/tree/develop/examples/espressif/esp8266-wifiscan>`_

View File

@ -176,6 +176,7 @@ is described `here <http://www.nongnu.org/avr-libc/user-manual/>`_.
The full list of ``board_mcu`` for the popular embedded platforms you can find
in *Boards* section of :ref:`platforms`. See "Microcontroller" column.
.. _projectconf_board_f_cpu:
``board_f_cpu``
^^^^^^^^^^^^^^^
@ -209,6 +210,7 @@ To print all available serial ports use :ref:`cmd_serialports` command.
A protocol that "uploader" tool uses to talk to the board.
.. _projectconf_upload_speed:
``upload_speed``
^^^^^^^^^^^^^^^^

View File

@ -30,9 +30,6 @@ Quickstart
$ platformio init --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
Would you like to enable firmware auto-uploading when project is successfully built using `platformio run` command?
Don't forget that you can upload firmware manually using `platformio run --target upload` command. [y/N]: y
The current working directory *** will be used for the new project.
You can specify another project directory via
`platformio init -d %PATH_TO_THE_PROJECT_DIR%` command.
@ -66,10 +63,9 @@ Change working directory to the project's root where is located
# clean project
$ platformio run --target clean
If you don't have installed required platforms, then *PlatformIO* will propose
you to install them automatically.
Further examples can be found in `PlatformIO Repository <https://github.com/platformio/platformio/tree/develop/examples>`_.
Useful links:
Also, for more detailed information as for commands please go to
:ref:`userguide` sections.
* `Project examples <https://github.com/platformio/platformio/tree/develop/examples>`_
* :ref:`userguide` for PlatformIO commands
* `Quickstart for Espressif ESP8266 <https://github.com/esp8266/Arduino/blob/master/doc/platformio.md>`_

View File

@ -191,13 +191,13 @@ Do not apply any encodings/transformations
--exit-char
ASCII code of special character that is used to exit the application,
default ``0x1d``
default ``29`` (DEC)
.. option::
--menu-char
ASCII code of special character that is used to control miniterm (menu),
default ``0x14``
default ``20`` (DEC)
.. option::
---quiet

View File

@ -17,7 +17,22 @@
# Automatic targets - enable auto-uploading
# targets = upload
[env:esp01_8266]
[env:esp01]
platform = espressif
framework = arduino
board = esp01
[env:nodemcu]
platform = espressif
framework = arduino
board = nodemcu
[env:huzzah]
platform = espressif
framework = arduino
board = huzzah
[env:thing]
platform = espressif
framework = arduino
board = thing

View File

@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
VERSION = (2, 6, 0)
VERSION = (2, 6, 1)
__version__ = ".".join([str(s) for s in VERSION])
__title__ = "platformio"

View File

@ -109,7 +109,11 @@ def main():
An unexpected error occurred. Further steps:
* Verify that you have the latest version of PlatformIO using
`platformio upgrade` command
`pip install -U platformio` command
* Try to find answer in FAQ Troubleshooting section
http://docs.platformio.org/en/latest/faq.html
* Report this problem to the developers
https://github.com/platformio/platformio/issues

View File

@ -2,67 +2,230 @@
"esp01": {
"build": {
"core": "esp8266",
"extra_flags": "-DARDUINO_ESP8266_ESP01 -DARDUINO_ARCH_ESP8266 -DESP8266",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP01",
"f_cpu": "80000000L",
"ldscript": "esp8266.flash.512k.ld",
"ldscript": "esp8266.flash.512k64.ld",
"mcu": "esp8266",
"variant": "generic"
},
"frameworks": ["arduino"],
"name": "Espressif ESP8266 ESP-01 board",
"name": "Espressif Generic ESP8266 ESP-01",
"platform": "espressif",
"upload": {
"maximum_ram_size": 32768,
"maximum_ram_size": 81920,
"maximum_size": 524288,
"protocol": "arduino",
"require_upload_port" : true,
"speed": 115200
},
"url": "https://nurdspace.nl/ESP8266",
"vendor": "Espressif"
},
"esp01_1m": {
"build": {
"core": "esp8266",
"extra_flags": "-DARDUINO_ESP8266_ESP01 -DARDUINO_ARCH_ESP8266 -DESP8266",
"f_cpu": "80000000L",
"ldscript": "esp8266.flash.1m128.ld",
"mcu": "esp8266",
"variant": "generic"
},
"frameworks": ["arduino"],
"name": "Espressif ESP8266 ESP-01-1MB board",
"platform": "espressif",
"upload": {
"maximum_ram_size": 32768,
"maximum_size": 1048576,
"protocol": "arduino",
"resetmethod": "ck",
"require_upload_port" : true,
"speed": 115200
},
"url": "https://nurdspace.nl/ESP8266",
"vendor": "Espressif"
},
"esp12e": {
"build": {
"core": "esp8266",
"extra_flags": "-DARDUINO_ESP8266_ESP12 -DARDUINO_ARCH_ESP8266 -DESP8266",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP12",
"f_cpu": "80000000L",
"ldscript": "esp8266.flash.4m.ld",
"mcu": "esp8266",
"variant": "nodemcu"
},
"frameworks": ["arduino"],
"name": "Espressif ESP8266 ESP-12E board (NodeMCU)",
"name": "Espressif ESP8266 ESP-12E",
"platform": "espressif",
"upload": {
"maximum_ram_size": 32768,
"maximum_size": 4194304,
"protocol": "arduino",
"maximum_ram_size": 81920,
"maximum_size": 1048576,
"resetmethod": "nodemcu",
"require_upload_port" : true,
"speed": 115200
},
"url": "https://nurdspace.nl/ESP8266",
"vendor": "Espressif"
},
"nodemcu": {
"build": {
"core": "esp8266",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP12",
"f_cpu": "80000000L",
"ldscript": "esp8266.flash.4m.ld",
"mcu": "esp8266",
"variant": "nodemcu"
},
"frameworks": ["arduino"],
"name": "NodeMCU 0.9 & 1.0",
"platform": "espressif",
"upload": {
"maximum_ram_size": 81920,
"maximum_size": 1048576,
"resetmethod": "nodemcu",
"require_upload_port" : true,
"speed": 115200
},
"url": "http://www.nodemcu.com/",
"vendor": "Espressif"
},
"huzzah": {
"build": {
"core": "esp8266",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP12",
"f_cpu": "80000000L",
"ldscript": "esp8266.flash.4m.ld",
"mcu": "esp8266",
"variant": "adafruit"
},
"frameworks": ["arduino"],
"name": "Adafruit HUZZAH ESP8266",
"platform": "espressif",
"upload": {
"maximum_ram_size": 81920,
"maximum_size": 1048576,
"resetmethod": "nodemcu",
"require_upload_port" : true,
"speed": 115200
},
"url": "https://www.adafruit.com/products/2471",
"vendor": "Espressif"
},
"modwifi": {
"build": {
"core": "esp8266",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_MOD_WIFI_ESP8266",
"f_cpu": "80000000L",
"ldscript": "esp8266.flash.2m.ld",
"mcu": "esp8266",
"variant": "generic"
},
"frameworks": ["arduino"],
"name": "Olimex MOD-WIFI-ESP8266(-DEV)",
"platform": "espressif",
"upload": {
"maximum_ram_size": 81920,
"maximum_size": 1048576,
"resetmethod": "ck",
"require_upload_port" : true,
"speed": 115200
},
"url": "https://www.olimex.com/Products/IoT/MOD-WIFI-ESP8266-DEV/open-source-hardware",
"vendor": "Espressif"
},
"thing": {
"build": {
"core": "esp8266",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_THING",
"f_cpu": "80000000L",
"ldscript": "esp8266.flash.512k64.ld",
"mcu": "esp8266",
"variant": "thing"
},
"frameworks": ["arduino"],
"name": "SparkFun ESP8266 Thing",
"platform": "espressif",
"upload": {
"maximum_ram_size": 81920,
"maximum_size": 524288,
"resetmethod": "nodemcu",
"require_upload_port" : true,
"speed": 921600
},
"url": "https://www.sparkfun.com/products/13231",
"vendor": "Espressif"
},
"esp210": {
"build": {
"core": "esp8266",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP210",
"f_cpu": "80000000L",
"ldscript": "esp8266.flash.4m.ld",
"mcu": "esp8266",
"variant": "generic"
},
"frameworks": ["arduino"],
"name": "SweetPea ESP-210",
"platform": "espressif",
"upload": {
"maximum_ram_size": 81920,
"maximum_size": 1048576,
"resetmethod": "ck",
"require_upload_port" : true,
"speed": 115200
},
"url": "http://wiki.sweetpeas.se/index.php?title=ESP-210",
"vendor": "Espressif"
},
"d1": {
"build": {
"core": "esp8266",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP12",
"f_cpu": "80000000L",
"ldscript": "esp8266.flash.4m.ld",
"mcu": "esp8266",
"variant": "d1"
},
"frameworks": ["arduino"],
"name": "WeMos D1",
"platform": "espressif",
"upload": {
"maximum_ram_size": 81920,
"maximum_size": 1048576,
"resetmethod": "nodemcu",
"require_upload_port" : true,
"speed": 460800
},
"url": "http://www.wemos.cc/wiki/doku.php?id=en:d1",
"vendor": "Espressif"
},
"d1_mini": {
"build": {
"core": "esp8266",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP12",
"f_cpu": "80000000L",
"ldscript": "esp8266.flash.4m.ld",
"mcu": "esp8266",
"variant": "d1_mini"
},
"frameworks": ["arduino"],
"name": "WeMos D1 mini",
"platform": "espressif",
"upload": {
"maximum_ram_size": 81920,
"maximum_size": 1048576,
"resetmethod": "nodemcu",
"require_upload_port" : true,
"speed": 460800
},
"url": "http://www.wemos.cc/wiki/doku.php?id=en:d1_mini",
"vendor": "Espressif"
},
"espino": {
"build": {
"core": "esp8266",
"extra_flags": "-DESP8266 -DARDUINO_ARCH_ESP8266 -DARDUINO_ESP8266_ESP12",
"f_cpu": "80000000L",
"ldscript": "esp8266.flash.4m1m.ld",
"mcu": "esp8266",
"variant": "espino"
},
"frameworks": ["arduino"],
"name": "ESPino",
"platform": "espressif",
"upload": {
"maximum_ram_size": 81920,
"maximum_size": 1048576,
"resetmethod": "ck",
"require_upload_port" : true,
"speed": 115200
},
"url": "http://www.espino.io",
"vendor": "Espressif"
}
}

View File

@ -459,7 +459,7 @@
"variant": "eightanaloginputs"
},
"frameworks": ["arduino"],
"name": "BQ ZUM BT-328 board",
"name": "BQ ZUM BT-328",
"platform": "atmelavr",
"upload": {
"disable_flushing": true,

View File

@ -18,7 +18,6 @@
"raspberrypi_2b": {
"build": {
"core": "esp8266",
"extra_flags": "-DRASPBERRYPI -DRASPBERRYPI2",
"f_cpu": "900000000L",
"mcu": "bcm2836"

View File

@ -114,6 +114,7 @@ DefaultEnvironment(
)
env = DefaultEnvironment()
env.Prepend(LIBPATH=[join("$PIOPACKAGES_DIR", "ldscripts")])
if "BOARD" in env:
try:

View File

@ -87,13 +87,12 @@ env.Replace(
UPLOADER=join("$PIOPACKAGES_DIR", "tool-esptool", "esptool"),
UPLOADERFLAGS=[
"-vv",
"-cd", "ck",
"-cd", "${BOARD_OPTIONS['upload']['resetmethod']}",
"-cb", "$UPLOAD_SPEED",
"-cp", "$UPLOAD_PORT",
"-ca", "0x00000",
"-cf", "$SOURCE"
],
UPLOADCMD='$UPLOADER $UPLOADERFLAGS',
UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS',
PROGNAME="firmware",
PROGSUFFIX=".elf"
@ -105,9 +104,10 @@ env.Append(
BUILDERS=dict(
ElfToBin=Builder(
action=" ".join([
"$UPLOADER",
"-eo", join("$PLATFORMFW_DIR", "bootloaders",
"eboot", "eboot.elf"),
'"$UPLOADER"',
"-eo",
'"%s"' % join("$PLATFORMFW_DIR", "bootloaders",
"eboot", "eboot.elf"),
"-bo", "$TARGET",
"-bm", "dio",
"-bf", "${BOARD_OPTIONS['build']['f_cpu'][:2]}",
@ -148,7 +148,7 @@ if "FRAMEWORK" in env:
"-i", "$UPLOAD_PORT",
"-f", "$SOURCE"
],
UPLOADCMD='$UPLOADEROTA $UPLOADERFLAGS'
UPLOADCMD='"$UPLOADEROTA" $UPLOADERFLAGS'
)
except socket.error:
pass
@ -164,7 +164,7 @@ else:
BUILDERS=dict(
ElfToBin=Builder(
action=" ".join([
"$UPLOADER",
'"$UPLOADER"',
"-eo", "$SOURCES",
"-bo", "${TARGETS[0]}",
"-bm", "qio",

View File

@ -61,7 +61,7 @@ if not isfile(join(env.subst("$PIOPACKAGES_DIR"), "ldscripts", ldscript)):
if "mbed" in env.get("BOARD_OPTIONS", {}).get("frameworks", {}):
env.Append(
LINKFLAGS=[
"-Wl,-T",
'-Wl,-T"%s"' %
join(
"$PIOPACKAGES_DIR", "framework-mbed", "variant",
env.subst("$BOARD").upper(), "mbed",

View File

@ -41,10 +41,11 @@ if env.subst("$UPLOAD_PROTOCOL") == "gdb":
UPLOADERFLAGS=[
join("$BUILD_DIR", "firmware.elf"),
"-batch",
"-x", join("$PROJECT_DIR", "upload.gdb")
"-x",
'"%s"' % join("$PROJECT_DIR", "upload.gdb")
],
UPLOADCMD="$UPLOADER $UPLOADERFLAGS"
UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS'
)
else:
env.Replace(
@ -55,7 +56,7 @@ else:
"0x08000000" # flash start adress
],
UPLOADCMD="$UPLOADER $UPLOADERFLAGS"
UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS'
)

View File

@ -68,7 +68,7 @@ env.Replace(
"$UPLOAD_PROTOCOL" if system() != "Windows" else "tilib",
"--force-reset"
],
UPLOADCMD='$UPLOADER $UPLOADERFLAGS "prog $SOURCES"',
UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS "prog $SOURCES"',
PROGNAME="firmware",
PROGSUFFIX=".elf"

View File

@ -28,7 +28,7 @@ SConscript(env.subst(join("$PIOBUILDER_DIR", "scripts", "basearm.py")))
env.Replace(
UPLOADER=join("$PIOPACKAGES_DIR", "tool-lm4flash", "lm4flash"),
UPLOADCMD="$UPLOADER $SOURCES"
UPLOADCMD='"$UPLOADER" $SOURCES'
)
env.Append(

View File

@ -26,9 +26,13 @@ def _huge_sources_hook(sources):
tmp_file = join(gettempdir(), "pioarargs-%s" % md5(_sources).hexdigest())
with open(tmp_file, "w") as f:
f.write(_sources)
# fix space in paths
for line in _sources.split(".o "):
if not line.endswith(".o"):
line += ".o"
f.write('"%s" ' % line)
return "@%s" % tmp_file
return '@"%s"' % tmp_file
def exists(_):

View File

@ -58,7 +58,7 @@ def BuildProgram(env):
if ("LDSCRIPT_PATH" in env and
not any(["-Wl,-T" in f for f in env['LINKFLAGS']])):
env.Append(
LINKFLAGS=["-Wl,-T", "$LDSCRIPT_PATH"]
LINKFLAGS=['-Wl,-T"$LDSCRIPT_PATH"']
)
# enable "cyclic reference" for linker
@ -78,7 +78,9 @@ def BuildProgram(env):
env.Append(
CPPDEFINES=["PLATFORMIO={0:02d}{1:02d}{2:02d}".format(
*pioversion_to_intstr())]
*pioversion_to_intstr())],
LIBS=deplibs,
LIBPATH=["$BUILD_DIR"]
)
return env.Program(
@ -86,9 +88,7 @@ def BuildProgram(env):
env.LookupSources(
"$BUILDSRC_DIR", "$PROJECTSRC_DIR", duplicate=False,
src_filter=getenv("PLATFORMIO_SRC_FILTER",
env.get("SRC_FILTER"))),
LIBS=env.get("LIBS", []) + deplibs,
LIBPATH=env.get("LIBPATH", []) + ["$BUILD_DIR"]
env.get("SRC_FILTER")))
)

View File

@ -24,6 +24,9 @@
<tool id="org.eclipse.cdt.build.core.settings.holder.1624502120" name="Assembly" superClass="org.eclipse.cdt.build.core.settings.holder">
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.239157887" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">
% for include in includes:
% if "toolchain" in include:
% continue
% end
% if include.startswith(user_home_dir):
% if "windows" in systype:
<listOptionValue builtIn="false" value="${USERPROFILE}{{include.replace(user_home_dir, '')}}"/>
@ -45,6 +48,9 @@
<tool id="org.eclipse.cdt.build.core.settings.holder.54121539" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder">
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.1096940598" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">
% for include in includes:
% if "toolchain" in include:
% continue
% end
% if include.startswith(user_home_dir):
% if "windows" in systype:
<listOptionValue builtIn="false" value="${USERPROFILE}{{include.replace(user_home_dir, '')}}"/>
@ -66,6 +72,9 @@
<tool id="org.eclipse.cdt.build.core.settings.holder.1310559623" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder">
<option id="org.eclipse.cdt.build.core.settings.holder.incpaths.41298875" name="Include Paths" superClass="org.eclipse.cdt.build.core.settings.holder.incpaths" valueType="includePath">
% for include in includes:
% if "toolchain" in include:
% continue
% end
% if include.startswith(user_home_dir):
% if "windows" in systype:
<listOptionValue builtIn="false" value="${USERPROFILE}{{include.replace(user_home_dir, '')}}"/>

View File

@ -22,6 +22,7 @@ import uuid
from collections import deque
from os import getenv
from time import sleep, time
from traceback import format_exc
import click
import requests
@ -289,12 +290,13 @@ def on_event(category, action, label=None, value=None, screen_name=None):
def on_exception(e):
if isinstance(e, exception.AbortedByUser):
return
mp = MeasurementProtocol()
mp['exd'] = "%s: %s" % (type(e).__name__, e)
mp['exf'] = int(any([
is_crash = any([
not isinstance(e, exception.PlatformioException),
"Error" in e.__class__.__name__
]))
])
mp = MeasurementProtocol()
mp['exd'] = "%s: %s" % (type(e).__name__, format_exc() if is_crash else e)
mp['exf'] = 1 if is_crash else 0
mp.send("exception")

View File

@ -13,7 +13,7 @@
# limitations under the License.
from math import ceil
from os.path import dirname, join, realpath
from os.path import dirname, isfile, join, realpath
from sys import exit as sys_exit
from sys import path
@ -215,11 +215,13 @@ Boards
def update_platform_docs():
for name in PlatformFactory.get_platforms().keys():
rst_path = join(
dirname(realpath(__file__)), "..", "docs", "platforms",
"%s.rst" % name)
platforms_dir = join(dirname(realpath(__file__)),
"..", "docs", "platforms")
rst_path = join(platforms_dir, "%s.rst" % name)
with open(rst_path, "w") as f:
f.write(generate_platform(name))
if isfile(join(platforms_dir, "%s_extra.rst" % name)):
f.write("\n.. include:: %s_extra.rst\n" % name)
def generate_framework(type_, data):
@ -302,10 +304,13 @@ Boards
def update_framework_docs():
for name, data in util.get_frameworks().items():
rst_path = join(util.get_source_dir(), "..", "docs", "frameworks",
"%s.rst" % name)
frameworks_dir = join(dirname(realpath(__file__)),
"..", "docs", "frameworks")
rst_path = join(frameworks_dir, "%s.rst" % name)
with open(rst_path, "w") as f:
f.write(generate_framework(name, data))
if isfile(join(frameworks_dir, "%s_extra.rst" % name)):
f.write("\n.. include:: %s_extra.rst\n" % name)
def update_create_platform_doc():

View File

@ -74,7 +74,7 @@ setup(
keywords=[
"iot", "build tool", "compiler", "builder", "library manager",
"embedded", "ci", "continuous integration", "arduino", "mbed",
"framework", "ide", "ide integration", "library.json", "make", "cmake",
"makefile", "mk"
"esp8266", "framework", "ide", "ide integration", "library.json",
"make", "cmake", "makefile", "mk"
]
)