Go to file
Christopher Haster 161a2ec259 callback - Added size-limited function-object overloads to Callback
The callback class can now accept generalized function-objects:

    class Thing {
    public:
        int value;

        void operator()() {
            printf("hi! %d\n", value);
        }
    };

    Callback<void()> cb(Thing(2));

However, with the intention of avoiding implicit dynamic-memory
allocations, the Callback class is limited to a single word of storage.
Exceeding this size will eliminate the function-object type from the
overload set and fail to compile.

Effort was invested to make this situation very clear to the user. Here
is an example error message with noise removed:

    [ERROR] ./main.cpp: In function 'int main()':
    ./mbed-os/hal/api/Ticker.h:101:10: note:
        no known conversion for argument 1 from 'BigFunc' to 'mbed::Callback<void()>'

The real benefit of this change is the ability for users to hook into
the attributes of the Callback class. This mostly allows lifetime
management of the function-objects from third-party libraries (such as
the Event class from mbed-events).

Note: The convenient `callback` function may become ambiguous if
provided with a type that defines multiple incompatible `operator()`
member functions.
2016-09-28 12:23:29 -05:00
.github Update pull_request_template.md 2016-09-08 12:05:47 +03:00
TESTS [NUCLEO_F103RB] RTOS tests update 2016-09-22 14:48:11 +02:00
docs Fixing constant cleaning when compiling tests 2016-09-22 08:30:21 -04:00
features Merge pull request #2809 from geky/lwip-fix-default-dhcp 2016-09-26 02:39:20 -05:00
hal callback - Added size-limited function-object overloads to Callback 2016-09-28 12:23:29 -05:00
libraries Merge pull request #2753 from jeromecoutant/PR_NUCLEO_F767ZI_CAN 2016-09-24 16:41:10 -05:00
rtos Merge pull request #2805 from RobMeades/master 2016-09-25 22:20:29 -05:00
tools Merge pull request #2712 from bridadan/test-building-and-config 2016-09-26 09:54:33 +01:00
.gitattributes Added .gitattributes for automatic LF line ending conversion 2013-08-08 13:19:34 +03:00
.gitignore Remove "lib" and "lib64" from the mbed-OS .gitignore file: they do not seem to be required and lib is used as a directory name in a recent (u-blox) mbedOS target submission, so ignoring the files under that directory becomes a problem. 2016-09-14 18:52:26 +01:00
.pylintrc Add pylint configuration file 2016-08-16 11:48:45 -05:00
.travis.yml Add pylint testing to Travis 2016-08-16 13:29:43 -05:00
CONTRIBUTING.md Update CONTRIBUTING.md 2016-09-11 21:24:11 +08:00
DOXYGEN_FRONTPAGE.md Very minimal text 2016-08-04 14:09:59 +01:00
Jenkinsfile Update Jenkinsfile 2016-09-20 16:05:59 +03:00
LICENSE Add Apache v2 LICENSE file 2013-08-06 12:05:04 +01:00
MANIFEST.in Further changes to reflect workspace_tools to tools rename 2016-06-09 21:40:54 +01:00
README.md Fixed link to release page 2016-08-22 14:05:54 +02:00
mbed_lib.json Added config option for stdio baud rate 2016-07-11 18:42:44 -05:00
requirements.txt Merge pull request #2746 from mazimkhan/uvisor-gt-client-integration 2016-09-20 13:55:16 +03:00
setup.py Setup - fix progen def name - use dashes 2016-07-29 08:23:51 +02:00

README.md

ARM mbed OS

mbed OS is an open-source embedded operating system designed specifically for the "things" in the Internet of Things (IoT). It includes all the features you need to develop a connected product based on an ARM Cortex-M microcontroller.

mbed OS accelerates the process of creating a connected product by providing a platform operating system that includes robust security foundations, standards based communication capabilities, built-in cloud management services, and drivers for sensors, I/O devices and connectivity. mbed OS is built as a modular, configurable software stack so that you can readily customize it to the device you're developing for, and reduce memory requirements by excluding unnecessary software components.

Current release

Our current release series is mbed OS 5.1:

Getting Started for Developers

We have a getting started guide for developers using mbed OS in applications:

Getting Started for Contributors

We have a getting started guide for contributors working on mbed OS:

  • Have a look in the docs directory