Go to file
Hasnain Virk b634ca49dd Architecture rework, bug fixing & missing features
MAC layer is now a class rather than being a blob.
In addition to that Mac commands are now being handled in
a seperate subsystem (a class of its own). In future we
will do the same with othe sublayers of MAC like MLME, MCPS etc.

The drive behind this exercise is to make MAC and supporting layers
into an object oriented system.

Major bug fixes include:

- last join time inclusion in band parameters
- disabling rx2 window if we missed the slot already
- MLME uplink schdule hook
- nbRep according to spec
- maintaining datarate after successful joining
- suppressing MLME requests if MAC is in TX_DELAYED state
- Uplink dwell time verification

Some missing features are implemented. Details are as follows.

Support for LinkCheckRequet:

An application API is added, add_link_check_request() to delegate a
request for Link Check Request MAC command.

* Application provides a callback function that needs to be called on reception of
  link check response.

* Mac command is piggybacked with data frames.

This API makes the sticky MAC command stick with the application payloads until/unless
the application un-sticks the said mac command using remove_link_check_request() API.

Handling fPending bit:

If in the Downlink, we get the fPending bit set in fctrl octet,
we attempt to send an empty message back to Network Server to
open additional Receive windows. This operation is independent
of the application. An RX_DONE event is queued bedore generating
the said empty message. Specification does not mention what can be the
type of that empty message. We have decided it to be of CONFIRMED
type as it gives us an added benefit of retries if the corresponding
RX slots are missed.

Radio event callbacks as Mbed callbacks:

radio_events_t structure has been carrying C-style callbacks which was
inherited from the legacy code. These callbacks has now been changed to
Mbed Callbacks that makes sure that we can be object oriented from now
on.
2018-02-11 00:31:47 +02:00
.github Copy edit pull_request_template.md 2017-10-27 13:41:02 -05:00
TESTS Merge pull request #5604 from betzw/betzw_tests_netsocket_wb 2018-02-08 15:25:45 +00:00
cmsis Core(A): Changed macro __DEPRECATED to CMSIS_DEPRECATED. (Issue #287) 2017-12-21 14:09:25 +09:00
drivers Merge pull request #5721 from scartmell-arm/bug-i2c-abort-deep-sleep 2018-01-11 10:30:53 -06:00
events equeue: some refactoring to meet coding rules 2017-10-30 13:56:11 +01:00
features Architecture rework, bug fixing & missing features 2018-02-11 00:31:47 +02:00
hal Provide fix for issue #5835 - Tickers update should be atomic 2018-01-22 13:29:31 +01:00
platform Merge pull request #6031 from OpenNuvoton/nuvoton_m2351_cthunk 2018-02-08 15:21:24 +00:00
rtos Merge pull request #5852 from maciejbocianski/scoped_lock 2018-02-06 12:51:21 -06:00
targets Merge pull request #5996 from ashok-rao/br-BL600 2018-02-08 15:23:07 +00:00
tools Merge pull request #6030 from deepikabhavnani/correct_arch 2018-02-07 20:07:11 -06: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 Ignore doxygen builds temporay object database 2017-06-05 17:32:45 -05:00
.pylintrc Add pylint configuration file 2016-08-16 11:48:45 -05:00
.travis.yml Python2+3: build_travis.py and Travis tests 2018-02-05 11:07:37 -06: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 Doxygen: Update excluded paths and predefined macros. 2017-12-14 16:44:01 +00:00
doxygen_options.json Doxygen: Update path and predefined macros. 2017-12-14 16:45:31 +00:00
logo.png Readme updates for style and branding 2017-12-04 14:59:16 -06:00
mbed.h platform: Add ScopedLock 2018-01-15 09:34:05 +01:00
requirements.txt Add JSON Schema library to requirements.txt 2018-02-01 17:18:40 +00: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.