Go to file
Christopher Haster 4459e6d5a0 events: Remove strict-aliasing warning
Several opaque buffers are used to to wrap c++ classes to pass
to the c layer. The reinterpret cast to c++ classes is fine as long
as the underlying buffer is not interpreted as different incompatible
types, or else the behaviour is undefined.

In the equeue_tick_init function, placement new is used to initialize
the buffers. However, this interprets the buffer as a simple array
of bytes, not the actual class type. Later the buffer is casted to
the class type. From the point of view of the compiler, these two
types are incompatible, and the compiler is free to reorder the
operations under the assumption that they can't affect each other.

Reinterpet casting the buffer to a class pointer before using
placement new insures that the buffer is only interpreted as a single
type. Or simple using the return value from placement new will handle
the aliasing appropriately.
2017-04-13 12:15:50 -05:00
.github Update pull_request_template.md 2016-09-08 12:05:47 +03:00
TESTS [Greentea] Fix test code mbed-os-tests-mbed_hal-flash 2017-03-20 15:06:06 +08:00
cmsis uVisor: Update to version 0.27.0 2017-02-21 13:24:23 +00:00
drivers Updated CAN to new Callback API 2017-04-05 21:07:55 -06:00
events events: Remove strict-aliasing warning 2017-04-13 12:15:50 -05:00
features Merge pull request #3987 from karsev/thread_link_config_update 2017-04-10 10:16:05 -05:00
hal Fix crash with events in the past 2017-03-21 12:02:33 -07:00
platform Merge pull request #4122 from neilt6/patch-1 2017-04-10 16:38:08 -05:00
rtos Merge pull request #3862 from c1728p9/thread_start_assert 2017-03-14 14:36:39 +00:00
targets Revert "STM32F4 Internal ADC channels rework" 2017-04-10 12:08:15 -05:00
tools Merge pull request #3993 from mbartling/supported-lists 2017-04-12 09:33:27 -05:00
.gitattributes Added .gitattributes for automatic LF line ending conversion 2013-08-08 13:19:34 +03:00
.gitignore Ignore .vscode folder 2017-01-11 20:48:05 +02:00
.pylintrc Add pylint configuration file 2016-08-16 11:48:45 -05:00
.travis.yml Enforce device_name is valid in targets.json 2017-02-08 14:54:26 -06: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
README.md Edit Readme and add Travis Badges 2017-04-06 11:18:59 -05:00
mbed.h Filesystem: Moved retarget related file interfaces into platform 2017-03-14 11:02:34 -05:00
requirements.txt Remove pycurl dependency 2016-10-20 16:24:47 -05:00

README.md

ARM mbed OS

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

mbed OS provides a platform that includes:

  • Security foundations.
  • Cloud management services.
  • Drivers for sensors, I/O devices and connectivity.

mbed OS is modular, configurable software that you can customize it to your device and to reduce memory requirements by excluding unused software.

Release Notes

The Release Notes detail the current release and previous versions.

Continuous Integration Status

We run continuous integration on all of our branches and pull requests to verify the stability of mbed OS. The following are the Travis CI indicators for mbed OS.

  • Master branch Master Branch CI Badge
  • Latest release Latest Tag CI Badge

Getting Started for Developers

You need mbed CLI to build mbed OS. For more details, read the mbed OS Handbook.

Getting Started for Contributors

We have a Contributing and Publishing Guide in the mbed OS Handbook.