mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-29 17:47:14 +02:00
First doc draft
This commit is contained in:
253
README.rst
253
README.rst
@ -1,4 +1,255 @@
|
||||
PlatformIO
|
||||
==========
|
||||
|
||||
An easy way to build code with different development platforms
|
||||
**Platformio** is a console tool to build code with different development
|
||||
platforms.
|
||||
|
||||
You do not need to install any *IDE* or to compile any toolchains. *Platformio*
|
||||
has pre-built different development platforms for your favorite *OS* that
|
||||
including: compiler, debugger, flasher (for embedded) and many others useful
|
||||
tools.
|
||||
|
||||
**Platformio** allows developer to compile single sources with different
|
||||
platforms with only one command ``platformio run``. This is due to
|
||||
``platformio.ini`` project's file where you can setup different environments
|
||||
with specific settings (platform, compiler or firmware uploading options,
|
||||
include pre-built framework and many more)
|
||||
|
||||
Each platform consists of packages that are located in own repository.
|
||||
Due to ``platformio update`` command you will have up-to-date development
|
||||
instruments.
|
||||
|
||||
**Platformio** is well suited for **embedded development**. It can:
|
||||
|
||||
* Compile frameworks and libraries sources to static libraries
|
||||
* Build *ELF* (executable and linkable firmware)
|
||||
* Convert *ELF* to *HEX* or *BIN* file
|
||||
* Extract *EEPROM* data
|
||||
* Upload firmware to your device
|
||||
|
||||
It has support for many popular embedded platforms like these:
|
||||
|
||||
* ``atmelavr`` `Atmel AVR <http://en.wikipedia.org/wiki/Atmel_AVR>`_
|
||||
(including `Arduino <http://www.arduino.cc>`_ based boards)
|
||||
* ``timsp430`` `TI MSP430 <http://www.ti.com/lsds/ti/microcontroller/16-bit_msp430/overview.page>`_
|
||||
(including `MSP430 LaunchPads <http://www.ti.com/ww/en/launchpad/launchpads-msp430.html>`_)
|
||||
* ``titiva`` `TI TIVA C <http://www.ti.com/lsds/ti/microcontroller/tiva_arm_cortex/c_series/overview.page>`_
|
||||
(including `TIVA C Series LaunchPads <http://www.ti.com/ww/en/launchpad/launchpads-connected.html>`_)
|
||||
|
||||
|
||||
See project `examples <https://github.com/ivankravets/platformio/tree/develop/examples>`_
|
||||
|
||||
|
||||
Python & OS Support
|
||||
-------------------
|
||||
|
||||
**Platformio** written in `Python <https://www.python.org>`_ and works with
|
||||
versions 2.6 and 2.7 on Unix/Linux, OS X, and Windows.
|
||||
|
||||
|
||||
Quickstart
|
||||
----------
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Install platformio
|
||||
$ pip install platformio && pip install --egg scons
|
||||
|
||||
# Print availalbe development platforms for installing
|
||||
$ platformio search
|
||||
|
||||
# Install new development platform
|
||||
$ platformio install SomePlatform
|
||||
|
||||
# Initialize new platformio based project
|
||||
$ cd /path/to/empty/directory
|
||||
$ platformio init
|
||||
|
||||
# Process the project's environments
|
||||
$ platformio run
|
||||
|
||||
For more detailed information please follow to "Installation" and "User Guide"
|
||||
sections.
|
||||
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
All commands below should be executed in
|
||||
`Command-line <http://en.wikipedia.org/wiki/Command-line_interface>`_
|
||||
application in your OS:
|
||||
|
||||
* *Unix/Linux/OS X* this is *Terminal* application.
|
||||
* *Windows* this is
|
||||
`Command Prompt <http://en.wikipedia.org/wiki/Command_Prompt>`_ (``cmd.exe``)
|
||||
application.
|
||||
|
||||
2. Check a ``python`` version:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ python --version
|
||||
|
||||
Windows OS Users only:
|
||||
|
||||
* `Download Python <https://www.python.org/downloads/>`_ and install it.
|
||||
* Add to PATH system variable ``;C:\Python27;C:\Python27\Scripts;`` and
|
||||
reopen *Command Prompt* (``cmd.exe``) application. Please read this
|
||||
article `How to set the path and environment variables in Windows
|
||||
<http://www.computerhope.com/issues/ch000549.htm>`_.
|
||||
|
||||
|
||||
2. Check a ``pip`` tool for installing and managing Python packages:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ pip search platformio
|
||||
|
||||
You should see short information about ``platformio`` package.
|
||||
|
||||
If your computer does not recognize ``pip`` command, try to install it first
|
||||
using `these instructions <http://www.pip-installer.org/en/latest/installing.html>`_.
|
||||
|
||||
3. Install a ``platformio`` and related packages:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ pip install platformio && pip install --egg scons
|
||||
|
||||
For upgrading the ``platformio`` to new version please use this command:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ pip install -U platformio
|
||||
|
||||
|
||||
User Guide
|
||||
----------
|
||||
|
||||
To print all available commands and options:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio --help
|
||||
$ platformio COMMAND --help
|
||||
|
||||
|
||||
``platformio search``
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Search for available development platforms:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio search "Query"
|
||||
|
||||
You can leave search "Query" as empty. In this case ``platformio`` will print
|
||||
all available platforms.
|
||||
|
||||
|
||||
``platformio install``
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
*Platformio* has pre-built development platforms with related packages. You
|
||||
can install one of them:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio install SomePlatform
|
||||
$ platformio install SomePlatform --with-package=PackageName
|
||||
$ platformio install SomePlatform --without-package=PackageName
|
||||
|
||||
|
||||
``platformio list``
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To list installed platforms:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio list
|
||||
|
||||
|
||||
``platformio show``
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To show details about an installed platform:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio show SomePlatform
|
||||
|
||||
|
||||
``platformio uninstall``
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To uninstall platform:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio uninstall SomePlatform
|
||||
|
||||
|
||||
``platformio init``
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Initialize new platformio based project.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Change directory to future project
|
||||
$ cd /path/to/empty/directory
|
||||
$ platformio init
|
||||
|
||||
After this command ``platformio`` will create:
|
||||
|
||||
* ``.pioenvs`` - a temporary working directory.
|
||||
* ``libs`` - a directory for project specific libraries. Platformio will
|
||||
compile their to static libraries and link to executable file
|
||||
* ``src`` - a source directory. Put code here.
|
||||
* ``platformio.ini`` - a configuration file for project
|
||||
|
||||
|
||||
``platformio run``
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Process the project's environments defined in ``platformio.ini`` file:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio run
|
||||
|
||||
Process specific environments:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio run -e myenv1 -e myenv2
|
||||
|
||||
Process specific target:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio run -t clean
|
||||
$ platformio run -t upload
|
||||
|
||||
Mix environments and targets:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ platformio run -e myembeddeddevice -t upload
|
||||
|
||||
|
||||
Questions & Bugs
|
||||
----------------
|
||||
|
||||
Please use the
|
||||
`issue tracker <https://github.com/ivankravets/platformio/issues>`_
|
||||
to ask questions or report bugs.
|
||||
|
||||
|
||||
Licence
|
||||
-------
|
||||
|
||||
Copyright (C) 2014 Ivan Kravets
|
||||
|
||||
Licenced under the MIT Licence.
|
||||
|
Reference in New Issue
Block a user