diff --git a/HISTORY.rst b/HISTORY.rst index f71320b4..e471fa26 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -19,6 +19,8 @@ PlatformIO 2.0 * New `Microchip PIC32 `__ development platform with support for 20+ different PIC32 based boards (`issue #438 `_) +* New RTOS and build Framework named `Simba `__ + (`issue #412 `_) * New boards for `ARM mbed `__ framework: ST Nucleo F410RB, ST Nucleo L073RZ and BBC micro:bit * Added support for Generic ATTiny boards: ATTiny24, ATTiny25, ATTiny45 and diff --git a/README.rst b/README.rst index ede79764..2350c701 100644 --- a/README.rst +++ b/README.rst @@ -173,10 +173,11 @@ Frameworks: * `Arduino `_ * `CMSIS `_ -* `libOpenCM3 `_ * `Energia `_ -* `SPL `_ +* `libOpenCM3 `_ * `mbed `_ +* `Simba `_ +* `SPL `_ * `WiringPi `_ For further details, please refer to `What is PlatformIO? `_ diff --git a/docs/frameworks/index.rst b/docs/frameworks/index.rst index 3a385476..56a5f532 100644 --- a/docs/frameworks/index.rst +++ b/docs/frameworks/index.rst @@ -22,5 +22,6 @@ Frameworks energia libopencm3 mbed + simba spl wiringpi diff --git a/docs/frameworks/simba.rst b/docs/frameworks/simba.rst new file mode 100644 index 00000000..d16ca1c6 --- /dev/null +++ b/docs/frameworks/simba.rst @@ -0,0 +1,166 @@ +.. Copyright 2014-2016 Ivan Kravets + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +.. _framework_simba: + +Framework ``simba`` +=================== +Simba is an RTOS and build framework. It aims to make embedded programming easy and portable. + +For more detailed information please visit `vendor site `_. + +.. contents:: + +Platforms +--------- +.. list-table:: + :header-rows: 1 + + * - Name + - Description + + * - :ref:`platform_atmelavr` + - Atmel AVR 8- and 32-bit MCUs deliver a unique combination of performance, power efficiency and design flexibility. Optimized to speed time to market-and easily adapt to new ones-they are based on the industrys most code-efficient architecture for C and assembly programming. + + * - :ref:`platform_atmelsam` + - Atmel | SMART offers Flash- based ARM products based on the ARM Cortex-M0+, Cortex-M3 and Cortex-M4 architectures, ranging from 8KB to 2MB of Flash including a rich peripheral and feature mix. + +Boards +------ + +.. note:: + * You can list pre-configured boards by :ref:`cmd_boards` command or + `PlatformIO Boards Explorer `_ + * For more detailed ``board`` information please scroll tables below by horizontal. + +Adafruit +~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``huzzah`` + - `Adafruit HUZZAH ESP8266 `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 80 Kb + +Arduino +~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``due`` + - `Arduino Due (Programming Port) `_ + - SAM3X8E + - 84 MHz + - 512 Kb + - 32 Kb + + * - ``megaatmega2560`` + - `Arduino Mega or Mega 2560 ATmega2560 (Mega 2560) `_ + - ATMEGA2560 + - 16 MHz + - 256 Kb + - 8 Kb + + * - ``nanoatmega328`` + - `Arduino Nano ATmega328 `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + + * - ``uno`` + - `Arduino Uno `_ + - ATMEGA328P + - 16 MHz + - 32 Kb + - 2 Kb + +Espressif +~~~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``esp01`` + - `Espressif Generic ESP8266 ESP-01 512k `_ + - ESP8266 + - 80 MHz + - 512 Kb + - 80 Kb + + * - ``esp01_1m`` + - `Espressif Generic ESP8266 ESP-01 1M `_ + - ESP8266 + - 80 MHz + - 1024 Kb + - 80 Kb + + * - ``esp12e`` + - `Espressif ESP8266 ESP-12E `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 80 Kb + +NodeMCU +~~~~~~~ + +.. list-table:: + :header-rows: 1 + + * - Type ``board`` + - Name + - Microcontroller + - Frequency + - Flash + - RAM + + * - ``nodemcu`` + - `NodeMCU 0.9 (ESP-12 Module) `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 80 Kb + + * - ``nodemcuv2`` + - `NodeMCU 1.0 (ESP-12E Module) `_ + - ESP8266 + - 80 MHz + - 4096 Kb + - 80 Kb + +.. include:: simba_extra.rst diff --git a/docs/frameworks/simba_extra.rst b/docs/frameworks/simba_extra.rst new file mode 100755 index 00000000..40b700ee --- /dev/null +++ b/docs/frameworks/simba_extra.rst @@ -0,0 +1,18 @@ +.. Copyright 2014-2016 Ivan Kravets + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +Examples +-------- + +All project examples are located in PlatformIO repository +`Examples for Simba framework `_. + +* `Blink `_ diff --git a/docs/platforms/atmelavr.rst b/docs/platforms/atmelavr.rst index fe16458e..cb466aed 100644 --- a/docs/platforms/atmelavr.rst +++ b/docs/platforms/atmelavr.rst @@ -34,6 +34,9 @@ Packages * - ``tool-avrdude`` - `AVRDUDE `_ + * - ``framework-simba`` + - `Simba Framework `_ + * - ``framework-arduinoavr`` - `Arduino Wiring-based Framework (AVR Core, 1.6) `_ @@ -61,6 +64,9 @@ Frameworks * - :ref:`framework_arduino` - Arduino Wiring-based Framework allows writing cross-platform software to control devices attached to a wide range of Arduino boards to create all kinds of creative coding, interactive objects, spaces or physical experiences. + * - :ref:`framework_simba` + - Simba is an RTOS and build framework. It aims to make embedded programming easy and portable. + Boards ------ diff --git a/docs/platforms/atmelsam.rst b/docs/platforms/atmelsam.rst index e511b00b..1113932c 100644 --- a/docs/platforms/atmelsam.rst +++ b/docs/platforms/atmelsam.rst @@ -34,6 +34,9 @@ Packages * - ``framework-arduinosam`` - `Arduino Wiring-based Framework (SAM Core, 1.6) `_ + * - ``framework-simba`` + - `Simba Framework `_ + * - ``tool-openocd`` - `OpenOCD `_ @@ -70,6 +73,9 @@ Frameworks * - :ref:`framework_mbed` - The mbed framework The mbed SDK has been designed to provide enough hardware abstraction to be intuitive and concise, yet powerful enough to build complex projects. It is built on the low-level ARM CMSIS APIs, allowing you to code down to the metal if needed. In addition to RTOS, USB and Networking libraries, a cookbook of hundreds of reusable peripheral and module libraries have been built on top of the SDK by the mbed Developer Community. + * - :ref:`framework_simba` + - Simba is an RTOS and build framework. It aims to make embedded programming easy and portable. + Boards ------ diff --git a/docs/platforms/creating_platform.rst b/docs/platforms/creating_platform.rst index 7ae2cb8d..1b606a40 100644 --- a/docs/platforms/creating_platform.rst +++ b/docs/platforms/creating_platform.rst @@ -92,6 +92,9 @@ Packages * - ``framework-mbed`` - `mbed Framework `_ + * - ``framework-simba`` + - `Simba Framework `_ + * - ``framework-spl`` - `Standard Peripheral Library for STM32 MCUs `_ diff --git a/examples b/examples index f15786e5..05c20be0 160000 --- a/examples +++ b/examples @@ -1 +1 @@ -Subproject commit f15786e51d2d5d5be3503c59adb4af13b7805f9e +Subproject commit 05c20be0f117d2d71031e69d4bbfe53873d2edc1 diff --git a/platformio/boards/arduino.json b/platformio/boards/arduino.json index 811faf56..de8cc4b5 100644 --- a/platformio/boards/arduino.json +++ b/platformio/boards/arduino.json @@ -352,7 +352,7 @@ "mcu": "atmega2560", "variant": "mega" }, - "frameworks": ["arduino"], + "frameworks": ["arduino", "simba"], "name": "Arduino Mega or Mega 2560 ATmega2560 (Mega 2560)", "platform": "atmelavr", "upload": { @@ -467,7 +467,7 @@ "mcu": "atmega328p", "variant": "eightanaloginputs" }, - "frameworks": ["arduino"], + "frameworks": ["arduino", "simba"], "name": "Arduino Nano ATmega328", "platform": "atmelavr", "upload": { @@ -634,7 +634,7 @@ "mcu": "atmega328p", "variant": "standard" }, - "frameworks": ["arduino"], + "frameworks": ["arduino", "simba"], "name": "Arduino Uno", "platform": "atmelavr", "upload": { @@ -694,7 +694,7 @@ ["0x2A03", "0x003D"] ] }, - "frameworks": ["arduino"], + "frameworks": ["arduino", "simba"], "name": "Arduino Due (Programming Port)", "platform": "atmelsam", "upload": { diff --git a/platformio/boards/espressif.json b/platformio/boards/espressif.json index a3d0b621..691b4dc6 100644 --- a/platformio/boards/espressif.json +++ b/platformio/boards/espressif.json @@ -10,7 +10,7 @@ "mcu": "esp8266", "variant": "generic" }, - "frameworks": ["arduino"], + "frameworks": ["arduino", "simba"], "name": "Espressif Generic ESP8266 ESP-01 512k", "platform": "espressif", "upload": { @@ -35,7 +35,7 @@ "mcu": "esp8266", "variant": "generic" }, - "frameworks": ["arduino"], + "frameworks": ["arduino", "simba"], "name": "Espressif Generic ESP8266 ESP-01 1M", "platform": "espressif", "upload": { @@ -85,7 +85,7 @@ "mcu": "esp8266", "variant": "nodemcu" }, - "frameworks": ["arduino"], + "frameworks": ["arduino", "simba"], "name": "Espressif ESP8266 ESP-12E", "platform": "espressif", "upload": { @@ -135,7 +135,7 @@ "mcu": "esp8266", "variant": "nodemcu" }, - "frameworks": ["arduino"], + "frameworks": ["arduino", "simba"], "name": "NodeMCU 0.9 (ESP-12 Module)", "platform": "espressif", "upload": { @@ -160,7 +160,7 @@ "mcu": "esp8266", "variant": "nodemcu" }, - "frameworks": ["arduino"], + "frameworks": ["arduino", "simba"], "name": "NodeMCU 1.0 (ESP-12E Module)", "platform": "espressif", "upload": { @@ -185,7 +185,7 @@ "mcu": "esp8266", "variant": "adafruit" }, - "frameworks": ["arduino"], + "frameworks": ["arduino", "simba"], "name": "Adafruit HUZZAH ESP8266", "platform": "espressif", "upload": { diff --git a/platformio/builder/scripts/frameworks/simba.py b/platformio/builder/scripts/frameworks/simba.py new file mode 100755 index 00000000..c4e4cf49 --- /dev/null +++ b/platformio/builder/scripts/frameworks/simba.py @@ -0,0 +1,34 @@ +# Copyright 2014-2016 Ivan Kravets +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Simba + +Simba is an RTOS and build framework. It aims to make embedded +programming easy and portable. + +http://simba-os.readthedocs.org + +""" + +from os.path import join + +from SCons.Script import DefaultEnvironment, SConscript + +env = DefaultEnvironment() + +env.Replace( + PLATFORMFW_DIR=join("$PIOPACKAGES_DIR", "framework-simba") +) + +SConscript([env.subst(join("$PLATFORMFW_DIR", "make", "platformio.sconscript"))]) diff --git a/platformio/platforms/atmelavr.py b/platformio/platforms/atmelavr.py index cb6e5a61..62fef55d 100644 --- a/platformio/platforms/atmelavr.py +++ b/platformio/platforms/atmelavr.py @@ -45,6 +45,10 @@ class AtmelavrPlatform(BasePlatform): "framework-arduinoavr": { "alias": "framework" + }, + + "framework-simba": { + "alias": "framework" } } diff --git a/platformio/platforms/atmelsam.py b/platformio/platforms/atmelsam.py index 0c604dc2..0e8d7da2 100644 --- a/platformio/platforms/atmelsam.py +++ b/platformio/platforms/atmelsam.py @@ -44,6 +44,10 @@ class AtmelsamPlatform(BasePlatform): "alias": "framework" }, + "framework-simba": { + "alias": "framework" + }, + "tool-bossac": { "alias": "uploader" }, diff --git a/platformio/platforms/base.py b/platformio/platforms/base.py index 0e1b5500..b5e311a9 100644 --- a/platformio/platforms/base.py +++ b/platformio/platforms/base.py @@ -87,6 +87,9 @@ PLATFORM_PACKAGES = { "framework-wiringpi": [ ("GPIO Interface library for the Raspberry Pi", "http://wiringpi.com") ], + "framework-simba": [ + ("Simba Framework", "https://github.com/eerimoq/simba") + ], "sdk-esp8266": [ ("ESP8266 SDK", "http://bbs.espressif.com") ], diff --git a/platformio/platforms/espressif.py b/platformio/platforms/espressif.py index 2381c724..97d95c10 100644 --- a/platformio/platforms/espressif.py +++ b/platformio/platforms/espressif.py @@ -50,6 +50,10 @@ class EspressifPlatform(BasePlatform): "framework-arduinoespressif": { "alias": "framework" + }, + + "framework-simba": { + "alias": "framework" } } diff --git a/setup.py b/setup.py index 2e38c3d0..83d9acb9 100644 --- a/setup.py +++ b/setup.py @@ -74,6 +74,6 @@ setup( "iot", "ide", "build", "compile", "library manager", "embedded", "ci", "continuous integration", "arduino", "mbed", "esp8266", "framework", "ide", "ide integration", "library.json", - "make", "cmake", "makefile", "mk" + "make", "cmake", "makefile", "mk", "pic32", "fpga" ] )