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.  | 
			||
|---|---|---|
| .github | ||
| TESTS | ||
| cmsis | ||
| drivers | ||
| events | ||
| features | ||
| hal | ||
| platform | ||
| rtos | ||
| targets | ||
| tools | ||
| .gitattributes | ||
| .gitignore | ||
| .pylintrc | ||
| .travis.yml | ||
| CONTRIBUTING.md | ||
| DOXYGEN_FRONTPAGE.md | ||
| Jenkinsfile | ||
| LICENSE | ||
| README.md | ||
| mbed.h | ||
| requirements.txt | ||
		
			
				
				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.
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.