Go to file
Hasnain Virk 9f36baab1b State Machine rework
There had been essentially two state machines running in our stack
which was too cumbersome and was not alligned in any symmetry.

In this work we make sure that:
 * There are no callbacks from the MAC layer to Stack controller layer.
 * Primitives are made local to the mac layer and are presented as
   read-only to the stack controller layer.
 * Interrupt handling and processing is moved to the stack controller layer.
 * Reception is divided into smaller units, seperating handling of Join Accept
   and normal data frames. MIC gets its own unit.
 * Extraction of data and MAC commands from the payload is also being done now in
   its own method.
 * To ensure integrity of the stack, and sanctity of the radio payload, we copy the
   radio payload buffer immediately in the rx interrupt and hoist a flag that prevents
   another interrupt from happening for a short while when we are processing the previous
   packet.
 * If an automatic uplink is on going, we do not send a TX_DONE event to application
   anymore as that is logically incorrect.
 * state_controller() is the central engine for the state machine. To save code space and
   memory, we are not handling each and every state in the state_controller(). Some of the states
   which have no processing to be done, are explicitely set.
 * For all the states who need special processing, seperate methods are added.
 * Class A always run to completion to IDLE and CLass C always runs to completion as RECEIVING.
2018-05-08 16:45:18 +03:00
.github Merge pull request #6728 from 0xc0170/fix-issue-template 2018-05-07 10:38:49 -05:00
TESTS Moved stats test to platform folder 2018-05-01 14:03:31 -05:00
cmsis Move defines into "cmsis/RTE_Components.h" to make CMSIS files less changed 2018-04-26 11:31:03 +08:00
drivers Eliminate complier warning and remove superfluous call to empty() 2018-04-16 07:23:47 -07:00
events Make event queue use RTOS tick count 2018-04-20 11:44:36 +03:00
features State Machine rework 2018-05-08 16:45:18 +03:00
hal Merge pull request #6630 from OpenNuvoton/nuvoton_add_nonsecure_flash 2018-04-19 17:24:27 +02:00
platform Merge pull request #6797 from OpenNuvoton/nuvoton_fix_noserial 2018-05-07 10:27:27 -05:00
rtos Merge pull request #6654 from kjbracey-arm/fault_cr 2018-05-07 10:41:40 -05:00
targets Merge pull request #6610 from pauluap/stm32_eth_remove_tx_rx_locking_interrupt_perforation 2018-05-07 10:51:03 -05:00
tools Merge pull request #6805 from theotherjimmy/reorder-test-configs 2018-05-07 19:15:14 -05:00
.astyleignore Add astyleignore file 2018-04-19 12:55:07 +01:00
.astylerc AStyle: options update 2018-04-19 12:55:08 +01:00
.coveragerc Exclude libraries and tests from coverage numbers 2017-09-25 11:51:31 -05:00
.gitattributes Added .gitattributes for automatic LF line ending conversion 2013-08-08 13:19:34 +03:00
.gitignore add few files to gitignore list 2018-02-09 10:57:31 +00:00
.pylintrc Add pylint configuration file 2016-08-16 11:48:45 -05:00
.travis.yml Merge pull request #6577 from SeppoTakalo/remove_features 2018-05-07 10:44:50 -05:00
CONTRIBUTING.md Update link in CONTRIBUTING.md 2017-06-09 16:38:38 -05:00
DOXYGEN_FRONTPAGE.md Very minimal text 2016-08-04 14:09:59 +01:00
Jenkinsfile Jenkinsfile: remove client app test temporarily 2017-06-01 12:15:09 +01:00
LICENSE Add Apache v2 LICENSE file 2013-08-06 12:05:04 +01:00
LICENSE-BSD-3-Clause Adding license text and BSD-Clause 3 2018-02-09 11:00:56 -06:00
README.md Simple typo fix in the README.md 2018-01-08 19:50:18 +00:00
doxyfile_options Fix Doxygen paths 2018-04-27 14:38:44 +03:00
doxygen_options.json Fix Doxygen paths 2018-04-27 14:38:44 +03:00
logo.png Readme updates for style and branding 2017-12-04 14:59:16 -06:00
mbed.h Merge pull request #6230 from bulislaw/system_reset 2018-03-01 10:31:07 -06:00
requirements.txt requirements: add future 2018-04-13 14:17:10 +01:00

README.md

Mbed OS

Build status release Build status master Tools coverage status PR progress

Arm Mbed OS is an open source embedded operating system designed specifically for the "things" in the Internet of Things. It includes all the features you need to develop a connected product based on an Arm Cortex-M microcontroller, including security, connectivity, an RTOS and drivers for sensors and I/O devices.

Mbed OS provides a platform that includes:

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

Release notes

The release notes detail the current release. You can also find information about previous versions.

Getting started for developers

We have a developer website for asking questions, engaging with others, finding information on boards and components, using an online IDE and compiler, reading the documentation and learning about what's new and what's coming next in Mbed OS.

Getting started for contributors

We also have a contributing and publishing guide that covers licensing, contributor agreements and style guidelines.