diff --git a/docs/frameworks/arduino.rst b/docs/frameworks/arduino.rst
index 168636fb..6215048c 100644
--- a/docs/frameworks/arduino.rst
+++ b/docs/frameworks/arduino.rst
@@ -8,6 +8,26 @@ For more detailed information please visit `vendor site `_
+ - ATMEGA328P
+ - 8 MHz
+ - 32 Kb
+ - 2 Kb
+
+ * - ``panStampNRG``
+ - `PanStamp NRG 1.1 `_
+ - CC430F5137
+ - 12 MHz
+ - 32 Kb
+ - 4 Kb
+
SainSmart
~~~~~~~~~
diff --git a/docs/frameworks/cmsis.rst b/docs/frameworks/cmsis.rst
index a2b403e9..2bdf474e 100644
--- a/docs/frameworks/cmsis.rst
+++ b/docs/frameworks/cmsis.rst
@@ -8,6 +8,17 @@ For more detailed information please visit `vendor site `_.
.. contents::
+Platforms
+---------
+.. list-table::
+ :header-rows: 1
+
+ * - Name
+ - Description
+
+ * - :ref:`platform_ststm32`
+ - The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to offer new degrees of freedom to MCU users. It offers a 32-bit product range that combines very high performance, real-time capabilities, digital signal processing, and low-power, low-voltage operation, while maintaining full integration and ease of development.
+
+ * - :ref:`platform_titiva`
+ - Texas Instruments TM4C12x MCUs offer the industrys most popular ARM Cortex-M4 core with scalable memory and package options, unparalleled connectivity peripherals, advanced application functions, industry-leading analog integration, and extensive software solutions.
+
Boards
------
diff --git a/docs/frameworks/mbed.rst b/docs/frameworks/mbed.rst
index 6bb0f699..98436f12 100644
--- a/docs/frameworks/mbed.rst
+++ b/docs/frameworks/mbed.rst
@@ -8,6 +8,26 @@ For more detailed information please visit `vendor site `_.
.. contents::
+Platforms
+---------
+.. list-table::
+ :header-rows: 1
+
+ * - Name
+ - Description
+
+ * - :ref:`platform_freescalekinetis`
+ - Freescale Kinetis Microcontrollers is family of multiple hardware- and software-compatible ARM Cortex-M0+, Cortex-M4 and Cortex-M7-based MCU series. Kinetis MCUs offer exceptional low-power performance, scalability and feature integration.
+
+ * - :ref:`platform_nordicnrf51`
+ - The Nordic nRF51 Series is a family of highly flexible, multi-protocol, system-on-chip (SoC) devices for ultra-low power wireless applications. nRF51 Series devices support a range of protocol stacks including Bluetooth Smart (previously called Bluetooth low energy), ANT and proprietary 2.4GHz protocols such as Gazell.
+
+ * - :ref:`platform_nxplpc`
+ - The NXP LPC is a family of 32-bit microcontroller integrated circuits by NXP Semiconductors. The LPC chips are grouped into related series that are based around the same 32-bit ARM processor core, such as the Cortex-M4F, Cortex-M3, Cortex-M0+, or Cortex-M0. Internally, each microcontroller consists of the processor core, static RAM memory, flash memory, debugging interface, and various peripherals.
+
+ * - :ref:`platform_ststm32`
+ - The STM32 family of 32-bit Flash MCUs based on the ARM Cortex-M processor is designed to offer new degrees of freedom to MCU users. It offers a 32-bit product range that combines very high performance, real-time capabilities, digital signal processing, and low-power, low-voltage operation, while maintaining full integration and ease of development.
+
Boards
------
@@ -83,6 +103,13 @@ Freescale
- Flash
- RAM
+ * - ``IBMEthernetKit``
+ - `Ethernet IoT Starter Kit `_
+ - MK64FN1M0VLL12
+ - 120 MHz
+ - 1024 Kb
+ - 256 Kb
+
* - ``frdm_k20d50m``
- `Freescale Kinetis FRDM-K20D50M `_
- MK20DX128VLH5
@@ -384,6 +411,13 @@ ST
- 64 Kb
- 16 Kb
+ * - ``nucleo_f303re``
+ - `ST Nucleo F303RE `_
+ - STM32F303RET6
+ - 72 MHz
+ - 512 Kb
+ - 64 Kb
+
* - ``nucleo_f334r8``
- `ST Nucleo F334R8 `_
- STM32F334R8T6
@@ -432,6 +466,13 @@ SeeedStudio
- Flash
- RAM
+ * - ``seeedTinyBLE``
+ - `Seeed Tiny BLE `_
+ - NRF51822
+ - 16 MHz
+ - 256 Kb
+ - 16 Kb
+
* - ``seeeduinoArchPro``
- `Seeeduino-Arch-Pro `_
- LPC1768
diff --git a/docs/frameworks/spl.rst b/docs/frameworks/spl.rst
index 40299c7a..fa4e9cdc 100644
--- a/docs/frameworks/spl.rst
+++ b/docs/frameworks/spl.rst
@@ -8,6 +8,17 @@ For more detailed information please visit `vendor site `_
+ - ATMEGA328P
+ - 8 MHz
+ - 32 Kb
+ - 2 Kb
diff --git a/docs/platforms/atmelsam.rst b/docs/platforms/atmelsam.rst
index 62c0cedf..a8e78bed 100644
--- a/docs/platforms/atmelsam.rst
+++ b/docs/platforms/atmelsam.rst
@@ -35,6 +35,17 @@ Packages
+Frameworks
+----------
+.. list-table::
+ :header-rows: 1
+
+ * - Name
+ - Description
+
+ * - :ref:`framework_arduino`
+ - Arduino Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
+
Boards
------
diff --git a/docs/platforms/freescalekinetis.rst b/docs/platforms/freescalekinetis.rst
index 9238e586..5f5eed08 100644
--- a/docs/platforms/freescalekinetis.rst
+++ b/docs/platforms/freescalekinetis.rst
@@ -29,6 +29,17 @@ Packages
+Frameworks
+----------
+.. list-table::
+ :header-rows: 1
+
+ * - Name
+ - Description
+
+ * - :ref:`framework_mbed`
+ - The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise, yet powerful enough to build complex projects. It is built on the low-level ARM CMSIS APIs, allowing you to code down to the metal if needed. In addition to RTOS, USB and Networking libraries, a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.
+
Boards
------
@@ -51,6 +62,13 @@ Freescale
- Flash
- RAM
+ * - ``IBMEthernetKit``
+ - `Ethernet IoT Starter Kit `_
+ - MK64FN1M0VLL12
+ - 120 MHz
+ - 1024 Kb
+ - 256 Kb
+
* - ``frdm_k20d50m``
- `Freescale Kinetis FRDM-K20D50M `_
- MK20DX128VLH5
diff --git a/docs/platforms/nordicnrf51.rst b/docs/platforms/nordicnrf51.rst
index 3c54c270..04ba9de2 100644
--- a/docs/platforms/nordicnrf51.rst
+++ b/docs/platforms/nordicnrf51.rst
@@ -29,6 +29,17 @@ Packages
+Frameworks
+----------
+.. list-table::
+ :header-rows: 1
+
+ * - Name
+ - Description
+
+ * - :ref:`framework_mbed`
+ - The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise, yet powerful enough to build complex projects. It is built on the low-level ARM CMSIS APIs, allowing you to code down to the metal if needed. In addition to RTOS, USB and Networking libraries, a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.
+
Boards
------
@@ -119,6 +130,26 @@ RedBearLab
- 256 Kb
- 16 Kb
+SeeedStudio
+~~~~~~~~~~~
+
+.. list-table::
+ :header-rows: 1
+
+ * - Type ``board``
+ - Name
+ - Microcontroller
+ - Frequency
+ - Flash
+ - RAM
+
+ * - ``seeedTinyBLE``
+ - `Seeed Tiny BLE `_
+ - NRF51822
+ - 16 MHz
+ - 256 Kb
+ - 16 Kb
+
Switch Science
~~~~~~~~~~~~~~
diff --git a/docs/platforms/nxplpc.rst b/docs/platforms/nxplpc.rst
index 9220b8e2..fd2ed5ff 100644
--- a/docs/platforms/nxplpc.rst
+++ b/docs/platforms/nxplpc.rst
@@ -29,6 +29,17 @@ Packages
+Frameworks
+----------
+.. list-table::
+ :header-rows: 1
+
+ * - Name
+ - Description
+
+ * - :ref:`framework_mbed`
+ - The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise, yet powerful enough to build complex projects. It is built on the low-level ARM CMSIS APIs, allowing you to code down to the metal if needed. In addition to RTOS, USB and Networking libraries, a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.
+
Boards
------
diff --git a/docs/platforms/ststm32.rst b/docs/platforms/ststm32.rst
index ba7246f9..78e3f43f 100644
--- a/docs/platforms/ststm32.rst
+++ b/docs/platforms/ststm32.rst
@@ -17,6 +17,9 @@ Packages
* - Name
- Contents
+ * - ``framework-libopencm3``
+ - `libOpenCM3 Framework `_
+
* - ``toolchain-gccarmnoneeabi``
- `gcc-arm-embedded `_, `GDB `_
@@ -32,9 +35,6 @@ Packages
* - ``framework-mbed``
- `mbed Framework `_
- * - ``framework-opencm3``
- - `libOpenCM3 Framework `_
-
* - ``ldscripts``
- `Linker Scripts `_
@@ -44,6 +44,26 @@ Packages
+Frameworks
+----------
+.. list-table::
+ :header-rows: 1
+
+ * - Name
+ - Description
+
+ * - :ref:`framework_cmsis`
+ - The ARM Cortex Microcontroller Software Interface Standard (CMSIS) is a vendor-independent hardware abstraction layer for the Cortex-M processor series and specifies debugger interfaces. The CMSIS enables consistent and simple software interfaces to the processor for interface peripherals, real-time operating systems, and middleware. It simplifies software re-use, reducing the learning curve for new microcontroller developers and cutting the time-to-market for devices.
+
+ * - :ref:`framework_libopencm3`
+ - The libOpenCM3 framework aims to create a free/libre/open-source firmware library for various ARM Cortex-M0(+)/M3/M4 microcontrollers, including ST STM32, Ti Tiva and Stellaris, NXP LPC 11xx, 13xx, 15xx, 17xx parts, Atmel SAM3, Energy Micro EFM32 and others.
+
+ * - :ref:`framework_mbed`
+ - The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise, yet powerful enough to build complex projects. It is built on the low-level ARM CMSIS APIs, allowing you to code down to the metal if needed. In addition to RTOS, USB and Networking libraries, a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community.
+
+ * - :ref:`framework_spl`
+ - The ST Standard Peripheral Library provides a set of functions for handling the peripherals on the STM32 Cortex-M3 family. The idea is to save the user (the new user, in particular) having to deal directly with the registers.
+
Boards
------
@@ -164,6 +184,13 @@ ST
- 64 Kb
- 16 Kb
+ * - ``nucleo_f303re``
+ - `ST Nucleo F303RE `_
+ - STM32F303RET6
+ - 72 MHz
+ - 512 Kb
+ - 64 Kb
+
* - ``nucleo_f334r8``
- `ST Nucleo F334R8 `_
- STM32F334R8T6
diff --git a/docs/platforms/teensy.rst b/docs/platforms/teensy.rst
index 3eaed4da..52c18e22 100644
--- a/docs/platforms/teensy.rst
+++ b/docs/platforms/teensy.rst
@@ -38,6 +38,17 @@ Packages
+Frameworks
+----------
+.. list-table::
+ :header-rows: 1
+
+ * - Name
+ - Description
+
+ * - :ref:`framework_arduino`
+ - Arduino Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
+
Boards
------
diff --git a/docs/platforms/timsp430.rst b/docs/platforms/timsp430.rst
index 20a7ba52..b46b7219 100644
--- a/docs/platforms/timsp430.rst
+++ b/docs/platforms/timsp430.rst
@@ -26,12 +26,29 @@ Packages
* - ``framework-energiamsp430``
- `Energia Wiring-based Framework (MSP430 Core) `_
+ * - ``framework-arduinomsp430``
+ - `Arduino Wiring-based Framework (MSP430 Core) `_
+
.. warning::
**Linux Users:** Don't forget to install "udev" rules file
`99-platformio-udev.rules `_ (an instruction is located in the file).
+Frameworks
+----------
+.. list-table::
+ :header-rows: 1
+
+ * - Name
+ - Description
+
+ * - :ref:`framework_arduino`
+ - Arduino Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences.
+
+ * - :ref:`framework_energia`
+ - Energia framework enables pretty much anyone to start easily creating microcontroller-based projects and applications. Its easy-to-use libraries and functions provide developers of all experience levels to start blinking LEDs, buzzing buzzers and sensing sensors more quickly than ever before.
+
Boards
------
@@ -41,6 +58,26 @@ Boards
* For more detailed ``board`` information please scroll tables below by
horizontal.
+PanStamp
+~~~~~~~~
+
+.. list-table::
+ :header-rows: 1
+
+ * - Type ``board``
+ - Name
+ - Microcontroller
+ - Frequency
+ - Flash
+ - RAM
+
+ * - ``panStampNRG``
+ - `PanStamp NRG 1.1 `_
+ - CC430F5137
+ - 12 MHz
+ - 32 Kb
+ - 4 Kb
+
TI
~~
diff --git a/docs/platforms/titiva.rst b/docs/platforms/titiva.rst
index 7d14fae7..5d172bc2 100644
--- a/docs/platforms/titiva.rst
+++ b/docs/platforms/titiva.rst
@@ -20,15 +20,15 @@ Packages
* - ``ldscripts``
- `Linker Scripts `_
+ * - ``framework-libopencm3``
+ - `libOpenCM3 Framework `_
+
* - ``toolchain-gccarmnoneeabi``
- `gcc-arm-embedded `_, `GDB `_
* - ``tool-lm4flash``
- `Flash Programmer `_
- * - ``framework-opencm3``
- - `libOpenCM3 Framework `_
-
* - ``framework-energiativa``
- `Energia Wiring-based Framework (LM4F Core) `_
@@ -38,6 +38,20 @@ Packages
+Frameworks
+----------
+.. list-table::
+ :header-rows: 1
+
+ * - Name
+ - Description
+
+ * - :ref:`framework_energia`
+ - Energia framework enables pretty much anyone to start easily creating microcontroller-based projects and applications. Its easy-to-use libraries and functions provide developers of all experience levels to start blinking LEDs, buzzing buzzers and sensing sensors more quickly than ever before.
+
+ * - :ref:`framework_libopencm3`
+ - The libOpenCM3 framework aims to create a free/libre/open-source firmware library for various ARM Cortex-M0(+)/M3/M4 microcontrollers, including ST STM32, Ti Tiva and Stellaris, NXP LPC 11xx, 13xx, 15xx, 17xx parts, Atmel SAM3, Energy Micro EFM32 and others.
+
Boards
------
diff --git a/scripts/docspregen.py b/scripts/docspregen.py
index 6462b189..d07afb95 100644
--- a/scripts/docspregen.py
+++ b/scripts/docspregen.py
@@ -12,6 +12,14 @@ from platformio import util
from platformio.platforms.base import PlatformFactory, get_packages
+def is_compat_platform_and_framework(platform, framework):
+ p = PlatformFactory.newPlatform(platform)
+ for pkg in p.get_packages().keys():
+ if pkg.startswith("framework-%s" % framework):
+ return True
+ return False
+
+
def generate_boards(boards):
def _round_memory_size(size):
@@ -110,6 +118,26 @@ Packages
--------
""")
lines.append(generate_packages(p.get_packages()))
+
+ lines.append("""
+Frameworks
+----------
+.. list-table::
+ :header-rows: 1
+
+ * - Name
+ - Description""")
+
+ _frameworks = util.get_frameworks()
+ for framework in sorted(_frameworks.keys()):
+ if not is_compat_platform_and_framework(name, framework):
+ continue
+ lines.append("""
+ * - :ref:`framework_{type_}`
+ - {description}""".format(
+ type_=framework,
+ description=_frameworks[framework]['description']))
+
lines.append("""
Boards
------
@@ -140,7 +168,8 @@ Boards
def update_platform_docs():
for name in PlatformFactory.get_platforms().keys():
rst_path = join(
- dirname(realpath(__file__)), "..", "docs", "platforms", "%s.rst" % name)
+ dirname(realpath(__file__)), "..", "docs", "platforms",
+ "%s.rst" % name)
with open(rst_path, "w") as f:
f.write(generate_platform(name))
@@ -157,11 +186,31 @@ def generate_framework(type_, data):
lines.append("=" * len(_title))
lines.append(data['description'])
lines.append("""
-For more detailed information please visit `vendor site <%s>`_.""" %
- data['url'])
- lines.append("""
-.. contents::
+For more detailed information please visit `vendor site <%s>`_.
+""" % data['url'])
+ lines.append(".. contents::")
+
+ lines.append("""
+Platforms
+---------
+.. list-table::
+ :header-rows: 1
+
+ * - Name
+ - Description""")
+
+ for platform in sorted(PlatformFactory.get_platforms().keys()):
+ if not is_compat_platform_and_framework(platform, type_):
+ continue
+ p = PlatformFactory.newPlatform(platform)
+ lines.append("""
+ * - :ref:`platform_{type_}`
+ - {description}""".format(
+ type_=platform,
+ description=p.get_description()))
+
+ lines.append("""
Boards
------