From 4e2370e0a0a6bdf81fcb5b6ad1ddb22720d832fb Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 6 Jan 2016 15:47:58 +0200 Subject: [PATCH 01/71] Update docs with new boards, tools --- .gitignore | 1 + docs/frameworks/arduino.rst | 22 ++++++++++++++++++---- docs/frameworks/mbed.rst | 2 +- docs/platforms/atmelsam.rst | 21 +++++++++++++++++++-- docs/platforms/creating_platform.rst | 3 +++ docs/platforms/espressif.rst | 2 +- docs/platforms/teensy.rst | 2 +- platformio/__init__.py | 2 +- platformio/platforms/base.py | 3 +++ 9 files changed, 48 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 16d27c1b..dfcb0c78 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ .tox docs/_build dist +build diff --git a/docs/frameworks/arduino.rst b/docs/frameworks/arduino.rst index 3e4ac33c..5645ddd1 100644 --- a/docs/frameworks/arduino.rst +++ b/docs/frameworks/arduino.rst @@ -214,14 +214,14 @@ Arduino * - ``due`` - `Arduino Due (Programming Port) `_ - - AT91SAM3X8E + - SAM3X8E - 84 MHz - 512 Kb - 32 Kb * - ``dueUSB`` - `Arduino Due (USB Native Port) `_ - - AT91SAM3X8E + - SAM3X8E - 84 MHz - 512 Kb - 32 Kb @@ -380,6 +380,20 @@ Arduino - 32 Kb - 2.5 Kb + * - ``zero`` + - `Arduino Zero (Programming Port) `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``zeroUSB`` + - `Arduino Zero (USB Native Port) `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + BQ ~~ @@ -693,7 +707,7 @@ NodeMCU - RAM * - ``nodemcu`` - - `NodeMCU 0.9 & 1.0 `_ + - `NodeMCU 0.9 / 1.0 `_ - ESP8266 - 80 MHz - 4096 Kb @@ -1073,7 +1087,7 @@ Teensy - 16 Kb * - ``teensy31`` - - `Teensy 3.1 `_ + - `Teensy 3.1 / 3.2 `_ - MK20DX256 - 72 MHz - 256 Kb diff --git a/docs/frameworks/mbed.rst b/docs/frameworks/mbed.rst index d67ad290..0419ad82 100644 --- a/docs/frameworks/mbed.rst +++ b/docs/frameworks/mbed.rst @@ -716,7 +716,7 @@ Teensy - RAM * - ``teensy31`` - - `Teensy 3.1 `_ + - `Teensy 3.1 / 3.2 `_ - MK20DX256 - 72 MHz - 256 Kb diff --git a/docs/platforms/atmelsam.rst b/docs/platforms/atmelsam.rst index 8b7b62ce..053f2b67 100644 --- a/docs/platforms/atmelsam.rst +++ b/docs/platforms/atmelsam.rst @@ -34,6 +34,9 @@ Packages * - ``ldscripts`` - `Linker Scripts `_ + * - ``tool-openocd`` + - `OpenOCD `_ + * - ``toolchain-gccarmnoneeabi`` - `gcc-arm-embedded `_, `GDB `_ @@ -84,18 +87,32 @@ Arduino * - ``due`` - `Arduino Due (Programming Port) `_ - - AT91SAM3X8E + - SAM3X8E - 84 MHz - 512 Kb - 32 Kb * - ``dueUSB`` - `Arduino Due (USB Native Port) `_ - - AT91SAM3X8E + - SAM3X8E - 84 MHz - 512 Kb - 32 Kb + * - ``zero`` + - `Arduino Zero (Programming Port) `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + + * - ``zeroUSB`` + - `Arduino Zero (USB Native Port) `_ + - SAMD21G18A + - 48 MHz + - 256 Kb + - 32 Kb + Atmel ~~~~~ diff --git a/docs/platforms/creating_platform.rst b/docs/platforms/creating_platform.rst index c20cdf37..90fea1c7 100644 --- a/docs/platforms/creating_platform.rst +++ b/docs/platforms/creating_platform.rst @@ -119,6 +119,9 @@ Packages * - ``tool-mspdebug`` - `MSPDebug `_ + * - ``tool-openocd`` + - `OpenOCD `_ + * - ``tool-rfdloader`` - `rfdloader `_ diff --git a/docs/platforms/espressif.rst b/docs/platforms/espressif.rst index 32de397f..200263f0 100644 --- a/docs/platforms/espressif.rst +++ b/docs/platforms/espressif.rst @@ -163,7 +163,7 @@ NodeMCU - RAM * - ``nodemcu`` - - `NodeMCU 0.9 & 1.0 `_ + - `NodeMCU 0.9 / 1.0 `_ - ESP8266 - 80 MHz - 4096 Kb diff --git a/docs/platforms/teensy.rst b/docs/platforms/teensy.rst index 2cf02492..45e1d1c5 100644 --- a/docs/platforms/teensy.rst +++ b/docs/platforms/teensy.rst @@ -113,7 +113,7 @@ Teensy - 16 Kb * - ``teensy31`` - - `Teensy 3.1 `_ + - `Teensy 3.1 / 3.2 `_ - MK20DX256 - 72 MHz - 256 Kb diff --git a/platformio/__init__.py b/platformio/__init__.py index 35d08ccc..22b4ead7 100644 --- a/platformio/__init__.py +++ b/platformio/__init__.py @@ -14,7 +14,7 @@ import sys -VERSION = (2, 7, 1) +VERSION = (2, 7, "2.dev0") __version__ = ".".join([str(s) for s in VERSION]) __title__ = "platformio" diff --git a/platformio/platforms/base.py b/platformio/platforms/base.py index 5a4718b7..734d4660 100644 --- a/platformio/platforms/base.py +++ b/platformio/platforms/base.py @@ -129,6 +129,9 @@ PLATFORM_PACKAGES = { "tool-bossac": [ ("BOSSA CLI", "https://sourceforge.net/projects/b-o-s-s-a/") ], + "tool-openocd": [ + ("OpenOCD", "http://openocd.org") + ], "tool-stlink": [ ("ST-Link", "https://github.com/texane/stlink") ], From 3d0aad6df8cbc532a77d8664f2a877dad3afceee Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 6 Jan 2016 16:52:22 +0200 Subject: [PATCH 02/71] Add support for completions to Atom text editor using ".clang_complete" --- HISTORY.rst | 1 + docs/ide/atom.rst | 24 ++++++++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index adf1d2a5..3c001f49 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -9,6 +9,7 @@ PlatformIO 2.0 * Initial support for Arduino Zero board (`issue #356 `_) +* Added support for completions to Atom text editor using ``.clang_complete`` * Generate default targets for `supported IDE `__ (CLion, Eclipse IDE, Emacs, Sublime Text, VIM): Build, Clean, Upload, Upload SPIFFS image, Upload using Programmer, Update installed diff --git a/docs/ide/atom.rst b/docs/ide/atom.rst index 424c1e55..abf3258a 100644 --- a/docs/ide/atom.rst +++ b/docs/ide/atom.rst @@ -31,8 +31,28 @@ page for more detailed information. Integration ----------- -Using `Atom Packages `_ -please install `platomformio `_ package. +There is Atom based `platomformio `_ +package which can be installed `Using Atom Packages `_. + +If you have ``clang`` installed in your system (is installed by default in Mac +OS X), you can enable completions using +`autocomplete-clang `_ package. +This package requires ``.clang_complete`` file and PlatformIO can generate it. + +Choose board ``type`` using :ref:`cmd_boards` or `Embedded Boards Explorer `_ +command and generate project via :option:`platformio init --ide` command: + +.. code-block:: shell + + platformio init --ide atom --board %TYPE% + + # For example, generate project for Arduino UNO + platformio init --ide atom --board uno + +.. warning:: + The libraries which are added, installed or used in the project + after generating process wont be reflected in IDE. To fix it you + need to reinitialize project using :ref:`cmd_init` (repeat it). Articles / Manuals ------------------ From fa51860268b3e1e4dd31d5bb60a06a47f002bbd1 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Mon, 11 Jan 2016 19:20:26 +0200 Subject: [PATCH 03/71] Fix builder for mbed framework and ST STM32 platform --- HISTORY.rst | 6 ++++++ platformio/builder/scripts/frameworks/mbed.py | 18 +----------------- 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/HISTORY.rst b/HISTORY.rst index 3c001f49..e4b5fc43 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -4,6 +4,12 @@ Release History PlatformIO 2.0 -------------- +2.7.2 (2016-01-??) +~~~~~~~~~~~~~~~~~~ + +* Fixed builder for mbed framework and ST STM32 platform + + 2.7.1 (2016-01-06) ~~~~~~~~~~~~~~~~~~ diff --git a/platformio/builder/scripts/frameworks/mbed.py b/platformio/builder/scripts/frameworks/mbed.py index e9a60d86..76903afd 100644 --- a/platformio/builder/scripts/frameworks/mbed.py +++ b/platformio/builder/scripts/frameworks/mbed.py @@ -195,20 +195,6 @@ def get_build_flags(data): return flags -def _mbed_whole_archive_hook(flags): - if (not isinstance(flags, list) or - env.get("BOARD_OPTIONS", {}).get("platform") != "ststm32"): - return flags - - for pos, flag in enumerate(flags[:]): - if isinstance(flag, basestring): - continue - flags.insert(pos, "-Wl,-whole-archive") - flags.insert(pos + 2, "-Wl,-no-whole-archive") - - return flags - - board_type = env.subst("$BOARD") variant = MBED_VARIANTS[ board_type] if board_type in MBED_VARIANTS else board_type.upper() @@ -219,8 +205,6 @@ build_flags = get_build_flags(eixdata) variant_dir = join("$PLATFORMFW_DIR", "variant", variant) env.Replace( - _mbed_whole_archive_hook=_mbed_whole_archive_hook, - _LIBFLAGS="${_mbed_whole_archive_hook(%s)}" % env.get("_LIBFLAGS")[2:-1], CPPFLAGS=build_flags.get("CPPFLAGS", []), CFLAGS=build_flags.get("CFLAGS", []), CXXFLAGS=build_flags.get("CXXFLAGS", []), @@ -267,7 +251,7 @@ libs.append(env.Library( for f in eixdata.get("OBJFILES", [])] )) -env.Append(LIBS=libs) +env.Prepend(LIBS=libs) for _libname, _libdata in get_used_mbedlibs().iteritems(): for _libar in _libdata['ar']: From 8a85d7ef1cf7e61bb730f6a5a1b37143db962bff Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 13 Jan 2016 01:23:58 +0200 Subject: [PATCH 04/71] Ignore stupid PyLint warning with "wrong-import-order" --- platformio/ide/projectgenerator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platformio/ide/projectgenerator.py b/platformio/ide/projectgenerator.py index 05ccafa2..f7eac015 100644 --- a/platformio/ide/projectgenerator.py +++ b/platformio/ide/projectgenerator.py @@ -18,7 +18,7 @@ import re from os.path import abspath, basename, expanduser, isdir, join, relpath import bottle -import click +import click # pylint: disable=wrong-import-order from platformio import exception, util From 516887c050ab8f3233fa89e27c3d70a70e3c6274 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 13 Jan 2016 15:03:13 +0200 Subject: [PATCH 05/71] Refactor Project Configuration Page --- docs/projectconf.rst | 220 +++++++++++++++++++++++-------------------- 1 file changed, 118 insertions(+), 102 deletions(-) diff --git a/docs/projectconf.rst b/docs/projectconf.rst index bb541a10..3564cf9d 100644 --- a/docs/projectconf.rst +++ b/docs/projectconf.rst @@ -25,8 +25,8 @@ The sections and their allowable values are described below. .. contents:: -[platformio] ------------- +Section ``[platformio]`` +------------------------ A ``platformio`` section is used for overriding default configuration options @@ -130,9 +130,11 @@ project. This option can be overridden by global environment variable :envvar:`PLATFORMIO_DATA_DIR`. -[env:NAME] ---------- +Section ``[env:NAME]`` +---------------------- + A section with ``env:`` prefix is used to define virtual environment with specific options that will be processed with :ref:`cmd_run` command. You can define unlimited numbers of environments. @@ -145,8 +147,8 @@ Each environment must have unique ``NAME``. The valid chars for ``NAME`` are For example, ``[env:hello_world]``. -Options -~~~~~~~ +General options +~~~~~~~~~~~~~~~ .. _projectconf_env_platform: @@ -165,7 +167,6 @@ Options The multiple frameworks are allowed, split them with comma ``,`` separator. - .. _projectconf_env_board: ``board`` @@ -180,6 +181,9 @@ You can find the ``board`` type in *Boards* section of each :ref:`platforms` or using `PlatformIO Embedded Boards Explorer `_. +Board options +~~~~~~~~~~~~~ + ``board_mcu`` ^^^^^^^^^^^^^ @@ -204,40 +208,8 @@ The full list of ``board_f_cpu`` for the popular embedded platforms you can find in *Boards* section of :ref:`platforms`. See "Frequency" column. -``upload_port`` -^^^^^^^^^^^^^^^ - -This option is used by "uploader" tool when sending firmware to board via -``upload_port``. For example, - -* ``/dev/ttyUSB0`` - Unix-based OS -* ``COM3`` - Windows OS -* ``192.168.0.13`` - IP address when using OTA - -If ``upload_port`` isn't specified, then *PlatformIO* will try to detect it -automatically. - -To print all available serial ports use :ref:`cmd_serialports` command. - - -``upload_protocol`` -^^^^^^^^^^^^^^^^^^^ - -A protocol that "uploader" tool uses to talk to the board. - -.. _projectconf_upload_speed: - -``upload_speed`` -^^^^^^^^^^^^^^^^ - -A connection speed (`baud rate `_) -which "uploader" tool uses when sending firmware to board. - -``upload_flags`` -^^^^^^^^^^^^^^^^ - -Extra flags for uploader. Will be added to the end of uploader command. If you -need to override uploader command or base flags please use :ref:`projectconf_extra_script`. +Building options +~~~~~~~~~~~~~~~~ .. _projectconf_build_flags: @@ -368,66 +340,6 @@ exclude ``.git`` and ``svn`` repository folders and exclude ``examples`` folder. This option can be set by global environment variable :envvar:`PLATFORMIO_SRC_FILTER`. -``lib_install`` -^^^^^^^^^^^^^^^ - -Specify dependent libraries which should be installed before environment -process. The only library IDs are allowed. Multiple libraries can be passed -using comma ``,`` sign. - -You can obtain library IDs using :ref:`cmd_lib_search` command. - -Example: - -.. code-block:: ini - - [env:depends_on_some_libs] - lib_install = 1,13,19 - -``lib_use`` -^^^^^^^^^^^ - -Specify libraries which should be used by ``Library Dependency Finder (LDF)`` with -the highest priority. - -Example: - -.. code-block:: ini - - [env:libs_with_highest_priority] - lib_use = OneWire_ID1,SPI - -``lib_ignore`` -^^^^^^^^^^^^^^ - -Specify libraries which should be ignored by ``Library Dependency Finder (LDF)`` - -Example: - -.. code-block:: ini - - [env:ignore_some_libs] - lib_ignore = SPI,EngduinoV3_ID123 - -``lib_dfcyclic`` -^^^^^^^^^^^^^^^^ - -Control cyclic (recursive) behaviour 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`. - -If you want to enable cyclic (recursive, nested) search, please set this option -to ``True``. Founded library will be treated like a new source files and -``LDF`` will search dependencies for it. - -Example: - -.. code-block:: ini - - [env:libs_with_enabled_ldf_cyclic] - lib_dfcyclic = True - .. _projectconf_extra_script: ``extra_script`` @@ -495,6 +407,110 @@ The list with available targets is located in :option:`platformio run --target`. When no targets are defined, *PlatformIO* will build only sources by default. + +Uploading options +~~~~~~~~~~~~~~~~~ + +``upload_port`` +^^^^^^^^^^^^^^^ + +This option is used by "uploader" tool when sending firmware to board via +``upload_port``. For example, + +* ``/dev/ttyUSB0`` - Unix-based OS +* ``COM3`` - Windows OS +* ``192.168.0.13`` - IP address when using OTA + +If ``upload_port`` isn't specified, then *PlatformIO* will try to detect it +automatically. + +To print all available serial ports use :ref:`cmd_serialports` command. + +``upload_protocol`` +^^^^^^^^^^^^^^^^^^^ + +A protocol that "uploader" tool uses to talk to the board. + +.. _projectconf_upload_speed: + +``upload_speed`` +^^^^^^^^^^^^^^^^ + +A connection speed (`baud rate `_) +which "uploader" tool uses when sending firmware to board. + +``upload_flags`` +^^^^^^^^^^^^^^^^ + +Extra flags for uploader. Will be added to the end of uploader command. If you +need to override uploader command or base flags please use :ref:`projectconf_extra_script`. + + +Library options +~~~~~~~~~~~~~~~ + +``lib_install`` +^^^^^^^^^^^^^^^ + +Specify dependent libraries which should be installed before environment +process. The only library IDs are allowed. Multiple libraries can be passed +using comma ``,`` sign. + +You can obtain library IDs using :ref:`cmd_lib_search` command. + +Example: + +.. code-block:: ini + + [env:depends_on_some_libs] + lib_install = 1,13,19 + +``lib_use`` +^^^^^^^^^^^ + +Specify libraries which should be used by ``Library Dependency Finder (LDF)`` with +the highest priority. + +Example: + +.. code-block:: ini + + [env:libs_with_highest_priority] + lib_use = OneWire_ID1,SPI + +``lib_ignore`` +^^^^^^^^^^^^^^ + +Specify libraries which should be ignored by ``Library Dependency Finder (LDF)`` + +Example: + +.. code-block:: ini + + [env:ignore_some_libs] + lib_ignore = SPI,EngduinoV3_ID123 + +``lib_dfcyclic`` +^^^^^^^^^^^^^^^^ + +Control cyclic (recursive) behaviour 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`. + +If you want to enable cyclic (recursive, nested) search, please set this option +to ``True``. Founded library will be treated like a new source files and +``LDF`` will search dependencies for it. + +Example: + +.. code-block:: ini + + [env:libs_with_enabled_ldf_cyclic] + lib_dfcyclic = True + +----------- + .. _projectconf_examples: Examples @@ -551,8 +567,8 @@ Examples upload_protocol = usbasp upload_flags = -Pusb -B5 -Then upload firmware using :option:`platformio run --target program`. To use -other programmers see :ref:`atmelavr_upload_via_programmer`. +Then upload firmware using target ``program`` for :option:`platformio run --target`. +command. To use other programmers see :ref:`atmelavr_upload_via_programmer`. 4. :ref:`platform_ststm32`: Upload firmware using GDB script ``upload.gdb``, From b60eb059c396a587bcdbc933bcf61c8cf3adcb4e Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 13 Jan 2016 15:21:51 +0200 Subject: [PATCH 06/71] Explain in documentation how to overwrite upload reset method for Espressif development platform // Resolve #444 --- HISTORY.rst | 3 +++ docs/platforms/espressif_extra.rst | 28 ++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/HISTORY.rst b/HISTORY.rst index e4b5fc43..8aca7b6a 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -7,6 +7,9 @@ PlatformIO 2.0 2.7.2 (2016-01-??) ~~~~~~~~~~~~~~~~~~ +* Explained in documentation how to `overwrite upload reset method `_ + for Espressif development platform + (`issue #444 `_) * Fixed builder for mbed framework and ST STM32 platform diff --git a/docs/platforms/espressif_extra.rst b/docs/platforms/espressif_extra.rst index 11c52dc8..6c8614c0 100644 --- a/docs/platforms/espressif_extra.rst +++ b/docs/platforms/espressif_extra.rst @@ -53,6 +53,34 @@ To override default LD script please use :ref:`projectconf_build_flags` from [env:myenv] build_flags = -Wl,-Tesp8266.flash.4m.ld +Custom Reset Method +------------------- + +To overwrite predefined reset method for uploading please use :ref:`projectconf_extra_script`. +For example, default reset method for ``esp12e`` board is ``nodemcu``. Let's +overwrite it to ``ck``: + +* :ref:`projectconf` + + .. code-block:: ini + + [env:esp12e] + platform = espressif + framework = arduino + board = esp12e + extra_script = extra_script.py + + +* ``extra_script.py`` should be located on the same level as :ref:`projectconf` + + .. code-block:: python + + from SCons.Script import DefaultEnvironment + + env = DefaultEnvironment() + env['BOARD_OPTIONS']['upload']['resetmethod'] = 'ck' + + .. _platform_espressif_uploadfs: Uploading files to file system SPIFFS From e2d9d0a5d8a4637b621dd57e68ceda495f67d73f Mon Sep 17 00:00:00 2001 From: Valeriy Koval Date: Wed, 13 Jan 2016 21:03:45 +0200 Subject: [PATCH 07/71] Add SPL support for nucleo_f401re // Resolve #453 --- platformio/boards/ststm32.json | 4 ++-- platformio/builder/scripts/frameworks/spl.py | 19 ++++++++++++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/platformio/boards/ststm32.json b/platformio/boards/ststm32.json index 272c1286..a2746070 100644 --- a/platformio/boards/ststm32.json +++ b/platformio/boards/ststm32.json @@ -273,14 +273,14 @@ "nucleo_f401re": { "build": { "core": "stm32", - "extra_flags": "-DSTM32F4 -DSTM32F401xE", + "extra_flags": "-DSTM32F4 -DSTM32F401xE -DSTM32F40_41xxx", "f_cpu": "84000000L", "ldscript": "stm32f401xe.ld", "cpu": "cortex-m4", "mcu": "stm32f401ret6", "variant": "stm32f401xe" }, - "frameworks": ["cmsis", "mbed"], + "frameworks": ["mbed", "cmsis", "spl"], "name": "ST Nucleo F401RE", "platform": "ststm32", "upload": { diff --git a/platformio/builder/scripts/frameworks/spl.py b/platformio/builder/scripts/frameworks/spl.py index 1e74eae3..e521ae9f 100644 --- a/platformio/builder/scripts/frameworks/spl.py +++ b/platformio/builder/scripts/frameworks/spl.py @@ -23,7 +23,7 @@ directly with the registers. http://www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1743?sc=stm32embeddedsoftware """ -from os.path import join +from os.path import isfile, join from SCons.Script import DefaultEnvironment @@ -70,6 +70,23 @@ envsafe.Append( # Target: Build SPL Library # +# use mbed ldscript with bootloader section +ldscript = env.get("BOARD_OPTIONS", {}).get("build", {}).get("ldscript") +if not isfile(join(env.subst("$PIOPACKAGES_DIR"), "ldscripts", ldscript)): + if "mbed" in env.get("BOARD_OPTIONS", {}).get("frameworks", {}): + env.Append( + LINKFLAGS=[ + '-Wl,-T"%s"' % + join( + "$PIOPACKAGES_DIR", "framework-mbed", "variant", + env.subst("$BOARD").upper(), "mbed", + "TARGET_%s" % env.subst( + "$BOARD").upper(), "TOOLCHAIN_GCC_ARM", + "%s.ld" % ldscript.upper()[:-3] + ) + ] + ) + extra_flags = env.get("BOARD_OPTIONS", {}).get("build", {}).get("extra_flags") src_filter_patterns = ["+<*>"] if "STM32F40_41xxx" in extra_flags: From 2f9b61aee4661c12447f13a4374cf2dce23538f0 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 13 Jan 2016 21:05:49 +0200 Subject: [PATCH 08/71] Docs: add SPL support for nucleo_f401re // Issue #453 --- docs/frameworks/spl.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/frameworks/spl.rst b/docs/frameworks/spl.rst index cae62d7b..72cf9706 100644 --- a/docs/frameworks/spl.rst +++ b/docs/frameworks/spl.rst @@ -106,4 +106,11 @@ ST - 128 Kb - 16 Kb + * - ``nucleo_f401re`` + - `ST Nucleo F401RE `_ + - STM32F401RET6 + - 84 MHz + - 512 Kb + - 96 Kb + .. include:: spl_extra.rst From 2d42f944cdb61bbfd9ceb1d2225302b523cae3e9 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 13 Jan 2016 21:09:26 +0200 Subject: [PATCH 09/71] Update history with SPL framework for nucleo_f401re // Issue #453 --- HISTORY.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HISTORY.rst b/HISTORY.rst index 8aca7b6a..66cf804f 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -7,6 +7,8 @@ PlatformIO 2.0 2.7.2 (2016-01-??) ~~~~~~~~~~~~~~~~~~ +* Added SPL-Framework support for Nucleo F401RE board + (`issue #453 `_) * Explained in documentation how to `overwrite upload reset method `_ for Espressif development platform (`issue #444 `_) From 54f2f4ce45934ecfdf71371f26e9530f384257a1 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 13 Jan 2016 22:22:55 +0200 Subject: [PATCH 10/71] Use current Python interpreter to show updated version --- platformio/commands/upgrade.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/platformio/commands/upgrade.py b/platformio/commands/upgrade.py index 83520fc2..ba318018 100644 --- a/platformio/commands/upgrade.py +++ b/platformio/commands/upgrade.py @@ -35,8 +35,7 @@ def cli(): fg="yellow") cmds = ( - [os.path.normpath(sys.executable), - "-m", "pip", "install", "--upgrade", "platformio"], + ["pip", "install", "--upgrade", "platformio"], ["platformio", "--version"] ) @@ -44,11 +43,12 @@ def cli(): r = None try: for cmd in cmds: + cmd = [os.path.normpath(sys.executable), "-m"] + cmd r = None r = util.exec_command(cmd) # try pip with disabled cache - if r['returncode'] != 0 and cmd[0] != "platformio": + if r['returncode'] != 0 and cmd[2] == "pip": cmd.insert(3, "--no-cache-dir") r = util.exec_command(cmd) From 9ba493bcee5c4a52858bce0a99349135016cd4e1 Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Wed, 13 Jan 2016 22:50:19 +0200 Subject: [PATCH 11/71] Add new article "STM NUCLEOF401RE TIMER IO" by @g7uvw --- docs/articles.rst | 1 + docs/frameworks/cmsis_extra.rst | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/docs/articles.rst b/docs/articles.rst index 52b89ce4..aa588c22 100644 --- a/docs/articles.rst +++ b/docs/articles.rst @@ -23,6 +23,7 @@ Here are recent articles about PlatformIO: 2016 ^^^^ +* Jan 11, 2016 - **Dr. David Mills** - `STM NUCLEOF401RE TIMER IO `_ * Jan 05, 2016 - **Julien Rodrigues** - `Internet Of Things: The IDE scandal `_ 2015 diff --git a/docs/frameworks/cmsis_extra.rst b/docs/frameworks/cmsis_extra.rst index 7394366e..1ab45803 100644 --- a/docs/frameworks/cmsis_extra.rst +++ b/docs/frameworks/cmsis_extra.rst @@ -9,6 +9,13 @@ See the License for the specific language governing permissions and limitations under the License. +Articles +-------- + +* Jan 11, 2016 - **David Mills, Ph.D.** - `STM NUCLEOF401RE TIMER IO `_ + +See more :ref:`articles`. + Examples -------- From 1b85a3ddd3f42a42499f5ff3390bfbe08950c9db Mon Sep 17 00:00:00 2001 From: Ivan Kravets Date: Thu, 14 Jan 2016 00:02:23 +0200 Subject: [PATCH 12/71] Add banner about IoT Award --- docs/_static/extra.css | 27 +++++++++++++++++++++++++-- docs/_templates/footer.html | 5 +++-- docs/articles.rst | 2 +- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/docs/_static/extra.css b/docs/_static/extra.css index b4848bff..edf97bb8 100644 --- a/docs/_static/extra.css +++ b/docs/_static/extra.css @@ -35,10 +35,10 @@ nav { display: block !important; } body { - padding-top: 50px; + padding-top: 100px; } .wy-nav-side { - top: 50px; + top: 100px; } .container { @@ -253,3 +253,26 @@ nav { .navbar-header .navbar-brand { color: #e0e0e0; } + +/* Misc */ + +.top-banner { + display: block; + padding: 10px 20px; + font-weight: bold; + font-size: 14px; + color: #fff; + text-align: center; + background-color: #0275d8; +} + +.top-banner:hover { + color: #fff; + text-decoration: none; + background-color: #025ebb; +} + +.top-banner:visited { + color: #fff; + text-decoration: none; +} diff --git a/docs/_templates/footer.html b/docs/_templates/footer.html index 65446636..777a80be 100644 --- a/docs/_templates/footer.html +++ b/docs/_templates/footer.html @@ -1,8 +1,9 @@ {% extends "!footer.html" %} {% block extrafooter %} - +