mirror of
https://github.com/platformio/platformio-core.git
synced 2025-07-30 18:17: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"],
|
||||
|
||||
LIBS=["additional", "libs", "here"],
|
||||
|
||||
UPLOADER=join("$PIOPACKAGES_DIR", "tool-bar", "uploader"),
|
||||
UPLOADCMD="$UPLOADER $SOURCES"
|
||||
)
|
||||
@ -238,12 +240,10 @@ base template of ``test-builder.py``.
|
||||
# The source code of "platformio-build-tool" is here
|
||||
# https://github.com/ivankravets/platformio/blob/develop/platformio/builder/tools/platformio.py
|
||||
|
||||
CORELIBS = env.ProcessGeneral()
|
||||
|
||||
#
|
||||
# Target: Build executable and linkable firmware
|
||||
#
|
||||
target_elf = env.BuildFirmware(CORELIBS + ["additional", "libs", "here"])
|
||||
target_elf = env.BuildFirmware()
|
||||
|
||||
#
|
||||
# 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
|
||||
atmelsam
|
||||
stm32
|
||||
freescalekinetis
|
||||
nordicnrf51
|
||||
nxplpc
|
||||
ststm32
|
||||
teensy
|
||||
timsp430
|
||||
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
|
||||
# targets = upload
|
||||
|
||||
[env:stm32f4discovery]
|
||||
platform = stm32
|
||||
[env:disco_f407vg]
|
||||
platform = ststm32
|
||||
framework = cmsis
|
||||
board = stm32f4discovery
|
||||
board = disco_f407vg
|
||||
|
||||
[env:stm32ldiscovery]
|
||||
platform = stm32
|
||||
[env:disco_l152rb]
|
||||
platform = ststm32
|
||||
framework = cmsis
|
||||
board = stm32ldiscovery
|
||||
board = disco_l152rb
|
||||
|
||||
[env:stm32f3discovery]
|
||||
platform = stm32
|
||||
[env:disco_f303vc]
|
||||
platform = ststm32
|
||||
framework = cmsis
|
||||
board = stm32f3discovery
|
||||
board = disco_f303vc
|
@ -17,17 +17,17 @@
|
||||
# Automatic targets - enable auto-uploading
|
||||
# targets = upload
|
||||
|
||||
[env:stm32f4discovery]
|
||||
platform = stm32
|
||||
[env:disco_f407vg]
|
||||
platform = ststm32
|
||||
framework = opencm3
|
||||
board = stm32f4discovery
|
||||
board = disco_f407vg
|
||||
|
||||
[env:stm32ldiscovery]
|
||||
platform = stm32
|
||||
[env:disco_l152rb]
|
||||
platform = ststm32
|
||||
framework = opencm3
|
||||
board = stm32ldiscovery
|
||||
board = disco_l152rb
|
||||
|
||||
[env:stm32f3discovery]
|
||||
platform = stm32
|
||||
[env:disco_f303vc]
|
||||
platform = ststm32
|
||||
framework = opencm3
|
||||
board = stm32f3discovery
|
||||
board = disco_f303vc
|
||||
|
@ -17,17 +17,17 @@
|
||||
# Automatic targets - enable auto-uploading
|
||||
# targets = upload
|
||||
|
||||
[env:stm32f4discovery]
|
||||
platform = stm32
|
||||
[env:disco_f407vg]
|
||||
platform = ststm32
|
||||
framework = cmsis,spl
|
||||
board = stm32f4discovery
|
||||
board = disco_f407vg
|
||||
|
||||
[env:stm32ldiscovery]
|
||||
platform = stm32
|
||||
[env:disco_l152rb]
|
||||
platform = ststm32
|
||||
framework = cmsis,spl
|
||||
board = stm32ldiscovery
|
||||
board = disco_l152rb
|
||||
|
||||
[env:stm32f3discovery]
|
||||
platform = stm32
|
||||
[env:disco_f303vc]
|
||||
platform = ststm32
|
||||
framework = cmsis,spl
|
||||
board = stm32f3discovery
|
||||
board = disco_f303vc
|
||||
|
@ -34,7 +34,7 @@
|
||||
"variant": "tiny8"
|
||||
},
|
||||
"framework": "arduino",
|
||||
"name": "Adafruit Trinket 8MHz",
|
||||
"name": "Adafruit Trinket 3V/8MHz",
|
||||
"platform": "atmelavr",
|
||||
"upload": {
|
||||
"maximum_ram_size": 512,
|
||||
@ -52,7 +52,7 @@
|
||||
"variant": "tiny8"
|
||||
},
|
||||
"framework": "arduino",
|
||||
"name": "Adafruit Trinket 16MHz",
|
||||
"name": "Adafruit Trinket 5V/16MHz",
|
||||
"platform": "atmelavr",
|
||||
"upload": {
|
||||
"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'
|
||||
)
|
||||
|
||||
CORELIBS = env.ProcessGeneral()
|
||||
|
||||
#
|
||||
# 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
|
||||
|
@ -68,13 +68,11 @@ env.Append(
|
||||
]
|
||||
)
|
||||
|
||||
CORELIBS = env.ProcessGeneral()
|
||||
|
||||
#
|
||||
# Target: Build executable and linkable firmware
|
||||
#
|
||||
|
||||
target_elf = env.BuildFirmware(["m", "gcc"] + CORELIBS)
|
||||
target_elf = env.BuildFirmware()
|
||||
|
||||
#
|
||||
# Target: Build the .bin file
|
||||
|
@ -50,16 +50,15 @@ env.Replace(
|
||||
"-mcpu=${BOARD_OPTIONS['build']['cpu']}"
|
||||
],
|
||||
|
||||
LIBS=["c", "gcc", "m"],
|
||||
|
||||
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(
|
||||
ASFLAGS=[
|
||||
"-mfloat-abi=hard",
|
||||
"-mfpu=fpv4-sp-d16"
|
||||
],
|
||||
CCFLAGS=[
|
||||
CPPFLAGS=[
|
||||
"-mfloat-abi=hard",
|
||||
"-mfpu=fpv4-sp-d16",
|
||||
"-fsingle-precision-constant"
|
||||
|
@ -47,6 +47,8 @@ env.Replace(
|
||||
"-Wl,--gc-sections"
|
||||
],
|
||||
|
||||
LIBS=["m"],
|
||||
|
||||
SIZEPRINTCMD='"$SIZETOOL" --mcu=$BOARD_MCU -C -d $SOURCES'
|
||||
)
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
from os import listdir, walk
|
||||
from os.path import isfile, join
|
||||
|
||||
from SCons.Script import DefaultEnvironment, Return
|
||||
from SCons.Script import DefaultEnvironment
|
||||
|
||||
env = DefaultEnvironment()
|
||||
|
||||
@ -178,4 +178,4 @@ if env.subst("${PLATFORMFW_DIR}")[-3:] == "sam":
|
||||
join("$PLATFORMFW_DIR", "system", "libsam", "source")
|
||||
))
|
||||
|
||||
Return("libs")
|
||||
env.Append(LIBS=libs)
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
from os.path import join
|
||||
|
||||
from SCons.Script import DefaultEnvironment, Return
|
||||
from SCons.Script import DefaultEnvironment
|
||||
|
||||
env = DefaultEnvironment()
|
||||
|
||||
@ -39,4 +39,4 @@ libs.append(envsafe.BuildLibrary(
|
||||
join("$PLATFORMFW_DIR", "variants", "${BOARD_OPTIONS['build']['variant']}")
|
||||
))
|
||||
|
||||
Return("libs")
|
||||
env.Append(LIBS=libs)
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
from os.path import join
|
||||
|
||||
from SCons.Script import DefaultEnvironment, Return
|
||||
from SCons.Script import DefaultEnvironment
|
||||
|
||||
env = DefaultEnvironment()
|
||||
|
||||
@ -52,4 +52,4 @@ libs.append(env.BuildLibrary(
|
||||
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.path import isfile, join, normpath
|
||||
|
||||
from SCons.Script import DefaultEnvironment, Return
|
||||
from SCons.Script import DefaultEnvironment
|
||||
|
||||
from platformio.util import exec_command
|
||||
|
||||
@ -168,4 +168,4 @@ libs.append(env.Library(
|
||||
get_source_files(root_dir)
|
||||
))
|
||||
|
||||
Return("libs")
|
||||
env.Append(LIBS=libs)
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
from os.path import join
|
||||
|
||||
from SCons.Script import DefaultEnvironment, Return
|
||||
from SCons.Script import DefaultEnvironment
|
||||
|
||||
env = DefaultEnvironment()
|
||||
|
||||
@ -61,4 +61,4 @@ libs.append(envsafe.BuildLibrary(
|
||||
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.
|
||||
|
||||
"""
|
||||
Builder for STMicroelectronics
|
||||
STM32 Series ARM microcontrollers.
|
||||
Builder for ST STM32 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")))
|
||||
@ -38,13 +46,11 @@ env.Append(
|
||||
]
|
||||
)
|
||||
|
||||
CORELIBS = env.ProcessGeneral()
|
||||
|
||||
#
|
||||
# Target: Build executable and linkable firmware
|
||||
#
|
||||
|
||||
target_elf = env.BuildFirmware(["c", "gcc", "m", "nosys"] + CORELIBS)
|
||||
target_elf = env.BuildFirmware()
|
||||
|
||||
#
|
||||
# Target: Build the .bin file
|
||||
@ -66,7 +72,10 @@ AlwaysBuild(target_size)
|
||||
# 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)
|
||||
|
||||
#
|
@ -53,13 +53,11 @@ else:
|
||||
UPLOADHEXCMD='"$UPLOADER" $UPLOADERFLAGS'
|
||||
)
|
||||
|
||||
CORELIBS = env.ProcessGeneral()
|
||||
|
||||
#
|
||||
# Target: Build executable and linkable firmware
|
||||
#
|
||||
|
||||
target_elf = env.BuildFirmware(["m"] + CORELIBS)
|
||||
target_elf = env.BuildFirmware()
|
||||
|
||||
#
|
||||
# Target: Build the firmware file
|
||||
|
@ -48,6 +48,8 @@ env.Replace(
|
||||
"-Wl,-gc-sections,-u,main"
|
||||
],
|
||||
|
||||
LIBS=["m"],
|
||||
|
||||
SIZEPRINTCMD='"$SIZETOOL" -B -d $SOURCES',
|
||||
|
||||
UPLOADER=join("$PIOPACKAGES_DIR", "tool-mspdebug", "mspdebug"),
|
||||
@ -74,13 +76,11 @@ env.Append(
|
||||
)
|
||||
)
|
||||
|
||||
CORELIBS = env.ProcessGeneral()
|
||||
|
||||
#
|
||||
# Target: Build executable and linkable firmware
|
||||
#
|
||||
|
||||
target_elf = env.BuildFirmware(["m"] + CORELIBS)
|
||||
target_elf = env.BuildFirmware()
|
||||
|
||||
#
|
||||
# Target: Build the .hex
|
||||
|
@ -27,13 +27,11 @@ env.Append(
|
||||
]
|
||||
)
|
||||
|
||||
CORELIBS = env.ProcessGeneral()
|
||||
|
||||
#
|
||||
# Target: Build executable and linkable firmware
|
||||
#
|
||||
|
||||
target_elf = env.BuildFirmware(["c", "gcc", "m"] + CORELIBS)
|
||||
target_elf = env.BuildFirmware()
|
||||
|
||||
#
|
||||
# Target: Build the .bin file
|
||||
|
@ -7,7 +7,7 @@ from time import sleep
|
||||
from SCons.Script import Exit
|
||||
from serial import Serial
|
||||
|
||||
from platformio.util import get_serialports
|
||||
from platformio.util import get_logicaldisks, get_serialports
|
||||
|
||||
|
||||
def FlushSerialBuffer(env, port):
|
||||
@ -52,16 +52,28 @@ def WaitForNewSerialPort(_, before):
|
||||
|
||||
|
||||
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():
|
||||
if "VID:PID" in item['hwid']:
|
||||
print "Auto-detected UPLOAD_PORT: %s" % item['port']
|
||||
env.Replace(UPLOAD_PORT=item['port'])
|
||||
break
|
||||
if "VID:PID" not in item['hwid']:
|
||||
continue
|
||||
print "Auto-detected UPLOAD_PORT: %s" % item['port']
|
||||
env.Replace(UPLOAD_PORT=item['port'])
|
||||
break
|
||||
|
||||
if "UPLOAD_PORT" not in env:
|
||||
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(_):
|
||||
|
@ -10,7 +10,7 @@ from SCons.Script import SConscript, SConscriptChdir
|
||||
from SCons.Util import case_sensitive_suffixes
|
||||
|
||||
|
||||
def ProcessGeneral(env):
|
||||
def BuildFirmware(env):
|
||||
# fix ASM handling under non-casitive OS
|
||||
if not case_sensitive_suffixes('.s', '.S'):
|
||||
env.Replace(
|
||||
@ -24,20 +24,8 @@ def ProcessGeneral(env):
|
||||
if "BUILD_FLAGS" in env:
|
||||
env.MergeFlags(env['BUILD_FLAGS'])
|
||||
|
||||
corelibs = []
|
||||
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
|
||||
env.BuildFramework()
|
||||
|
||||
|
||||
def BuildFirmware(env, corelibs):
|
||||
firmenv = env.Clone()
|
||||
vdirs = firmenv.VariantDirRecursive(
|
||||
join("$BUILD_DIR", "src"), "$PROJECTSRC_DIR")
|
||||
@ -59,12 +47,15 @@ def BuildFirmware(env, corelibs):
|
||||
_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(
|
||||
join("$BUILD_DIR", "firmware"),
|
||||
[firmenv.GlobCXXFiles(vdir) for vdir in vdirs],
|
||||
LIBS=corelibs + deplibs,
|
||||
LIBS=env.get("LIBS") + deplibs,
|
||||
LIBPATH="$BUILD_DIR",
|
||||
PROGSUFFIX=".elf"
|
||||
)
|
||||
@ -95,6 +86,21 @@ def VariantDirRecursive(env, variant_dir, src_dir, duplicate=True,
|
||||
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):
|
||||
lib = env.Clone()
|
||||
vdirs = lib.VariantDirRecursive(
|
||||
@ -303,10 +309,10 @@ def exists(_):
|
||||
|
||||
|
||||
def generate(env):
|
||||
env.AddMethod(ProcessGeneral)
|
||||
env.AddMethod(BuildFirmware)
|
||||
env.AddMethod(GlobCXXFiles)
|
||||
env.AddMethod(VariantDirRecursive)
|
||||
env.AddMethod(BuildFramework)
|
||||
env.AddMethod(BuildLibrary)
|
||||
env.AddMethod(BuildDependentLibraries)
|
||||
env.AddMethod(ConvertInoToCpp)
|
||||
|
@ -16,7 +16,7 @@ def cli(query, json_output): # pylint: disable=R0912
|
||||
if json_output:
|
||||
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}")
|
||||
|
||||
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
|
||||
|
||||
|
||||
class Stm32Platform(BasePlatform):
|
||||
class Ststm32Platform(BasePlatform):
|
||||
|
||||
"""
|
||||
An embedded platform for STMicroelectronics ARM microcontrollers
|
||||
An embedded platform for ST STM32 ARM microcontrollers
|
||||
"""
|
||||
|
||||
PACKAGES = {
|
||||
@ -36,5 +36,9 @@ class Stm32Platform(BasePlatform):
|
||||
|
||||
"framework-opencm3": {
|
||||
"default": True
|
||||
},
|
||||
|
||||
"framework-mbed": {
|
||||
"default": True
|
||||
}
|
||||
}
|
@ -3,8 +3,10 @@
|
||||
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
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 threading import Thread
|
||||
|
||||
@ -173,7 +175,30 @@ def get_serialports():
|
||||
from serial.tools.list_ports_posix import comports
|
||||
else:
|
||||
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):
|
||||
|
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):
|
||||
result = clirunner.invoke(
|
||||
install_cli, [
|
||||
"stm32",
|
||||
"ststm32",
|
||||
"--skip-default-package",
|
||||
"--with-package=ldscripts"
|
||||
])
|
||||
|
Reference in New Issue
Block a user