mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-31 10:37:13 +02:00
Merge branch 'feature/mbed-platform' into develop
This commit is contained in:
@@ -217,6 +217,8 @@ base template of ``test-builder.py``.
|
|||||||
|
|
||||||
CPPDEFINES=["DEFINE_1", "DEFINE=2", "DEFINE_N"],
|
CPPDEFINES=["DEFINE_1", "DEFINE=2", "DEFINE_N"],
|
||||||
|
|
||||||
|
LIBS=["additional", "libs", "here"],
|
||||||
|
|
||||||
UPLOADER=join("$PIOPACKAGES_DIR", "tool-bar", "uploader"),
|
UPLOADER=join("$PIOPACKAGES_DIR", "tool-bar", "uploader"),
|
||||||
UPLOADCMD="$UPLOADER $SOURCES"
|
UPLOADCMD="$UPLOADER $SOURCES"
|
||||||
)
|
)
|
||||||
@@ -238,12 +240,10 @@ base template of ``test-builder.py``.
|
|||||||
# The source code of "platformio-build-tool" is here
|
# The source code of "platformio-build-tool" is here
|
||||||
# https://github.com/ivankravets/platformio/blob/develop/platformio/builder/tools/platformio.py
|
# https://github.com/ivankravets/platformio/blob/develop/platformio/builder/tools/platformio.py
|
||||||
|
|
||||||
CORELIBS = env.ProcessGeneral()
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Target: Build executable and linkable firmware
|
# Target: Build executable and linkable firmware
|
||||||
#
|
#
|
||||||
target_elf = env.BuildFirmware(CORELIBS + ["additional", "libs", "here"])
|
target_elf = env.BuildFirmware()
|
||||||
|
|
||||||
#
|
#
|
||||||
# Target: Build the .bin file
|
# Target: Build the .bin file
|
||||||
|
104
docs/platforms/freescalekinetis.rst
Normal file
104
docs/platforms/freescalekinetis.rst
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
.. _platform_freescalekinetis:
|
||||||
|
|
||||||
|
Platform ``freescalekinetis``
|
||||||
|
=============================
|
||||||
|
|
||||||
|
`Freescale Kinetis Microcontrollers <http://www.freescale.com/webapp/sps/site/homepage.jsp?code=KINETIS>`_ 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.
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
||||||
|
Packages
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Name
|
||||||
|
- Alias
|
||||||
|
- Contents
|
||||||
|
* - ``toolchain-gccarmnoneeabi``
|
||||||
|
- toolchain
|
||||||
|
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded>`_,
|
||||||
|
`GDB <http://www.gnu.org/software/gdb/>`_
|
||||||
|
* - ``framework-mbed``
|
||||||
|
-
|
||||||
|
- See below in :ref:`freescalekinetis_frameworks`
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
**Linux Users:** Don't forget to install "udev" rules file
|
||||||
|
`99-platformio-udev.rules <https://github.com/ivankravets/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
|
||||||
|
|
||||||
|
|
||||||
|
.. _freescalekinetis_frameworks:
|
||||||
|
|
||||||
|
Frameworks
|
||||||
|
----------
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Type ``framework``
|
||||||
|
- Name
|
||||||
|
- Reference
|
||||||
|
* - ``mbed``
|
||||||
|
- MBED Framework
|
||||||
|
- `Documentation <http://mbed.org>`__
|
||||||
|
|
||||||
|
|
||||||
|
Boards
|
||||||
|
------
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
* You can list pre-configured boards by :ref:`cmd_boards` command
|
||||||
|
* For more detailed ``board`` information please scroll tables below by
|
||||||
|
horizontal.
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Type ``board``
|
||||||
|
- Name
|
||||||
|
- Microcontroller ``board_mcu``
|
||||||
|
- Frequency ``board_f_cpu``
|
||||||
|
- Flash
|
||||||
|
- RAM
|
||||||
|
* - ``frdm_kl05z``
|
||||||
|
- `Freescale Kinetis FRDM-KL05Z <https://developer.mbed.org/platforms/FRDM-KL05Z/>`_
|
||||||
|
- MKL05Z32VFM4 ``cortex-m0plus``
|
||||||
|
- 48 MHz ``48000000L``
|
||||||
|
- 32 Kb
|
||||||
|
- 4 Kb
|
||||||
|
* - ``frdm_kl25z``
|
||||||
|
- `Freescale Kinetis FRDM-KL25Z <https://developer.mbed.org/platforms/KL25Z/>`_
|
||||||
|
- MKL25Z128VLK4 ``cortex-m0plus``
|
||||||
|
- 48 MHz ``48000000L``
|
||||||
|
- 128 Kb
|
||||||
|
- 16 Kb
|
||||||
|
* - ``frdm_kl46z``
|
||||||
|
- `Freescale Kinetis FRDM-KL46Z <https://developer.mbed.org/platforms/FRDM-KL46Z/>`_
|
||||||
|
- MKL46Z256Vll4 ``cortex-m0plus``
|
||||||
|
- 48 MHz ``48000000L``
|
||||||
|
- 256 Kb
|
||||||
|
- 32 Kb
|
||||||
|
* - ``frdm_k22f``
|
||||||
|
- `Freescale Kinetis FRDM-K22F <https://developer.mbed.org/platforms/FRDM-K22F/>`_
|
||||||
|
- MK22FN512VLH12 ``cortex-m4``
|
||||||
|
- 120 MHz ``120000000L``
|
||||||
|
- 512 Kb
|
||||||
|
- 128 Kb
|
||||||
|
* - ``frdm_k64f``
|
||||||
|
- `Freescale Kinetis FRDM-K64F <https://developer.mbed.org/platforms/FRDM-K64F/>`_
|
||||||
|
- MK64fN1M0VLL12 ``cortex-m4``
|
||||||
|
- 120 MHz ``120000000L``
|
||||||
|
- 1 Mb
|
||||||
|
- 256 Kb
|
||||||
|
* - ``frdm_k20d50m``
|
||||||
|
- `Freescale Kinetis FRDM-K20D50M <https://developer.mbed.org/platforms/FRDM-K20D50M/>`_
|
||||||
|
- MK20DX128VLH5 ``cortex-m4``
|
||||||
|
- 48 MHz ``48000000L``
|
||||||
|
- 128 Kb
|
||||||
|
- 16 Kb
|
||||||
|
|
||||||
|
|
||||||
|
More detailed information you can find here
|
||||||
|
`Freescale Kinetis platforms with support MBED framework <https://developer.mbed.org/platforms/?tvend=4>`_.
|
@@ -16,7 +16,10 @@ MCU, upload protocol or etc. Please use ``board`` option.
|
|||||||
|
|
||||||
atmelavr
|
atmelavr
|
||||||
atmelsam
|
atmelsam
|
||||||
stm32
|
freescalekinetis
|
||||||
|
nordicnrf51
|
||||||
|
nxplpc
|
||||||
|
ststm32
|
||||||
teensy
|
teensy
|
||||||
timsp430
|
timsp430
|
||||||
titiva
|
titiva
|
||||||
|
110
docs/platforms/nordicnrf51.rst
Normal file
110
docs/platforms/nordicnrf51.rst
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
.. _platform_nordicnrf51:
|
||||||
|
|
||||||
|
Platform ``nordicnrf51``
|
||||||
|
========================
|
||||||
|
|
||||||
|
`The Nordic nRF51 Series <https://www.nordicsemi.com/eng/Products/nRF51-Series-SoC>`_ 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.
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
||||||
|
Packages
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Name
|
||||||
|
- Alias
|
||||||
|
- Contents
|
||||||
|
* - ``toolchain-gccarmnoneeabi``
|
||||||
|
- toolchain
|
||||||
|
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded>`_,
|
||||||
|
`GDB <http://www.gnu.org/software/gdb/>`_
|
||||||
|
* - ``framework-mbed``
|
||||||
|
-
|
||||||
|
- See below in :ref:`nordicnrf51_frameworks`
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
**Linux Users:** Don't forget to install "udev" rules file
|
||||||
|
`99-platformio-udev.rules <https://github.com/ivankravets/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
|
||||||
|
|
||||||
|
|
||||||
|
.. _nordicnrf51_frameworks:
|
||||||
|
|
||||||
|
Frameworks
|
||||||
|
----------
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Type ``framework``
|
||||||
|
- Name
|
||||||
|
- Reference
|
||||||
|
* - ``mbed``
|
||||||
|
- MBED Framework
|
||||||
|
- `Documentation <http://mbed.org>`__
|
||||||
|
|
||||||
|
|
||||||
|
Boards
|
||||||
|
------
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
* You can list pre-configured boards by :ref:`cmd_boards` command
|
||||||
|
* For more detailed ``board`` information please scroll tables below by
|
||||||
|
horizontal.
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Type ``board``
|
||||||
|
- Name
|
||||||
|
- Microcontroller ``board_mcu``
|
||||||
|
- Frequency ``board_f_cpu``
|
||||||
|
- Flash
|
||||||
|
- RAM
|
||||||
|
* - ``nrf51_mkit``
|
||||||
|
- `Nordic nRF51822-mKIT <http://developer.mbed.org/platforms/Nordic-nRF51822/>`_
|
||||||
|
- nrf51822 ``cortex-m0``
|
||||||
|
- 16 MHz ``16000000L``
|
||||||
|
- 128 Kb
|
||||||
|
- 16 Kb
|
||||||
|
* - ``nrf51_dongle``
|
||||||
|
- `Nordic nRF51-Dongle <https://developer.mbed.org/platforms/Nordic-nRF51-Dongle/>`_
|
||||||
|
- nrf51822/nrf51422 ``cortex-m0``
|
||||||
|
- 32 MHz ``32000000L``
|
||||||
|
- 256 Kb
|
||||||
|
- 16 Kb
|
||||||
|
* - ``nrf51_dk``
|
||||||
|
- `Nordic nRF51-DK <https://developer.mbed.org/platforms/Nordic-nRF51-DK/>`_
|
||||||
|
- nrf51822/nrf51422 ``cortex-m0``
|
||||||
|
- 32 MHz ``32000000L``
|
||||||
|
- 256 Kb
|
||||||
|
- 16 Kb
|
||||||
|
* - ``redBearLab``
|
||||||
|
- `RedBearLab nRF51822 <https://developer.mbed.org/platforms/RedBearLab-nRF51822/>`_
|
||||||
|
- nrf51822 ``cortex-m0``
|
||||||
|
- 16 MHz ``16000000L``
|
||||||
|
- 256 Kb
|
||||||
|
- 16 Kb
|
||||||
|
* - ``redBearLabBLENano``
|
||||||
|
- `RedBearLab BLE Nano <https://developer.mbed.org/platforms/RedBearLab-BLE-Nano/>`_
|
||||||
|
- nrf51822 ``cortex-m0``
|
||||||
|
- 16 MHz ``16000000L``
|
||||||
|
- 256 Kb
|
||||||
|
- 16 Kb
|
||||||
|
* - ``wallBotBLE``
|
||||||
|
- `JKSoft Wallbot BLE <https://developer.mbed.org/platforms/JKSoft-Wallbot-BLE/>`_
|
||||||
|
- nrf51822 ``cortex-m0``
|
||||||
|
- 16 MHz ``16000000L``
|
||||||
|
- 128 Kb
|
||||||
|
- 16 Kb
|
||||||
|
* - ``hrm1017``
|
||||||
|
- `Switch Science mbed HRM1017 <https://developer.mbed.org/platforms/mbed-HRM1017/>`_
|
||||||
|
- nrf51822 ``cortex-m0``
|
||||||
|
- 16 MHz ``16000000L``
|
||||||
|
- 128 Kb
|
||||||
|
- 16 Kb
|
||||||
|
|
||||||
|
|
||||||
|
More detailed information you can find here
|
||||||
|
`nRF51 platforms with support MBED framework <http://developer.mbed.org/platforms/?tvend=11>`_.
|
146
docs/platforms/nxplpc.rst
Normal file
146
docs/platforms/nxplpc.rst
Normal file
@@ -0,0 +1,146 @@
|
|||||||
|
.. _platform_nxplpc:
|
||||||
|
|
||||||
|
Platform ``nxplpc``
|
||||||
|
===================
|
||||||
|
|
||||||
|
`The NXP LPC <http://www.nxp.com/products/microcontrollers/>`_ 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.
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
||||||
|
Packages
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Name
|
||||||
|
- Alias
|
||||||
|
- Contents
|
||||||
|
* - ``toolchain-gccarmnoneeabi``
|
||||||
|
- toolchain
|
||||||
|
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded>`_,
|
||||||
|
`GDB <http://www.gnu.org/software/gdb/>`_
|
||||||
|
* - ``framework-mbed``
|
||||||
|
-
|
||||||
|
- See below in :ref:`nxplpc_frameworks`
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
**Linux Users:** Don't forget to install "udev" rules file
|
||||||
|
`99-platformio-udev.rules <https://github.com/ivankravets/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
|
||||||
|
|
||||||
|
|
||||||
|
.. _nxplpc_frameworks:
|
||||||
|
|
||||||
|
Frameworks
|
||||||
|
----------
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Type ``framework``
|
||||||
|
- Name
|
||||||
|
- Reference
|
||||||
|
* - ``mbed``
|
||||||
|
- MBED Framework
|
||||||
|
- `Documentation <http://mbed.org>`__
|
||||||
|
|
||||||
|
|
||||||
|
Boards
|
||||||
|
------
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
* You can list pre-configured boards by :ref:`cmd_boards` command
|
||||||
|
* For more detailed ``board`` information please scroll tables below by
|
||||||
|
horizontal.
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Type ``board``
|
||||||
|
- Name
|
||||||
|
- Microcontroller ``board_mcu``
|
||||||
|
- Frequency ``board_f_cpu``
|
||||||
|
- Flash
|
||||||
|
- RAM
|
||||||
|
* - ``lpc1549``
|
||||||
|
- `LPCXpresso1549 <https://developer.mbed.org/platforms/LPCXpresso1549/>`_
|
||||||
|
- LPC1549 ``cortex-m3``
|
||||||
|
- 72 MHz ``72000000L``
|
||||||
|
- 256 Kb
|
||||||
|
- 36 Kb
|
||||||
|
* - ``lpc1768``
|
||||||
|
- `mbed LPC1768 <http://developer.mbed.org/platforms/mbed-LPC1768/>`_
|
||||||
|
- LPC1768 ``cortex-m3``
|
||||||
|
- 96 MHz ``96000000L``
|
||||||
|
- 512 Kb
|
||||||
|
- 32 Kb
|
||||||
|
* - ``seeeduinoArchPro``
|
||||||
|
- `Seeeduino-Arch-Pro <https://developer.mbed.org/platforms/Seeeduino-Arch-Pro/>`_
|
||||||
|
- LPC1768 ``cortex-m3``
|
||||||
|
- 96 MHz ``96000000L``
|
||||||
|
- 512 Kb
|
||||||
|
- 32 Kb
|
||||||
|
* - ``ubloxc027``
|
||||||
|
- `U-blox C027 <https://developer.mbed.org/platforms/u-blox-C027/>`_
|
||||||
|
- LPC1768 ``cortex-m3``
|
||||||
|
- 96 MHz ``96000000L``
|
||||||
|
- 512 Kb
|
||||||
|
- 32 Kb
|
||||||
|
* - ``lpc1114fn28``
|
||||||
|
- `mbed LPC1114FN28 <https://developer.mbed.org/platforms/LPC1114FN28/>`_
|
||||||
|
- LPC1114FN28 ``cortex-m0``
|
||||||
|
- 48 MHz ``48000000L``
|
||||||
|
- 32 Kb
|
||||||
|
- 4 Kb
|
||||||
|
* - ``lpc11u24``
|
||||||
|
- `mbed LPC11U24 <https://developer.mbed.org/platforms/mbed-LPC11U24/>`_
|
||||||
|
- LPC11U24 ``cortex-m0``
|
||||||
|
- 48 MHz ``48000000L``
|
||||||
|
- 32 Kb
|
||||||
|
- 8 Kb
|
||||||
|
* - ``dipcortexm0``
|
||||||
|
- `DipCortex M0 <https://developer.mbed.org/platforms/DipCortex-M0/>`_
|
||||||
|
- LPC11U24 ``cortex-m0``
|
||||||
|
- 50 MHz ``50000000L``
|
||||||
|
- 32 Kb
|
||||||
|
- 8 Kb
|
||||||
|
* - ``blueboard_lpc11u24``
|
||||||
|
- `BlueBoard-LPC11U24 <https://developer.mbed.org/platforms/BlueBoard-LPC11U24/>`_
|
||||||
|
- LPC11U24 ``cortex-m0``
|
||||||
|
- 48 MHz ``48000000L``
|
||||||
|
- 32 Kb
|
||||||
|
- 8 Kb
|
||||||
|
* - ``mbuino``
|
||||||
|
- `Outrageous Circuits mBuino <https://developer.mbed.org/platforms/Outrageous-Circuits-mBuino/>`_
|
||||||
|
- LPC11U24 ``cortex-m0``
|
||||||
|
- 50 MHz ``50000000L``
|
||||||
|
- 32 Kb
|
||||||
|
- 8 Kb
|
||||||
|
* - ``lpc11u35``
|
||||||
|
- `EA LPC11U35 QuickStart Board <https://developer.mbed.org/platforms/EA-LPC11U35/>`_
|
||||||
|
- LPC11U35 ``cortex-m0``
|
||||||
|
- 48 MHz ``48000000L``
|
||||||
|
- 64 Kb
|
||||||
|
- 10 Kb
|
||||||
|
* - ``lpc11u35_501``
|
||||||
|
- `TG-LPC11U35-501 QuickStart Board <https://developer.mbed.org/platforms/TG-LPC11U35-501/>`_
|
||||||
|
- LPC11U35 ``cortex-m0``
|
||||||
|
- 48 MHz ``48000000L``
|
||||||
|
- 64 Kb
|
||||||
|
- 10 Kb
|
||||||
|
* - ``lpc4088``
|
||||||
|
- `EA LPC4088 QuickStart Board <https://developer.mbed.org/platforms/EA-LPC4088/>`_
|
||||||
|
- LPC4088 ``cortex-m4``
|
||||||
|
- 120 MHz ``120000000L``
|
||||||
|
- 512 Kb
|
||||||
|
- 96 Kb
|
||||||
|
* - ``lpc4088_dm``
|
||||||
|
- `EA LPC4088 Display Module <https://developer.mbed.org/platforms/EA-LPC4088-Display-Module/>`_
|
||||||
|
- LPC4088 ``cortex-m4``
|
||||||
|
- 120 MHz ``120000000L``
|
||||||
|
- 512 Kb
|
||||||
|
- 96 Kb
|
||||||
|
|
||||||
|
|
||||||
|
More detailed information you can find here
|
||||||
|
`NXP platforms with support MBED framework <http://developer.mbed.org/platforms/?tvend=3>`_.
|
@@ -1,104 +0,0 @@
|
|||||||
.. _platform_stm32:
|
|
||||||
|
|
||||||
Platform ``stm32``
|
|
||||||
==================
|
|
||||||
|
|
||||||
`The STM32 family of 32-bit Flash MCUs <http://www.st.com/web/en/catalog/mmc/FM141/SC1169?sc=stm32>`_ 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.
|
|
||||||
|
|
||||||
The unparalleled and large range of STM32 devices, based on an industry-standard core and accompanied by a vast choice of tools and software, makes this family of products the ideal choice, both for small projects and for entire platform decisions.
|
|
||||||
|
|
||||||
.. contents::
|
|
||||||
|
|
||||||
Packages
|
|
||||||
--------
|
|
||||||
|
|
||||||
.. list-table::
|
|
||||||
:header-rows: 1
|
|
||||||
|
|
||||||
* - Name
|
|
||||||
- Alias
|
|
||||||
- Contents
|
|
||||||
* - ``toolchain-gccarmnoneeabi``
|
|
||||||
- toolchain
|
|
||||||
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded>`_,
|
|
||||||
`GDB <http://www.gnu.org/software/gdb/>`_
|
|
||||||
* - ``tool-stlink``
|
|
||||||
- uploader
|
|
||||||
- `STLink <https://github.com/texane/stlink>`_
|
|
||||||
* - ``framework-cmsis``
|
|
||||||
-
|
|
||||||
- See below in :ref:`stm32_frameworks`
|
|
||||||
* - ``framework-spl``
|
|
||||||
-
|
|
||||||
- See below in :ref:`stm32_frameworks`
|
|
||||||
* - ``framework-opencm3``
|
|
||||||
-
|
|
||||||
- See below in :ref:`stm32_frameworks`
|
|
||||||
|
|
||||||
.. warning::
|
|
||||||
**Linux Users:** Don't forget to install "udev" rules file
|
|
||||||
`99-platformio-udev.rules <https://github.com/ivankravets/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
|
|
||||||
|
|
||||||
|
|
||||||
.. _stm32_frameworks:
|
|
||||||
|
|
||||||
Frameworks
|
|
||||||
----------
|
|
||||||
|
|
||||||
.. list-table::
|
|
||||||
:header-rows: 1
|
|
||||||
|
|
||||||
* - Type ``framework``
|
|
||||||
- Name
|
|
||||||
- Reference
|
|
||||||
* - ``cmsis``
|
|
||||||
- Vendor-independent hardware abstraction layer for the Cortex-M processor series
|
|
||||||
- `Documentation <http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php>`__
|
|
||||||
* - ``spl``
|
|
||||||
- Standard Peripheral Library for STM32 MCUs
|
|
||||||
- `Documentation <http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF257890>`__
|
|
||||||
* - ``opencm3``
|
|
||||||
- libOpenCM3 Framework
|
|
||||||
- `Documentation <http://www.libopencm3.org>`__
|
|
||||||
|
|
||||||
|
|
||||||
Boards
|
|
||||||
------
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
* You can list pre-configured boards by :ref:`cmd_boards` command
|
|
||||||
* For more detailed ``board`` information please scroll tables below by
|
|
||||||
horizontal.
|
|
||||||
|
|
||||||
.. list-table::
|
|
||||||
:header-rows: 1
|
|
||||||
|
|
||||||
* - Type ``board``
|
|
||||||
- Name
|
|
||||||
- Microcontroller ``board_mcu``
|
|
||||||
- Frequency ``board_f_cpu``
|
|
||||||
- Flash
|
|
||||||
- RAM
|
|
||||||
* - ``stm32ldiscovery``
|
|
||||||
- `Discovery kit for STM32L151/152 line <http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF250990?sc=internet/evalboard/product/250990.jsp>`_
|
|
||||||
- STM32L152rbt6 ``cortex-m3``
|
|
||||||
- 32 MHz ``32000000L``
|
|
||||||
- 128 Kb
|
|
||||||
- 16 Kb
|
|
||||||
* - ``stm32f3discovery``
|
|
||||||
- `Discovery kit for STM32F303xx microcontrollers
|
|
||||||
<http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF254044>`_
|
|
||||||
- STM32F303vct6 ``cortex-m4``
|
|
||||||
- 72 MHz ``72000000L``
|
|
||||||
- 256 Kb
|
|
||||||
- 48 Kb
|
|
||||||
* - ``stm32f4discovery``
|
|
||||||
- `Discovery kit for STM32F407/417 lines
|
|
||||||
<http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF252419>`_
|
|
||||||
- STM32F407vgt6 ``cortex-m4``
|
|
||||||
- 168 Mhz ``168000000L``
|
|
||||||
- 1 Mb
|
|
||||||
- 192 Kb
|
|
||||||
|
|
||||||
More detailed information you can find here
|
|
||||||
`STM32 Discovery kits <http://www.st.com/web/en/catalog/tools/FM116/SC959/SS1532/LN1848?icmp=ln1848_pron_pr-stm32f446_dec2014&sc=stm32discovery-pr>`_.
|
|
224
docs/platforms/ststm32.rst
Normal file
224
docs/platforms/ststm32.rst
Normal file
@@ -0,0 +1,224 @@
|
|||||||
|
.. _platform_ststm32:
|
||||||
|
|
||||||
|
Platform ``ststm32``
|
||||||
|
====================
|
||||||
|
|
||||||
|
`The STM32 family of 32-bit Flash MCUs <http://www.st.com/web/en/catalog/mmc/FM141/SC1169?sc=stm32>`_ 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.
|
||||||
|
|
||||||
|
The unparalleled and large range of STM32 devices, based on an industry-standard core and accompanied by a vast choice of tools and software, makes this family of products the ideal choice, both for small projects and for entire platform decisions.
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
|
||||||
|
Packages
|
||||||
|
--------
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Name
|
||||||
|
- Alias
|
||||||
|
- Contents
|
||||||
|
* - ``toolchain-gccarmnoneeabi``
|
||||||
|
- toolchain
|
||||||
|
- `gcc-arm-embedded <https://launchpad.net/gcc-arm-embedded>`_,
|
||||||
|
`GDB <http://www.gnu.org/software/gdb/>`_
|
||||||
|
* - ``tool-stlink``
|
||||||
|
- uploader
|
||||||
|
- `STLink <https://github.com/texane/stlink>`_
|
||||||
|
* - ``framework-cmsis``
|
||||||
|
-
|
||||||
|
- See below in :ref:`ststm32_frameworks`
|
||||||
|
* - ``framework-spl``
|
||||||
|
-
|
||||||
|
- See below in :ref:`ststm32_frameworks`
|
||||||
|
* - ``framework-opencm3``
|
||||||
|
-
|
||||||
|
- See below in :ref:`ststm32_frameworks`
|
||||||
|
* - ``framework-mbed``
|
||||||
|
-
|
||||||
|
- See below in :ref:`ststm32_frameworks`
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
**Linux Users:** Don't forget to install "udev" rules file
|
||||||
|
`99-platformio-udev.rules <https://github.com/ivankravets/platformio/blob/develop/scripts/99-platformio-udev.rules>`_ (an instruction is located in the file).
|
||||||
|
|
||||||
|
|
||||||
|
.. _ststm32_frameworks:
|
||||||
|
|
||||||
|
Frameworks
|
||||||
|
----------
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Type ``framework``
|
||||||
|
- Name
|
||||||
|
- Reference
|
||||||
|
* - ``cmsis``
|
||||||
|
- Vendor-independent hardware abstraction layer for the Cortex-M processor series
|
||||||
|
- `Documentation <http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php>`__
|
||||||
|
* - ``spl``
|
||||||
|
- Standard Peripheral Library for ST STM32 MCUs
|
||||||
|
- `Documentation <http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1743/PF257890>`__
|
||||||
|
* - ``opencm3``
|
||||||
|
- libOpenCM3 Framework
|
||||||
|
- `Documentation <http://www.libopencm3.org>`__
|
||||||
|
* - ``mbed``
|
||||||
|
- MBED Framework
|
||||||
|
- `Documentation <http://mbed.org>`__
|
||||||
|
|
||||||
|
|
||||||
|
Boards
|
||||||
|
------
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
* You can list pre-configured boards by :ref:`cmd_boards` command
|
||||||
|
* For more detailed ``board`` information please scroll tables below by
|
||||||
|
horizontal.
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Type ``board``
|
||||||
|
- Name
|
||||||
|
- Microcontroller ``board_mcu``
|
||||||
|
- Frequency ``board_f_cpu``
|
||||||
|
- Flash
|
||||||
|
- RAM
|
||||||
|
* - ``disco_l152rb``
|
||||||
|
- `STM32LDISCOVERY
|
||||||
|
<http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF258515>`_
|
||||||
|
- STM32L152rbt6 ``cortex-m3``
|
||||||
|
- 32 MHz ``32000000L``
|
||||||
|
- 128 Kb
|
||||||
|
- 16 Kb
|
||||||
|
* - ``disco_f303vc``
|
||||||
|
- `STM32F3DISCOVERY
|
||||||
|
<http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF254044>`_
|
||||||
|
- STM32F303vct6 ``cortex-m4``
|
||||||
|
- 72 MHz ``72000000L``
|
||||||
|
- 256 Kb
|
||||||
|
- 48 Kb
|
||||||
|
* - ``disco_f407vg``
|
||||||
|
- `STM32F4DISCOVERY
|
||||||
|
<http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF252419>`_
|
||||||
|
- STM32F407vgt6 ``cortex-m4``
|
||||||
|
- 168 Mhz ``168000000L``
|
||||||
|
- 1 Mb
|
||||||
|
- 192 Kb
|
||||||
|
* - ``disco_f100rb``
|
||||||
|
- `STM32VLDISCOVERY
|
||||||
|
<http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF250863>`_
|
||||||
|
- STM32F100rbt6 ``cortex-m3``
|
||||||
|
- 24 Mhz ``24000000L``
|
||||||
|
- 128 Kb
|
||||||
|
- 8 Kb
|
||||||
|
* - ``disco_f051r8``
|
||||||
|
- `STM32F0DISCOVERY
|
||||||
|
<http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF253215>`_
|
||||||
|
- STM32F051r8t6 ``cortex-m0``
|
||||||
|
- 48 Mhz ``48000000L``
|
||||||
|
- 64 Kb
|
||||||
|
- 8 Kb
|
||||||
|
* - ``disco_f334c8``
|
||||||
|
- `32F3348DISCOVERY
|
||||||
|
<http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF260318>`_
|
||||||
|
- STM32F334c8t6 ``cortex-m4``
|
||||||
|
- 72 Mhz ``72000000L``
|
||||||
|
- 64 Kb
|
||||||
|
- 16 Kb
|
||||||
|
* - ``disco_f401vc``
|
||||||
|
- `32F401CDISCOVERY
|
||||||
|
<http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF259098>`_
|
||||||
|
- STM32F401vct6 ``cortex-m4``
|
||||||
|
- 84 Mhz ``84000000L``
|
||||||
|
- 256 Kb
|
||||||
|
- 64 Kb
|
||||||
|
* - ``disco_f429zi``
|
||||||
|
- `32F429IDISCOVERY
|
||||||
|
<http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1848/PF259090>`_
|
||||||
|
- STM32F429zit6 ``cortex-m4``
|
||||||
|
- 180 Mhz ``180000000L``
|
||||||
|
- 2 Mb
|
||||||
|
- 256 Kb
|
||||||
|
* - ``nucleo_f030r8``
|
||||||
|
- `ST Nucleo F030R8
|
||||||
|
<https://developer.mbed.org/platforms/ST-Nucleo-F030R8/>`_
|
||||||
|
- STM32F030r8t6 ``cortex-m0``
|
||||||
|
- 48 Mhz ``48000000L``
|
||||||
|
- 64 Kb
|
||||||
|
- 8 Kb
|
||||||
|
* - ``nucleo_f070rb``
|
||||||
|
- `ST Nucleo F070RB
|
||||||
|
<https://developer.mbed.org/platforms/ST-Nucleo-F070RB/>`_
|
||||||
|
- STM32F070rbt6 ``cortex-m0``
|
||||||
|
- 48 Mhz ``48000000L``
|
||||||
|
- 128 Kb
|
||||||
|
- 16 Kb
|
||||||
|
* - ``nucleo_f072rb``
|
||||||
|
- `ST Nucleo F072RB
|
||||||
|
<https://developer.mbed.org/platforms/ST-Nucleo-F072RB/>`_
|
||||||
|
- STM32F072rbt6 ``cortex-m0``
|
||||||
|
- 48 Mhz ``48000000L``
|
||||||
|
- 128 Kb
|
||||||
|
- 16 Kb
|
||||||
|
* - ``nucleo_f091rc``
|
||||||
|
- `ST Nucleo F091RC
|
||||||
|
<https://developer.mbed.org/platforms/ST-Nucleo-F091RC/>`_
|
||||||
|
- STM32F091rct6 ``cortex-m0``
|
||||||
|
- 48 Mhz ``48000000L``
|
||||||
|
- 256 Kb
|
||||||
|
- 32 Kb
|
||||||
|
* - ``nucleo_f103rb``
|
||||||
|
- `ST Nucleo F103RB
|
||||||
|
<https://developer.mbed.org/platforms/ST-Nucleo-F103RB/>`_
|
||||||
|
- STM32F103rbt6 ``cortex-m3``
|
||||||
|
- 72 Mhz ``72000000L``
|
||||||
|
- 128 Kb
|
||||||
|
- 20 Kb
|
||||||
|
* - ``nucleo_f302r8``
|
||||||
|
- `ST Nucleo F302R8
|
||||||
|
<https://developer.mbed.org/platforms/ST-Nucleo-F302R8/>`_
|
||||||
|
- STM32F302r8t6 ``cortex-m4``
|
||||||
|
- 72 Mhz ``72000000L``
|
||||||
|
- 64 Kb
|
||||||
|
- 16 Kb
|
||||||
|
* - ``nucleo_f334r8``
|
||||||
|
- `ST Nucleo F334R8
|
||||||
|
<https://developer.mbed.org/platforms/ST-Nucleo-F334R8/>`_
|
||||||
|
- STM32F334r8t6 ``cortex-m4``
|
||||||
|
- 72 Mhz ``72000000L``
|
||||||
|
- 64 Kb
|
||||||
|
- 16 Kb
|
||||||
|
* - ``nucleo_f401re``
|
||||||
|
- `ST Nucleo F401RE
|
||||||
|
<https://developer.mbed.org/platforms/ST-Nucleo-F401RE/>`_
|
||||||
|
- STM32F401ret6 ``cortex-m4``
|
||||||
|
- 84 Mhz ``84000000L``
|
||||||
|
- 512 Kb
|
||||||
|
- 96 Kb
|
||||||
|
* - ``nucleo_f411re``
|
||||||
|
- `ST Nucleo F411RE
|
||||||
|
<https://developer.mbed.org/platforms/ST-Nucleo-F411RE/>`_
|
||||||
|
- STM32F411ret6 ``cortex-m4``
|
||||||
|
- 100 Mhz ``100000000L``
|
||||||
|
- 512 Kb
|
||||||
|
- 128 Kb
|
||||||
|
* - ``nucleo_l053r8``
|
||||||
|
- `ST Nucleo L053R8
|
||||||
|
<https://developer.mbed.org/platforms/ST-Nucleo-L053R8/>`_
|
||||||
|
- STM32L053r8t6 ``cortex-m0``
|
||||||
|
- 48 Mhz ``48000000L``
|
||||||
|
- 64 Kb
|
||||||
|
- 8 Kb
|
||||||
|
* - ``nucleo_l152re``
|
||||||
|
- `ST Nucleo L152RE
|
||||||
|
<https://developer.mbed.org/platforms/ST-Nucleo-L152RE/>`_
|
||||||
|
- STM32L152ret6 ``cortex-m3``
|
||||||
|
- 32 Mhz ``32000000L``
|
||||||
|
- 512 Kb
|
||||||
|
- 80 Kb
|
||||||
|
|
||||||
|
More detailed information you can find here
|
||||||
|
`STM32 Discovery kits <http://www.st.com/web/en/catalog/tools/FM116/SC959/SS1532/LN1848?icmp=ln1848_pron_pr-stm32f446_dec2014&sc=stm32discovery-pr>`_ and here
|
||||||
|
`ST Nucleo boards with MBED support <https://developer.mbed.org/platforms/?tvend=10>`_.
|
21
examples/mbed/mbed-blink/README.rst
Normal file
21
examples/mbed/mbed-blink/README.rst
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
How to buid PlatformIO based project
|
||||||
|
====================================
|
||||||
|
|
||||||
|
1. `Install PlatformIO <http://docs.platformio.org/en/latest/installation.html>`_
|
||||||
|
2. Download `source code with examples <https://github.com/ivankravets/platformio/archive/develop.zip>`_
|
||||||
|
3. Extract ZIP archive
|
||||||
|
4. Run these commands:
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
# Change directory to example
|
||||||
|
> cd platformio-develop/examples/mbed/mbed-blink
|
||||||
|
|
||||||
|
# Process example project
|
||||||
|
> platformio run
|
||||||
|
|
||||||
|
# Upload firmware
|
||||||
|
> platformio run --target upload
|
||||||
|
|
||||||
|
# Clean build files
|
||||||
|
> platformio run --target clean
|
43
examples/mbed/mbed-blink/platformio.ini
Normal file
43
examples/mbed/mbed-blink/platformio.ini
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
#
|
||||||
|
# Project Configuration File
|
||||||
|
#
|
||||||
|
# A detailed documentation with the EXAMPLES is located here:
|
||||||
|
# http://docs.platformio.org/en/latest/projectconf.html
|
||||||
|
#
|
||||||
|
|
||||||
|
# A sign `#` at the beginning of the line indicates a comment
|
||||||
|
# Comment lines are ignored.
|
||||||
|
|
||||||
|
# Simple and base environment
|
||||||
|
# [env:mybaseenv]
|
||||||
|
# platform = %INSTALLED_PLATFORM_NAME_HERE%
|
||||||
|
# framework =
|
||||||
|
# board =
|
||||||
|
#
|
||||||
|
# Automatic targets - enable auto-uploading
|
||||||
|
# targets = upload
|
||||||
|
|
||||||
|
|
||||||
|
# NXP LPC Platform
|
||||||
|
[env:lpc1768]
|
||||||
|
platform = nxplpc
|
||||||
|
framework = mbed
|
||||||
|
board = lpc1768
|
||||||
|
|
||||||
|
# Nordic nRF51 Platform
|
||||||
|
[env:nrf51_mkit]
|
||||||
|
platform = nordicnrf51
|
||||||
|
framework = mbed
|
||||||
|
board = nrf51_mkit
|
||||||
|
|
||||||
|
# Freescale FRDM Platform
|
||||||
|
[env:frdm_k64f]
|
||||||
|
platform = freescalekinetis
|
||||||
|
framework = mbed
|
||||||
|
board = frdm_k64f
|
||||||
|
|
||||||
|
# ST STM32 Platform
|
||||||
|
[env:nucleo_f401re]
|
||||||
|
platform = ststm32
|
||||||
|
framework = mbed
|
||||||
|
board = nucleo_f401re
|
12
examples/mbed/mbed-blink/src/main.cpp
Normal file
12
examples/mbed/mbed-blink/src/main.cpp
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#include "mbed.h"
|
||||||
|
|
||||||
|
DigitalOut myled(LED1);
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
while(1) {
|
||||||
|
myled = 1;
|
||||||
|
wait(1);
|
||||||
|
myled = 0;
|
||||||
|
wait(1);
|
||||||
|
}
|
||||||
|
}
|
@@ -17,17 +17,17 @@
|
|||||||
# Automatic targets - enable auto-uploading
|
# Automatic targets - enable auto-uploading
|
||||||
# targets = upload
|
# targets = upload
|
||||||
|
|
||||||
[env:stm32f4discovery]
|
[env:disco_f407vg]
|
||||||
platform = stm32
|
platform = ststm32
|
||||||
framework = cmsis
|
framework = cmsis
|
||||||
board = stm32f4discovery
|
board = disco_f407vg
|
||||||
|
|
||||||
[env:stm32ldiscovery]
|
[env:disco_l152rb]
|
||||||
platform = stm32
|
platform = ststm32
|
||||||
framework = cmsis
|
framework = cmsis
|
||||||
board = stm32ldiscovery
|
board = disco_l152rb
|
||||||
|
|
||||||
[env:stm32f3discovery]
|
[env:disco_f303vc]
|
||||||
platform = stm32
|
platform = ststm32
|
||||||
framework = cmsis
|
framework = cmsis
|
||||||
board = stm32f3discovery
|
board = disco_f303vc
|
@@ -17,17 +17,17 @@
|
|||||||
# Automatic targets - enable auto-uploading
|
# Automatic targets - enable auto-uploading
|
||||||
# targets = upload
|
# targets = upload
|
||||||
|
|
||||||
[env:stm32f4discovery]
|
[env:disco_f407vg]
|
||||||
platform = stm32
|
platform = ststm32
|
||||||
framework = opencm3
|
framework = opencm3
|
||||||
board = stm32f4discovery
|
board = disco_f407vg
|
||||||
|
|
||||||
[env:stm32ldiscovery]
|
[env:disco_l152rb]
|
||||||
platform = stm32
|
platform = ststm32
|
||||||
framework = opencm3
|
framework = opencm3
|
||||||
board = stm32ldiscovery
|
board = disco_l152rb
|
||||||
|
|
||||||
[env:stm32f3discovery]
|
[env:disco_f303vc]
|
||||||
platform = stm32
|
platform = ststm32
|
||||||
framework = opencm3
|
framework = opencm3
|
||||||
board = stm32f3discovery
|
board = disco_f303vc
|
||||||
|
@@ -17,17 +17,17 @@
|
|||||||
# Automatic targets - enable auto-uploading
|
# Automatic targets - enable auto-uploading
|
||||||
# targets = upload
|
# targets = upload
|
||||||
|
|
||||||
[env:stm32f4discovery]
|
[env:disco_f407vg]
|
||||||
platform = stm32
|
platform = ststm32
|
||||||
framework = cmsis,spl
|
framework = cmsis,spl
|
||||||
board = stm32f4discovery
|
board = disco_f407vg
|
||||||
|
|
||||||
[env:stm32ldiscovery]
|
[env:disco_l152rb]
|
||||||
platform = stm32
|
platform = ststm32
|
||||||
framework = cmsis,spl
|
framework = cmsis,spl
|
||||||
board = stm32ldiscovery
|
board = disco_l152rb
|
||||||
|
|
||||||
[env:stm32f3discovery]
|
[env:disco_f303vc]
|
||||||
platform = stm32
|
platform = ststm32
|
||||||
framework = cmsis,spl
|
framework = cmsis,spl
|
||||||
board = stm32f3discovery
|
board = disco_f303vc
|
||||||
|
@@ -34,7 +34,7 @@
|
|||||||
"variant": "tiny8"
|
"variant": "tiny8"
|
||||||
},
|
},
|
||||||
"framework": "arduino",
|
"framework": "arduino",
|
||||||
"name": "Adafruit Trinket 8MHz",
|
"name": "Adafruit Trinket 3V/8MHz",
|
||||||
"platform": "atmelavr",
|
"platform": "atmelavr",
|
||||||
"upload": {
|
"upload": {
|
||||||
"maximum_ram_size": 512,
|
"maximum_ram_size": 512,
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
"variant": "tiny8"
|
"variant": "tiny8"
|
||||||
},
|
},
|
||||||
"framework": "arduino",
|
"framework": "arduino",
|
||||||
"name": "Adafruit Trinket 16MHz",
|
"name": "Adafruit Trinket 5V/16MHz",
|
||||||
"platform": "atmelavr",
|
"platform": "atmelavr",
|
||||||
"upload": {
|
"upload": {
|
||||||
"maximum_ram_size": 512,
|
"maximum_ram_size": 512,
|
||||||
|
87
platformio/boards/freescalekinetis.json
Normal file
87
platformio/boards/freescalekinetis.json
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
{
|
||||||
|
"frdm_kl25z": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "48000000L",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"mcu": "mkl25z128vlk4"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "Freescale Kinetis FRDM-KL25Z",
|
||||||
|
"platform": "freescalekinetis",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 16384,
|
||||||
|
"maximum_size": 131072
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"frdm_kl46z": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "48000000L",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"mcu": "mkl46z256vll4"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "Freescale Kinetis FRDM-KL46Z",
|
||||||
|
"platform": "freescalekinetis",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 32768,
|
||||||
|
"maximum_size": 262144
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"frdm_k64f": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "120000000L",
|
||||||
|
"cpu": "cortex-m4",
|
||||||
|
"mcu": "mk64fn1m0vll12"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "Freescale Kinetis FRDM-K64F",
|
||||||
|
"platform": "freescalekinetis",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 262144,
|
||||||
|
"maximum_size": 1048567
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"frdm_kl05z": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "48000000L",
|
||||||
|
"cpu": "cortex-m0plus",
|
||||||
|
"mcu": "mkl05z32vfm4"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "Freescale Kinetis FRDM-KL05Z",
|
||||||
|
"platform": "freescalekinetis",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 4096,
|
||||||
|
"maximum_size": 32768
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"frdm_k20d50m": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "48000000L",
|
||||||
|
"cpu": "cortex-m4",
|
||||||
|
"mcu": "mk20dx128vlh5"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "Freescale Kinetis FRDM-K20D50M",
|
||||||
|
"platform": "freescalekinetis",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 16384,
|
||||||
|
"maximum_size": 131072
|
||||||
|
}
|
||||||
|
}
|
||||||
|
,
|
||||||
|
"frdm_k22f": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "120000000L",
|
||||||
|
"cpu": "cortex-m4",
|
||||||
|
"mcu": "mk22fn512vlh12"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "Freescale Kinetis FRDM-K22F",
|
||||||
|
"platform": "freescalekinetis",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 131072,
|
||||||
|
"maximum_size": 524288
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
102
platformio/boards/nordicnrf51.json
Normal file
102
platformio/boards/nordicnrf51.json
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
{
|
||||||
|
"nrf51_mkit": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "16000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "nrf51822"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "Nordic nRF51822-mKIT",
|
||||||
|
"platform": "nordicnrf51",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 16384,
|
||||||
|
"maximum_size": 131072
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hrm1017": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "16000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "nrf51822"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "Switch Science mbed HRM1017",
|
||||||
|
"platform": "nordicnrf51",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 16384,
|
||||||
|
"maximum_size": 262144
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"redBearLab": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "16000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "nrf51822"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "RedBearLab nRF51822",
|
||||||
|
"platform": "nordicnrf51",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 16384,
|
||||||
|
"maximum_size": 262144
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nrf51_dk": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "32000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "nrf51822"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "Nordic nRF51-DK",
|
||||||
|
"platform": "nordicnrf51",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 32384,
|
||||||
|
"maximum_size": 262144
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"redBearLabBLENano": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "16000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "nrf51822"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "RedBearLab BLE Nano",
|
||||||
|
"platform": "nordicnrf51",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 16384,
|
||||||
|
"maximum_size": 262144
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nrf51_dongle": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "32000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "nrf51822"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "Nordic nRF51-Dongle",
|
||||||
|
"platform": "nordicnrf51",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 32384,
|
||||||
|
"maximum_size": 262144
|
||||||
|
}
|
||||||
|
}
|
||||||
|
,
|
||||||
|
"wallBotBLE": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "16000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "nrf51822"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "JKSoft Wallbot BLE",
|
||||||
|
"platform": "nordicnrf51",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 16384,
|
||||||
|
"maximum_size": 131072
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
184
platformio/boards/nxplpc.json
Normal file
184
platformio/boards/nxplpc.json
Normal file
@@ -0,0 +1,184 @@
|
|||||||
|
{
|
||||||
|
"lpc1768": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "96000000L",
|
||||||
|
"cpu": "cortex-m3",
|
||||||
|
"mcu": "lpc1768"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "mbed LPC1768",
|
||||||
|
"platform": "nxplpc",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 32768,
|
||||||
|
"maximum_size": 524288
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lpc11u24": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "48000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "lpc11u24"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "mbed LPC11U24",
|
||||||
|
"platform": "nxplpc",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 8192,
|
||||||
|
"maximum_size": 32768
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lpc4088": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "120000000L",
|
||||||
|
"cpu": "cortex-m4",
|
||||||
|
"mcu": "lpc4088"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "EA LPC4088 QuickStart Board",
|
||||||
|
"platform": "nxplpc",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 98304,
|
||||||
|
"maximum_size": 524288
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dipcortexm0": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "50000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "lpc11u24"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "DipCortex M0",
|
||||||
|
"platform": "nxplpc",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 8192,
|
||||||
|
"maximum_size": 32768
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"blueboard_lpc11u24": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "48000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "lpc11u24"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "BlueBoard-LPC11U24",
|
||||||
|
"platform": "nxplpc",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 8192,
|
||||||
|
"maximum_size": 32768
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"seeeduinoArchPro": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "96000000L",
|
||||||
|
"cpu": "cortex-m3",
|
||||||
|
"mcu": "lpc1768"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "Seeeduino-Arch-Pro",
|
||||||
|
"platform": "nxplpc",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 32768,
|
||||||
|
"maximum_size": 524288
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ubloxc027": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "96000000L",
|
||||||
|
"cpu": "cortex-m3",
|
||||||
|
"mcu": "lpc1768"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "u-blox C027",
|
||||||
|
"platform": "nxplpc",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 32768,
|
||||||
|
"maximum_size": 524288
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lpc1114fn28": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "48000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "lpc1114fn28"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "mbed LPC1114FN28",
|
||||||
|
"platform": "nxplpc",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 4096,
|
||||||
|
"maximum_size": 32768
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lpc11u35": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "48000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "lpc11u35"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "EA LPC11U35 QuickStart Board",
|
||||||
|
"platform": "nxplpc",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 10240,
|
||||||
|
"maximum_size": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lpc11u35_501": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "48000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "lpc11u35"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "TG-LPC11U35-501",
|
||||||
|
"platform": "nxplpc",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 10240,
|
||||||
|
"maximum_size": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lpc1549": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "72000000L",
|
||||||
|
"cpu": "cortex-m3",
|
||||||
|
"mcu": "lpc1549"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "LPCXpresso1549",
|
||||||
|
"platform": "nxplpc",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 36864,
|
||||||
|
"maximum_size": 262144
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mbuino": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "48000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "lpc11u24"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "Outrageous Circuits mBuino",
|
||||||
|
"platform": "nxplpc",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 8192,
|
||||||
|
"maximum_size": 32768
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lpc4088_dm": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "120000000L",
|
||||||
|
"cpu": "cortex-m4",
|
||||||
|
"mcu": "lpc4088"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "EA LPC4088 Display Module",
|
||||||
|
"platform": "nxplpc",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 98304,
|
||||||
|
"maximum_size": 524288
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -1,56 +0,0 @@
|
|||||||
{
|
|
||||||
"stm32f4discovery": {
|
|
||||||
"build": {
|
|
||||||
"core": "stm32",
|
|
||||||
"extra_flags": "-DSTM32F40_41xxx",
|
|
||||||
"f_cpu": "168000000L",
|
|
||||||
"ldscript": "stm32f405x6.ld",
|
|
||||||
"cpu": "cortex-m4",
|
|
||||||
"mcu": "stm32f407vgt6",
|
|
||||||
"variant": "stm32f4"
|
|
||||||
},
|
|
||||||
"framework": "cmsis",
|
|
||||||
"name": "STM32F4Discovery (168 MHz) with digital accelerometer, digital microphone, audio DAC",
|
|
||||||
"platform": "stm32",
|
|
||||||
"upload": {
|
|
||||||
"maximum_ram_size": 131071,
|
|
||||||
"maximum_size": 1048575
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"stm32ldiscovery": {
|
|
||||||
"build": {
|
|
||||||
"core": "stm32",
|
|
||||||
"extra_flags": "-DSTM32L1XX_MD",
|
|
||||||
"f_cpu": "32000000L",
|
|
||||||
"ldscript": "stm32l15xx6.ld",
|
|
||||||
"cpu": "cortex-m3",
|
|
||||||
"mcu": "stm32l152rbt6",
|
|
||||||
"variant": "stm32l1"
|
|
||||||
},
|
|
||||||
"framework": "cmsis",
|
|
||||||
"name": "STM32LDiscovery (32 MHz) ultra low-power development kit",
|
|
||||||
"platform": "stm32",
|
|
||||||
"upload": {
|
|
||||||
"maximum_ram_size": 16384,
|
|
||||||
"maximum_size": 131072
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"stm32f3discovery": {
|
|
||||||
"build": {
|
|
||||||
"core": "stm32",
|
|
||||||
"extra_flags": "-DSTM32F303xC",
|
|
||||||
"f_cpu": "72000000L",
|
|
||||||
"ldscript": "stm32f30xx.ld",
|
|
||||||
"cpu": "cortex-m4",
|
|
||||||
"mcu": "stm32f303vct6",
|
|
||||||
"variant": "stm32f3"
|
|
||||||
},
|
|
||||||
"framework": "cmsis",
|
|
||||||
"name": "STM32F3Discovery (72 MHz) with accelerometer, gyroscope and e-compass",
|
|
||||||
"platform": "stm32",
|
|
||||||
"upload": {
|
|
||||||
"maximum_ram_size": 262144,
|
|
||||||
"maximum_size": 131072
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
280
platformio/boards/ststm32.json
Normal file
280
platformio/boards/ststm32.json
Normal file
@@ -0,0 +1,280 @@
|
|||||||
|
{
|
||||||
|
"disco_f407vg": {
|
||||||
|
"build": {
|
||||||
|
"core": "stm32",
|
||||||
|
"extra_flags": "-DSTM32F40_41xxx",
|
||||||
|
"f_cpu": "168000000L",
|
||||||
|
"ldscript": "stm32f405x6.ld",
|
||||||
|
"cpu": "cortex-m4",
|
||||||
|
"mcu": "stm32f407vgt6",
|
||||||
|
"variant": "stm32f4"
|
||||||
|
},
|
||||||
|
"framework": "cmsis",
|
||||||
|
"name": "STM32F4DISCOVERY",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 131072,
|
||||||
|
"maximum_size": 1048576
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"disco_l152rb": {
|
||||||
|
"build": {
|
||||||
|
"core": "stm32",
|
||||||
|
"extra_flags": "-DSTM32L1XX_MD",
|
||||||
|
"f_cpu": "32000000L",
|
||||||
|
"ldscript": "stm32l15xx6.ld",
|
||||||
|
"cpu": "cortex-m3",
|
||||||
|
"mcu": "stm32l152rbt6",
|
||||||
|
"variant": "stm32l1"
|
||||||
|
},
|
||||||
|
"framework": "cmsis",
|
||||||
|
"name": "STM32LDISCOVERY",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 16384,
|
||||||
|
"maximum_size": 131072
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"disco_f303vc": {
|
||||||
|
"build": {
|
||||||
|
"core": "stm32",
|
||||||
|
"extra_flags": "-DSTM32F303xC",
|
||||||
|
"f_cpu": "72000000L",
|
||||||
|
"ldscript": "stm32f30xx.ld",
|
||||||
|
"cpu": "cortex-m4",
|
||||||
|
"mcu": "stm32f303vct6",
|
||||||
|
"variant": "stm32f3"
|
||||||
|
},
|
||||||
|
"framework": "cmsis",
|
||||||
|
"name": "STM32F3DISCOVERY",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 49152,
|
||||||
|
"maximum_size": 262144
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"disco_f100rb": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "24000000L",
|
||||||
|
"cpu": "cortex-m3",
|
||||||
|
"mcu": "stm32f100rbt6"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "STM32VLDISCOVERY",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 8192,
|
||||||
|
"maximum_size": 131072
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"disco_f051r8": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "48000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "stm32f051r8t6"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "STM32F0DISCOVERY",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 8192,
|
||||||
|
"maximum_size": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"disco_f334c8": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "72000000L",
|
||||||
|
"cpu": "cortex-m4",
|
||||||
|
"mcu": "stm32f334c8t6"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "32F3348DISCOVERY",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 16384,
|
||||||
|
"maximum_size": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"disco_f401vc": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "84000000L",
|
||||||
|
"cpu": "cortex-m4",
|
||||||
|
"mcu": "stm32f401vct6"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "32F401CDISCOVERY",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 65536,
|
||||||
|
"maximum_size": 262144
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"disco_f429zi": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "180000000L",
|
||||||
|
"cpu": "cortex-m4",
|
||||||
|
"mcu": "stm32f429zit6"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "32F429IDISCOVERY",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 262144,
|
||||||
|
"maximum_size": 2097152
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nucleo_f030r8": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "48000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "stm32f030r8t6"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "ST Nucleo F030R8",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 8192,
|
||||||
|
"maximum_size": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nucleo_f070rb": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "48000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "stm32f070rbt6"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "ST Nucleo F070RB",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 16384,
|
||||||
|
"maximum_size": 131072
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nucleo_f072rb": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "48000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "stm32f072rbt6"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "ST Nucleo F072RB",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 16384,
|
||||||
|
"maximum_size": 131072
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nucleo_f091rc": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "48000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "stm32f091rct6"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "ST Nucleo F091RC",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 32768,
|
||||||
|
"maximum_size": 262144
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nucleo_f103rb": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "72000000L",
|
||||||
|
"cpu": "cortex-m3",
|
||||||
|
"mcu": "stm32f103rbt6"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "ST Nucleo F103RB",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 20480,
|
||||||
|
"maximum_size": 131072
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nucleo_f302r8": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "72000000L",
|
||||||
|
"cpu": "cortex-m4",
|
||||||
|
"mcu": "stm32f302r8t6"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "ST Nucleo F302R8",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 16384,
|
||||||
|
"maximum_size": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nucleo_f334r8": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "72000000L",
|
||||||
|
"cpu": "cortex-m4",
|
||||||
|
"mcu": "stm32f334r8t6"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "ST Nucleo F334R8",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 16384,
|
||||||
|
"maximum_size": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nucleo_f401re": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "84000000L",
|
||||||
|
"cpu": "cortex-m4",
|
||||||
|
"mcu": "stm32f401ret6"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "ST Nucleo F401RE",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 98304,
|
||||||
|
"maximum_size": 524288
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nucleo_f411re": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "100000000L",
|
||||||
|
"cpu": "cortex-m4",
|
||||||
|
"mcu": "stm32f411ret6"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "ST Nucleo F411RE",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 131072,
|
||||||
|
"maximum_size": 524288
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nucleo_l053r8": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "48000000L",
|
||||||
|
"cpu": "cortex-m0",
|
||||||
|
"mcu": "stm32l053r8t6"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "ST Nucleo L053R8",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 8192,
|
||||||
|
"maximum_size": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nucleo_l152re": {
|
||||||
|
"build": {
|
||||||
|
"f_cpu": "32000000L",
|
||||||
|
"cpu": "cortex-m3",
|
||||||
|
"mcu": "stm32l152ret6"
|
||||||
|
},
|
||||||
|
"framework": "mbed",
|
||||||
|
"name": "ST Nucleo L152RE",
|
||||||
|
"platform": "ststm32",
|
||||||
|
"upload": {
|
||||||
|
"maximum_ram_size": 81920,
|
||||||
|
"maximum_size": 524288
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -82,13 +82,11 @@ else:
|
|||||||
UPLOADEEPCMD='"$UPLOADER" $UPLOADERFLAGS -U eeprom:w:$SOURCES:i'
|
UPLOADEEPCMD='"$UPLOADER" $UPLOADERFLAGS -U eeprom:w:$SOURCES:i'
|
||||||
)
|
)
|
||||||
|
|
||||||
CORELIBS = env.ProcessGeneral()
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Target: Build executable and linkable firmware
|
# Target: Build executable and linkable firmware
|
||||||
#
|
#
|
||||||
|
|
||||||
target_elf = env.BuildFirmware(["m"] + CORELIBS)
|
target_elf = env.BuildFirmware()
|
||||||
|
|
||||||
#
|
#
|
||||||
# Target: Extract EEPROM data (from EEMEM directive) to .eep file
|
# Target: Extract EEPROM data (from EEMEM directive) to .eep file
|
||||||
|
@@ -68,13 +68,11 @@ env.Append(
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
CORELIBS = env.ProcessGeneral()
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Target: Build executable and linkable firmware
|
# Target: Build executable and linkable firmware
|
||||||
#
|
#
|
||||||
|
|
||||||
target_elf = env.BuildFirmware(["m", "gcc"] + CORELIBS)
|
target_elf = env.BuildFirmware()
|
||||||
|
|
||||||
#
|
#
|
||||||
# Target: Build the .bin file
|
# Target: Build the .bin file
|
||||||
|
@@ -50,16 +50,15 @@ env.Replace(
|
|||||||
"-mcpu=${BOARD_OPTIONS['build']['cpu']}"
|
"-mcpu=${BOARD_OPTIONS['build']['cpu']}"
|
||||||
],
|
],
|
||||||
|
|
||||||
|
LIBS=["c", "gcc", "m"],
|
||||||
|
|
||||||
SIZEPRINTCMD='"$SIZETOOL" -B -d $SOURCES'
|
SIZEPRINTCMD='"$SIZETOOL" -B -d $SOURCES'
|
||||||
)
|
)
|
||||||
|
|
||||||
if env.get("BOARD_OPTIONS", {}).get("build", {}).get("cpu", "")[-2:] == "m4":
|
if env.get("BOARD_OPTIONS", {}).get("build", {}).get(
|
||||||
|
"cpu", "")[-2:] == "m4" and env.get("BOARD") != "frdm_k20d50m":
|
||||||
env.Append(
|
env.Append(
|
||||||
ASFLAGS=[
|
CPPFLAGS=[
|
||||||
"-mfloat-abi=hard",
|
|
||||||
"-mfpu=fpv4-sp-d16"
|
|
||||||
],
|
|
||||||
CCFLAGS=[
|
|
||||||
"-mfloat-abi=hard",
|
"-mfloat-abi=hard",
|
||||||
"-mfpu=fpv4-sp-d16",
|
"-mfpu=fpv4-sp-d16",
|
||||||
"-fsingle-precision-constant"
|
"-fsingle-precision-constant"
|
||||||
|
@@ -47,6 +47,8 @@ env.Replace(
|
|||||||
"-Wl,--gc-sections"
|
"-Wl,--gc-sections"
|
||||||
],
|
],
|
||||||
|
|
||||||
|
LIBS=["m"],
|
||||||
|
|
||||||
SIZEPRINTCMD='"$SIZETOOL" --mcu=$BOARD_MCU -C -d $SOURCES'
|
SIZEPRINTCMD='"$SIZETOOL" --mcu=$BOARD_MCU -C -d $SOURCES'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@@ -8,7 +8,7 @@
|
|||||||
from os import listdir, walk
|
from os import listdir, walk
|
||||||
from os.path import isfile, join
|
from os.path import isfile, join
|
||||||
|
|
||||||
from SCons.Script import DefaultEnvironment, Return
|
from SCons.Script import DefaultEnvironment
|
||||||
|
|
||||||
env = DefaultEnvironment()
|
env = DefaultEnvironment()
|
||||||
|
|
||||||
@@ -178,4 +178,4 @@ if env.subst("${PLATFORMFW_DIR}")[-3:] == "sam":
|
|||||||
join("$PLATFORMFW_DIR", "system", "libsam", "source")
|
join("$PLATFORMFW_DIR", "system", "libsam", "source")
|
||||||
))
|
))
|
||||||
|
|
||||||
Return("libs")
|
env.Append(LIBS=libs)
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
from os.path import join
|
from os.path import join
|
||||||
|
|
||||||
from SCons.Script import DefaultEnvironment, Return
|
from SCons.Script import DefaultEnvironment
|
||||||
|
|
||||||
env = DefaultEnvironment()
|
env = DefaultEnvironment()
|
||||||
|
|
||||||
@@ -39,4 +39,4 @@ libs.append(envsafe.BuildLibrary(
|
|||||||
join("$PLATFORMFW_DIR", "variants", "${BOARD_OPTIONS['build']['variant']}")
|
join("$PLATFORMFW_DIR", "variants", "${BOARD_OPTIONS['build']['variant']}")
|
||||||
))
|
))
|
||||||
|
|
||||||
Return("libs")
|
env.Append(LIBS=libs)
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
from os.path import join
|
from os.path import join
|
||||||
|
|
||||||
from SCons.Script import DefaultEnvironment, Return
|
from SCons.Script import DefaultEnvironment
|
||||||
|
|
||||||
env = DefaultEnvironment()
|
env = DefaultEnvironment()
|
||||||
|
|
||||||
@@ -52,4 +52,4 @@ libs.append(env.BuildLibrary(
|
|||||||
join("$PLATFORMFW_DIR", "cores", "${BOARD_OPTIONS['build']['core']}")
|
join("$PLATFORMFW_DIR", "cores", "${BOARD_OPTIONS['build']['core']}")
|
||||||
))
|
))
|
||||||
|
|
||||||
Return("libs")
|
env.Append(LIBS=libs)
|
||||||
|
140
platformio/builder/scripts/frameworks/mbed.py
Normal file
140
platformio/builder/scripts/frameworks/mbed.py
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
# Copyright (C) Ivan Kravets <me@ikravets.com>
|
||||||
|
# See LICENSE for details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
Build script for Mbed Framework
|
||||||
|
"""
|
||||||
|
|
||||||
|
import xml.etree.ElementTree as ElementTree
|
||||||
|
from binascii import crc32
|
||||||
|
from os.path import join, normpath
|
||||||
|
|
||||||
|
from SCons.Script import DefaultEnvironment
|
||||||
|
|
||||||
|
env = DefaultEnvironment()
|
||||||
|
|
||||||
|
BOARD_OPTS = env.get("BOARD_OPTIONS", {}).get("build", {})
|
||||||
|
|
||||||
|
env.Replace(
|
||||||
|
PLATFORMFW_DIR=join("$PIOPACKAGES_DIR", "framework-mbed")
|
||||||
|
)
|
||||||
|
|
||||||
|
MBED_VARIANTS = {
|
||||||
|
"stm32f3discovery": "DISCO_F303VC",
|
||||||
|
"stm32f4discovery": "DISCO_F407VG",
|
||||||
|
"stm32f429discovery": "DISCO_F429ZI",
|
||||||
|
"blueboard_lpc11u24": "LPC11U24",
|
||||||
|
"dipcortexm0": "LPC11U24",
|
||||||
|
"seeeduinoArchPro": "ARCH_PRO",
|
||||||
|
"ubloxc027": "UBLOX_C027",
|
||||||
|
"lpc1114fn28": "LPC1114",
|
||||||
|
"lpc11u35": "LPC11U35_401",
|
||||||
|
"mbuino": "LPC11U24",
|
||||||
|
"nrf51_mkit": "NRF51822",
|
||||||
|
"redBearLab": "NRF51822",
|
||||||
|
"nrf51-dt": "NRF51_DK",
|
||||||
|
"redBearLabBLENano": "NRF51822",
|
||||||
|
"wallBotBLE": "NRF51822",
|
||||||
|
"frdm_kl25z": "KL25Z",
|
||||||
|
"frdm_kl46z": "KL46Z",
|
||||||
|
"frdm_k64f": "K64F",
|
||||||
|
"frdm_kl05z": "KL05Z",
|
||||||
|
"frdm_k20d50m": "K20D50M",
|
||||||
|
"frdm_k22f": "K22F"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def parse_eix_file(filename):
|
||||||
|
result = {}
|
||||||
|
paths = (
|
||||||
|
("CFLAGS", "./Target/Source/CC/Switch"),
|
||||||
|
("CXXFLAGS", "./Target/Source/CPPC/Switch"),
|
||||||
|
("CPPDEFINES", "./Target/Source/Symbols/Symbol"),
|
||||||
|
("FILES", "./Target/Files/File"),
|
||||||
|
("LINKFLAGS", "./Target/Source/LD/Switch"),
|
||||||
|
("STDLIBS", "./Target/Source/Syslibs/Library"),
|
||||||
|
("LDSCRIPT_PATH", "./Target/Source/Scriptfile"),
|
||||||
|
("CPPPATH", "./Target/Compiler/Includepaths/Includepath")
|
||||||
|
)
|
||||||
|
|
||||||
|
tree = ElementTree.parse(filename)
|
||||||
|
|
||||||
|
for (key, path) in paths:
|
||||||
|
if key not in result:
|
||||||
|
result[key] = []
|
||||||
|
|
||||||
|
for node in tree.findall(path):
|
||||||
|
_nkeys = node.keys()
|
||||||
|
result[key].append(
|
||||||
|
node.get(_nkeys[0]) if len(_nkeys) == 1 else node.attrib)
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
def get_source_files(flist):
|
||||||
|
files = []
|
||||||
|
for f in flist:
|
||||||
|
if f['type'] == "h" or not f['name'].startswith("mbed"):
|
||||||
|
continue
|
||||||
|
files.append(join("$BUILD_DIR", "FrameworkMBED", f['name'][5:]))
|
||||||
|
return files
|
||||||
|
|
||||||
|
|
||||||
|
def get_build_flags(data):
|
||||||
|
flags = {}
|
||||||
|
cflags = set(data.get("CFLAGS", []))
|
||||||
|
cxxflags = set(data.get("CXXFLAGS", []))
|
||||||
|
cppflags = set(cflags & cxxflags)
|
||||||
|
flags['CPPFLAGS'] = list(cppflags)
|
||||||
|
flags['CXXFLAGS'] = list(cxxflags - cppflags)
|
||||||
|
flags['CFLAGS'] = list(cflags - cppflags)
|
||||||
|
return flags
|
||||||
|
|
||||||
|
board_type = env.subst("$BOARD")
|
||||||
|
variant = MBED_VARIANTS[
|
||||||
|
board_type] if board_type in MBED_VARIANTS else board_type.upper()
|
||||||
|
eixdata = parse_eix_file(
|
||||||
|
join(env.subst("$PLATFORMFW_DIR"), "variant", variant, "%s.eix" % variant))
|
||||||
|
|
||||||
|
build_flags = get_build_flags(eixdata)
|
||||||
|
env.Replace(
|
||||||
|
CPPFLAGS=build_flags.get("CPPFLAGS", []),
|
||||||
|
CFLAGS=build_flags.get("CFLAGS", []),
|
||||||
|
CXXFLAGS=build_flags.get("CXXFLAGS", []),
|
||||||
|
LINKFLAGS=eixdata.get("LINKFLAGS", []),
|
||||||
|
CPPDEFINES=[define for define in eixdata.get("CPPDEFINES", [])],
|
||||||
|
LDSCRIPT_PATH=normpath(join(
|
||||||
|
"$PLATFORMFW_DIR", "core", eixdata.get("LDSCRIPT_PATH")[0][5:]))
|
||||||
|
)
|
||||||
|
|
||||||
|
# Hook for K64F and K22F
|
||||||
|
if board_type in ("frdm_k22f", "frdm_k64f"):
|
||||||
|
env.Append(
|
||||||
|
LINKFLAGS=["-Wl,--start-group"]
|
||||||
|
)
|
||||||
|
|
||||||
|
for lib_path in eixdata.get("CPPPATH"):
|
||||||
|
_vdir = join("$BUILD_DIR", "FrameworkMbedInc%d" % crc32(lib_path))
|
||||||
|
env.VariantDir(
|
||||||
|
_vdir,
|
||||||
|
join("$PLATFORMFW_DIR", "core", lib_path[5:])
|
||||||
|
)
|
||||||
|
env.Append(CPPPATH=[_vdir])
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target: Build MBED Library
|
||||||
|
#
|
||||||
|
|
||||||
|
libs = [l for l in eixdata.get("STDLIBS", []) if l not in env.get("LIBS")]
|
||||||
|
|
||||||
|
env.VariantDir(
|
||||||
|
join("$BUILD_DIR", "FrameworkMBED"),
|
||||||
|
join("$PLATFORMFW_DIR", "core")
|
||||||
|
)
|
||||||
|
libs.append(env.Library(
|
||||||
|
join("$BUILD_DIR", "FrameworkMBED"),
|
||||||
|
get_source_files(eixdata.get("FILES", []))
|
||||||
|
))
|
||||||
|
|
||||||
|
env.Append(LIBS=libs)
|
@@ -9,7 +9,7 @@ import re
|
|||||||
from os import listdir, sep, walk
|
from os import listdir, sep, walk
|
||||||
from os.path import isfile, join, normpath
|
from os.path import isfile, join, normpath
|
||||||
|
|
||||||
from SCons.Script import DefaultEnvironment, Return
|
from SCons.Script import DefaultEnvironment
|
||||||
|
|
||||||
from platformio.util import exec_command
|
from platformio.util import exec_command
|
||||||
|
|
||||||
@@ -168,4 +168,4 @@ libs.append(env.Library(
|
|||||||
get_source_files(root_dir)
|
get_source_files(root_dir)
|
||||||
))
|
))
|
||||||
|
|
||||||
Return("libs")
|
env.Append(LIBS=libs)
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
from os.path import join
|
from os.path import join
|
||||||
|
|
||||||
from SCons.Script import DefaultEnvironment, Return
|
from SCons.Script import DefaultEnvironment
|
||||||
|
|
||||||
env = DefaultEnvironment()
|
env = DefaultEnvironment()
|
||||||
|
|
||||||
@@ -61,4 +61,4 @@ libs.append(envsafe.BuildLibrary(
|
|||||||
ignore_files
|
ignore_files
|
||||||
))
|
))
|
||||||
|
|
||||||
Return("libs")
|
env.Append(LIBS=libs)
|
||||||
|
59
platformio/builder/scripts/freescalekinetis.py
Normal file
59
platformio/builder/scripts/freescalekinetis.py
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
# Copyright (C) Ivan Kravets <me@ikravets.com>
|
||||||
|
# See LICENSE for details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
Builder for Freescale Kinetis series ARM microcontrollers.
|
||||||
|
"""
|
||||||
|
|
||||||
|
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")))
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target: Build executable and linkable firmware
|
||||||
|
#
|
||||||
|
|
||||||
|
target_elf = env.BuildFirmware()
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target: Build the .bin file
|
||||||
|
#
|
||||||
|
|
||||||
|
if "uploadlazy" in COMMAND_LINE_TARGETS:
|
||||||
|
target_firm = join("$BUILD_DIR", "firmware.bin")
|
||||||
|
else:
|
||||||
|
target_firm = env.ElfToBin(join("$BUILD_DIR", "firmware"), target_elf)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target: Print binary size
|
||||||
|
#
|
||||||
|
|
||||||
|
target_size = env.Alias("size", target_elf, "$SIZEPRINTCMD")
|
||||||
|
AlwaysBuild(target_size)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target: Upload by default .bin file
|
||||||
|
#
|
||||||
|
|
||||||
|
upload = env.Alias(["upload", "uploadlazy"], target_firm, UploadToDisk)
|
||||||
|
AlwaysBuild(upload)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target: Define targets
|
||||||
|
#
|
||||||
|
|
||||||
|
Default([target_firm, target_size])
|
59
platformio/builder/scripts/nordicnrf51.py
Normal file
59
platformio/builder/scripts/nordicnrf51.py
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
# Copyright (C) Ivan Kravets <me@ikravets.com>
|
||||||
|
# See LICENSE for details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
Builder for Nordic nRF51 series ARM microcontrollers.
|
||||||
|
"""
|
||||||
|
|
||||||
|
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")))
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target: Build executable and linkable firmware
|
||||||
|
#
|
||||||
|
|
||||||
|
target_elf = env.BuildFirmware()
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target: Build the .bin file
|
||||||
|
#
|
||||||
|
|
||||||
|
if "uploadlazy" in COMMAND_LINE_TARGETS:
|
||||||
|
target_firm = join("$BUILD_DIR", "firmware.bin")
|
||||||
|
else:
|
||||||
|
target_firm = env.ElfToBin(join("$BUILD_DIR", "firmware"), target_elf)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target: Print binary size
|
||||||
|
#
|
||||||
|
|
||||||
|
target_size = env.Alias("size", target_elf, "$SIZEPRINTCMD")
|
||||||
|
AlwaysBuild(target_size)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target: Upload by default .bin file
|
||||||
|
#
|
||||||
|
|
||||||
|
upload = env.Alias(["upload", "uploadlazy"], target_firm, UploadToDisk)
|
||||||
|
AlwaysBuild(upload)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target: Define targets
|
||||||
|
#
|
||||||
|
|
||||||
|
Default([target_firm, target_size])
|
59
platformio/builder/scripts/nxplpc.py
Normal file
59
platformio/builder/scripts/nxplpc.py
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
# Copyright (C) Ivan Kravets <me@ikravets.com>
|
||||||
|
# See LICENSE for details.
|
||||||
|
|
||||||
|
"""
|
||||||
|
Builder for NXP LPC series ARM microcontrollers.
|
||||||
|
"""
|
||||||
|
|
||||||
|
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")))
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target: Build executable and linkable firmware
|
||||||
|
#
|
||||||
|
|
||||||
|
target_elf = env.BuildFirmware()
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target: Build the .bin file
|
||||||
|
#
|
||||||
|
|
||||||
|
if "uploadlazy" in COMMAND_LINE_TARGETS:
|
||||||
|
target_firm = join("$BUILD_DIR", "firmware.bin")
|
||||||
|
else:
|
||||||
|
target_firm = env.ElfToBin(join("$BUILD_DIR", "firmware"), target_elf)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target: Print binary size
|
||||||
|
#
|
||||||
|
|
||||||
|
target_size = env.Alias("size", target_elf, "$SIZEPRINTCMD")
|
||||||
|
AlwaysBuild(target_size)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target: Upload by default .bin file
|
||||||
|
#
|
||||||
|
|
||||||
|
upload = env.Alias(["upload", "uploadlazy"], target_firm, UploadToDisk)
|
||||||
|
AlwaysBuild(upload)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Target: Define targets
|
||||||
|
#
|
||||||
|
|
||||||
|
Default([target_firm, target_size])
|
@@ -2,15 +2,23 @@
|
|||||||
# See LICENSE for details.
|
# See LICENSE for details.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Builder for STMicroelectronics
|
Builder for ST STM32 Series ARM microcontrollers.
|
||||||
STM32 Series ARM microcontrollers.
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from os.path import join
|
from os.path import join
|
||||||
|
from shutil import copyfile
|
||||||
|
|
||||||
from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Default,
|
from SCons.Script import (COMMAND_LINE_TARGETS, AlwaysBuild, Default,
|
||||||
DefaultEnvironment, SConscript)
|
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()
|
env = DefaultEnvironment()
|
||||||
|
|
||||||
SConscript(env.subst(join("$PIOBUILDER_DIR", "scripts", "basearm.py")))
|
SConscript(env.subst(join("$PIOBUILDER_DIR", "scripts", "basearm.py")))
|
||||||
@@ -38,13 +46,11 @@ env.Append(
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
CORELIBS = env.ProcessGeneral()
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Target: Build executable and linkable firmware
|
# Target: Build executable and linkable firmware
|
||||||
#
|
#
|
||||||
|
|
||||||
target_elf = env.BuildFirmware(["c", "gcc", "m", "nosys"] + CORELIBS)
|
target_elf = env.BuildFirmware()
|
||||||
|
|
||||||
#
|
#
|
||||||
# Target: Build the .bin file
|
# Target: Build the .bin file
|
||||||
@@ -66,7 +72,10 @@ AlwaysBuild(target_size)
|
|||||||
# Target: Upload by default .bin file
|
# Target: Upload by default .bin file
|
||||||
#
|
#
|
||||||
|
|
||||||
upload = env.Alias(["upload", "uploadlazy"], target_firm, "$UPLOADCMD")
|
if "mbed" in env.subst("$FRAMEWORK"):
|
||||||
|
upload = env.Alias(["upload", "uploadlazy"], target_firm, UploadToDisk)
|
||||||
|
else:
|
||||||
|
upload = env.Alias(["upload", "uploadlazy"], target_firm, "$UPLOADCMD")
|
||||||
AlwaysBuild(upload)
|
AlwaysBuild(upload)
|
||||||
|
|
||||||
#
|
#
|
@@ -53,13 +53,11 @@ else:
|
|||||||
UPLOADHEXCMD='"$UPLOADER" $UPLOADERFLAGS'
|
UPLOADHEXCMD='"$UPLOADER" $UPLOADERFLAGS'
|
||||||
)
|
)
|
||||||
|
|
||||||
CORELIBS = env.ProcessGeneral()
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Target: Build executable and linkable firmware
|
# Target: Build executable and linkable firmware
|
||||||
#
|
#
|
||||||
|
|
||||||
target_elf = env.BuildFirmware(["m"] + CORELIBS)
|
target_elf = env.BuildFirmware()
|
||||||
|
|
||||||
#
|
#
|
||||||
# Target: Build the firmware file
|
# Target: Build the firmware file
|
||||||
|
@@ -48,6 +48,8 @@ env.Replace(
|
|||||||
"-Wl,-gc-sections,-u,main"
|
"-Wl,-gc-sections,-u,main"
|
||||||
],
|
],
|
||||||
|
|
||||||
|
LIBS=["m"],
|
||||||
|
|
||||||
SIZEPRINTCMD='"$SIZETOOL" -B -d $SOURCES',
|
SIZEPRINTCMD='"$SIZETOOL" -B -d $SOURCES',
|
||||||
|
|
||||||
UPLOADER=join("$PIOPACKAGES_DIR", "tool-mspdebug", "mspdebug"),
|
UPLOADER=join("$PIOPACKAGES_DIR", "tool-mspdebug", "mspdebug"),
|
||||||
@@ -74,13 +76,11 @@ env.Append(
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
CORELIBS = env.ProcessGeneral()
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Target: Build executable and linkable firmware
|
# Target: Build executable and linkable firmware
|
||||||
#
|
#
|
||||||
|
|
||||||
target_elf = env.BuildFirmware(["m"] + CORELIBS)
|
target_elf = env.BuildFirmware()
|
||||||
|
|
||||||
#
|
#
|
||||||
# Target: Build the .hex
|
# Target: Build the .hex
|
||||||
|
@@ -27,13 +27,11 @@ env.Append(
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
CORELIBS = env.ProcessGeneral()
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Target: Build executable and linkable firmware
|
# Target: Build executable and linkable firmware
|
||||||
#
|
#
|
||||||
|
|
||||||
target_elf = env.BuildFirmware(["c", "gcc", "m"] + CORELIBS)
|
target_elf = env.BuildFirmware()
|
||||||
|
|
||||||
#
|
#
|
||||||
# Target: Build the .bin file
|
# Target: Build the .bin file
|
||||||
|
@@ -7,7 +7,7 @@ from time import sleep
|
|||||||
from SCons.Script import Exit
|
from SCons.Script import Exit
|
||||||
from serial import Serial
|
from serial import Serial
|
||||||
|
|
||||||
from platformio.util import get_serialports
|
from platformio.util import get_logicaldisks, get_serialports
|
||||||
|
|
||||||
|
|
||||||
def FlushSerialBuffer(env, port):
|
def FlushSerialBuffer(env, port):
|
||||||
@@ -52,16 +52,28 @@ def WaitForNewSerialPort(_, before):
|
|||||||
|
|
||||||
|
|
||||||
def AutodetectUploadPort(env):
|
def AutodetectUploadPort(env):
|
||||||
if "UPLOAD_PORT" not in env:
|
if "UPLOAD_PORT" in env:
|
||||||
|
return
|
||||||
|
|
||||||
|
if env.subst("$FRAMEWORK") == "mbed":
|
||||||
|
for item in get_logicaldisks():
|
||||||
|
if not item['name'] or "mbed" != item['name'].lower():
|
||||||
|
continue
|
||||||
|
print "Auto-detected UPLOAD_PORT: %s" % item['disk']
|
||||||
|
env.Replace(UPLOAD_PORT=item['disk'])
|
||||||
|
break
|
||||||
|
else:
|
||||||
for item in get_serialports():
|
for item in get_serialports():
|
||||||
if "VID:PID" in item['hwid']:
|
if "VID:PID" not in item['hwid']:
|
||||||
print "Auto-detected UPLOAD_PORT: %s" % item['port']
|
continue
|
||||||
env.Replace(UPLOAD_PORT=item['port'])
|
print "Auto-detected UPLOAD_PORT: %s" % item['port']
|
||||||
break
|
env.Replace(UPLOAD_PORT=item['port'])
|
||||||
|
break
|
||||||
|
|
||||||
if "UPLOAD_PORT" not in env:
|
if "UPLOAD_PORT" not in env:
|
||||||
Exit("Error: Please specify `upload_port` for environment or use "
|
Exit("Error: Please specify `upload_port` for environment or use "
|
||||||
"global `--upload-port` option.\n")
|
"global `--upload-port` option.\n"
|
||||||
|
"For the some development platforms it can be USB flash drive\n")
|
||||||
|
|
||||||
|
|
||||||
def exists(_):
|
def exists(_):
|
||||||
|
@@ -10,7 +10,7 @@ from SCons.Script import SConscript, SConscriptChdir
|
|||||||
from SCons.Util import case_sensitive_suffixes
|
from SCons.Util import case_sensitive_suffixes
|
||||||
|
|
||||||
|
|
||||||
def ProcessGeneral(env):
|
def BuildFirmware(env):
|
||||||
# fix ASM handling under non-casitive OS
|
# fix ASM handling under non-casitive OS
|
||||||
if not case_sensitive_suffixes('.s', '.S'):
|
if not case_sensitive_suffixes('.s', '.S'):
|
||||||
env.Replace(
|
env.Replace(
|
||||||
@@ -24,20 +24,8 @@ def ProcessGeneral(env):
|
|||||||
if "BUILD_FLAGS" in env:
|
if "BUILD_FLAGS" in env:
|
||||||
env.MergeFlags(env['BUILD_FLAGS'])
|
env.MergeFlags(env['BUILD_FLAGS'])
|
||||||
|
|
||||||
corelibs = []
|
env.BuildFramework()
|
||||||
if "FRAMEWORK" in env:
|
|
||||||
if env['FRAMEWORK'] in ("arduino", "energia"):
|
|
||||||
env.ConvertInoToCpp()
|
|
||||||
for f in env['FRAMEWORK'].split(","):
|
|
||||||
SConscriptChdir(0)
|
|
||||||
corelibs += SConscript(
|
|
||||||
env.subst(join("$PIOBUILDER_DIR", "scripts", "frameworks",
|
|
||||||
"%s.py" % f.strip().lower()))
|
|
||||||
)
|
|
||||||
return corelibs
|
|
||||||
|
|
||||||
|
|
||||||
def BuildFirmware(env, corelibs):
|
|
||||||
firmenv = env.Clone()
|
firmenv = env.Clone()
|
||||||
vdirs = firmenv.VariantDirRecursive(
|
vdirs = firmenv.VariantDirRecursive(
|
||||||
join("$BUILD_DIR", "src"), "$PROJECTSRC_DIR")
|
join("$BUILD_DIR", "src"), "$PROJECTSRC_DIR")
|
||||||
@@ -59,12 +47,15 @@ def BuildFirmware(env, corelibs):
|
|||||||
_LIBFLAGS=" -Wl,--end-group"
|
_LIBFLAGS=" -Wl,--end-group"
|
||||||
)
|
)
|
||||||
|
|
||||||
firmenv.MergeFlags(getenv("PLATFORMIO_SRCBUILD_FLAGS", "$SRCBUILD_FLAGS"))
|
_srcbuild_flags = getenv("PLATFORMIO_SRCBUILD_FLAGS",
|
||||||
|
env.subst("$SRCBUILD_FLAGS"))
|
||||||
|
if _srcbuild_flags:
|
||||||
|
firmenv.MergeFlags(_srcbuild_flags)
|
||||||
|
|
||||||
return firmenv.Program(
|
return firmenv.Program(
|
||||||
join("$BUILD_DIR", "firmware"),
|
join("$BUILD_DIR", "firmware"),
|
||||||
[firmenv.GlobCXXFiles(vdir) for vdir in vdirs],
|
[firmenv.GlobCXXFiles(vdir) for vdir in vdirs],
|
||||||
LIBS=corelibs + deplibs,
|
LIBS=env.get("LIBS") + deplibs,
|
||||||
LIBPATH="$BUILD_DIR",
|
LIBPATH="$BUILD_DIR",
|
||||||
PROGSUFFIX=".elf"
|
PROGSUFFIX=".elf"
|
||||||
)
|
)
|
||||||
@@ -95,6 +86,21 @@ def VariantDirRecursive(env, variant_dir, src_dir, duplicate=True,
|
|||||||
return variants
|
return variants
|
||||||
|
|
||||||
|
|
||||||
|
def BuildFramework(env):
|
||||||
|
if "FRAMEWORK" not in env:
|
||||||
|
return
|
||||||
|
|
||||||
|
if env['FRAMEWORK'].lower() in ("arduino", "energia"):
|
||||||
|
env.ConvertInoToCpp()
|
||||||
|
|
||||||
|
for f in env['FRAMEWORK'].split(","):
|
||||||
|
SConscriptChdir(0)
|
||||||
|
SConscript(
|
||||||
|
env.subst(join("$PIOBUILDER_DIR", "scripts", "frameworks",
|
||||||
|
"%s.py" % f.strip().lower()))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def BuildLibrary(env, variant_dir, library_dir, ignore_files=None):
|
def BuildLibrary(env, variant_dir, library_dir, ignore_files=None):
|
||||||
lib = env.Clone()
|
lib = env.Clone()
|
||||||
vdirs = lib.VariantDirRecursive(
|
vdirs = lib.VariantDirRecursive(
|
||||||
@@ -303,10 +309,10 @@ def exists(_):
|
|||||||
|
|
||||||
|
|
||||||
def generate(env):
|
def generate(env):
|
||||||
env.AddMethod(ProcessGeneral)
|
|
||||||
env.AddMethod(BuildFirmware)
|
env.AddMethod(BuildFirmware)
|
||||||
env.AddMethod(GlobCXXFiles)
|
env.AddMethod(GlobCXXFiles)
|
||||||
env.AddMethod(VariantDirRecursive)
|
env.AddMethod(VariantDirRecursive)
|
||||||
|
env.AddMethod(BuildFramework)
|
||||||
env.AddMethod(BuildLibrary)
|
env.AddMethod(BuildLibrary)
|
||||||
env.AddMethod(BuildDependentLibraries)
|
env.AddMethod(BuildDependentLibraries)
|
||||||
env.AddMethod(ConvertInoToCpp)
|
env.AddMethod(ConvertInoToCpp)
|
||||||
|
@@ -16,7 +16,7 @@ def cli(query, json_output): # pylint: disable=R0912
|
|||||||
if json_output:
|
if json_output:
|
||||||
return ouput_boards_json(query)
|
return ouput_boards_json(query)
|
||||||
|
|
||||||
BOARDLIST_TPL = ("{type:<30} {mcu:<13} {frequency:<8} "
|
BOARDLIST_TPL = ("{type:<30} {mcu:<14} {frequency:<8} "
|
||||||
" {flash:<7} {ram:<6} {name}")
|
" {flash:<7} {ram:<6} {name}")
|
||||||
|
|
||||||
grpboards = {}
|
grpboards = {}
|
||||||
|
23
platformio/platforms/freescalekinetis.py
Normal file
23
platformio/platforms/freescalekinetis.py
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# Copyright (C) Ivan Kravets <me@ikravets.com>
|
||||||
|
# See LICENSE for details.
|
||||||
|
|
||||||
|
from platformio.platforms.base import BasePlatform
|
||||||
|
|
||||||
|
|
||||||
|
class FreescalekinetisPlatform(BasePlatform):
|
||||||
|
|
||||||
|
"""
|
||||||
|
An embedded platform for Freescale Kinetis series ARM microcontrollers
|
||||||
|
"""
|
||||||
|
|
||||||
|
PACKAGES = {
|
||||||
|
|
||||||
|
"toolchain-gccarmnoneeabi": {
|
||||||
|
"alias": "toolchain",
|
||||||
|
"default": True
|
||||||
|
},
|
||||||
|
|
||||||
|
"framework-mbed": {
|
||||||
|
"default": True
|
||||||
|
}
|
||||||
|
}
|
23
platformio/platforms/nordicnrf51.py
Normal file
23
platformio/platforms/nordicnrf51.py
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# Copyright (C) Ivan Kravets <me@ikravets.com>
|
||||||
|
# See LICENSE for details.
|
||||||
|
|
||||||
|
from platformio.platforms.base import BasePlatform
|
||||||
|
|
||||||
|
|
||||||
|
class Nordicnrf51Platform(BasePlatform):
|
||||||
|
|
||||||
|
"""
|
||||||
|
An embedded platform for Nordic nRF51 series ARM microcontrollers
|
||||||
|
"""
|
||||||
|
|
||||||
|
PACKAGES = {
|
||||||
|
|
||||||
|
"toolchain-gccarmnoneeabi": {
|
||||||
|
"alias": "toolchain",
|
||||||
|
"default": True
|
||||||
|
},
|
||||||
|
|
||||||
|
"framework-mbed": {
|
||||||
|
"default": True
|
||||||
|
}
|
||||||
|
}
|
23
platformio/platforms/nxplpc.py
Normal file
23
platformio/platforms/nxplpc.py
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# Copyright (C) Ivan Kravets <me@ikravets.com>
|
||||||
|
# See LICENSE for details.
|
||||||
|
|
||||||
|
from platformio.platforms.base import BasePlatform
|
||||||
|
|
||||||
|
|
||||||
|
class NxplpcPlatform(BasePlatform):
|
||||||
|
|
||||||
|
"""
|
||||||
|
An embedded platform for NXP LPC series ARM microcontrollers
|
||||||
|
"""
|
||||||
|
|
||||||
|
PACKAGES = {
|
||||||
|
|
||||||
|
"toolchain-gccarmnoneeabi": {
|
||||||
|
"alias": "toolchain",
|
||||||
|
"default": True
|
||||||
|
},
|
||||||
|
|
||||||
|
"framework-mbed": {
|
||||||
|
"default": True
|
||||||
|
}
|
||||||
|
}
|
@@ -4,10 +4,10 @@
|
|||||||
from platformio.platforms.base import BasePlatform
|
from platformio.platforms.base import BasePlatform
|
||||||
|
|
||||||
|
|
||||||
class Stm32Platform(BasePlatform):
|
class Ststm32Platform(BasePlatform):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
An embedded platform for STMicroelectronics ARM microcontrollers
|
An embedded platform for ST STM32 ARM microcontrollers
|
||||||
"""
|
"""
|
||||||
|
|
||||||
PACKAGES = {
|
PACKAGES = {
|
||||||
@@ -36,5 +36,9 @@ class Stm32Platform(BasePlatform):
|
|||||||
|
|
||||||
"framework-opencm3": {
|
"framework-opencm3": {
|
||||||
"default": True
|
"default": True
|
||||||
|
},
|
||||||
|
|
||||||
|
"framework-mbed": {
|
||||||
|
"default": True
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -3,8 +3,10 @@
|
|||||||
|
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
from os.path import abspath, dirname, expanduser, isdir, isfile, join, realpath
|
from os.path import (abspath, basename, dirname, expanduser, isdir, isfile,
|
||||||
|
join, realpath)
|
||||||
from platform import system, uname
|
from platform import system, uname
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
|
||||||
@@ -173,7 +175,30 @@ def get_serialports():
|
|||||||
from serial.tools.list_ports_posix import comports
|
from serial.tools.list_ports_posix import comports
|
||||||
else:
|
else:
|
||||||
raise exception.GetSerialPortsError(os.name)
|
raise exception.GetSerialPortsError(os.name)
|
||||||
return[{"port": p, "description": d, "hwid": h} for p, d, h in comports()]
|
return [{"port": p, "description": d, "hwid": h} for p, d, h in comports()]
|
||||||
|
|
||||||
|
|
||||||
|
def get_logicaldisks():
|
||||||
|
disks = []
|
||||||
|
if system() == "Windows":
|
||||||
|
result = exec_command(
|
||||||
|
["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())
|
||||||
|
if not match:
|
||||||
|
continue
|
||||||
|
disks.append({"disk": match.group(1), "name": match.group(2)})
|
||||||
|
else:
|
||||||
|
result = exec_command(["df"]).get("out")
|
||||||
|
disknamere = re.compile(r"\d+\%\s+([a-z\d\-_/]+)$", flags=re.I)
|
||||||
|
for line in result.split("\n"):
|
||||||
|
match = disknamere.search(line.strip())
|
||||||
|
if not match:
|
||||||
|
continue
|
||||||
|
disks.append({"disk": match.group(1),
|
||||||
|
"name": basename(match.group(1))})
|
||||||
|
return disks
|
||||||
|
|
||||||
|
|
||||||
def get_api_result(path, params=None, data=None):
|
def get_api_result(path, params=None, data=None):
|
||||||
|
64
scripts/mbed_to_package.py
Normal file
64
scripts/mbed_to_package.py
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
# Copyright (C) Ivan Kravets <me@ikravets.com>
|
||||||
|
# See LICENSE for details.
|
||||||
|
|
||||||
|
from os import getcwd, mkdir, makedirs, listdir
|
||||||
|
from os.path import isfile, isdir, join
|
||||||
|
from shutil import copy2, rmtree, copytree
|
||||||
|
from sys import exit as sys_exit
|
||||||
|
from sys import path
|
||||||
|
import zipfile
|
||||||
|
|
||||||
|
|
||||||
|
MBED_DIR = "/home/valeros/mbed-master"
|
||||||
|
OUTPUT_DIR = "/home/valeros/mbed-framework"
|
||||||
|
CORE_DIR = join(OUTPUT_DIR, "core")
|
||||||
|
VARIANT_DIR = join(OUTPUT_DIR, "variant")
|
||||||
|
|
||||||
|
path.append("..")
|
||||||
|
path.append(MBED_DIR)
|
||||||
|
from workspace_tools.export import gccarm
|
||||||
|
from platformio.util import exec_command
|
||||||
|
|
||||||
|
|
||||||
|
def _unzip_generated_file(mcu):
|
||||||
|
filename = join(
|
||||||
|
MBED_DIR, "build", "export", "MBED_A1_emblocks_%s.zip" % mcu)
|
||||||
|
variant_dir = join(VARIANT_DIR, mcu)
|
||||||
|
if isfile(filename):
|
||||||
|
print "Processing board: %s" % mcu
|
||||||
|
with zipfile.ZipFile(filename) as zfile:
|
||||||
|
mkdir(variant_dir)
|
||||||
|
file_data = zfile.read("MBED_A1/MBED_A1.eix")
|
||||||
|
with open(join(variant_dir, "%s.eix" % mcu), "w") as f:
|
||||||
|
f.write(file_data)
|
||||||
|
else:
|
||||||
|
print "Warning! Skipped board: %s" % mcu
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
print "Starting..."
|
||||||
|
if isdir(OUTPUT_DIR):
|
||||||
|
rmtree(OUTPUT_DIR)
|
||||||
|
print "Delete previous framework dir"
|
||||||
|
makedirs(VARIANT_DIR)
|
||||||
|
# copy MBED library
|
||||||
|
mbedlib_dir = join(MBED_DIR, "libraries", "mbed")
|
||||||
|
for item in listdir(mbedlib_dir):
|
||||||
|
src = join(mbedlib_dir, item)
|
||||||
|
dst = join(CORE_DIR, item)
|
||||||
|
if isdir(src):
|
||||||
|
copytree(src, dst)
|
||||||
|
else:
|
||||||
|
copy2(src, dst)
|
||||||
|
# make .eix files
|
||||||
|
for mcu in set(gccarm.GccArm.TARGETS):
|
||||||
|
exec_command(
|
||||||
|
["python", join(MBED_DIR, "workspace_tools", "project.py"),
|
||||||
|
"--mcu", mcu, "-i", "emblocks", "-p", "0"], cwd=getcwd()
|
||||||
|
)
|
||||||
|
_unzip_generated_file(mcu)
|
||||||
|
print "Complete!"
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys_exit(main())
|
@@ -44,7 +44,7 @@ def test_board_options(platformio_setup, clirunner, validate_cliresult):
|
|||||||
def test_board_ldscripts(platformio_setup, clirunner, validate_cliresult):
|
def test_board_ldscripts(platformio_setup, clirunner, validate_cliresult):
|
||||||
result = clirunner.invoke(
|
result = clirunner.invoke(
|
||||||
install_cli, [
|
install_cli, [
|
||||||
"stm32",
|
"ststm32",
|
||||||
"--skip-default-package",
|
"--skip-default-package",
|
||||||
"--with-package=ldscripts"
|
"--with-package=ldscripts"
|
||||||
])
|
])
|
||||||
|
Reference in New Issue
Block a user