mirror of
https://github.com/platformio/platformio-core.git
synced 2025-12-23 23:28:06 +01:00
Compare commits
80 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ed21e8c7b2 | ||
|
|
14f582faeb | ||
|
|
768ac77ea2 | ||
|
|
f75a7c91eb | ||
|
|
104132c5d3 | ||
|
|
3a315c5575 | ||
|
|
91fb714250 | ||
|
|
10d868efa4 | ||
|
|
3b8bc42266 | ||
|
|
9fb7f251f6 | ||
|
|
5398dbef95 | ||
|
|
a4345cedc5 | ||
|
|
ba574667c7 | ||
|
|
f2c1e279c9 | ||
|
|
60ff546fec | ||
|
|
f6088cbbe1 | ||
|
|
4b093dcdbb | ||
|
|
c9020d4879 | ||
|
|
c5b5e80de4 | ||
|
|
c1a8fdb940 | ||
|
|
1c8de51054 | ||
|
|
34c171f9fd | ||
|
|
9b2d49455a | ||
|
|
730b2371df | ||
|
|
f1afa864cd | ||
|
|
439cd77db8 | ||
|
|
4c35870dff | ||
|
|
9f3624d26e | ||
|
|
ac4e8514db | ||
|
|
646123f9ab | ||
|
|
11ef9dbdcb | ||
|
|
f3526b1d95 | ||
|
|
45d5159fe3 | ||
|
|
439e6b4ccf | ||
|
|
fb08322c17 | ||
|
|
c815e0fadc | ||
|
|
190ffab76d | ||
|
|
882bddf77e | ||
|
|
4f1e1a38c9 | ||
|
|
a9c02c9cbc | ||
|
|
331cfb5b54 | ||
|
|
0b80ed6c2b | ||
|
|
38967eab64 | ||
|
|
3ad1ad4ef1 | ||
|
|
0c8f469246 | ||
|
|
03d9351dec | ||
|
|
b3fc6617e5 | ||
|
|
1fdc2e3091 | ||
|
|
c773c8f5d5 | ||
|
|
b188a05b69 | ||
|
|
d7ca3f15a4 | ||
|
|
406e240de1 | ||
|
|
f3689ac157 | ||
|
|
ce72ee04f4 | ||
|
|
694121d49a | ||
|
|
250b39bcc8 | ||
|
|
c74a2b4529 | ||
|
|
a1e7ce415b | ||
|
|
ab15bafc5b | ||
|
|
f6014d2e52 | ||
|
|
35a602cfef | ||
|
|
6ecd86a244 | ||
|
|
0cb28f906e | ||
|
|
1a305f2dd7 | ||
|
|
cd22f5197b | ||
|
|
b3d27b42ad | ||
|
|
ab3a5331c1 | ||
|
|
9cbe12fbb8 | ||
|
|
056cc08d68 | ||
|
|
69effbfedb | ||
|
|
d881dfb63c | ||
|
|
d89b2828e3 | ||
|
|
75ca6c6e52 | ||
|
|
304c8b7184 | ||
|
|
3c46c17242 | ||
|
|
aca646e6b9 | ||
|
|
b587927687 | ||
|
|
3edc336f62 | ||
|
|
eee6685c59 | ||
|
|
76b5434157 |
62
HISTORY.rst
62
HISTORY.rst
@@ -4,6 +4,66 @@ Release Notes
|
||||
PlatformIO 2.0
|
||||
--------------
|
||||
|
||||
2.10.0 (2016-06-13)
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
* Added support for `emonPi <https://github.com/openenergymonitor/emonpi>`__,
|
||||
the OpenEnergyMonitor system
|
||||
(`issue #687 <https://github.com/platformio/platformio/issues/687>`_)
|
||||
* Added support for `SPL <http://platformio.org/frameworks/spl>`__
|
||||
framework for STM32F0 boards
|
||||
(`issue #683 <https://github.com/platformio/platformio/issues/683>`_)
|
||||
* Added support for `Arduboy DevKit <https://www.arduboy.com>`__, the game system
|
||||
the size of a credit card
|
||||
* Updated ARM mbed framework package to v121
|
||||
* Check program size before uploading to the board
|
||||
(`issue #689 <https://github.com/platformio/platformio/issues/689>`_)
|
||||
* Improved firmware uploading to Arduino Leonardo based boards
|
||||
(`issue #691 <https://github.com/platformio/platformio/issues/691>`_)
|
||||
* Fixed issue with ``-L relative/path`` when parsing ``build_flags``
|
||||
(`issue #688 <https://github.com/platformio/platformio/issues/688>`_)
|
||||
|
||||
2.9.4 (2016-06-04)
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
* Show ``udev`` warning only for the Linux OS while uploading firmware
|
||||
|
||||
2.9.3 (2016-06-03)
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
* Added support for `Arduboy <https://www.arduboy.com>`__, the game system
|
||||
the size of a credit card
|
||||
* Updated `99-platformio-udev.rules <https://github.com/platformio/platformio/blob/develop/scripts/99-platformio-udev.rules>`__ for Linux OS
|
||||
* Refactored firmware uploading to the embedded boards with SAM-BA bootloader
|
||||
|
||||
2.9.2 (2016-06-02)
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
* Simplified `Continuous Integration with AppVeyor <http://docs.platformio.org/en/latest/ci/appveyor.html>`__
|
||||
(`issue #671 <https://github.com/platformio/platformio/issues/671>`_)
|
||||
* Automatically add source directory to ``CPPPATH`` of Build System
|
||||
* Added support for Silicon Labs SLSTK3401A (Pearl Gecko) and
|
||||
MultiTech mDot F411 ARM mbed based boards
|
||||
* Added support for MightyCore ATmega8535 board
|
||||
(`issue #585 <https://github.com/platformio/platformio/issues/585>`_)
|
||||
* Added ``stlink`` as the default uploader for STM32 Discovery boards
|
||||
(`issue #665 <https://github.com/platformio/platformio/issues/665>`_)
|
||||
* Use HTTP mirror for Package Manager in a case with SSL errors
|
||||
(`issue #645 <https://github.com/platformio/platformio/issues/645>`_)
|
||||
* Improved firmware uploading to Arduino Leonardo/Due based boards
|
||||
* Fixed bug with ``env_default`` when ``pio run -e`` is used
|
||||
* Fixed issue with ``src_filter`` option for Windows OS
|
||||
(`issue #652 <https://github.com/platformio/platformio/issues/652>`_)
|
||||
* Fixed configuration data for TI LaunchPads based on msp430fr4133 and
|
||||
msp430fr6989 MCUs
|
||||
(`issue #676 <https://github.com/platformio/platformio/issues/676>`_)
|
||||
* Fixed issue with ARM mbed framework and multiple definition errors
|
||||
on FRDM-KL46Z board
|
||||
(`issue #641 <https://github.com/platformio/platformio/issues/641>`_)
|
||||
* Fixed issue with ARM mbed framework when abstract class breaks compile
|
||||
for LPC1768
|
||||
(`issue #666 <https://github.com/platformio/platformio/issues/666>`_)
|
||||
|
||||
2.9.1 (2016-04-30)
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -646,7 +706,7 @@ PlatformIO 1.0
|
||||
(`issue #183 <https://github.com/platformio/platformio/issues/183>`_)
|
||||
* Added GDB as alternative uploader to `ststm32 <http://docs.platformio.org/en/latest/platforms/ststm32.html>`__ platform
|
||||
(`issue #175 <https://github.com/platformio/platformio/issues/174>`_)
|
||||
* Added `examples <https://github.com/platformio/platformio/tree/develop/examples>`__
|
||||
* Added `examples <https://github.com/platformio/platformio-examples/tree/develop>`__
|
||||
with preconfigured IDE projects
|
||||
(`issue #154 <https://github.com/platformio/platformio/issues/154>`_)
|
||||
* Fixed firmware uploading under Linux OS for Arduino Leonardo board
|
||||
|
||||
16
README.rst
16
README.rst
@@ -16,11 +16,8 @@ PlatformIO
|
||||
.. image:: https://img.shields.io/pypi/l/platformio.svg
|
||||
:target: https://pypi.python.org/pypi/platformio/
|
||||
:alt: License
|
||||
.. image:: https://img.shields.io/pypi/dm/platformio.svg
|
||||
:target: https://pypi.python.org/pypi/platformio/
|
||||
:alt: PyPi Downloads
|
||||
.. image:: https://img.shields.io/community/PlatformIO.png
|
||||
:alt: Join the chat at https://gitter.im/platformio/platformio
|
||||
:alt: Community Forums
|
||||
:target: https://community.platformio.org
|
||||
.. image:: https://img.shields.io/donate/PlatformIO.png?color=yellow
|
||||
:alt: Donate for PlatformIO.Org
|
||||
@@ -29,7 +26,7 @@ PlatformIO
|
||||
|
||||
`Home <http://platformio.org>`_ |
|
||||
`IDE <http://platformio.org/platformio-ide>`_ |
|
||||
`Project Examples <https://github.com/platformio/platformio/tree/develop/examples>`_ |
|
||||
`Project Examples <https://github.com/platformio/platformio-examples/tree/develop>`_ |
|
||||
`Docs <http://docs.platformio.org>`_ |
|
||||
`Twitter <https://twitter.com/PlatformIO_Org>`_ |
|
||||
`Facebook <https://www.facebook.com/platformio>`_ |
|
||||
@@ -62,9 +59,9 @@ IDE integration. Arduino and MBED compatible. Ready for Cloud compiling.
|
||||
platforms and frameworks; learn via examples; be up-to-date with the latest
|
||||
version.
|
||||
|
||||
*Atmel AVR & SAM, Espressif, Freescale Kinetis, Nordic nRF51, NXP LPC,
|
||||
Silicon Labs EFM32, ST STM32, TI MSP430 & Tiva, Teensy, Arduino, mbed,
|
||||
libOpenCM3, etc.*
|
||||
*Atmel AVR & SAM, Espressif, Freescale Kinetis, Intel ARC32, Lattice iCE40,
|
||||
Microchip PIC32, Nordic nRF51, NXP LPC, Silicon Labs EFM32, ST STM32,
|
||||
TI MSP430 & Tiva, Teensy, Arduino, mbed, libOpenCM3, etc.*
|
||||
|
||||
.. image:: https://raw.githubusercontent.com/platformio/platformio/develop/docs/_static/platformio-demo-wiring.gif
|
||||
:target: http://platformio.org
|
||||
@@ -161,6 +158,9 @@ It has support for the most popular embedded platforms:
|
||||
* `Atmel SAM <http://platformio.org/platforms/atmelsam>`_
|
||||
* `Espressif <http://platformio.org/platforms/espressif>`_
|
||||
* `Freescale Kinetis <http://platformio.org/platforms/freescalekinetis>`_
|
||||
* `Intel ARC32 <http://platformio.org/platforms/intel_arc32>`_
|
||||
* `Lattice iCE40 <http://platformio.org/platforms/lattice_ice40>`_
|
||||
* `Microchip PIC32 <http://platformio.org/platforms/microchippic32>`_
|
||||
* `Nordic nRF51 <http://platformio.org/platforms/nordicnrf51>`_
|
||||
* `NXP LPC <http://platformio.org/platforms/nxplpc>`_
|
||||
* `ST STM32 <http://platformio.org/platforms/ststm32>`_
|
||||
|
||||
28
appveyor.yml
28
appveyor.yml
@@ -1,27 +1,13 @@
|
||||
build: off
|
||||
environment:
|
||||
global:
|
||||
WITH_COMPILER: "cmd /E:ON /V:ON /C .\\scripts\\appveyor\\run_with_compiler.cmd"
|
||||
|
||||
matrix:
|
||||
- TOXENV: "py27"
|
||||
TOXPYTHON: "C:\\Python27-x64\\python.exe"
|
||||
WINDOWS_SDK_VERSION: "v7.0"
|
||||
PYTHON_HOME: "C:\\Python27-x64"
|
||||
PYTHON_VERSION: "2.7"
|
||||
PYTHON_ARCH: "64"
|
||||
|
||||
init:
|
||||
- "ECHO %TOXENV%"
|
||||
- ps: "ls C:\\Python*"
|
||||
|
||||
|
||||
install:
|
||||
- "git submodule update --init --recursive"
|
||||
- "powershell scripts\\appveyor\\install.ps1"
|
||||
|
||||
before_test:
|
||||
- cmd: SET PATH=%PATH%;C:\MinGW\bin
|
||||
|
||||
- cmd: git submodule update --init --recursive
|
||||
- cmd: SET PATH=%PATH%;C:\Python27\Scripts;C:\MinGW\bin
|
||||
- cmd: pip install tox
|
||||
|
||||
test_script:
|
||||
- "%PYTHON_HOME%\\Scripts\\tox --version"
|
||||
- "%PYTHON_HOME%\\Scripts\\pip --version"
|
||||
- "%WITH_COMPILER% %PYTHON_HOME%\\Scripts\\tox"
|
||||
- cmd: tox
|
||||
|
||||
BIN
docs/_static/ide-eclipse-virtualiot.jpg
vendored
Normal file
BIN
docs/_static/ide-eclipse-virtualiot.jpg
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 140 KiB |
@@ -23,10 +23,23 @@ Here are recent articles about PlatformIO:
|
||||
2016
|
||||
^^^^
|
||||
|
||||
* Jun 3, 2016 - **Daniel Eichhorn** - `ESP8266: Continuous Delivery Pipeline – Push To Production <http://blog.squix.org/2016/06/esp8266-continuous-delivery-pipeline-push-to-production.html>`_
|
||||
* May 30, 2016 - **Ron Moerman** - `IoT Development with PlatformIO <https://electronicsworkbench.io/blog/platformio>`_
|
||||
* May 29, 2016 - **Chris Synan** - `Reverse Engineer RF Remote Controller for IoT! <http://www.instructables.com/id/Reverse-Engineer-RF-Remote-Controller-for-IoT/?ALLSTEPS>`_
|
||||
* May 26, 2016 - **Charlie Key** - `7 Best Developer Tools To Build Your NEXT Internet of Things Application <https://www.losant.com/blog/7-best-developer-tools-to-build-your-next-internet-of-things-application>`_
|
||||
* May 22, 2016 - **Pedro Minatel** - `Estação meteorológica com ESP8266 (Weather station with ESP8266, Portuguese) <http://pedrominatel.com.br/esp8266/estacao-meteorologica-com-esp8266/>`_
|
||||
* May 16, 2016 - **Pedro Minatel** - `Controle remoto WiFi com ESP8266 (WiFi remote control using ESP8266, Portuguese) <http://pedrominatel.com.br/esp8266/controle-remoto-wifi-com-esp8266/>`_
|
||||
* May 11, 2016 - **Jo Vandeginste** - `Using PlatformIO to compile for Jeelabs' Jeenode Micro <http://jovandeginste.github.io/2016/05/11/using-platformio-to-compile-for-jeelabs-jeenode-micro.html>`_
|
||||
* May 08, 2016 - **Radoslaw Bob** - `Touch controlled buzzer (Nodemcu ESP8266) <https://gettoknowthebob.wordpress.com/2016/05/08/touch-controlled-buzzer-nodemcu-esp8266/>`_
|
||||
* May 06, 2016 - **Jean Roux** - `The IoT building blocks I use for my home-automation projects <http://iotplay.blogspot.fr/2016/05/the-components-i-use-for-my-projects.html/>`_
|
||||
* May 05, 2016 - **Ivan Kravets, Ph.D. / Eclipse Virtual IoT Meetup** - `PlatformIO: a cross-platform IoT solution to build them all! <http://www.meetup.com/Virtual-IoT/events/229964142/>`_
|
||||
* May 01, 2016 - **Pedro Minatel** - `PlatformIO – Uma alternativa ao Arduino IDE (PlatformIO - An alternative to the Arduino IDE, Portuguese) <http://pedrominatel.com.br/ferramentas/platformio-uma-alternativa-ao-arduino-ide/>`_
|
||||
* Apr 23, 2016 - **Al Williams** - `Hackaday: Atomic Arduino (and Other) Development <http://hackaday.com/2016/04/23/atomic-arduino-and-other-development/>`_
|
||||
* Apr 16, 2016 - **Sathittham Sangthong** - `[PlatformIO] มาลองเล่น PlatformIO แทน Arduino IDE กัน (Let's play together with PlatformIO IDE [alternative to Arduino IDE], Thai) <http://www.sathittham.com/platformio/platformio-ide/>`_
|
||||
* Apr 15, 2016 - **Daniel Eichhorn** - `ESP8266: Offline Debugging with the Platformio Environment <http://blog.squix.ch/2016/04/esp8266-offline-debugging-with.html>`_
|
||||
* Apr 11, 2016 - **Matjaz Trcek** - `Top 5 Arduino integrated development environments <https://codeandunicorns.com/top-5-arduino-integrated-development-environments-ide/>`_
|
||||
* Apr 06, 2016 - **Aleks** - `PlatformIO ausprobiert (Tried PlatformIO, German) <http://5volt-junkie.net/platformio/>`_
|
||||
* Apr 02, 2016 - **Diego Pinto** - `Você tem coragem de abandonar a IDE do Arduino? PlatformIO + Atom (Do you dare to leave the Arduino IDE? PlatformIO + Atom, Portuguese) <http://www.clubemaker.com.br/?rota=artigo/81>`_
|
||||
* Mar 30, 2016 - **Brandon Cannaday** - `Getting Started with PlatformIO and ESP8266 NodeMcu <https://www.losant.com/blog/getting-started-with-platformio-esp8266-nodemcu>`_
|
||||
* Mar 29, 2016 - **Pablo Peñalve** - `PlatformIO + Geany + Raspberry PI, Spanish <http://ret-catriel.blogspot.com/2016/03/framework-platformio-geany-raspberry-pi.html>`_
|
||||
* Mar 24, 2016 - **NAzT** - `PlatformIO และการปรับแต่ง เพื่อใช้สำหรับพัฒนา Arduino Library (PlatformIO and advanced development for Arduino Library, Thai) <https://cmmakerclub.com/tools-2/config-platformio-for-arduino-framework-developer/>`_
|
||||
|
||||
@@ -44,142 +44,20 @@ Put ``appveyor.yml`` to the root directory of the GitHub repository.
|
||||
|
||||
build: off
|
||||
environment:
|
||||
global:
|
||||
WITH_COMPILER: "cmd /E:ON /V:ON /C .\\scripts\\appveyor\\run_with_compiler.cmd"
|
||||
matrix:
|
||||
- PLATFORMIO_CI_SRC: "path\\to\\source\\file.c"
|
||||
PLATFORMIO_CI_SRC: "path\\to\\source\\file.ino"
|
||||
PLATFORMIO_CI_SRC: "path\\to\\source\\directory"
|
||||
WINDOWS_SDK_VERSION: "v7.0"
|
||||
PYTHON_HOME: "C:\\Python27-x64"
|
||||
PYTHON_VERSION: "2.7"
|
||||
PYTHON_ARCH: "64"
|
||||
install:
|
||||
- "git submodule update --init --recursive"
|
||||
- "powershell scripts\\appveyor\\install.ps1"
|
||||
before_test:
|
||||
- cmd: SET PATH=%PATH%;%PYTHON_HOME%;%PYTHON_HOME%\Scripts
|
||||
test_script:
|
||||
- '%WITH_COMPILER% %PYTHON_HOME%\\Scripts\\platformio ci --board=TYPE_1 --board=TYPE_2 --board=TYPE_N'
|
||||
|
||||
matrix:
|
||||
- PLATFORMIO_CI_SRC: "path\\to\\source\\file.c"
|
||||
- PLATFORMIO_CI_SRC: "path\\to\\source\\file.ino"
|
||||
- PLATFORMIO_CI_SRC: "path\\to\\source\\directory"
|
||||
|
||||
Then create ``scripts/appveyor`` folder and put these 2 scripts (they are the
|
||||
same for the all projects, don't need to modify them):
|
||||
install:
|
||||
- cmd: git submodule update --init --recursive
|
||||
- cmd: SET PATH=%PATH%;C:\Python27\Scripts
|
||||
- cmd: pip install -U platformio
|
||||
|
||||
1. ``scripts/appveyor/install.ps1``:
|
||||
test_script:
|
||||
- cmd: platformio ci --board=TYPE_1 --board=TYPE_2 --board=TYPE_N
|
||||
|
||||
.. code-block:: PowerShell
|
||||
|
||||
$BASE_URL = "https://www.python.org/ftp/python/"
|
||||
$GET_PIP_URL = "https://bootstrap.pypa.io/get-pip.py"
|
||||
$GET_PIP_PATH = "C:\get-pip.py"
|
||||
|
||||
|
||||
function DownloadPython ($python_version, $platform_suffix) {
|
||||
$webclient = New-Object System.Net.WebClient
|
||||
$filename = "python-" + $python_version + $platform_suffix + ".msi"
|
||||
$url = $BASE_URL + $python_version + "/" + $filename
|
||||
|
||||
$basedir = $pwd.Path + "\"
|
||||
$filepath = $basedir + $filename
|
||||
if (Test-Path $filename) {
|
||||
Write-Host "Reusing" $filepath
|
||||
return $filepath
|
||||
}
|
||||
|
||||
# Download and retry up to 5 times in case of network transient errors.
|
||||
Write-Host "Downloading" $filename "from" $url
|
||||
$retry_attempts = 3
|
||||
for($i=0; $i -lt $retry_attempts; $i++){
|
||||
try {
|
||||
$webclient.DownloadFile($url, $filepath)
|
||||
break
|
||||
}
|
||||
Catch [Exception]{
|
||||
Start-Sleep 1
|
||||
}
|
||||
}
|
||||
Write-Host "File saved at" $filepath
|
||||
return $filepath
|
||||
}
|
||||
|
||||
|
||||
function InstallPython ($python_version, $architecture, $python_home) {
|
||||
Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home
|
||||
if (Test-Path $python_home) {
|
||||
Write-Host $python_home "already exists, skipping."
|
||||
return $false
|
||||
}
|
||||
if ($architecture -eq "32") {
|
||||
$platform_suffix = ""
|
||||
} else {
|
||||
$platform_suffix = ".amd64"
|
||||
}
|
||||
$filepath = DownloadPython $python_version $platform_suffix
|
||||
Write-Host "Installing" $filepath "to" $python_home
|
||||
$args = "/qn /i $filepath TARGETDIR=$python_home"
|
||||
Write-Host "msiexec.exe" $args
|
||||
Start-Process -FilePath "msiexec.exe" -ArgumentList $args -Wait -Passthru
|
||||
Write-Host "Python $python_version ($architecture) installation complete"
|
||||
return $true
|
||||
}
|
||||
|
||||
|
||||
function InstallPip ($python_home) {
|
||||
$python_path = $python_home + "/python.exe"
|
||||
Write-Host "Installing pip..."
|
||||
$webclient = New-Object System.Net.WebClient
|
||||
$webclient.DownloadFile($GET_PIP_URL, $GET_PIP_PATH)
|
||||
Write-Host "Executing:" $python_path $GET_PIP_PATH
|
||||
Start-Process -FilePath "$python_path" -ArgumentList "$GET_PIP_PATH" -Wait -Passthru
|
||||
}
|
||||
|
||||
function InstallPackage ($python_home, $pkg) {
|
||||
$pip_path = $python_home + "/Scripts/pip.exe"
|
||||
& $pip_path install -U $pkg
|
||||
}
|
||||
|
||||
function main () {
|
||||
InstallPython $env:PYTHON_VERSION $env:PYTHON_ARCH $env:PYTHON_HOME
|
||||
InstallPip $env:PYTHON_HOME
|
||||
InstallPackage $env:PYTHON_HOME setuptools
|
||||
InstallPackage $env:PYTHON_HOME platformio
|
||||
}
|
||||
|
||||
main
|
||||
|
||||
2. ``scripts/appveyor/run_with_compiler.cmd``:
|
||||
|
||||
.. code-block:: guess
|
||||
|
||||
@ECHO OFF
|
||||
|
||||
SET COMMAND_TO_RUN=%*
|
||||
SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows
|
||||
|
||||
SET MAJOR_PYTHON_VERSION="%PYTHON_VERSION:~0,1%"
|
||||
IF %MAJOR_PYTHON_VERSION% == "2" (
|
||||
SET WINDOWS_SDK_VERSION="v7.0"
|
||||
) ELSE IF %MAJOR_PYTHON_VERSION% == "3" (
|
||||
SET WINDOWS_SDK_VERSION="v7.1"
|
||||
) ELSE (
|
||||
ECHO Unsupported Python version: "%MAJOR_PYTHON_VERSION%"
|
||||
EXIT 1
|
||||
)
|
||||
|
||||
IF "%PYTHON_ARCH%"=="64" (
|
||||
ECHO Configuring Windows SDK %WINDOWS_SDK_VERSION% for Python %MAJOR_PYTHON_VERSION% on a 64 bit architecture
|
||||
SET DISTUTILS_USE_SDK=1
|
||||
SET MSSdk=1
|
||||
"%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Setup\WindowsSdkVer.exe" -q -version:%WINDOWS_SDK_VERSION%
|
||||
"%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release
|
||||
ECHO Executing: %COMMAND_TO_RUN%
|
||||
call %COMMAND_TO_RUN% || EXIT 1
|
||||
) ELSE (
|
||||
ECHO Using default MSVC build environment for 32 bit architecture
|
||||
ECHO Executing: %COMMAND_TO_RUN%
|
||||
call %COMMAND_TO_RUN% || EXIT 1
|
||||
)
|
||||
|
||||
For more details as for PlatformIO build process please look into :ref:`cmd_ci`
|
||||
command.
|
||||
@@ -194,20 +72,16 @@ Examples
|
||||
|
||||
build: off
|
||||
environment:
|
||||
global:
|
||||
WITH_COMPILER: "cmd /E:ON /V:ON /C .\\scripts\\appveyor\\run_with_compiler.cmd"
|
||||
matrix:
|
||||
- PLATFORMIO_CI_SRC: "examples\\Bluetooth\\PS3SPP\\PS3SPP.ino"
|
||||
PLATFORMIO_CI_SRC: "examples\\pl2303\\pl2303_gps\\pl2303_gps.ino"
|
||||
WINDOWS_SDK_VERSION: "v7.0"
|
||||
PYTHON_HOME: "C:\\Python27-x64"
|
||||
PYTHON_VERSION: "2.7"
|
||||
PYTHON_ARCH: "64"
|
||||
install:
|
||||
- "git submodule update --init --recursive"
|
||||
- "powershell scripts\\appveyor\\install.ps1"
|
||||
before_test:
|
||||
- cmd: SET PATH=%PATH%;%PYTHON_HOME%;%PYTHON_HOME%\Scripts
|
||||
- cmd: git clone https://github.com/xxxajk/spi4teensy3.git c:\spi4teensy
|
||||
test_script:
|
||||
- '%WITH_COMPILER% %PYTHON_HOME%\\Scripts\\platformio ci --lib="." --lib="c:\spi4teensy" --board=uno --board=teensy31 --board=due'
|
||||
|
||||
matrix:
|
||||
- PLATFORMIO_CI_SRC: "examples\\Bluetooth\\PS3SPP\\PS3SPP.ino"
|
||||
- PLATFORMIO_CI_SRC: "examples\\pl2303\\pl2303_gps\\pl2303_gps.ino"
|
||||
|
||||
install:
|
||||
- cmd: git submodule update --init --recursive
|
||||
- cmd: SET PATH=%PATH%;C:\Python27\Scripts
|
||||
- cmd: pip install -U platformio
|
||||
- cmd: git clone https://github.com/xxxajk/spi4teensy3.git C:\spi4teensy
|
||||
|
||||
test_script:
|
||||
- cmd: platformio ci --lib="." --lib="C:\\spi4teensy" --board=uno --board=teensy31 --board=due
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -19,7 +19,7 @@ Demo & Projects
|
||||
Project Examples
|
||||
----------------
|
||||
|
||||
Preconfigured demo projects are located in `PlatformIO GitHub <https://github.com/platformio/platformio/tree/develop/examples>`_ repository.
|
||||
Pre-configured demo projects are located in `PlatformIO GitHub <https://github.com/platformio/platformio-examples/tree/develop>`_ repository.
|
||||
|
||||
"Blink Project"
|
||||
---------------
|
||||
|
||||
@@ -14,6 +14,10 @@
|
||||
Frequently Asked Questions
|
||||
==========================
|
||||
|
||||
.. note::
|
||||
We have a big database with `Frequently Asked Questions in our Community Forums <https://community.platformio.org/c/faq>`_.
|
||||
Please have a look at it.
|
||||
|
||||
.. contents::
|
||||
|
||||
General
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -176,6 +176,33 @@ Adafruit
|
||||
- 8 Kb
|
||||
- 0.5 Kb
|
||||
|
||||
Arduboy
|
||||
~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``arduboy``
|
||||
- `Arduboy <https://www.arduboy.com>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``arduboy_devkit``
|
||||
- `Arduboy DevKit <https://www.arduboy.com>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
Arduino
|
||||
~~~~~~~
|
||||
|
||||
@@ -571,13 +598,6 @@ Digilent
|
||||
- 512 Kb
|
||||
- 128 Kb
|
||||
|
||||
* - ``openbci``
|
||||
- `Digilent OpenScope <http://store.digilentinc.com/>`_
|
||||
- 32MX250F128B
|
||||
- 40 MHz
|
||||
- 128 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``openscope``
|
||||
- `Digilent OpenScope <http://store.digilentinc.com/>`_
|
||||
- 32MZ2048EFG124
|
||||
@@ -1020,6 +1040,13 @@ Mcudude
|
||||
- 64 Kb
|
||||
- 4 Kb
|
||||
|
||||
* - ``mightycore8535``
|
||||
- `MightyCore ATmega8535 <https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board>`_
|
||||
- ATMEGA16
|
||||
- 16 MHz
|
||||
- 8 Kb
|
||||
- 0.5 Kb
|
||||
|
||||
Microduino
|
||||
~~~~~~~~~~
|
||||
|
||||
@@ -1150,6 +1177,46 @@ Olimex
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
OpenBCI
|
||||
~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``openbci``
|
||||
- `OpenBCI 32bit <http://shop.openbci.com/>`_
|
||||
- 32MX250F128B
|
||||
- 40 MHz
|
||||
- 128 Kb
|
||||
- 32 Kb
|
||||
|
||||
OpenEnergyMonitor
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``emonpi``
|
||||
- `emonPi <https://github.com/openenergymonitor/emonpi>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
PONTECH
|
||||
~~~~~~~
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -77,7 +77,7 @@ TI
|
||||
|
||||
* - ``lpmsp430fr4133``
|
||||
- `TI LaunchPad w/ msp430fr4133 <http://www.ti.com/tool/msp-exp430fr4133>`_
|
||||
- MSP430G2553
|
||||
- MSP430FR4133
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 2 Kb
|
||||
@@ -98,7 +98,7 @@ TI
|
||||
|
||||
* - ``lpmsp430fr6989``
|
||||
- `TI LaunchPad w/ msp430fr6989 <http://www.ti.com/tool/msp-exp430fr6989>`_
|
||||
- MSP430G2553
|
||||
- MSP430FR6989
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 2 Kb
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -286,6 +286,26 @@ JKSoft
|
||||
- 128 Kb
|
||||
- 16 Kb
|
||||
|
||||
MultiTech
|
||||
~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``mts_mdot_f411re``
|
||||
- `MultiTech mDot F411 <https://developer.mbed.org/platforms/MTS-mDot-F411/>`_
|
||||
- STM32F411RET6
|
||||
- 100 MHz
|
||||
- 512 Kb
|
||||
- 128 Kb
|
||||
|
||||
NGX Technologies
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -705,6 +725,13 @@ Silicon Labs
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``efm32pg_stk3401``
|
||||
- `Silicon Labs SLSTK3401A (Pearl Gecko) <https://developer.mbed.org/platforms/EFM32-Pearl-Gecko/>`_
|
||||
- EFM32PG1B200F256
|
||||
- 40 MHz
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``efm32wg_stk3800``
|
||||
- `Silicon Labs EFM32WG-STK3800 (Wonder Gecko) <https://developer.mbed.org/platforms/EFM32-Wonder-Gecko/>`_
|
||||
- EFM32WG990F256
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -437,6 +437,19 @@ To force Smart Code Linter to use Arduino files as C++ please
|
||||
Frequently Asked Questions
|
||||
--------------------------
|
||||
|
||||
Keep build panel visible
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
PlatformIO IDE hides build panel on success by default. Nevertheless, you can
|
||||
keep it visible all time. Please follow to
|
||||
``Menu: PlatformIO > Settings > Build`` and set ``Panel Visibility`` to
|
||||
``Keep Visible``.
|
||||
|
||||
Key-bindings (toggle panel):
|
||||
|
||||
* ``cmd+alt+v`` - Mac OS X
|
||||
* ``ctrl+alt+v`` - Windows/Linux
|
||||
|
||||
Automatically save on build
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -458,10 +471,13 @@ package and `C/C++ Uncrustify Code Beautifier <http://sourceforge.net/projects/u
|
||||
Articles / Manuals
|
||||
------------------
|
||||
|
||||
* May 30, 2016 - **Ron Moerman** - `IoT Development with PlatformIO <https://electronicsworkbench.io/blog/platformio>`_
|
||||
* May 01, 2016 - **Pedro Minatel** - `PlatformIO – Uma alternativa ao Arduino IDE (PlatformIO - An alternative to the Arduino IDE, Portuguese) <http://pedrominatel.com.br/ferramentas/platformio-uma-alternativa-ao-arduino-ide/>`_
|
||||
* Apr 23, 2016 - **Al Williams** - `Hackaday: Atomic Arduino (and Other) Development <http://hackaday.com/2016/04/23/atomic-arduino-and-other-development/>`_
|
||||
* Apr 16, 2016 - **Sathittham Sangthong** - `[PlatformIO] มาลองเล่น PlatformIO แทน Arduino IDE กัน (Let's play together with PlatformIO IDE [alternative to Arduino IDE], Thai) <http://www.sathittham.com/platformio/platformio-ide/>`_
|
||||
* Apr 11, 2016 - **Matjaz Trcek** - `Top 5 Arduino integrated development environments <https://codeandunicorns.com/top-5-arduino-integrated-development-environments-ide/>`_
|
||||
* Apr 06, 2016 - **Aleks** - `PlatformIO ausprobiert (Tried PlatformIO, German) <http://5volt-junkie.net/platformio/>`_
|
||||
* Apr 02, 2016 - **Diego Pinto** - `Você tem coragem de abandonar a IDE do Arduino? PlatformIO + Atom (Do you dare to leave the Arduino IDE? PlatformIO + Atom, Portuguese) <http://www.clubemaker.com.br/?rota=artigo/81>`_
|
||||
* Mar 30, 2016 - **Brandon Cannaday** - `Getting Started with PlatformIO and ESP8266 NodeMcu <https://www.getstructure.io/blog/getting-started-with-platformio-esp8266-nodemcu>`_
|
||||
* Mar 12, 2016 - **Peter Marks** - `PlatformIO, the Arduino IDE for programmers <http://blog.marxy.org/2016/03/platformio-arduino-ide-for-programmers.html>`_
|
||||
* Mar 05, 2016 - **brichacek.net** - `PlatformIO – otevřený ekosystém pro vývoj IoT (PlatformIO – an open source ecosystem for IoT development, Czech) <http://blog.brichacek.net/platformio-otevreny-ekosystem-pro-vyvoj-iot/>`_
|
||||
|
||||
@@ -71,9 +71,18 @@ If you have some problems with unresolved includes, defines, etc., then
|
||||
after generating process wont be reflected in IDE. To fix it you
|
||||
need to reinitialize project using :ref:`cmd_init` (repeat it).
|
||||
|
||||
Live Integration
|
||||
----------------
|
||||
|
||||
Eclipse Virtual IoT Meetup: `PlatformIO: a cross-platform IoT solution to build them all! <http://www.meetup.com/Virtual-IoT/events/229964142/>`_
|
||||
|
||||
.. image:: ../_static/ide-eclipse-virtualiot.jpg
|
||||
:target: https://www.youtube.com/watch?v=6t7UbX812Yw
|
||||
|
||||
Articles / Manuals
|
||||
------------------
|
||||
|
||||
* May 05, 2016 - **Ivan Kravets, Ph.D. / Eclipse Virtual IoT Meetup** - `PlatformIO: a cross-platform IoT solution to build them all! <http://www.meetup.com/Virtual-IoT/events/229964142/>`_
|
||||
* Sep 01, 2015 - **Thomas P. Weldon, Ph.D.** - `Improvised MBED FRDM-K64F Eclipse/PlatformIO Setup and Software Installation <http://thomasweldon.com/tpw/courses/embeddsp/p00pcFrdmK64_eclipsePlatformioSetup.html>`_
|
||||
* Jul 11, 2015 - **TrojanC** - `Learning Arduino GitHub Repository <http://www.trojanc.co.za/2015/07/11/learning-arduino-github-repository/>`_
|
||||
* June 20, 2014 - **Ivan Kravets, Ph.D.** - `Building and debugging Atmel AVR (Arduino-based) project using Eclipse IDE+PlatformIO <http://www.ikravets.com/computer-life/programming/2014/06/20/building-and-debugging-atmel-avr-arduino-based-project-using-eclipse-ideplatformio>`_
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -19,7 +19,7 @@ integration. Arduino and MBED compatible. Ready for Cloud compiling.**
|
||||
C/C++ Intelligent Code Completion and Smart Code Linter for the super-fast coding.
|
||||
Multi-projects workflow with Multiple Panes. Themes Support with dark and light colors.
|
||||
Built-in Terminal with PlatformIO CLI tool and support for the powerful Serial Port Monitor.
|
||||
All advanced instruments without leaving your favourite development environment.
|
||||
All advanced instruments without leaving your favorite development environment.
|
||||
* **Development Platforms** - Embedded and Desktop development platforms with
|
||||
pre-built toolchains, debuggers, uploaders and frameworks which work under
|
||||
popular host OS: Mac, Windows, Linux (+ARM)
|
||||
@@ -39,7 +39,7 @@ libOpenCM3, etc.*
|
||||
* :ref:`ide_atom`
|
||||
* `Web 2.0 Library Search <http://platformio.org/lib>`_ |
|
||||
`Embedded Boards Explorer <http://platformio.org/boards>`_
|
||||
* `Project Examples <https://github.com/platformio/platformio/tree/develop/examples>`_
|
||||
* `Project Examples <https://github.com/platformio/platformio-examples/tree/develop>`_
|
||||
* `Source Code <https://github.com/platformio/platformio>`_ |
|
||||
`Issues <https://github.com/platformio/platformio/issues>`_
|
||||
* `Blog <http://www.ikravets.com/category/computer-life/platformio>`_ |
|
||||
@@ -57,8 +57,7 @@ Embedded Development. *Easier Than Ever.*
|
||||
* Cloud compiling and :ref:`ci` with *AppVeyor, Circle CI, Drone, Shippable, Travis CI*
|
||||
* Built-in :ref:`Serial Port Monitor <cmd_serialports_monitor>` and
|
||||
configurable build :ref:`-flags/-options <projectconf_build_flags>`
|
||||
* Pre-built toolchains, :ref:`frameworks` for the
|
||||
:ref:`Development Platforms <platforms>`
|
||||
* Pre-built toolchains, :ref:`frameworks` for the :ref:`platforms`
|
||||
|
||||
Smart Build System. *Fast and Reliable.*
|
||||
----------------------------------------
|
||||
@@ -108,8 +107,10 @@ Contents
|
||||
:caption: Instruments
|
||||
:maxdepth: 3
|
||||
|
||||
Platforms & Boards <platforms/index>
|
||||
platforms/index
|
||||
platforms/embedded_boards
|
||||
frameworks/index
|
||||
platforms/custom_platform_and_board
|
||||
|
||||
.. toctree::
|
||||
:caption: Library Manager
|
||||
|
||||
@@ -141,7 +141,7 @@ Examples:
|
||||
The repository in which the source code can be found. The field consists for the
|
||||
next items:
|
||||
|
||||
* ``type``
|
||||
* ``type`` the only "git", "hg" or "svn" are supported
|
||||
* ``url``
|
||||
* ``branch`` if is not specified, default branch will be used. This field will
|
||||
be ignored if tag/release exists with the value of :ref:`libjson_version`.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -166,6 +166,33 @@ Adafruit
|
||||
- 8 Kb
|
||||
- 0.5 Kb
|
||||
|
||||
Arduboy
|
||||
~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``arduboy``
|
||||
- `Arduboy <https://www.arduboy.com>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
* - ``arduboy_devkit``
|
||||
- `Arduboy DevKit <https://www.arduboy.com>`_
|
||||
- ATMEGA32U4
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2.5 Kb
|
||||
|
||||
Arduino
|
||||
~~~~~~~
|
||||
|
||||
@@ -702,6 +729,13 @@ Mcudude
|
||||
- 64 Kb
|
||||
- 4 Kb
|
||||
|
||||
* - ``mightycore8535``
|
||||
- `MightyCore ATmega8535 <https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board>`_
|
||||
- ATMEGA16
|
||||
- 16 MHz
|
||||
- 8 Kb
|
||||
- 0.5 Kb
|
||||
|
||||
Microduino
|
||||
~~~~~~~~~~
|
||||
|
||||
@@ -778,6 +812,26 @@ Microduino
|
||||
- 64 Kb
|
||||
- 4 Kb
|
||||
|
||||
OpenEnergyMonitor
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``emonpi``
|
||||
- `emonPi <https://github.com/openenergymonitor/emonpi>`_
|
||||
- ATMEGA328P
|
||||
- 16 MHz
|
||||
- 32 Kb
|
||||
- 2 Kb
|
||||
|
||||
PanStamp
|
||||
~~~~~~~~
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -11,8 +11,8 @@
|
||||
|
||||
.. _board_creating:
|
||||
|
||||
Custom Board
|
||||
============
|
||||
Custom Embedded Board
|
||||
=====================
|
||||
|
||||
*PlatformIO* has pre-built settings for the most popular embedded boards. This
|
||||
list is available:
|
||||
@@ -33,10 +33,9 @@ JSON Structure
|
||||
|
||||
The key fields:
|
||||
|
||||
* ``build`` data will be used by :ref:`Platforms <platforms>` and
|
||||
:ref:`frameworks` builders
|
||||
* ``build`` data will be used by :ref:`platforms` and :ref:`frameworks` builders
|
||||
* ``frameworks`` is the list with supported :ref:`frameworks`
|
||||
* ``platform`` main type of :ref:`Platforms <platforms>`
|
||||
* ``platform`` main type of :ref:`platforms`
|
||||
* ``upload`` upload settings which depend on the ``platform``
|
||||
|
||||
.. code-block:: json
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -11,8 +11,8 @@
|
||||
|
||||
.. _platform_creating:
|
||||
|
||||
Custom Platform
|
||||
===============
|
||||
Custom Development Platform
|
||||
===========================
|
||||
|
||||
*PlatformIO* was developed like a tool which would build the same source code
|
||||
for the different development platforms via single command :ref:`cmd_run`
|
||||
@@ -27,7 +27,7 @@ different/own build scripts, uploader and etc.
|
||||
|
||||
.. note::
|
||||
If you want to change some build flags for the existing
|
||||
:ref:`Platforms <platforms>`, you don't need to create (or duplicate) own
|
||||
:ref:`platforms`, you don't need to create (or duplicate) own
|
||||
development platforms! Please use :ref:`projectconf_build_flags` option.
|
||||
|
||||
**Step-by-Step Manual**
|
||||
|
||||
19
docs/platforms/custom_platform_and_board.rst
Normal file
19
docs/platforms/custom_platform_and_board.rst
Normal file
@@ -0,0 +1,19 @@
|
||||
.. Copyright 2014-present 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.
|
||||
|
||||
Custom Platform & Board
|
||||
=======================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
creating_platform
|
||||
creating_board
|
||||
2717
docs/platforms/embedded_boards.rst
Normal file
2717
docs/platforms/embedded_boards.rst
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -240,6 +240,11 @@ Using Arduino Framework with Staging version
|
||||
Articles
|
||||
--------
|
||||
|
||||
* Jun 3, 2016 - **Daniel Eichhorn** - `ESP8266: Continuous Delivery Pipeline – Push To Production <http://blog.squix.org/2016/06/esp8266-continuous-delivery-pipeline-push-to-production.html>`_
|
||||
* May 29, 2016 - **Chris Synan** - `Reverse Engineer RF Remote Controller for IoT! <http://www.instructables.com/id/Reverse-Engineer-RF-Remote-Controller-for-IoT/?ALLSTEPS>`_
|
||||
* May 22, 2016 - **Pedro Minatel** - `Estação meteorológica com ESP8266 (Weather station with ESP8266, Portuguese) <http://pedrominatel.com.br/esp8266/estacao-meteorologica-com-esp8266/>`_
|
||||
* May 16, 2016 - **Pedro Minatel** - `Controle remoto WiFi com ESP8266 (WiFi remote control using ESP8266, Portuguese) <http://pedrominatel.com.br/esp8266/controle-remoto-wifi-com-esp8266/>`_
|
||||
* May 08, 2016 - **Radoslaw Bob** - `Touch controlled buzzer (Nodemcu ESP8266) <https://gettoknowthebob.wordpress.com/2016/05/08/touch-controlled-buzzer-nodemcu-esp8266/>`_
|
||||
* Mar 07, 2016 - **Joran Jessurun** - `Nieuwe wereld met PlatformIO (New world with PlatformIO, Dutch) <http://blog.wisclub.nl/#post178>`_
|
||||
* Feb 25, 2016 - **NutDIY** - `PlatformIO Blink On Nodemcu Dev Kit V1.0 (ESP 12-E) <http://nutdiy.blogspot.com/2016/02/platformio-blink-on-nodemcu-dev-kit-v10.html>`_
|
||||
* Feb 23, 2016 - **Ptarmigan Labs** - `ESP8266 Over The Air updating – what are the options? <https://ptarmiganlabs.com/blog/2016/02/23/esp8266-over-the-air-updating-what-are-the-options/>`_
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -11,8 +11,8 @@
|
||||
|
||||
.. _platforms:
|
||||
|
||||
Platforms & Embedded Boards
|
||||
===========================
|
||||
Development Platforms
|
||||
=====================
|
||||
|
||||
*PlatformIO* has pre-built different development platforms for popular OS
|
||||
(*Mac OS X, Linux (+ARM) and Windows*). Each of them include compiler,
|
||||
@@ -54,12 +54,3 @@ Desktop
|
||||
linux_i686
|
||||
linux_x86_64
|
||||
windows_x86
|
||||
|
||||
Custom Platform & Board
|
||||
-----------------------
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
creating_platform
|
||||
creating_board
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -177,13 +177,6 @@ Digilent
|
||||
- 512 Kb
|
||||
- 128 Kb
|
||||
|
||||
* - ``openbci``
|
||||
- `Digilent OpenScope <http://store.digilentinc.com/>`_
|
||||
- 32MX250F128B
|
||||
- 40 MHz
|
||||
- 128 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``openscope``
|
||||
- `Digilent OpenScope <http://store.digilentinc.com/>`_
|
||||
- 32MZ2048EFG124
|
||||
@@ -245,6 +238,26 @@ Olimex
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
OpenBCI
|
||||
~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``openbci``
|
||||
- `OpenBCI 32bit <http://shop.openbci.com/>`_
|
||||
- 32MX250F128B
|
||||
- 40 MHz
|
||||
- 128 Kb
|
||||
- 32 Kb
|
||||
|
||||
PONTECH
|
||||
~~~~~~~
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -98,6 +98,13 @@ Silicon Labs
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``efm32pg_stk3401``
|
||||
- `Silicon Labs SLSTK3401A (Pearl Gecko) <https://developer.mbed.org/platforms/EFM32-Pearl-Gecko/>`_
|
||||
- EFM32PG1B200F256
|
||||
- 40 MHz
|
||||
- 256 Kb
|
||||
- 32 Kb
|
||||
|
||||
* - ``efm32wg_stk3800``
|
||||
- `Silicon Labs EFM32WG-STK3800 (Wonder Gecko) <https://developer.mbed.org/platforms/EFM32-Wonder-Gecko/>`_
|
||||
- EFM32WG990F256
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -142,6 +142,26 @@ Armstrap
|
||||
- 512 Kb
|
||||
- 192 Kb
|
||||
|
||||
MultiTech
|
||||
~~~~~~~~~
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Type ``board``
|
||||
- Name
|
||||
- Microcontroller
|
||||
- Frequency
|
||||
- Flash
|
||||
- RAM
|
||||
|
||||
* - ``mts_mdot_f411re``
|
||||
- `MultiTech mDot F411 <https://developer.mbed.org/platforms/MTS-mDot-F411/>`_
|
||||
- STM32F411RET6
|
||||
- 100 MHz
|
||||
- 512 Kb
|
||||
- 128 Kb
|
||||
|
||||
ST
|
||||
~~
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -122,7 +122,7 @@ TI
|
||||
|
||||
* - ``lpmsp430fr4133``
|
||||
- `TI LaunchPad w/ msp430fr4133 <http://www.ti.com/tool/msp-exp430fr4133>`_
|
||||
- MSP430G2553
|
||||
- MSP430FR4133
|
||||
- 16 MHz
|
||||
- 16 Kb
|
||||
- 2 Kb
|
||||
@@ -143,7 +143,7 @@ TI
|
||||
|
||||
* - ``lpmsp430fr6989``
|
||||
- `TI LaunchPad w/ msp430fr6989 <http://www.ti.com/tool/msp-exp430fr6989>`_
|
||||
- MSP430G2553
|
||||
- MSP430FR6989
|
||||
- 16 MHz
|
||||
- 128 Kb
|
||||
- 2 Kb
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -194,7 +194,7 @@ General options
|
||||
``platform``
|
||||
^^^^^^^^^^^^
|
||||
|
||||
:ref:`Platform <platforms>` type.
|
||||
:ref:`platforms` type.
|
||||
|
||||
|
||||
.. _projectconf_env_framework:
|
||||
@@ -373,7 +373,7 @@ For more detailed information about available flags/options go to:
|
||||
``src_build_flags``
|
||||
^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
An option ``src_build_flags`` has the same behaviour like ``build_flags``
|
||||
An option ``src_build_flags`` has the same behavior like ``build_flags``
|
||||
but will be applied only for the project source code from
|
||||
:ref:`projectconf_pio_src_dir` directory.
|
||||
|
||||
@@ -585,7 +585,7 @@ Example:
|
||||
``lib_dfcyclic``
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
Control cyclic (recursive) behaviour for ``Library Dependency Finder (LDF)``.
|
||||
Control cyclic (recursive) behavior for ``Library Dependency Finder (LDF)``.
|
||||
By default, this option is turned OFF (``lib_dfcyclic=False``) and means that
|
||||
``LDF`` will find only libraries which are included in source files from the
|
||||
project :ref:`projectconf_pio_src_dir`.
|
||||
@@ -610,7 +610,7 @@ Examples
|
||||
|
||||
.. note::
|
||||
A full list with project examples can be found in
|
||||
`PlatformIO Repository <https://github.com/platformio/platformio/tree/develop/examples>`_.
|
||||
`PlatformIO Repository <https://github.com/platformio/platformio-examples/tree/develop>`_.
|
||||
|
||||
1. :ref:`platform_atmelavr`: Arduino UNO board with auto pre-configured
|
||||
``board_*`` and ``upload_*`` options (use only ``board`` option) and Arduino
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -15,7 +15,7 @@ Quick Start
|
||||
===========
|
||||
|
||||
.. note::
|
||||
If you are looking for a Qucik Start for PlatformIO IDE please follow to
|
||||
If you are looking for a Quick Start for PlatformIO IDE please follow to
|
||||
:ref:`PlatformIO IDE Quick Start <atom_ide_quickstart>` page.
|
||||
|
||||
This tutorial introduces you to the basics of PlatformIO Command Line Interface
|
||||
@@ -30,7 +30,7 @@ PlatformIO CLI provides special :ref:`cmd_init` command for configuring your pro
|
||||
It allows to initialize new empty project or update existing with the new data.
|
||||
|
||||
What is more, :ref:`cmd_init` can be used for :ref:`ide`. It means that you will
|
||||
be able to import pre-generated PlatformIO project using favourite IDE and
|
||||
be able to import pre-generated PlatformIO project using favorite IDE and
|
||||
extend it with the professional instruments for IoT development.
|
||||
|
||||
This tutorial is based on the next popular embedded boards and development
|
||||
@@ -256,5 +256,5 @@ Arduino Uno:
|
||||
Further Reading
|
||||
---------------
|
||||
|
||||
* `Project examples <https://github.com/platformio/platformio/tree/develop/examples>`_
|
||||
* `Project examples <https://github.com/platformio/platformio-examples/tree/develop>`_
|
||||
* :ref:`userguide` for PlatformIO CLI commands
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -29,7 +29,7 @@ Description
|
||||
|
||||
:ref:`cmd_ci` command is conceived of as "hot key" for building project with
|
||||
arbitrary source code structure. In a nutshell, using ``SRC`` and
|
||||
:option:`platformio ci --lib` contents PlatformIO initialises via
|
||||
:option:`platformio ci --lib` contents PlatformIO initializes via
|
||||
:ref:`cmd_init` new project in :option:`platformio ci --build-dir`
|
||||
with the build environments (using :option:`platformio ci --board` or
|
||||
:option:`platformio ci --project-conf`) and processes them via :ref:`cmd_run`
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -47,7 +47,7 @@ Options
|
||||
.. option::
|
||||
-d, --project-dir
|
||||
|
||||
A path to the directory where *PlatformIO* will initialise new project.
|
||||
A path to the directory where *PlatformIO* will initialize new project.
|
||||
|
||||
.. option::
|
||||
-b, --board
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -27,7 +27,7 @@ Usage
|
||||
Description
|
||||
-----------
|
||||
|
||||
Check or update installed :ref:`Platforms <platforms>` and
|
||||
Check or update installed :ref:`platforms` and
|
||||
:ref:`Libraries <librarymanager>`
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -27,8 +27,7 @@ Usage
|
||||
Description
|
||||
-----------
|
||||
|
||||
Install pre-built development :ref:`Platforms <platforms>` with related
|
||||
packages.
|
||||
Install pre-built development :ref:`platforms` with related packages.
|
||||
|
||||
There are several predefined aliases for packages, such as:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -27,7 +27,7 @@ Usage
|
||||
Description
|
||||
-----------
|
||||
|
||||
List installed :ref:`Platforms <platforms>`
|
||||
List installed :ref:`platforms`
|
||||
|
||||
Options
|
||||
~~~~~~~
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -27,7 +27,7 @@ Usage
|
||||
Description
|
||||
-----------
|
||||
|
||||
Search for development :ref:`Platforms <platforms>`
|
||||
Search for development :ref:`platforms`
|
||||
|
||||
Options
|
||||
~~~~~~~
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -27,7 +27,7 @@ Usage
|
||||
Description
|
||||
-----------
|
||||
|
||||
Show details about the installed :ref:`Platforms <platforms>`
|
||||
Show details about the installed :ref:`platforms`
|
||||
|
||||
|
||||
Examples
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -27,7 +27,7 @@ Usage
|
||||
Description
|
||||
-----------
|
||||
|
||||
Uninstall specified :ref:`Platforms <platforms>`
|
||||
Uninstall specified :ref:`platforms`
|
||||
|
||||
|
||||
Examples
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
.. Copyright 2014-present 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
|
||||
@@ -27,7 +27,7 @@ Usage
|
||||
Description
|
||||
-----------
|
||||
|
||||
Check or update installed :ref:`Platforms <platforms>`
|
||||
Check or update installed :ref:`platforms`
|
||||
|
||||
|
||||
Examples
|
||||
|
||||
2
examples
2
examples
Submodule examples updated: c06e843757...a5498135ba
@@ -14,7 +14,7 @@
|
||||
|
||||
import sys
|
||||
|
||||
VERSION = (2, 9, 1)
|
||||
VERSION = (2, 10, 0)
|
||||
__version__ = ".".join([str(s) for s in VERSION])
|
||||
|
||||
__title__ = "platformio"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "Adafruit Flora",
|
||||
"variant": "flora",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x239A", "0x8004"]
|
||||
]
|
||||
},
|
||||
@@ -36,7 +36,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "Bluefruit Micro",
|
||||
"variant": "bluefruitmicro",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x239A", "0x800A"]
|
||||
]
|
||||
},
|
||||
@@ -85,7 +85,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "Feather 32u4",
|
||||
"variant": "feather32u4",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x239A", "0x800C"]
|
||||
]
|
||||
},
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "LilyPad USB",
|
||||
"variant": "leonardo",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x1B4F", "0x9207"],
|
||||
["0x1B4F", "0x9208"]
|
||||
]
|
||||
@@ -164,7 +164,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "Arduino Esplora",
|
||||
"variant": "leonardo",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2341", "0x003C"],
|
||||
["0x2341", "0x803C"],
|
||||
["0x2A03", "0x003C"],
|
||||
@@ -237,7 +237,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "Arduino Leonardo",
|
||||
"variant": "leonardo",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2341", "0x0036"],
|
||||
["0x2341", "0x8036"],
|
||||
["0x2A03", "0x0036"],
|
||||
@@ -268,7 +268,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "Arduino Leonardo ETH",
|
||||
"variant": "leonardo",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2A03", "0x8040"],
|
||||
["0x2A03", "0x0040"]
|
||||
]
|
||||
@@ -402,7 +402,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "Arduino Micro",
|
||||
"variant": "micro",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2341", "0x0037"],
|
||||
["0x2341", "0x8037"],
|
||||
["0x2A03", "0x0037"],
|
||||
@@ -601,7 +601,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "Robot Control",
|
||||
"variant": "robot_control",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2341", "0x0038"],
|
||||
["0x2341", "0x8038"],
|
||||
["0x2A03", "0x0038"],
|
||||
@@ -632,7 +632,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "Robot Motor",
|
||||
"variant": "robot_motor",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2341", "0x0039"],
|
||||
["0x2341", "0x8039"],
|
||||
["0x2A03", "0x0039"],
|
||||
@@ -662,7 +662,7 @@
|
||||
"f_cpu": "16000000L",
|
||||
"mcu": "atmega328p",
|
||||
"variant": "standard",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2341", "0x0043"],
|
||||
["0x2341", "0x0001"],
|
||||
["0x2A03", "0x0043"]
|
||||
@@ -689,7 +689,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "Arduino Yun",
|
||||
"variant": "yun",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2341", "0x0041"],
|
||||
["0x2341", "0x8041"],
|
||||
["0x2A03", "0x0041"],
|
||||
@@ -721,7 +721,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "Arduino Yun Mini",
|
||||
"variant": "yun",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2A03", "0x8050"],
|
||||
["0x2A03", "0x0050"]
|
||||
]
|
||||
@@ -751,7 +751,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "Arduino Industrial 101",
|
||||
"variant": "yun",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2A03", "0x8056"],
|
||||
["0x2A03", "0x0056"]
|
||||
]
|
||||
@@ -781,7 +781,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "Linino One",
|
||||
"variant": "yun",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2A03", "0x8001"],
|
||||
["0x2A03", "0x0001"]
|
||||
]
|
||||
@@ -813,7 +813,7 @@
|
||||
"usb_product": "Arduino Due",
|
||||
"variant": "arduino_due_x",
|
||||
"ldscript": "sam3x8e.ld",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2341", "0x003D"],
|
||||
["0x2A03", "0x003D"]
|
||||
]
|
||||
@@ -843,7 +843,7 @@
|
||||
"usb_product": "Arduino Due",
|
||||
"variant": "arduino_due_x",
|
||||
"ldscript": "sam3x8e.ld",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2341", "0x003E"],
|
||||
["0x2A03", "0x003E"]
|
||||
]
|
||||
@@ -873,7 +873,7 @@
|
||||
"usb_product": "Arduino Zero",
|
||||
"variant": "arduino_zero",
|
||||
"ldscript": "flash_with_bootloader.ld",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2341", "0x804D"],
|
||||
["0x03EB", "0x2157"]
|
||||
]
|
||||
@@ -903,7 +903,7 @@
|
||||
"usb_product": "Arduino Zero",
|
||||
"variant": "arduino_zero",
|
||||
"ldscript": "flash_with_bootloader.ld",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2341", "0x804D"],
|
||||
["0x2341", "0x004D"],
|
||||
["0x2341", "0x824D"]
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
"ldscript": "sam3x8e.ld",
|
||||
"usb_product": "Digistump DigiX",
|
||||
"variant": "digispark_digix",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x16D0", "0x078A"]
|
||||
]
|
||||
},
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "EngduinoV1",
|
||||
"variant": "engduinov1",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x1B4F", "0x9208"]
|
||||
]
|
||||
},
|
||||
@@ -35,7 +35,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "EngduinoV2",
|
||||
"variant": "engduinov2",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x1B4F", "0x9208"]
|
||||
]
|
||||
},
|
||||
@@ -63,7 +63,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "EngduinoV3",
|
||||
"variant": "engduinov3",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x1B4F", "0x9208"]
|
||||
]
|
||||
},
|
||||
|
||||
@@ -133,7 +133,10 @@
|
||||
"flash_mode": "qio",
|
||||
"ldscript": "esp8266.flash.4m1m.ld",
|
||||
"mcu": "esp8266",
|
||||
"variant": "nodemcu"
|
||||
"variant": "nodemcu",
|
||||
"hwids": [
|
||||
["0x10C4", "0xEA60"]
|
||||
]
|
||||
},
|
||||
"frameworks": ["arduino", "simba"],
|
||||
"name": "NodeMCU 0.9 (ESP-12 Module)",
|
||||
@@ -158,7 +161,10 @@
|
||||
"flash_mode": "dio",
|
||||
"ldscript": "esp8266.flash.4m1m.ld",
|
||||
"mcu": "esp8266",
|
||||
"variant": "nodemcu"
|
||||
"variant": "nodemcu",
|
||||
"hwids": [
|
||||
["0x10C4", "0xEA60"]
|
||||
]
|
||||
},
|
||||
"frameworks": ["arduino", "simba"],
|
||||
"name": "NodeMCU 1.0 (ESP-12E Module)",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"mcu": "ARCv2EM",
|
||||
"usb_product": "Genuino 101",
|
||||
"variant": "arduino_101",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x8087", "0x0AB6"]
|
||||
]
|
||||
},
|
||||
@@ -18,11 +18,8 @@
|
||||
"upload": {
|
||||
"maximum_ram_size": 81920,
|
||||
"maximum_size": 196608,
|
||||
"use_1200bps_touch": true,
|
||||
"protocol": "script",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": false
|
||||
"require_upload_port" : true
|
||||
},
|
||||
"url": "https://www.arduino.cc/en/Main/ArduinoBoard101",
|
||||
"vendor": "Intel"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"cpu": "fpga",
|
||||
"mcu": "ice40hx1k",
|
||||
"variant": "1k",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x0403", "0x6010"]
|
||||
]
|
||||
},
|
||||
@@ -28,7 +28,7 @@
|
||||
"cpu": "fpga",
|
||||
"mcu": "ice40hx1k",
|
||||
"variant": "1k",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x0403", "0x6010"]
|
||||
]
|
||||
},
|
||||
|
||||
@@ -16,8 +16,7 @@
|
||||
"maximum_size": 520192,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://store.digilentinc.com/cerebot-32mx4-limited-time-see-chipkit-pro-mx4/",
|
||||
"vendor": "Digilent"
|
||||
@@ -40,8 +39,7 @@
|
||||
"maximum_size": 520192,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://www.microchip.com/Developmenttools/ProductDetails.aspx?PartNO=TDGL004",
|
||||
"vendor": "Digilent"
|
||||
@@ -64,8 +62,7 @@
|
||||
"maximum_size": 126976,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://store.digilentinc.com/chipkit-mx3-microcontroller-board-with-pmod-headers/",
|
||||
"vendor": "Digilent"
|
||||
@@ -88,8 +85,7 @@
|
||||
"maximum_size": 520192,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://store.digilentinc.com/chipkit-pro-mx4-embedded-systems-trainer-board/",
|
||||
"vendor": "Digilent"
|
||||
@@ -112,8 +108,7 @@
|
||||
"maximum_size": 520192,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://store.digilentinc.com/chipkit-pro-mx7-advanced-peripherals-embedded-systems-trainer-board/",
|
||||
"vendor": "Digilent"
|
||||
@@ -136,8 +131,7 @@
|
||||
"maximum_size": 122880,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://www.element14.com/community/community/knode/dev_platforms_kits/element14_dev_kits/microchip-chipkit/chipkit_pi",
|
||||
"vendor": "element14"
|
||||
@@ -160,8 +154,7 @@
|
||||
"maximum_size": 126976,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://store.digilentinc.com/chipkit-cmod-breadboardable-mz-microcontroller-board/",
|
||||
"vendor": "Digilent"
|
||||
@@ -184,8 +177,7 @@
|
||||
"maximum_size": 520192,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://www.seeedstudio.com/wiki/CUI32Stem",
|
||||
"vendor": "SeeedStudio"
|
||||
@@ -208,8 +200,7 @@
|
||||
"maximum_size": 520192,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://www.schmalzhaus.com/UBW32/",
|
||||
"vendor": "UBW32"
|
||||
@@ -232,8 +223,7 @@
|
||||
"maximum_size": 520192,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://www.schmalzhaus.com/UBW32/",
|
||||
"vendor": "UBW32"
|
||||
@@ -256,8 +246,7 @@
|
||||
"maximum_size": 520192,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://www.pontech.com/productdisplay/uav100",
|
||||
"vendor": "PONTECH"
|
||||
@@ -280,8 +269,7 @@
|
||||
"maximum_size": 122880,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://store.digilentinc.com/chipkit-dp32-dip-package-prototyping-microcontroller-board/",
|
||||
"vendor": "Digilent"
|
||||
@@ -304,8 +292,7 @@
|
||||
"maximum_size": 122880,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://fubarino.org/mini/",
|
||||
"vendor": "Fubarino"
|
||||
@@ -328,8 +315,7 @@
|
||||
"maximum_size": 520192,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://fubarino.org/sd/index.html",
|
||||
"vendor": "Fubarino"
|
||||
@@ -352,8 +338,7 @@
|
||||
"maximum_size": 520192,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://store.digilentinc.com/chipkit-max32-microcontroller-board-with-mega-r3-headers/",
|
||||
"vendor": "Digilent"
|
||||
@@ -376,8 +361,7 @@
|
||||
"maximum_size": 258048,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "https://www.olimex.com/Products/Duino/PIC32/PIC32-PINGUINO/open-source-hardware",
|
||||
"vendor": "Olimex"
|
||||
@@ -400,8 +384,7 @@
|
||||
"maximum_size": 520192,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://www.4dsystems.com.au/product/Picadillo_35T/",
|
||||
"vendor": "4DSystems"
|
||||
@@ -424,8 +407,7 @@
|
||||
"maximum_size": 520192,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://quick240.com/quicki/",
|
||||
"vendor": "PONTECH"
|
||||
@@ -448,8 +430,7 @@
|
||||
"maximum_size": 520192,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://store.digilentinc.com/chipkit-uc32-basic-microcontroller-board-with-uno-r3-headers/",
|
||||
"vendor": "Digilent"
|
||||
@@ -472,8 +453,7 @@
|
||||
"maximum_size": 126976,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://store.digilentinc.com/chipkit-uno32-basic-microcontroller-board-retired-see-chipkit-uc32/",
|
||||
"vendor": "Digilent"
|
||||
@@ -496,8 +476,7 @@
|
||||
"maximum_size": 520192,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://store.digilentinc.com/chipkit-wf32-wifi-enabled-microntroller-board-with-uno-r3-headers/",
|
||||
"vendor": "Digilent"
|
||||
@@ -520,8 +499,7 @@
|
||||
"maximum_size": 2080768,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://store.digilentinc.com/chipkit-wi-fire-wifi-enabled-mz-microcontroller-board/",
|
||||
"vendor": "Digilent"
|
||||
@@ -544,8 +522,7 @@
|
||||
"maximum_size": 2080768,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://store.digilentinc.com/",
|
||||
"vendor": "Digilent"
|
||||
@@ -561,17 +538,16 @@
|
||||
"variant": "OpenBCI"
|
||||
},
|
||||
"frameworks": ["arduino"],
|
||||
"name": "Digilent OpenScope",
|
||||
"name": "OpenBCI 32bit",
|
||||
"platform": "microchippic32",
|
||||
"upload": {
|
||||
"maximum_ram_size": 32768,
|
||||
"maximum_size": 122880,
|
||||
"protocol": "stk500v2",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200,
|
||||
"wait_for_upload_port": true
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "http://store.digilentinc.com/",
|
||||
"vendor": "Digilent"
|
||||
"url": "http://shop.openbci.com/",
|
||||
"vendor": "OpenBCI"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
"f_cpu": "16000000L",
|
||||
"mcu": "atmega32u4",
|
||||
"variant": "32u4",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2341", "0x8036"]
|
||||
]
|
||||
},
|
||||
|
||||
@@ -129,5 +129,27 @@
|
||||
},
|
||||
"url": "https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board",
|
||||
"vendor": "Mcudude"
|
||||
},
|
||||
|
||||
"mightycore8535": {
|
||||
"build": {
|
||||
"core": "MightyCore",
|
||||
"extra_flags": "-DARDUINO_ARCH_AVR -DARDUINO_AVR_ATmega8535",
|
||||
"f_cpu": "16000000L",
|
||||
"mcu": "atmega16",
|
||||
"variant": "mightycore"
|
||||
},
|
||||
"frameworks": ["arduino"],
|
||||
"name": "MightyCore ATmega8535",
|
||||
"platform": "atmelavr",
|
||||
"upload": {
|
||||
"maximum_ram_size": 512,
|
||||
"maximum_size": 7680,
|
||||
"protocol": "arduino",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "https://www.tindie.com/products/MCUdude/dip-40-arduino-compatible-development-board",
|
||||
"vendor": "Mcudude"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,6 +43,28 @@
|
||||
"vendor": "BitWizard"
|
||||
},
|
||||
|
||||
"emonpi": {
|
||||
"build": {
|
||||
"core": "arduino",
|
||||
"extra_flags": "-DARDUINO_ARCH_AVR -DAVR_EMONPI",
|
||||
"f_cpu": "16000000L",
|
||||
"mcu": "atmega328p",
|
||||
"variant": "standard"
|
||||
},
|
||||
"frameworks": ["arduino"],
|
||||
"name": "emonPi",
|
||||
"platform": "atmelavr",
|
||||
"upload": {
|
||||
"maximum_ram_size": 2048,
|
||||
"maximum_size": 30720,
|
||||
"protocol": "arduino",
|
||||
"require_upload_port" : true,
|
||||
"speed": 115200
|
||||
},
|
||||
"url": "https://github.com/openenergymonitor/emonpi",
|
||||
"vendor": "OpenEnergyMonitor"
|
||||
},
|
||||
|
||||
"sainSmartDue": {
|
||||
"build": {
|
||||
"core": "arduino",
|
||||
@@ -53,7 +75,7 @@
|
||||
"usb_product": "Arduino Due",
|
||||
"variant": "arduino_due_x",
|
||||
"ldscript": "sam3x8e.ld",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2341", "0x003E"]
|
||||
]
|
||||
},
|
||||
@@ -82,7 +104,7 @@
|
||||
"usb_product": "Arduino Due",
|
||||
"variant": "arduino_due_x",
|
||||
"ldscript": "sam3x8e.ld",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2341", "0x003E"]
|
||||
]
|
||||
},
|
||||
@@ -326,7 +348,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "RedBearLab Blend",
|
||||
"variant": "leonardo",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2341", "0x8036"]
|
||||
]
|
||||
},
|
||||
@@ -355,7 +377,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "RedBearLab Blend",
|
||||
"variant": "micro",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x03EB", "0x2404"]
|
||||
]
|
||||
},
|
||||
@@ -384,7 +406,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "RedBearLab Blend",
|
||||
"variant": "micro",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x03EB", "0x2404"]
|
||||
]
|
||||
},
|
||||
@@ -435,7 +457,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "LightUp",
|
||||
"variant": "leonardo",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x1d50", "0x6096"]
|
||||
]
|
||||
},
|
||||
@@ -531,7 +553,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"variant" : "quirkbot",
|
||||
"usb_product": "Quirkbot",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x2886", "0xf004"],
|
||||
["0x2886", "0xf005"],
|
||||
["0x2886", "0xf006"],
|
||||
@@ -738,5 +760,65 @@
|
||||
},
|
||||
"url": "http://www.atmel.com/devices/ATTINY85.aspx",
|
||||
"vendor": "Generic ATTiny"
|
||||
},
|
||||
|
||||
"arduboy": {
|
||||
"build": {
|
||||
"core": "arduino",
|
||||
"extra_flags": "-DARDUINO_ARCH_AVR -DARDUINO_AVR_ARDUBOY -DARDUBOY_10",
|
||||
"f_cpu": "16000000L",
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "Arduboy",
|
||||
"variant": "leonardo",
|
||||
"hwids": [
|
||||
["0x2341", "0x0036"],
|
||||
["0x2341", "0x8036"]
|
||||
]
|
||||
},
|
||||
"frameworks": ["arduino"],
|
||||
"name": "Arduboy",
|
||||
"platform": "atmelavr",
|
||||
"upload": {
|
||||
"disable_flushing": true,
|
||||
"maximum_ram_size": 2560,
|
||||
"maximum_size": 28672,
|
||||
"protocol": "avr109",
|
||||
"require_upload_port" : true,
|
||||
"speed": 57600,
|
||||
"use_1200bps_touch": true,
|
||||
"wait_for_upload_port": true
|
||||
},
|
||||
"url": "https://www.arduboy.com",
|
||||
"vendor": "Arduboy"
|
||||
},
|
||||
|
||||
"arduboy_devkit": {
|
||||
"build": {
|
||||
"core": "arduino",
|
||||
"extra_flags": "-DARDUINO_ARCH_AVR -DARDUINO_AVR_ARDUBOY_DEVKIT -DAB_DEVKIT",
|
||||
"f_cpu": "16000000L",
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "Arduboy DevKit",
|
||||
"variant": "leonardo",
|
||||
"hwids": [
|
||||
["0x2341", "0x0036"],
|
||||
["0x2341", "0x8036"]
|
||||
]
|
||||
},
|
||||
"frameworks": ["arduino"],
|
||||
"name": "Arduboy DevKit",
|
||||
"platform": "atmelavr",
|
||||
"upload": {
|
||||
"disable_flushing": true,
|
||||
"maximum_ram_size": 2560,
|
||||
"maximum_size": 28672,
|
||||
"protocol": "avr109",
|
||||
"require_upload_port" : true,
|
||||
"speed": 57600,
|
||||
"use_1200bps_touch": true,
|
||||
"wait_for_upload_port": true
|
||||
},
|
||||
"url": "https://www.arduboy.com",
|
||||
"vendor": "Arduboy"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,5 +82,22 @@
|
||||
},
|
||||
"url": "https://developer.mbed.org/platforms/EFM32-Happy-Gecko/",
|
||||
"vendor": "Silicon Labs"
|
||||
},
|
||||
|
||||
"efm32pg_stk3401": {
|
||||
"build": {
|
||||
"f_cpu": "40000000L",
|
||||
"cpu": "cortex-m4",
|
||||
"mcu": "efm32pg1b200f256"
|
||||
},
|
||||
"frameworks": ["mbed"],
|
||||
"name": "Silicon Labs SLSTK3401A (Pearl Gecko)",
|
||||
"platform": "siliconlabsefm32",
|
||||
"upload": {
|
||||
"maximum_ram_size": 32768,
|
||||
"maximum_size": 262144
|
||||
},
|
||||
"url": "https://developer.mbed.org/platforms/EFM32-Pearl-Gecko/",
|
||||
"vendor": "Silicon Labs"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "SparkFun Pro Micro",
|
||||
"variant": "sparkfun_promicro",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x1B4F", "0x9205"],
|
||||
["0x1B4F", "0x9206"]
|
||||
]
|
||||
@@ -57,7 +57,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "SparkFun Pro Micro",
|
||||
"variant": "sparkfun_promicro",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x1B4F", "0x9203"],
|
||||
["0x1B4F", "0x9204"]
|
||||
]
|
||||
@@ -86,7 +86,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "SparkFun Fio v3",
|
||||
"variant": "sparkfun_promicro",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x1B4F", "0xF100"],
|
||||
["0x1B4F", "0xF101"]
|
||||
]
|
||||
@@ -115,7 +115,7 @@
|
||||
"mcu": "atmega32u4",
|
||||
"usb_product": "SparkFun MaKey",
|
||||
"variant": "sparkfun_promicro",
|
||||
"hwid": [
|
||||
"hwids": [
|
||||
["0x1B4F", "0x2B74"],
|
||||
["0x1B4F", "0x2B75"]
|
||||
]
|
||||
|
||||
@@ -14,7 +14,8 @@
|
||||
"platform": "ststm32",
|
||||
"upload": {
|
||||
"maximum_ram_size": 131072,
|
||||
"maximum_size": 1048576
|
||||
"maximum_size": 1048576,
|
||||
"protocol": "stlink"
|
||||
},
|
||||
"url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF252419",
|
||||
"vendor": "ST"
|
||||
@@ -34,7 +35,8 @@
|
||||
"platform": "ststm32",
|
||||
"upload": {
|
||||
"maximum_ram_size": 16384,
|
||||
"maximum_size": 131072
|
||||
"maximum_size": 131072,
|
||||
"protocol": "stlink"
|
||||
},
|
||||
"url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF258515",
|
||||
"vendor": "ST"
|
||||
@@ -54,7 +56,8 @@
|
||||
"platform": "ststm32",
|
||||
"upload": {
|
||||
"maximum_ram_size": 49152,
|
||||
"maximum_size": 262144
|
||||
"maximum_size": 262144,
|
||||
"protocol": "stlink"
|
||||
},
|
||||
"url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF254044",
|
||||
"vendor": "ST"
|
||||
@@ -70,7 +73,8 @@
|
||||
"platform": "ststm32",
|
||||
"upload": {
|
||||
"maximum_ram_size": 8192,
|
||||
"maximum_size": 131072
|
||||
"maximum_size": 131072,
|
||||
"protocol": "stlink"
|
||||
},
|
||||
"url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF250863",
|
||||
"vendor": "ST"
|
||||
@@ -86,7 +90,8 @@
|
||||
"platform": "ststm32",
|
||||
"upload": {
|
||||
"maximum_ram_size": 8192,
|
||||
"maximum_size": 65536
|
||||
"maximum_size": 65536,
|
||||
"protocol": "stlink"
|
||||
},
|
||||
"url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF253215",
|
||||
"vendor": "ST"
|
||||
@@ -102,7 +107,8 @@
|
||||
"platform": "ststm32",
|
||||
"upload": {
|
||||
"maximum_ram_size": 16384,
|
||||
"maximum_size": 65536
|
||||
"maximum_size": 65536,
|
||||
"protocol": "stlink"
|
||||
},
|
||||
"url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF260318",
|
||||
"vendor": "ST"
|
||||
@@ -118,7 +124,8 @@
|
||||
"platform": "ststm32",
|
||||
"upload": {
|
||||
"maximum_ram_size": 65536,
|
||||
"maximum_size": 262144
|
||||
"maximum_size": 262144,
|
||||
"protocol": "stlink"
|
||||
},
|
||||
"url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF259098",
|
||||
"vendor": "ST"
|
||||
@@ -134,7 +141,8 @@
|
||||
"platform": "ststm32",
|
||||
"upload": {
|
||||
"maximum_ram_size": 262144,
|
||||
"maximum_size": 2097152
|
||||
"maximum_size": 2097152,
|
||||
"protocol": "stlink"
|
||||
},
|
||||
"url": "http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF259090",
|
||||
"vendor": "ST"
|
||||
@@ -425,7 +433,8 @@
|
||||
"platform": "ststm32",
|
||||
"upload": {
|
||||
"maximum_ram_size": 8192,
|
||||
"maximum_size": 65536
|
||||
"maximum_size": 65536,
|
||||
"protocol": "stlink"
|
||||
},
|
||||
"url": "http://www.st.com/web/en/catalog/tools/PF260319",
|
||||
"vendor": "ST"
|
||||
@@ -441,7 +450,8 @@
|
||||
"platform": "ststm32",
|
||||
"upload": {
|
||||
"maximum_ram_size": 12288,
|
||||
"maximum_size": 65536
|
||||
"maximum_size": 65536,
|
||||
"protocol": "stlink"
|
||||
},
|
||||
"url": "http://www.st.com/web/en/catalog/tools/PF260318",
|
||||
"vendor": "ST"
|
||||
@@ -457,7 +467,8 @@
|
||||
"platform": "ststm32",
|
||||
"upload": {
|
||||
"maximum_ram_size": 393216,
|
||||
"maximum_size": 1048576
|
||||
"maximum_size": 1048576,
|
||||
"protocol": "stlink"
|
||||
},
|
||||
"url": "http://www.st.com/web/catalog/tools/FM116/CL1620/SC959/SS1532/LN1848/PF262395",
|
||||
"vendor": "ST"
|
||||
@@ -473,7 +484,8 @@
|
||||
"platform": "ststm32",
|
||||
"upload": {
|
||||
"maximum_ram_size": 131072,
|
||||
"maximum_size": 1048576
|
||||
"maximum_size": 1048576,
|
||||
"protocol": "stlink"
|
||||
},
|
||||
"url": "http://www.st.com/web/catalog/tools/FM116/CL1620/SC959/SS1532/LN1848/PF261635",
|
||||
"vendor": "ST"
|
||||
@@ -574,6 +586,22 @@
|
||||
"url": "https://developer.mbed.org/platforms/ST-Nucleo-L073RZ/",
|
||||
"vendor": "ST"
|
||||
},
|
||||
"nucleo_l031k6": {
|
||||
"build": {
|
||||
"f_cpu": "32000000L",
|
||||
"cpu": "cortex-m0plus",
|
||||
"mcu": "stm32l031k6t6"
|
||||
},
|
||||
"frameworks": ["mbed"],
|
||||
"name": "ST Nucleo L031K6",
|
||||
"platform": "ststm32",
|
||||
"upload": {
|
||||
"maximum_ram_size": 8192,
|
||||
"maximum_size": 32768
|
||||
},
|
||||
"url": "https://developer.mbed.org/platforms/ST-Nucleo-L031K6/",
|
||||
"vendor": "ST"
|
||||
},
|
||||
"seeedArchMax": {
|
||||
"build": {
|
||||
"f_cpu": "168000000L",
|
||||
@@ -605,5 +633,21 @@
|
||||
},
|
||||
"url": "https://developer.mbed.org/platforms/ST-B96B-F446VE/",
|
||||
"vendor": "96Boards"
|
||||
},
|
||||
"mts_mdot_f411re": {
|
||||
"build": {
|
||||
"f_cpu": "100000000L",
|
||||
"cpu": "cortex-m4",
|
||||
"mcu": "stm32f411ret6"
|
||||
},
|
||||
"frameworks": ["mbed"],
|
||||
"name": "MultiTech mDot F411",
|
||||
"platform": "ststm32",
|
||||
"upload": {
|
||||
"maximum_ram_size": 131072,
|
||||
"maximum_size": 524288
|
||||
},
|
||||
"url": "https://developer.mbed.org/platforms/MTS-mDot-F411/",
|
||||
"vendor": "MultiTech"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
"build": {
|
||||
"core": "msp430",
|
||||
"f_cpu": "16000000L",
|
||||
"mcu": "msp430g2553",
|
||||
"mcu": "msp430fr4133",
|
||||
"variant": "launchpad_fr4133"
|
||||
},
|
||||
"frameworks": ["energia"],
|
||||
@@ -147,7 +147,7 @@
|
||||
"build": {
|
||||
"core": "msp430",
|
||||
"f_cpu": "16000000L",
|
||||
"mcu": "msp430g2553",
|
||||
"mcu": "msp430fr6989",
|
||||
"variant": "launchpad_fr6989"
|
||||
},
|
||||
"frameworks": ["energia"],
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import base64
|
||||
import json
|
||||
import sys
|
||||
from os import environ
|
||||
@@ -99,6 +100,12 @@ DefaultEnvironment(
|
||||
)
|
||||
|
||||
env = DefaultEnvironment()
|
||||
|
||||
# decode common variables
|
||||
for k in commonvars.keys():
|
||||
if k in env:
|
||||
env[k] = base64.b64decode(env[k])
|
||||
|
||||
env.Prepend(LIBPATH=[join("$PIOPACKAGES_DIR", "ldscripts")])
|
||||
|
||||
if "BOARD" in env:
|
||||
|
||||
@@ -49,23 +49,24 @@ def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621
|
||||
env.AutodetectUploadPort()
|
||||
env.Append(UPLOADERFLAGS=["-P", '"$UPLOAD_PORT"'])
|
||||
|
||||
if env.subst("$BOARD") == "raspduino":
|
||||
if env.subst("$BOARD") in ("raspduino", "emonpi"):
|
||||
|
||||
def _rpi_sysgpio(path, value):
|
||||
with open(path, "w") as f:
|
||||
f.write(str(value))
|
||||
|
||||
_rpi_sysgpio("/sys/class/gpio/export", 18)
|
||||
_rpi_sysgpio("/sys/class/gpio/gpio18/direction", "out")
|
||||
_rpi_sysgpio("/sys/class/gpio/gpio18/value", 1)
|
||||
pin_num = 18 if env.subst("$BOARD") == "raspduino" else 4
|
||||
_rpi_sysgpio("/sys/class/gpio/export", pin_num)
|
||||
_rpi_sysgpio("/sys/class/gpio/gpio%d/direction" % pin_num, "out")
|
||||
_rpi_sysgpio("/sys/class/gpio/gpio%d/value" % pin_num, 1)
|
||||
sleep(0.1)
|
||||
_rpi_sysgpio("/sys/class/gpio/gpio18/value", 0)
|
||||
_rpi_sysgpio("/sys/class/gpio/unexport", 18)
|
||||
_rpi_sysgpio("/sys/class/gpio/gpio%d/value" % pin_num, 0)
|
||||
_rpi_sysgpio("/sys/class/gpio/unexport", pin_num)
|
||||
else:
|
||||
if not upload_options.get("disable_flushing", False):
|
||||
env.FlushSerialBuffer("$UPLOAD_PORT")
|
||||
|
||||
before_ports = [i['port'] for i in get_serialports()]
|
||||
before_ports = get_serialports()
|
||||
|
||||
if upload_options.get("use_1200bps_touch", False):
|
||||
env.TouchSerialPort("$UPLOAD_PORT", 1200)
|
||||
@@ -148,10 +149,9 @@ AlwaysBuild(upload)
|
||||
# Target: Upload EEPROM data (from EEMEM directive)
|
||||
#
|
||||
|
||||
uploadeep = env.Alias(
|
||||
"uploadeep",
|
||||
env.ElfToEep(join("$BUILD_DIR", "firmware"), target_elf),
|
||||
[BeforeUpload, "$UPLOADEEPCMD"])
|
||||
uploadeep = env.Alias("uploadeep",
|
||||
env.ElfToEep(join("$BUILD_DIR", "firmware"), target_elf),
|
||||
[BeforeUpload, "$UPLOADEEPCMD"])
|
||||
AlwaysBuild(uploadeep)
|
||||
|
||||
#
|
||||
|
||||
@@ -25,8 +25,6 @@ from platformio.util import get_serialports
|
||||
|
||||
|
||||
def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621
|
||||
env.AutodetectUploadPort()
|
||||
|
||||
board_type = env.subst("$BOARD")
|
||||
if "zero" not in board_type:
|
||||
env.Append(
|
||||
@@ -41,7 +39,7 @@ def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621
|
||||
if not upload_options.get("disable_flushing", False):
|
||||
env.FlushSerialBuffer("$UPLOAD_PORT")
|
||||
|
||||
before_ports = [i['port'] for i in get_serialports()]
|
||||
before_ports = get_serialports()
|
||||
|
||||
if upload_options.get("use_1200bps_touch", False):
|
||||
env.TouchSerialPort("$UPLOAD_PORT", 1200)
|
||||
@@ -111,8 +109,7 @@ env.Append(
|
||||
],
|
||||
|
||||
CPPDEFINES=[
|
||||
"USBCON",
|
||||
'USB_MANUFACTURER="PlatformIO"'
|
||||
"USBCON"
|
||||
],
|
||||
|
||||
LINKFLAGS=[
|
||||
@@ -177,8 +174,9 @@ AlwaysBuild(target_size)
|
||||
if env.subst("$BOARD") == "zero":
|
||||
upload = env.Alias(["upload", "uploadlazy"], target_firm, "$UPLOADCMD")
|
||||
else:
|
||||
upload = env.Alias(["upload", "uploadlazy"], target_firm,
|
||||
[BeforeUpload, "$UPLOADCMD"])
|
||||
upload = env.Alias(
|
||||
["upload", "uploadlazy"], target_firm,
|
||||
[env.AutodetectUploadPort, BeforeUpload, "$UPLOADCMD"])
|
||||
|
||||
AlwaysBuild(upload)
|
||||
|
||||
|
||||
@@ -346,7 +346,7 @@ AlwaysBuild(target_size)
|
||||
|
||||
target_upload = env.Alias(
|
||||
["upload", "uploadlazy", "uploadfs"], target_firm,
|
||||
[lambda target, source, env: env.AutodetectUploadPort(), "$UPLOADCMD"])
|
||||
[env.AutodetectUploadPort, "$UPLOADCMD"])
|
||||
env.AlwaysBuild(target_upload)
|
||||
|
||||
|
||||
|
||||
@@ -179,8 +179,8 @@ ARDUINO_VERSION = int(
|
||||
ARDUINO_USBDEFINES = []
|
||||
if "usb_product" in BOARD_BUILDOPTS:
|
||||
ARDUINO_USBDEFINES = [
|
||||
"USB_VID=${BOARD_OPTIONS['build']['hwid'][0][0]}",
|
||||
"USB_PID=${BOARD_OPTIONS['build']['hwid'][0][1]}",
|
||||
"USB_VID=${BOARD_OPTIONS['build']['hwids'][0][0]}",
|
||||
"USB_PID=${BOARD_OPTIONS['build']['hwids'][0][1]}",
|
||||
'USB_PRODUCT=\\"%s\\"' % (env.subst(
|
||||
"${BOARD_OPTIONS['build']['usb_product']}").replace('"', "")),
|
||||
'USB_MANUFACTURER=\\"%s\\"' % (env.subst(
|
||||
|
||||
@@ -71,7 +71,7 @@ MBED_VARIANTS = {
|
||||
"samr21_xpro": "SAMR21G18A",
|
||||
"saml21_xpro_b": "SAML21J18A",
|
||||
"samd21_xpro": "SAMD21J18A",
|
||||
"bbcmicrobit": "NRF51822"
|
||||
"bbcmicrobit": "NRF51_MICROBIT"
|
||||
}
|
||||
|
||||
MBED_LIBS_MAP = {
|
||||
@@ -149,6 +149,18 @@ def add_mbedlib(libname, libar):
|
||||
if (not any(f.endswith(".h") for f in files) and
|
||||
basename(root) not in sysincdirs):
|
||||
continue
|
||||
|
||||
target_includes = (
|
||||
"TARGET_%s" % env.get(
|
||||
"BOARD_OPTIONS", {}).get("vendor", "").upper(),
|
||||
"TARGET_%s" % variant,
|
||||
"TARGET_CORTEX_M"
|
||||
)
|
||||
|
||||
if "TARGET_" in root:
|
||||
if all([p not in root.upper() for p in target_includes]):
|
||||
continue
|
||||
|
||||
var_dir = join("$BUILD_DIR", "FrameworkMbed%sInc%d" %
|
||||
(libname.upper(), crc32(root)))
|
||||
if var_dir in env.get("CPPPATH"):
|
||||
@@ -199,7 +211,7 @@ def get_build_flags(data):
|
||||
|
||||
def _mbed_whole_archive_hook(libs_):
|
||||
if (not isinstance(libs_, list) or
|
||||
env.get("BOARD_OPTIONS", {}).get("platform") != "ststm32"):
|
||||
env.get("BOARD_OPTIONS", {}).get("platform") == "nordicnrf51"):
|
||||
return libs_
|
||||
|
||||
_dynlibs = []
|
||||
|
||||
@@ -21,20 +21,6 @@ from os.path import join
|
||||
from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Builder, Default,
|
||||
DefaultEnvironment)
|
||||
|
||||
|
||||
def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621
|
||||
|
||||
if "program" in COMMAND_LINE_TARGETS:
|
||||
return
|
||||
|
||||
env.AutodetectUploadPort()
|
||||
env.Prepend(UPLOADERFLAGS=['"$UPLOAD_PORT"'])
|
||||
|
||||
if env.get("BOARD_OPTIONS", {}).get("upload", {}).get(
|
||||
"use_1200bps_touch", False):
|
||||
env.TouchSerialPort("$UPLOAD_PORT", 1200)
|
||||
|
||||
|
||||
env = DefaultEnvironment()
|
||||
|
||||
env.Replace(
|
||||
@@ -112,8 +98,11 @@ env.Replace(
|
||||
SIZEPRINTCMD='"$SIZETOOL" -B -d $SOURCES',
|
||||
|
||||
UPLOADER=join("$PIOPACKAGES_DIR", "tool-arduino101load", "arduino101load"),
|
||||
UPLOADERFLAGS=[
|
||||
'"$UPLOAD_PORT"'
|
||||
],
|
||||
DFUUTIL=join("$PIOPACKAGES_DIR", "tool-arduino101load", "dfu-util"),
|
||||
UPLOADCMD='"$UPLOADER" $DFUUTIL $SOURCES $UPLOADERFLAGS verbose',
|
||||
UPLOADCMD='"$UPLOADER" "$DFUUTIL" $SOURCES $UPLOADERFLAGS verbose',
|
||||
|
||||
PROGNAME="firmware",
|
||||
PROGSUFFIX=".elf"
|
||||
@@ -189,8 +178,8 @@ AlwaysBuild(target_size)
|
||||
# Target: Upload firmware
|
||||
#
|
||||
|
||||
upload = env.Alias(
|
||||
["upload", "uploadlazy"], target_firm, [BeforeUpload, "$UPLOADCMD"])
|
||||
upload = env.Alias(["upload", "uploadlazy"], target_firm,
|
||||
[env.AutodetectUploadPort, "$UPLOADCMD"])
|
||||
AlwaysBuild(upload)
|
||||
|
||||
#
|
||||
|
||||
@@ -21,12 +21,6 @@ from os.path import join
|
||||
from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Builder, Default,
|
||||
DefaultEnvironment)
|
||||
|
||||
|
||||
def BeforeUpload(target, source, env): # pylint: disable=W0613,W0621
|
||||
|
||||
env.AutodetectUploadPort()
|
||||
env.Prepend(UPLOADERFLAGS=["-d", '"$UPLOAD_PORT"'])
|
||||
|
||||
env = DefaultEnvironment()
|
||||
|
||||
env.Replace(
|
||||
@@ -86,7 +80,8 @@ env.Replace(
|
||||
|
||||
UPLOADER=join("$PIOPACKAGES_DIR", "tool-pic32prog", "pic32prog"),
|
||||
UPLOADERFLAGS=[
|
||||
"-b", "$UPLOAD_SPEED"
|
||||
"-b", "$UPLOAD_SPEED",
|
||||
"-d", '"$UPLOAD_PORT"'
|
||||
],
|
||||
UPLOADCMD='"$UPLOADER" $UPLOADERFLAGS $SOURCES',
|
||||
|
||||
@@ -179,8 +174,8 @@ AlwaysBuild(target_size)
|
||||
# Target: Upload firmware
|
||||
#
|
||||
|
||||
upload = env.Alias(
|
||||
["upload", "uploadlazy"], target_firm, [BeforeUpload, "$UPLOADCMD"])
|
||||
upload = env.Alias(["upload", "uploadlazy"], target_firm,
|
||||
[env.AutodetectUploadPort, "$UPLOADCMD"])
|
||||
AlwaysBuild(upload)
|
||||
|
||||
#
|
||||
|
||||
@@ -63,9 +63,8 @@ AlwaysBuild(target_size)
|
||||
#
|
||||
|
||||
if env.subst("$BOARD") == "rfduino":
|
||||
upload = env.Alias(
|
||||
["upload", "uploadlazy"], target_firm,
|
||||
[lambda target, source, env: env.AutodetectUploadPort(), "$UPLOADCMD"])
|
||||
upload = env.Alias(["upload", "uploadlazy"], target_firm,
|
||||
[env.AutodetectUploadPort, "$UPLOADCMD"])
|
||||
else:
|
||||
upload = env.Alias(["upload", "uploadlazy"], target_firm, env.UploadToDisk)
|
||||
AlwaysBuild(upload)
|
||||
|
||||
@@ -17,19 +17,10 @@
|
||||
"""
|
||||
|
||||
from os.path import join
|
||||
from shutil import copyfile
|
||||
|
||||
from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Default,
|
||||
DefaultEnvironment, SConscript)
|
||||
|
||||
|
||||
def UploadToDisk(target, source, env): # pylint: disable=W0613,W0621
|
||||
env.AutodetectUploadPort()
|
||||
copyfile(join(env.subst("$BUILD_DIR"), "firmware.bin"),
|
||||
join(env.subst("$UPLOAD_PORT"), "firmware.bin"))
|
||||
print("Firmware has been successfully uploaded.\n"
|
||||
"Please restart your board.")
|
||||
|
||||
env = DefaultEnvironment()
|
||||
|
||||
SConscript(env.subst(join("$PIOBUILDER_DIR", "scripts", "basearm.py")))
|
||||
@@ -60,7 +51,7 @@ AlwaysBuild(target_size)
|
||||
# Target: Upload by default .bin file
|
||||
#
|
||||
|
||||
upload = env.Alias(["upload", "uploadlazy"], target_firm, UploadToDisk)
|
||||
upload = env.Alias(["upload", "uploadlazy"], target_firm, env.UploadToDisk)
|
||||
AlwaysBuild(upload)
|
||||
|
||||
#
|
||||
|
||||
@@ -100,8 +100,7 @@ AlwaysBuild(target_size)
|
||||
#
|
||||
|
||||
if "mbed" in env.subst("$FRAMEWORK") and not env.subst("$UPLOAD_PROTOCOL"):
|
||||
upload = env.Alias(["upload", "uploadlazy"],
|
||||
target_firm, env.UploadToDisk)
|
||||
upload = env.Alias(["upload", "uploadlazy"], target_firm, env.UploadToDisk)
|
||||
else:
|
||||
upload = env.Alias(["upload", "uploadlazy"], target_firm, "$UPLOADCMD")
|
||||
AlwaysBuild(upload)
|
||||
|
||||
@@ -14,13 +14,15 @@
|
||||
|
||||
from __future__ import absolute_import
|
||||
|
||||
from os import environ
|
||||
from os.path import isfile, join
|
||||
from platform import system
|
||||
from shutil import copyfile
|
||||
from time import sleep
|
||||
|
||||
from serial import Serial
|
||||
|
||||
from platformio.util import get_logicaldisks, get_serialports, get_systype
|
||||
from platformio import util
|
||||
|
||||
|
||||
def FlushSerialBuffer(env, port):
|
||||
@@ -35,7 +37,7 @@ def FlushSerialBuffer(env, port):
|
||||
|
||||
|
||||
def TouchSerialPort(env, port, baudrate):
|
||||
if "windows" not in get_systype():
|
||||
if system() != "Windows":
|
||||
try:
|
||||
s = Serial(env.subst(port))
|
||||
s.close()
|
||||
@@ -48,19 +50,27 @@ def TouchSerialPort(env, port, baudrate):
|
||||
|
||||
|
||||
def WaitForNewSerialPort(env, before):
|
||||
print "Waiting for the new upload port..."
|
||||
prev_port = env.subst("$UPLOAD_PORT")
|
||||
new_port = None
|
||||
elapsed = 0
|
||||
while elapsed < 10:
|
||||
now = [i['port'] for i in get_serialports()]
|
||||
diff = list(set(now) - set(before))
|
||||
if diff:
|
||||
new_port = diff[0]
|
||||
break
|
||||
|
||||
sleep(1)
|
||||
while elapsed < 5 and new_port is None:
|
||||
now = util.get_serialports()
|
||||
for p in now:
|
||||
if p not in before:
|
||||
new_port = p['port']
|
||||
break
|
||||
before = now
|
||||
sleep(0.25)
|
||||
elapsed += 0.25
|
||||
|
||||
if not new_port:
|
||||
for p in now:
|
||||
if prev_port == p['port']:
|
||||
new_port = p['port']
|
||||
break
|
||||
|
||||
if not new_port:
|
||||
env.Exit("Error: Couldn't find a board on the selected port. "
|
||||
"Check that you have the correct port selected. "
|
||||
@@ -70,31 +80,52 @@ def WaitForNewSerialPort(env, before):
|
||||
return new_port
|
||||
|
||||
|
||||
def AutodetectUploadPort(env):
|
||||
if "UPLOAD_PORT" in env:
|
||||
return
|
||||
def AutodetectUploadPort(*args, **kwargs): # pylint: disable=unused-argument
|
||||
env = args[0]
|
||||
print "Looking for upload port/disk..."
|
||||
|
||||
if env.subst("$FRAMEWORK") == "mbed":
|
||||
def _look_for_mbed_disk():
|
||||
msdlabels = ("mbed", "nucleo", "frdm")
|
||||
for item in get_logicaldisks():
|
||||
for item in util.get_logicaldisks():
|
||||
if (not item['name'] or
|
||||
not any([l in item['name'].lower() for l in msdlabels])):
|
||||
continue
|
||||
env.Replace(UPLOAD_PORT=item['disk'])
|
||||
break
|
||||
else:
|
||||
board_build_opts = env.get("BOARD_OPTIONS", {}).get("build", {})
|
||||
for item in get_serialports():
|
||||
return item['disk']
|
||||
return None
|
||||
|
||||
def _look_for_serial_port():
|
||||
port = None
|
||||
board_hwids = env.get("BOARD_OPTIONS", {}).get(
|
||||
"build", {}).get("hwids", [])
|
||||
for item in util.get_serialports():
|
||||
if "VID:PID" not in item['hwid']:
|
||||
continue
|
||||
env.Replace(UPLOAD_PORT=item['port'])
|
||||
for hwid in board_build_opts.get("hwid", []):
|
||||
board_hwid = ("%s:%s" % (hwid[0], hwid[1])).replace("0x", "")
|
||||
if board_hwid in item['hwid']:
|
||||
break
|
||||
port = item['port']
|
||||
for hwid in board_hwids:
|
||||
hwid_str = ("%s:%s" % (hwid[0], hwid[1])).replace("0x", "")
|
||||
if hwid_str in item['hwid']:
|
||||
return port
|
||||
return port
|
||||
|
||||
if "UPLOAD_PORT" in env:
|
||||
print "Auto-detected UPLOAD_PORT/DISK: %s" % env['UPLOAD_PORT']
|
||||
print env.subst("Manually specified: $UPLOAD_PORT")
|
||||
return
|
||||
|
||||
if env.subst("$FRAMEWORK") == "mbed":
|
||||
env.Replace(UPLOAD_PORT=_look_for_mbed_disk())
|
||||
else:
|
||||
if (system() == "Linux" and
|
||||
not isfile("/etc/udev/99-platformio-udev.rules")):
|
||||
print(
|
||||
"\nWarning! Please install `99-platformio-udev.rules` and "
|
||||
"check that your board's PID and VID are listed in the rules."
|
||||
"\n https://raw.githubusercontent.com/platformio/platformio"
|
||||
"/develop/scripts/99-platformio-udev.rules\n"
|
||||
)
|
||||
env.Replace(UPLOAD_PORT=_look_for_serial_port())
|
||||
|
||||
if env.subst("$UPLOAD_PORT"):
|
||||
print env.subst("Auto-detected: $UPLOAD_PORT")
|
||||
else:
|
||||
env.Exit("Error: Please specify `upload_port` for environment or use "
|
||||
"global `--upload-port` option.\n"
|
||||
@@ -104,15 +135,41 @@ def AutodetectUploadPort(env):
|
||||
|
||||
def UploadToDisk(_, target, source, env): # pylint: disable=W0613,W0621
|
||||
env.AutodetectUploadPort()
|
||||
progname = env.subst("$PROGNAME")
|
||||
for ext in ("bin", "hex"):
|
||||
fpath = join(env.subst("$BUILD_DIR"), "firmware.%s" % ext)
|
||||
fpath = join(env.subst("$BUILD_DIR"), "%s.%s" % (progname, ext))
|
||||
if not isfile(fpath):
|
||||
continue
|
||||
copyfile(fpath, join(env.subst("$UPLOAD_PORT"), "firmware.%s" % ext))
|
||||
copyfile(fpath, join(
|
||||
env.subst("$UPLOAD_PORT"), "%s.%s" % (progname, ext)))
|
||||
print("Firmware has been successfully uploaded.\n"
|
||||
"Please restart your board.")
|
||||
|
||||
|
||||
def CheckUploadSize(_, target, source, env): # pylint: disable=W0613,W0621
|
||||
max_size = int(env.get("BOARD_OPTIONS", {}).get("upload", {}).get(
|
||||
"maximum_size", 0))
|
||||
if max_size == 0 or "SIZETOOL" not in env:
|
||||
return
|
||||
|
||||
print "Check program size..."
|
||||
sysenv = environ.copy()
|
||||
sysenv['PATH'] = str(env['ENV']['PATH'])
|
||||
cmd = [env.subst("$SIZETOOL"), "-B", str(source[0])]
|
||||
result = util.exec_command(cmd, env=sysenv)
|
||||
if result['returncode'] != 0:
|
||||
return
|
||||
print result['out'].strip()
|
||||
|
||||
line = result['out'].strip().splitlines()[1]
|
||||
values = [v.strip() for v in line.split("\t")]
|
||||
used_size = int(values[0]) + int(values[1])
|
||||
|
||||
if used_size > max_size:
|
||||
env.Exit("Error: The program size (%d bytes) is greater "
|
||||
"than maximum allowed (%s bytes)" % (used_size, max_size))
|
||||
|
||||
|
||||
def exists(_):
|
||||
return True
|
||||
|
||||
@@ -123,4 +180,5 @@ def generate(env):
|
||||
env.AddMethod(WaitForNewSerialPort)
|
||||
env.AddMethod(AutodetectUploadPort)
|
||||
env.AddMethod(UploadToDisk)
|
||||
env.AddMethod(CheckUploadSize)
|
||||
return env
|
||||
|
||||
@@ -35,6 +35,11 @@ SRC_DEFAULT_FILTER = " ".join([
|
||||
|
||||
def BuildProgram(env):
|
||||
|
||||
env.Append(
|
||||
CPPDEFINES=["PLATFORMIO={0:02d}{1:02d}{2:02d}".format(
|
||||
*pioversion_to_intstr())],
|
||||
)
|
||||
|
||||
# fix ASM handling under non-casitive OS
|
||||
if not case_sensitive_suffixes(".s", ".S"):
|
||||
env.Replace(
|
||||
@@ -78,8 +83,7 @@ def BuildProgram(env):
|
||||
env.ProcessFlags([env.get("SRC_BUILD_FLAGS", None)])
|
||||
|
||||
env.Append(
|
||||
CPPDEFINES=["PLATFORMIO={0:02d}{1:02d}{2:02d}".format(
|
||||
*pioversion_to_intstr())],
|
||||
CPPPATH=["$PROJECTSRC_DIR"],
|
||||
LIBS=deplibs,
|
||||
LIBPATH=["$BUILD_DIR"]
|
||||
)
|
||||
@@ -93,11 +97,16 @@ def BuildProgram(env):
|
||||
"Error: Nothing to build. Please put your source code files "
|
||||
"to '%s' folder" % env.subst("$PROJECTSRC_DIR"))
|
||||
|
||||
return env.Program(
|
||||
program = env.Program(
|
||||
join("$BUILD_DIR", env.subst("$PROGNAME")),
|
||||
sources
|
||||
)
|
||||
|
||||
if set(["upload", "uploadlazy", "program"]) & set(COMMAND_LINE_TARGETS):
|
||||
env.AddPostAction(program, env.CheckUploadSize)
|
||||
|
||||
return program
|
||||
|
||||
|
||||
def ProcessFlags(env, flags):
|
||||
for f in flags:
|
||||
@@ -113,10 +122,11 @@ def ProcessFlags(env, flags):
|
||||
env.Append(CPPDEFINES=[flag])
|
||||
env.Append(**parsed_flags)
|
||||
|
||||
# fix relative CPPPATH
|
||||
for i, p in enumerate(env.get("CPPPATH", [])):
|
||||
if isdir(p):
|
||||
env['CPPPATH'][i] = realpath(p)
|
||||
# fix relative CPPPATH & LIBPATH
|
||||
for k in ("CPPPATH", "LIBPATH"):
|
||||
for i, p in enumerate(env.get(k, [])):
|
||||
if isdir(p):
|
||||
env[k][i] = realpath(p)
|
||||
# fix relative path for "-include"
|
||||
for i, f in enumerate(env.get("CCFLAGS", [])):
|
||||
if isinstance(f, tuple) and f[0] == "-include":
|
||||
|
||||
@@ -81,7 +81,8 @@ def cli(ctx, environment, target, upload_port, # pylint: disable=R0913,R0914
|
||||
|
||||
envname = section[4:]
|
||||
if ((environment and envname not in environment) or
|
||||
(env_default and envname not in env_default)):
|
||||
(not environment and env_default and
|
||||
envname not in env_default)):
|
||||
# echo("Skipped %s environment" % style(envname, fg="yellow"))
|
||||
continue
|
||||
|
||||
@@ -163,14 +164,14 @@ class EnvironmentProcessor(object):
|
||||
return result
|
||||
|
||||
def _get_build_variables(self):
|
||||
variables = ["PIOENV=" + self.name]
|
||||
variables = {"pioenv": self.name}
|
||||
if self.upload_port:
|
||||
variables.append("UPLOAD_PORT=%s" % self.upload_port)
|
||||
variables['upload_port'] = self.upload_port
|
||||
for k, v in self.options.items():
|
||||
k = k.upper()
|
||||
if k == "TARGETS" or (k == "UPLOAD_PORT" and self.upload_port):
|
||||
k = k.lower()
|
||||
if k == "targets" or (k == "upload_port" and self.upload_port):
|
||||
continue
|
||||
variables.append("%s=%s" % (k, v))
|
||||
variables[k] = v
|
||||
return variables
|
||||
|
||||
def _get_build_targets(self):
|
||||
|
||||
@@ -102,6 +102,7 @@ class PackageManager(object):
|
||||
dlpath = self.download(info['url'], pkg_dir, info['sha1'])
|
||||
except (requests.exceptions.ConnectionError,
|
||||
requests.exceptions.ChunkedEncodingError,
|
||||
requests.exceptions.SSLError,
|
||||
exception.FDUnrecognizedStatusCode, StopIteration):
|
||||
if not info['url'].startswith("http://dl.platformio.org"):
|
||||
dlpath = self.download(
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import base64
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
@@ -400,10 +401,10 @@ class BasePlatform(object):
|
||||
obsolated = pm.get_outdated()
|
||||
return not set(self.get_packages().keys()).isdisjoint(set(obsolated))
|
||||
|
||||
def configure_default_packages(self, envoptions, targets):
|
||||
def configure_default_packages(self, variables, targets):
|
||||
# enbale used frameworks
|
||||
for pkg_name in self.pkg_aliases_to_names(["framework"]):
|
||||
for framework in envoptions.get("framework", "").split(","):
|
||||
for framework in variables.get("framework", "").split(","):
|
||||
framework = framework.lower().strip()
|
||||
if not framework:
|
||||
continue
|
||||
@@ -441,15 +442,10 @@ class BasePlatform(object):
|
||||
raise exception.PlatformNotInstalledYet(self.get_type())
|
||||
|
||||
def run(self, variables, targets, verbose):
|
||||
assert isinstance(variables, list)
|
||||
assert isinstance(variables, dict)
|
||||
assert isinstance(targets, list)
|
||||
|
||||
envoptions = {}
|
||||
for v in variables:
|
||||
_name, _value = v.split("=", 1)
|
||||
envoptions[_name.lower()] = _value
|
||||
|
||||
self.configure_default_packages(envoptions, targets)
|
||||
self.configure_default_packages(variables, targets)
|
||||
self._install_default_packages()
|
||||
|
||||
self._verbose_level = int(verbose)
|
||||
@@ -458,23 +454,17 @@ class BasePlatform(object):
|
||||
targets.remove("clean")
|
||||
targets.append("-c")
|
||||
|
||||
if "build_script" not in envoptions:
|
||||
variables.append("BUILD_SCRIPT=%s" % self.get_build_script())
|
||||
|
||||
for v in variables:
|
||||
if not v.startswith("BUILD_SCRIPT="):
|
||||
continue
|
||||
_, path = v.split("=", 1)
|
||||
if not isfile(path):
|
||||
raise exception.BuildScriptNotFound(path)
|
||||
if "build_script" not in variables:
|
||||
variables['build_script'] = self.get_build_script()
|
||||
if not isfile(variables['build_script']):
|
||||
raise exception.BuildScriptNotFound(variables['build_script'])
|
||||
|
||||
# append aliases of the installed packages
|
||||
installed_packages = PackageManager.get_installed()
|
||||
for name, options in self.get_packages().items():
|
||||
if "alias" not in options or name not in installed_packages:
|
||||
continue
|
||||
variables.append(
|
||||
"PIOPACKAGE_%s=%s" % (options['alias'].upper(), name))
|
||||
variables['piopackage_%s' % options['alias']] = name
|
||||
|
||||
self._found_error = False
|
||||
result = self._run_scons(variables, targets)
|
||||
@@ -498,16 +488,22 @@ class BasePlatform(object):
|
||||
_PYTHONPATH.append(p)
|
||||
os.environ['PYTHONPATH'] = os.pathsep.join(_PYTHONPATH)
|
||||
|
||||
cmd = [
|
||||
os.path.normpath(sys.executable),
|
||||
join(util.get_home_dir(), "packages", "tool-scons",
|
||||
"script", "scons"),
|
||||
"-Q",
|
||||
"-j %d" % self.get_job_nums(),
|
||||
"--warn=no-no-parallel-support",
|
||||
"-f", join(util.get_source_dir(), "builder", "main.py")
|
||||
] + targets
|
||||
|
||||
# encode and append variables
|
||||
for key, value in variables.items():
|
||||
cmd.append("%s=%s" % (key.upper(), base64.b64encode(value)))
|
||||
|
||||
result = util.exec_command(
|
||||
[
|
||||
os.path.normpath(sys.executable),
|
||||
join(util.get_home_dir(), "packages", "tool-scons",
|
||||
"script", "scons"),
|
||||
"-Q",
|
||||
"-j %d" % self.get_job_nums(),
|
||||
"--warn=no-no-parallel-support",
|
||||
"-f", join(util.get_source_dir(), "builder", "main.py")
|
||||
] + variables + targets,
|
||||
cmd,
|
||||
stdout=util.AsyncPipe(self.on_run_out),
|
||||
stderr=util.AsyncPipe(self.on_run_err)
|
||||
)
|
||||
|
||||
@@ -290,7 +290,7 @@ def get_serialports():
|
||||
for p, d, h in comports():
|
||||
if not p:
|
||||
continue
|
||||
if "windows" in get_systype():
|
||||
if system() == "Windows":
|
||||
try:
|
||||
d = unicode(d, errors="ignore")
|
||||
except TypeError:
|
||||
@@ -300,7 +300,7 @@ def get_serialports():
|
||||
# fix for PySerial
|
||||
if not result and system() == "Darwin":
|
||||
for p in glob("/dev/tty.*"):
|
||||
result.append({"port": p, "description": "", "hwid": ""})
|
||||
result.append({"port": p, "description": "n/a", "hwid": "n/a"})
|
||||
return result
|
||||
|
||||
|
||||
@@ -308,7 +308,7 @@ def get_logicaldisks():
|
||||
disks = []
|
||||
if system() == "Windows":
|
||||
result = exec_command(
|
||||
["wmic", "logicaldisk", "get", "name,VolumeName"]).get("out")
|
||||
["wmic", "logicaldisk", "get", "name,VolumeName"]).get("out", "")
|
||||
disknamere = re.compile(r"^([A-Z]{1}\:)\s*(\S+)?")
|
||||
for line in result.split("\n"):
|
||||
match = disknamere.match(line.strip())
|
||||
|
||||
@@ -45,8 +45,15 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", MODE:="066
|
||||
# QinHeng Electronics HL-340 USB-Serial adapter
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0666"
|
||||
|
||||
# ARDUINO UNO
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0043", MODE:="0666"
|
||||
# Arduino boards
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="[08][02]*", MODE:="0666"
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="[08][02]*", MODE:="0666"
|
||||
|
||||
# Arduino SAM-BA
|
||||
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", ENV{MTP_NO_PROBE}="1"
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", MODE:="0666"
|
||||
KERNEL=="ttyACM*", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", MODE:="0666"
|
||||
|
||||
# Digistump boards
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666"
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
# https://packaging.python.org/en/latest/appveyor.html
|
||||
# Sample script to install Python and pip under Windows
|
||||
# Authors: Olivier Grisel and Kyle Kastner
|
||||
# License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/
|
||||
|
||||
$BASE_URL = "https://www.python.org/ftp/python/"
|
||||
$GET_PIP_URL = "https://bootstrap.pypa.io/get-pip.py"
|
||||
$GET_PIP_PATH = "C:\get-pip.py"
|
||||
|
||||
|
||||
function DownloadPython ($python_version, $platform_suffix) {
|
||||
$webclient = New-Object System.Net.WebClient
|
||||
$filename = "python-" + $python_version + $platform_suffix + ".msi"
|
||||
$url = $BASE_URL + $python_version + "/" + $filename
|
||||
|
||||
$basedir = $pwd.Path + "\"
|
||||
$filepath = $basedir + $filename
|
||||
if (Test-Path $filename) {
|
||||
Write-Host "Reusing" $filepath
|
||||
return $filepath
|
||||
}
|
||||
|
||||
# Download and retry up to 5 times in case of network transient errors.
|
||||
Write-Host "Downloading" $filename "from" $url
|
||||
$retry_attempts = 3
|
||||
for($i=0; $i -lt $retry_attempts; $i++){
|
||||
try {
|
||||
$webclient.DownloadFile($url, $filepath)
|
||||
break
|
||||
}
|
||||
Catch [Exception]{
|
||||
Start-Sleep 1
|
||||
}
|
||||
}
|
||||
Write-Host "File saved at" $filepath
|
||||
return $filepath
|
||||
}
|
||||
|
||||
|
||||
function InstallPython ($python_version, $architecture, $python_home) {
|
||||
Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home
|
||||
if (Test-Path $python_home) {
|
||||
Write-Host $python_home "already exists, skipping."
|
||||
return $false
|
||||
}
|
||||
if ($architecture -eq "32") {
|
||||
$platform_suffix = ""
|
||||
} else {
|
||||
$platform_suffix = ".amd64"
|
||||
}
|
||||
$filepath = DownloadPython $python_version $platform_suffix
|
||||
Write-Host "Installing" $filepath "to" $python_home
|
||||
$args = "/qn /i $filepath TARGETDIR=$python_home"
|
||||
Write-Host "msiexec.exe" $args
|
||||
Start-Process -FilePath "msiexec.exe" -ArgumentList $args -Wait -Passthru
|
||||
Write-Host "Python $python_version ($architecture) installation complete"
|
||||
return $true
|
||||
}
|
||||
|
||||
|
||||
function InstallPip ($python_home) {
|
||||
$python_path = $python_home + "/python.exe"
|
||||
Write-Host "Installing pip..."
|
||||
$webclient = New-Object System.Net.WebClient
|
||||
$webclient.DownloadFile($GET_PIP_URL, $GET_PIP_PATH)
|
||||
Write-Host "Executing:" $python_path $GET_PIP_PATH
|
||||
Start-Process -FilePath "$python_path" -ArgumentList "$GET_PIP_PATH" -Wait -Passthru
|
||||
}
|
||||
|
||||
function InstallPackage ($python_home, $pkg) {
|
||||
$pip_path = $python_home + "/Scripts/pip.exe"
|
||||
& $pip_path install -U $pkg
|
||||
}
|
||||
|
||||
function main () {
|
||||
InstallPython $env:PYTHON_VERSION $env:PYTHON_ARCH $env:PYTHON_HOME
|
||||
InstallPip $env:PYTHON_HOME
|
||||
InstallPackage $env:PYTHON_HOME setuptools
|
||||
InstallPackage $env:PYTHON_HOME tox
|
||||
}
|
||||
|
||||
main
|
||||
@@ -1,48 +0,0 @@
|
||||
:: https://packaging.python.org/en/latest/appveyor.html
|
||||
:: To build extensions for 64 bit Python 3, we need to configure environment
|
||||
:: variables to use the MSVC 2010 C++ compilers from GRMSDKX_EN_DVD.iso of:
|
||||
:: MS Windows SDK for Windows 7 and .NET Framework 4 (SDK v7.1)
|
||||
::
|
||||
:: To build extensions for 64 bit Python 2, we need to configure environment
|
||||
:: variables to use the MSVC 2008 C++ compilers from GRMSDKX_EN_DVD.iso of:
|
||||
:: MS Windows SDK for Windows 7 and .NET Framework 3.5 (SDK v7.0)
|
||||
::
|
||||
:: 32 bit builds do not require specific environment configurations.
|
||||
::
|
||||
:: Note: this script needs to be run with the /E:ON and /V:ON flags for the
|
||||
:: cmd interpreter, at least for (SDK v7.0)
|
||||
::
|
||||
:: More details at:
|
||||
:: https://github.com/cython/cython/wiki/64BitCythonExtensionsOnWindows
|
||||
:: http://stackoverflow.com/a/13751649/163740
|
||||
::
|
||||
:: Author: Olivier Grisel
|
||||
:: License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/
|
||||
@ECHO OFF
|
||||
|
||||
SET COMMAND_TO_RUN=%*
|
||||
SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows
|
||||
|
||||
SET MAJOR_PYTHON_VERSION="%PYTHON_VERSION:~0,1%"
|
||||
IF %MAJOR_PYTHON_VERSION% == "2" (
|
||||
SET WINDOWS_SDK_VERSION="v7.0"
|
||||
) ELSE IF %MAJOR_PYTHON_VERSION% == "3" (
|
||||
SET WINDOWS_SDK_VERSION="v7.1"
|
||||
) ELSE (
|
||||
ECHO Unsupported Python version: "%MAJOR_PYTHON_VERSION%"
|
||||
EXIT 1
|
||||
)
|
||||
|
||||
IF "%PYTHON_ARCH%"=="64" (
|
||||
ECHO Configuring Windows SDK %WINDOWS_SDK_VERSION% for Python %MAJOR_PYTHON_VERSION% on a 64 bit architecture
|
||||
SET DISTUTILS_USE_SDK=1
|
||||
SET MSSdk=1
|
||||
"%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Setup\WindowsSdkVer.exe" -q -version:%WINDOWS_SDK_VERSION%
|
||||
"%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release
|
||||
ECHO Executing: %COMMAND_TO_RUN%
|
||||
call %COMMAND_TO_RUN% || EXIT 1
|
||||
) ELSE (
|
||||
ECHO Using default MSVC build environment for 32 bit architecture
|
||||
ECHO Executing: %COMMAND_TO_RUN%
|
||||
call %COMMAND_TO_RUN% || EXIT 1
|
||||
)
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
# Copyright 2014-present 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.
|
||||
@@ -35,7 +35,7 @@ def generate_boards(boards):
|
||||
|
||||
def _round_memory_size(size):
|
||||
if size == 1:
|
||||
return 1;
|
||||
return 1
|
||||
|
||||
size = ceil(size)
|
||||
for b in (64, 32, 16, 8, 4, 2, 1):
|
||||
@@ -134,7 +134,7 @@ def generate_platform(name):
|
||||
print "Processing platform: %s" % name
|
||||
lines = []
|
||||
|
||||
lines.append(""".. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
lines.append(""".. Copyright 2014-present 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
|
||||
@@ -241,7 +241,7 @@ def generate_framework(type_, data):
|
||||
print "Processing framework: %s" % type_
|
||||
lines = []
|
||||
|
||||
lines.append(""".. Copyright 2014-2016 Ivan Kravets <me@ikravets.com>
|
||||
lines.append(""".. Copyright 2014-present 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
|
||||
@@ -364,10 +364,65 @@ Packages
|
||||
)
|
||||
|
||||
|
||||
def update_embedded_boards():
|
||||
lines = []
|
||||
|
||||
lines.append(""".. Copyright 2014-present 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.
|
||||
""")
|
||||
|
||||
lines.append(".. _embedded_boards:")
|
||||
lines.append("")
|
||||
|
||||
lines.append("Embedded Boards")
|
||||
lines.append("===============")
|
||||
|
||||
lines.append("""
|
||||
Rapid Embedded Development, Continuous and IDE integration in a few
|
||||
steps with PlatformIO thanks to built-in project generator for the most
|
||||
popular embedded boards and IDE.
|
||||
|
||||
* You can list pre-configured boards using :ref:`cmd_boards` command or
|
||||
`PlatformIO Boards Explorer <http://platformio.org/boards>`_
|
||||
* For more detailed ``board`` information please scroll tables below by
|
||||
horizontal.
|
||||
""")
|
||||
|
||||
lines.append(".. contents::")
|
||||
lines.append("")
|
||||
|
||||
vendors = {}
|
||||
for board, data in util.get_boards().items():
|
||||
vendor = data['vendor']
|
||||
if vendor in vendors:
|
||||
vendors[vendor].append({board: data})
|
||||
else:
|
||||
vendors[vendor] = [{board: data}]
|
||||
|
||||
for vendor, boards in sorted(vendors.iteritems()):
|
||||
lines.append(str(vendor))
|
||||
lines.append("~" * len(vendor))
|
||||
lines.append(generate_boards(boards))
|
||||
|
||||
emboards_rst = join(dirname(realpath(__file__)),
|
||||
"..", "docs", "platforms", "embedded_boards.rst")
|
||||
with open(emboards_rst, "w") as f:
|
||||
f.write("\n".join(lines))
|
||||
|
||||
|
||||
def main():
|
||||
update_create_platform_doc()
|
||||
update_platform_docs()
|
||||
update_framework_docs()
|
||||
update_embedded_boards()
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys_exit(main())
|
||||
|
||||
@@ -38,7 +38,7 @@ def validate_response(req):
|
||||
|
||||
|
||||
def test_package(package_data):
|
||||
assert package_data['url'].endswith("%d.tar.gz" % package_data['version'])
|
||||
assert package_data['url'].endswith(".tar.gz")
|
||||
|
||||
r = requests.head(package_data['url'], allow_redirects=True)
|
||||
validate_response(r)
|
||||
|
||||
Reference in New Issue
Block a user