diff --git a/builder/frameworks/mbed b/builder/frameworks/mbed index c90016a..7100fdd 160000 --- a/builder/frameworks/mbed +++ b/builder/frameworks/mbed @@ -1 +1 @@ -Subproject commit c90016aab635eb17a0ad780ed0a1e5bb6bfa5059 +Subproject commit 7100fdddd2ec89455c8939c22c75491f086e1873 diff --git a/examples/mbed-events/.gitignore b/examples/mbed-events/.gitignore new file mode 100644 index 0000000..5402c18 --- /dev/null +++ b/examples/mbed-events/.gitignore @@ -0,0 +1,3 @@ +.pioenvs +.clang_complete +.gcc-flags.json diff --git a/examples/mbed-events/.travis.yml b/examples/mbed-events/.travis.yml new file mode 100644 index 0000000..ac0a029 --- /dev/null +++ b/examples/mbed-events/.travis.yml @@ -0,0 +1,65 @@ +# Continuous Integration (CI) is the practice, in software +# engineering, of merging all developer working copies with a shared mainline +# several times a day < http://docs.platformio.org/en/stable/ci/index.html > +# +# Documentation: +# +# * Travis CI Embedded Builds with PlatformIO +# < https://docs.travis-ci.com/user/integration/platformio/ > +# +# * PlatformIO integration with Travis CI +# < http://docs.platformio.org/en/stable/ci/travis.html > +# +# * User Guide for `platformio ci` command +# < http://docs.platformio.org/en/stable/userguide/cmd_ci.html > +# +# +# Please choose one of the following templates (proposed below) and uncomment +# it (remove "# " before each line) or use own configuration according to the +# Travis CI documentation (see above). +# + + +# +# Template #1: General project. Test it using existing `platformio.ini`. +# + +# language: python +# python: +# - "2.7" +# +# sudo: false +# cache: +# directories: +# - "~/.platformio" +# +# install: +# - pip install -U platformio +# +# script: +# - platformio run + + +# +# Template #2: The project is intended to by used as a library with examples +# + +# language: python +# python: +# - "2.7" +# +# sudo: false +# cache: +# directories: +# - "~/.platformio" +# +# env: +# - PLATFORMIO_CI_SRC=path/to/test/file.c +# - PLATFORMIO_CI_SRC=examples/file.ino +# - PLATFORMIO_CI_SRC=path/to/test/directory +# +# install: +# - pip install -U platformio +# +# script: +# - platformio ci --lib="." --board=ID_1 --board=ID_2 --board=ID_N diff --git a/examples/mbed-events/README.rst b/examples/mbed-events/README.rst new file mode 100644 index 0000000..2302959 --- /dev/null +++ b/examples/mbed-events/README.rst @@ -0,0 +1,38 @@ +.. Copyright 2014-present PlatformIO + 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. + +How to build PlatformIO based project +===================================== + +1. `Install PlatformIO `_ +2. Download `development platform with examples `_ +3. Extract ZIP archive +4. Run these commands: + +.. code-block:: bash + + # Change directory to example + > cd platform-ststm32/examples/mbed-events + + # Build project + > platformio run + + # Upload firmware + > platformio run --target upload + + # Build specific environment + > platformio run -e nucleo_f401re + + # Upload firmware for the specific environment + > platformio run -e nucleo_f401re --target upload + + # Clean build files + > platformio run --target clean diff --git a/examples/mbed-events/lib/readme.txt b/examples/mbed-events/lib/readme.txt new file mode 100644 index 0000000..0d0e7be --- /dev/null +++ b/examples/mbed-events/lib/readme.txt @@ -0,0 +1,38 @@ + +This directory is intended for the project specific (private) libraries. +PlatformIO will compile them to static libraries and link to executable file. + +The source code of each library should be placed in separate directory, like +"lib/private_lib/[here are source files]". + +For example, see how can be organized `Foo` and `Bar` libraries: + +|--lib +| |--Bar +| | |--docs +| | |--examples +| | |--src +| | |- Bar.c +| | |- Bar.h +| |--Foo +| | |- Foo.c +| | |- Foo.h +| |- readme.txt --> THIS FILE +|- platformio.ini +|--src + |- main.c + +Then in `src/main.c` you should use: + +#include +#include + +// rest H/C/CPP code + +PlatformIO will find your libraries automatically, configure preprocessor's +include paths and build them. + +See additional options for PlatformIO Library Dependency Finder `lib_*`: + +http://docs.platformio.org/en/stable/projectconf.html#lib-install + diff --git a/examples/mbed-events/platformio.ini b/examples/mbed-events/platformio.ini new file mode 100644 index 0000000..334bf3e --- /dev/null +++ b/examples/mbed-events/platformio.ini @@ -0,0 +1,93 @@ +; PlatformIO Project Configuration File +; +; Build options: build flags, source filter, extra scripting +; Upload options: custom port, speed and extra flags +; Library options: dependencies, extra library storages +; +; Please visit documentation for the other options and examples +; http://docs.platformio.org/en/stable/projectconf.html + +[env:disco_f407vg] +platform = ststm32 +framework = mbed +board = disco_f407vg + +[env:disco_f303vc] +platform = ststm32 +framework = mbed +board = disco_f303vc + +[env:disco_f100rb] +platform = ststm32 +framework = mbed +board = disco_f100rb + +[env:nucleo_f030r8] +platform = ststm32 +framework = mbed +board = nucleo_f030r8 + +[env:nucleo_f103rb] +platform = ststm32 +framework = mbed +board = nucleo_f103rb + +[env:nucleo_f207zg] +platform = ststm32 +framework = mbed +board = nucleo_f207zg + +[env:nucleo_f302r8] +platform = ststm32 +framework = mbed +board = nucleo_f302r8 + +[env:nucleo_f401re] +platform = ststm32 +framework = mbed +board = nucleo_f401re + +[env:nucleo_f767zi] +platform = ststm32 +framework = mbed +board = nucleo_f767zi + +[env:nucleo_l053r8] +platform = ststm32 +framework = mbed +board = nucleo_l053r8 + +[env:nucleo_l152re] +platform = ststm32 +framework = mbed +board = nucleo_l152re + +[env:disco_l053c8] +platform = ststm32 +framework = mbed +board = disco_l053c8 + +; [env:seeedArchMax] +; platform = ststm32 +; framework = mbed +; board = seeedArchMax + +[env:mts_mdot_f411re] +platform = ststm32 +framework = mbed +board = mts_mdot_f411re + +[env:elmo_f411re] +platform = ststm32 +framework = mbed +board = elmo_f411re + +[env:mote_l152rc] +platform = ststm32 +framework = mbed +board = mote_l152rc + +[env:mts_dragonfly_f411re] +platform = ststm32 +framework = mbed +board = mts_dragonfly_f411re diff --git a/examples/mbed-events/src/main.cpp b/examples/mbed-events/src/main.cpp new file mode 100644 index 0000000..8762cd4 --- /dev/null +++ b/examples/mbed-events/src/main.cpp @@ -0,0 +1,15 @@ +#include "mbed_events.h" +#include + +int main() { + // creates a queue with the default size + EventQueue queue; + + // events are simple callbacks + queue.call(printf, "called immediately\n"); + queue.call_in(2000, printf, "called in 2 seconds\n"); + queue.call_every(1000, printf, "called every 1 seconds\n"); + + // events are executed by the dispatch method + queue.dispatch(); +}