Introducing mbed OS 5


I'm very pleased to share the newest update to mbed; the introduction of mbed OS 5 and our 5.1 release!

This release marks significant changes and enhancements that have accelerated features of our roadmap, opened up the applicability of mbed OS to many more Internet of Things (IoT) use cases, and unlocked compatibility with our mbed OS 2 (“Classic”) ecosystem.

Here are some of the headline features...

/media/uploads/simon/osrelease.png

RTOS

mbed OS now incorporates an RTOS in the core of the operating system. This much-requested feature provides native thread support to the OS and applications, simplifying development and integration of complex and robust application components like networking stacks. It also enables both blocking and non-blocking design patterns. The RTOS requires very limited system overhead.

We've worked to integrate the RTOS with our peripheral drivers, 6LoWPAN and networking stacks, BLE support and uVisor in such a way that most changes are hidden. The RTOS is even initialised ahead of entering the `main()` thread, making it transparent and easy to write composable components even if the application itself is single-threaded. We're also extending the eventing model by re-introducing it as a library such that it can be used within threads of the RTOS.

/media/uploads/simon/mbedcli.png

Tooling

To simplify the tooling, we are introducing a new Command Line Interface (mbed CLI) that works on Windows, Mac OS X and Linux to build the OS and associated developer applications and components.

We've also, added native support for building across the ARM Compiler 5, ARM GCC Embedded and IAR compiler toolchains. We now test all code against these three compilers.

Finally, we've upgraded the mbed Online Compiler to support mbed OS, giving instant access to working development environment in the cloud.

2 + 3 = 5

The introduction of the RTOS and changes in tooling have also allowed us to bring together the original mbed OS 2 (“Classic”) and mbed OS 3 (“Eventing OS”) codelines, re-basing and merging the two development lines so that we now have just one platform.

/media/uploads/dirons/codeline-merge.png

As a developer, this means you can take advantage of all the existing and new technology features that have been worked on in mbed OS up till now, the RTOS functionality and the vast component library that has been developed and contributed over the years and that continues to grow. This is also great for the future, as we can all invest in one codebase, website and ecosystem as we develop mbed OS further.

/media/uploads/simon/boards.png

Board support

A goal for this release was to achieve much wider platform support for mbed OS, and set a target of 15 boards by the time we were ready to share - but thanks to the incredible efforts of our partners, we've more than doubled that to greater than 35 supported boards in this release!

More target support will be picked up in bi-weekly releases as mbed Enabled™ criteria is met, as will refinement and fixes to existing platform support.

And there’s more

While the RTOS, codeline merge and expanded target/toolchain support are definitely headline features, we’ve also been busy on many other improvements.

It is worth a read of the full release note for even more details on what has made it in to this release:

Finally

Enabling all this has taken a lot of innovation, pragmatism, and ultimately plain hard work from all of the mbed team and our mbed partners, and we're really proud of what we've managed to achieve. We hope you like the results!

We'll be sharing more details, explanations and tutorials over the next weeks, and no doubt ironing out problems and issues that are identified. If you have any questions or spot issues, feel free to get in touch.

What next