@adbridge adbridge released this Sep 26, 2018 · 2550 commits to master since this release

Assets 2

We are pleased to announce the Mbed OS 5.10.0 release is now available.

Summary

In Mbed OS 5.10, we are improving the firmware update user experience. Mbed OS provides integrated firmware over-the-air (OTA) update capability enabled by Pelion Device Management. Mbed OS now makes it seamless and provides secure and flexible IoT firmware update and device management capabilities right from Arm Mbed CLI tool itself. Bluetooth Low Energy (BLE) is quickly becoming the IoT connectivity protocol of choice for a variety of use cases. In Mbed OS 5.10, we are launching Arm Mbed Cordio stack, the world’s first open-source, fully-qualified and production-ready BLE software stack that supports BLE 5 and gives developers even more flexibility in developing new IoT solutions with BLE connectivity.

Security is the most important challenge for the IoT developers. Mbed OS is supporting Arm V8M which has built in Trustzone functionality and laying the foundation for you to build highly secure devices. In Mbed OS 5.10, we are now supporting the Nuvoton M2351 based on the latest ARM V8M core. We are also integrating storage components, such as SPIF, SD and FlashIAP block devices, into the Mbed OS repository to simplify the use of storage components.

In addition, this release contains many minor fixes and enhancements and brings support for 145 target development boards. In the release note below, we summarize some of the key updates to Mbed OS that are part of the Mbed OS 5.10.0 release.

Core OS

Enhancing the user experience for firmware OTA updates

Firmware OTA updates are critical for IoT devices to ensure that the IoT device can be maintained throughout its lifecycle. Firmware OTA updates can significantly increase your device’s lifespan. If a device cannot update its firmware over the air, you must go to the field where the device is deployed and update its firmware, which is expensive and not scalable. Mbed OS supports firmware updates enabled by Pelion Device Management and provides flexible, secure and simple IoT device management for any device. It enables the provisioning and connection of IoT end nodes with cost-effective, secure and reliable software updates, ensuring a long product lifetime. In Mbed OS 5.10, we are simplifying the user experience of doing firmware updates. This enhancement means you can seamlessly enable firmware update capabilities in your IoT device. Using Mbed CLI, you can perform firmware updates to your device in fewer commands. You can also prepare firmware updates for one or multiple devices. For more information, please refer to our documentation about updating devices.

Support for ARMv8-M with Nuvoton M2351

Mbed OS supports building highly secure IoT embedded solutions based on the ARMv8-M platform. The most significant enhancement in the ARMv8-M architecture is the inclusion of the TrustZone security extension, a technology that adds a new dimension of security control and allows multiple security domains within a single processor system. This results in enhanced security and simplified development. TrustZone enables a “secure world” that keeps important data, such as private keys or pre-shared keys, isolated from the main operating system and apps. Mbed OS 5.10 supports Nuvoton M2351, based on the Cortex-M23 processor. Mbed OS also provides all necessary tools to support building and deploying both secure and nonsecure sides of application. Please see our tools documentation for more information.

Integration of storage components inside Mbed OS

Storage functionality is an essential requirement for building IoT devices that store data, firmware images and credentials on external MCU memory. Throughout the past few Mbed OS releases, we have developed functionality to support many different types of external memories, such as SPI flash and SD card. The storage drivers were developed as external components to allow continuous development and maturity of those drivers before bringing them inside Mbed OS. In Mbed OS 5.10, we are moving the SD, SPI Flash (SPIF) and FlashIAP drivers into Mbed OS. Integration of storage components into the Mbed OS repository makes it easy to use them and allows the simple add-on of default block device and default file system functionality. We added SD, SPIF and FlashIAP block devices under the new component label configured in target.json. Any board with an SD or SPI Flash component enabled has a default block device and file system. For more information, please visit the SDBlockDevice, SPIFBlockDevice and FlashIAPBlockDevice API documentation.

Quad SPI (QSPI) block device driver

With the cost of memory going down rapidly and performance on MCUs increasing every day, devices are storing more data than ever before. QSPI enables faster data transfer compared to traditional flash and used with components such as connectivity modules, displays and others. With QSPI, Mbed OS can communicate with external memories much faster than through SPI because the communication can be up to four lines between the host and a device. We are releasing the QSPI block device driver to enable NOR-based QSPI flash devices that support SFDP. For more information, please visit the QSPI documentation.

Connectivity

Arm Mbed Cordio Bluetooth Low Energy (BLE) stack

Production-ready open source BLE software stack: BLE is quickly becoming the Internet of Things (IoT) connectivity protocol of choice for a variety of use cases, including smart lighting, smart cities and asset tracking, where low cost, power consumption and a small footprint are fundamental requirements. According to the 2018 Bluetooth Market Update, there will be more than 5 billion Bluetooth device shipments by 2022, with 97% of them containing BLE technology. The advances in Bluetooth 5 technology, along with the introduction of Bluetooth Mesh, are driving new market opportunities across building automation, sensor networks and other IoT solutions.

In Mbed OS 5.10, we are adding Arm Mbed Cordio BLE stack to make it easier and more secure for organizations and developers to add BLE to their IoT devices to drive adoption levels to new heights. Arm Mbed Cordio BLE stack is the world’s first open-source, fully-qualified and production-ready BLE software stack, which gives developers even more flexibility in developing new IoT solutions with BLE connectivity. Using Arm Mbed Cordio BLE stack, you can innovate through Bluetooth 5 which supports 2x the data rate, 4x the range and 8x the broadcast capability compared to the previous version, Bluetooth 4.2.

Near field communication (NFC) card emulation mode support

NFC is a short-range radio technology that enables use cases such as contactless payments, access control and device pairing. We are enabling the card emulation mode in Mbed OS 5.10 through an NFC controller or NFC EEPROM. With Mbed OS 5.10, it is now possible to create NDEF messages that can contain device identification, pairing or sensing data. For more information, please visit the NFC API documentation.

Default network interfaces

Mbed OS 5.10 targets that provide network connectivity also provide a default network interface. This can be Ethernet, Wi-Fi, mesh or cellular. Using a default interface allows you to port applications to different targets and connectivity options. Applications no longer require libraries, such as Easy-connect, to be portable.

Refactored Socket API

This release refactors the Mbed OS Socket API by bringing it closer to the POSIX equivalent. The new design contains an abstract socket interface that applications can use directly. Casting Socket pointers back to TCPSocket or UDPSocket is no longer necessary. For most of the applications, these changes are not noticeable because the TCPSocket and UDPSocket classes still emulate previous behavior. The new design also renders the TCPServer API unnecessary, moving its functionality directly into TCPSocket itself. The legacy TCPServer class still exists and is fully functional.

Connectivity stack always builtin

Applications are no longer required to specify FEATURE_NANOSTACK, FEATURE_LWIP or FEATURE_COMMON_PAL to use any of the connectivity stacks that Mbed OS supplies. Those are always included in the build. This change does not increase any flash use because the linker can drop any unused functions.

Connectivity drivers

For easier integration and testing, this release includes some connectivity drivers for external modules, such as the ESP8266 Wi-Fi driver, AT86RF233 driver and MCR20A driver. Now applications using those drivers receive any applicable bug fixes every time they update Mbed OS.

Security

Update to Mbed TLS 2.13

Mbed TLS 2.13.0 introduces several new features improving our support for DTLS over low-bandwidth, high-latency networks with high packet loss.

Specifically:

  • Support for fragmentation of outgoing handshake messages. This allows the use of Mbed TLS across networks with datagram links with MTUs as low as 512 bytes, making it suitable for NB-IOT networks.

  • Grouping outgoing handshake messages in a single datagram, reducing both the network load and the likelihood of reordering effects.

  • Reordering handshake packets that have been received out of order, reducing the number of retransmissions necessary to complete a handshake and therefore increasing handshake efficiency and reducing network load.

For more information, please visit https://tls.mbed.org/tech-updates/releases/mbedtls-2.13.0-2.7.6-and-2.1.15-released

Targets and tools

Thanks to our Partners’ hard work, Mbed OS 5.10 added 10 new target platforms and now supports 145 target platforms. Here’s a sneak peek at the new Mbed Enabled targets added since Mbed OS 5.9 in alphabetical order:

We’ll continue to add targets in our biweekly patch releases as Partners work with us on support.

Compatibility Issues

Mbed-bootloader (https://github.com/ARMmbed/mbed-bootloader), is the repository used to create the bootloader binary which is used by Pelion Client. Currently this repository is not compatible with MbedOS 5.10 but with Mbed OS 5.9.4. It will however create a bootloader binary which is compatible with Pelion Device Management Client 2.0.0 compiled with MbedOS 5.10.

We will be adding MbedOS 5.10 compatibility in upcoming releases of Mbed bootloader

Known Issues

We publish Mbed OS as a collection of modules on GitHub. Issues are raised in the specific repositories and then tracked internally. The purpose of this document is to provide a single view of the outstanding key issues that have not been addressed for this release. As such, it is a filtered and reviewed list based on priority and potential effect. Each item summarizes the problem and includes any known workarounds, along with a link to the GitHub issue (if applicable). We welcome any comments or proposed solutions.

For more information about an issue, contact us on the forum.

TLS: IP addresses in the X.509 certificate subjectAltNames

  • Description: Parsing IP addresses in the X.509 certificate subjectAltNames is not supported yet. In certificate chains relying on IP addresses in subjectAltNames a BADCERT_CN_MISMATCH error is returned.
  • Workaround: merge branch https://github.com/ARMmbed/mbedtls/tree/iotssl-602-san-ip into your copy of Mbed TLS before building the application. It is still in EXPERIMENTAL stage, use it on your own responsibility!
  • Reported Issue: Issue reported by a customer in email.
  • Priority: MAJOR

TLS: Mismatch of root CA and issuer of CRL not caught

  • Description: The x509_crt_verifycrl() function ignores the CRL, when the CRL has an issuer different from the subject of root CA certificate.
  • Workaround: Make sure that the issuer of the CRL and the root CA certificate's subject are the same before passing them to x509_crt_verifycrl().
  • Reported Issue: Reported by a partner.
  • Priority: MAJOR

TLS: Mbed TLS causes stack overflow in Mbed OS targets

  • Description: The stack memory usage of some Mbed TLS features is higher than 4 KB, which may cause stack overflow errors when running in constrained embedded environments with mbed OS which are particularly limited in RAM.
  • Workaround: The amount of stack required is very dependent on the application, and what features of the library it chooses to use. Obviously more intensive, demanding tasks may not be possible on more limited, constrained devices, so we recommend designing for the limitations of the target device, or choosing a device suitable for your application.
  • Reported Issue: ARMmbed/mbed-os-example-tls#14
  • Priority: MAJOR

TLS: Self Test Failure with Some Hardware Accelerators

  • Description: Most HW acceleration engines (if not all) require the parameters to be from contiguous memory.
    All the self tests use test vectors that are defined in the .bss section, which means these are not contiguous. This causes the self test to possibly fail, when implementing HW accelerated engines.
  • Workaround: There are no known workarounds
  • Reported Issue: Reported by the development team.
  • Priority: MAJOR

Tools: Makefile export fails to build larger project in Windows

Tools: Mbed OS tools have issues with python 3.x

  • Description: A number of issues have been found when using Python 3.x with the Mbed OS tools
  • Workaround: Use Python > 2.7
  • Reported Issues: #8146 , #8202
  • Priority: Major

Tools: Error when running mbed test --compile/run list

  • Description: The error, "pkg_resources.DistributionNotFound: The 'mbed-ls==1.*,>=1.5.1' distribution was not found and is required by icetea, mbed-flasher" is observed when running the command "mbed test -m K64F -t ARM --icetea --compile-list -vv".
  • Workaround: None
  • Reported Issues: #8064
  • Priority: Major

Platform: Realtek RTL8195AM does not define flash algorithms for uvision

  • Description: No flashing support in uvision for Realtek RTL8195AM
  • Workaround: Use drag-n-drop programming
  • Reported Issue: #4651
  • Priority: Minor

Platform: Realtek RTL8195AM - CMSIS-RTOS error: ISR Queue overflow

  • Description: Realtek RTL8195AM does not maintain a long running connection to Mbed device connector. The error manifests as an ISR Queue overflow.
  • Workaround: None
  • Reported Issue: #5640
  • Priority: Major

Platform: ARM_CM3DS_MPS2 targets do not have Ethernet driver

  • Description: Ethernet driver interface was refactored for Mbed OS 5.9. ARM_CM3DS is not yet ported.
  • Workaround: None
  • Reported Issue: -
  • Priority: Major

Platform: Ublox ODIN W2 crashing with latest client

  • Description: Ublox ODIN W2 board is often crashing when using Mbed Cloud Client. Root cause unclear.
  • Workaround: None
  • Reported Issue: Internal issues: ONME-3665, ONME-3672, ONME-3692
  • Priority: Major

Core: Some boards are crashing when lots of data is sent and received through buffered serial.

  • Description: This is currently known to affect Ublox ODIN W2 and RTL8195AM.
  • Workaround: None
  • Reported Issue: #8081
  • Priority: Major

Platform: Realtek RTL8195AM not passing networking tests

  • Description: RTL8195AM is not passing Mbed OS socket or WiFi tests. Various problems exist.
  • Workaround: None
  • Reported Issue: #8124
  • Priority: Major

Tools: Mbed CLI dm init fails to load certificate

  • Description: When running the command mbed dm init -d "xxxxxx" --model-name "yyyyyy" ,
    the following error is observed: "[CRITICAL] 2018-09-05 14:19:28 - manifesttool.init - Error setting
    defaults: Error loading .update-certificates\default.der: Unable to load certificate".
  • Workaround: None
  • Reported Issue: Internal reference: IOTUC-593
  • Priority: Major

Tools: Mbed CLI dm init command - reports bad country code when certificate expiration changed

  • Description: Run the command, mbed dm init -d "xxxxxxx" --model-name "yyyyyy" --force, using values
    that are known to work and a country code of 'US'. The following error is observed:
    "[CRITICAL] 2018-09-05 14:28:42 - manifesttool.cert - Error creating certificate: Country name must be a 2 character country code"
    A fix will be added for this in mbed-os-5.10.1.
  • Workaround: Using the -q flag will stop the country, region code etc from being requested and instead
    take default values.
  • Reported Issue: Internal reference: IOTUC-597
  • Priority: Major

Contents

Fixes and Changes

DAPLink 0250 release: During the 5.10 development cycle, we created DAPLink 0250. This improves the drag-and-drop programming experience when using the Mbed OS bootloader. We recommend anyone using DAPLink upgrade to this version.

7974
Update Mbed TLS to version 2.13.0

7967
ESP8266: Fix compilation error when default interface is enabled

7952
Prevent sector-unaligned erase

7910
Cellular: Fix Greentea test for network attach

7907
Update mbed-coap to version 4.6.2

7899
Bluetooth 5 Phy support

7895
Lora: Remove duplicate LinkCheckReq MAC command

7894
Cellular: CellularDevice unittests fix initialization

7878
Corrected mbed-mesh-api thread/6lowpan tasklets interface disconnect/connect

7875
Update CMSIS to 5.4.0

7873
realtek: fix #7829 - remove dhcps files

7872
Add ThisThread namespace and deprecate static Thread methods

7871
Update linker files for NUCLEO_F207ZG and enable bootloader functionality

7870
Cellular: Support for GPRS dial-up

7869
BLE: Cordio going open source

7868
Disable MBEDTLS_HAVE_DATE_TIME as ARMCC does not support gmtime

7860
Cellular: Allow cellular modules to override network registration mode

7857
Cellular: Make AT_CellularStack socket array multi-thread safe

7854
Nanostack patch release for Mbed OS 5.10

7851
littlefs: Fixed issue with cleanup in mount function on error

7848
Message ID in CAN constructor needs to be unsigned

7846
Tools: Use Distcc when it's configured

7844
Implement device management subcommand

7840
WISE_1570 greentea tests

7839
Lora: Change visibility of LoRaMac internal methods as private

7828
Platform: Add C++ Span class.

7825
Silicon Labs QSPI HAL implementation

7822
Add initial NFC support to Mbed OS

7819
Unit testing framework

7818
Allow ThreadInterface::device_eui64_get() before connect()

7817
standardise QSPI pin names

7816
Lora: Refactor duty-cycle configuration and introduce config for JOIN request

7815
Re-add Shared Pointer Class into platform features

7814
Connectivity drivers

7812
Update greentea tests to use default interface

7806
LoRaWAN: Fixing Hard fault in CN470 PHY layer

7805
Skip Greentea tests for Mbed OS code coverage on Fast Models

7802
LoRaWAN: Custom FSB selection in US and Australian regions

7795
Cellular: Add getters for device and serial to EasyCellularConnection

7794
Update Mbed 5 boot sequence

7793
Template specialization didnt work after addition of default constructor

7792
Build tool fixes for Musca support

7783
Add QSPI

7781
Add thread safety to CRC class

7780
Rename nanostack configuration (.cfg) files

7778
Fix MeshInterface::get_default_instance()

7774
Add default block device support (SD, SPIF and FLASHIAP)

7773
Add some logic related to initialization to various block devices

7770
LoRa: Fix MAC initialization for connection with parameters

7767
Lora: Fix TX_ERROR event if corrupted msg is received for CONFIRMED request

7757
Revert "Move BlockDevice classes inside mbed namespace"

7751
Realtek RTL8195A wifi interface to inherit EMAC interface

7745
Icetea support

7739
Update mbed-coap to version 4.6.1

7737
Nanostack release for Mbed OS 5.10

7735
Optimized CRC implementation - (32-bit ANSI polynomial)

7728
PR template: Feature -> functionality change

7727
CircularBuffer: volatile specifier removal

7726
Update BLE error calls to use new error codes and mbed_error

7714
Add BOOTLOADER feature

7713
LittleFS: Update to version 1.6

7705
FlashIAP: Add a ROM end macro

7692
netsocket: astyle fix

7683
Renesas : Improve LWIP speed

7677
Cellular: Gemalto Cinterion support for ELS61 and BGS2

7673
Fixing import paths of memap.py when excuted as a script

7667
Cellular: Add CellularDevice::init_module API to be called at startup

7663
Move BlockDevice classes inside mbed namespace

7662
Add Error Decoding URL to error report

7646
Tools: Fix incrimental compile dep tracking

7644
Tools: Scan for "components"

7623
Tools: Omit include path parents when they're scan rules

7619
UBLOX cellular api's for UDP and TCP

7608
Tools: Correct win_to_unix path handling

7601
LoRaWAN: Reduced priority for automatic uplinks & higher data rate usage for connection establishment

7599
Fix double low power ticker interrupt

7592
Remove uVisor from mbed-os

7590
Tools: Differential Memap

7587
Allow legacy TCPServer::accept() to override inherited Socket::accept()

7579
Update ODIN drivers to v3.0.0 RC1

7569
Tools: Add Uvision6 exporter

7567
Tools: Generate update images with managed bl mode

7564
Cellular: Make ATHandler::cmd_start() virtual

7561
Design process and template for Mbed-OS

7559
Export: Support Make + ArmC6 + v8m

7558
Tools: Select compiler based on arch version

7524
Fixes for tickless and LPTICKER_DELAY_TICKS

7523
Add bootloader configuration parameters for MAX32625PICO

7508
Ticker free() - requirements, pseudo code, tests, implementation

7495
LoRaWAN: Reporting scheduling failures

7459
LoRaWAN: FRMPayload size validity

7430
Lora: Add support for runtime PHY selection

7426
NFC APIs Design Specification

7423
Fix issue #6872 - Mutex lock has possibility to fail at runtime (returning status flag)

7417
Cordio Documentation: Explain how to tests and what tools are available.

7414
Added json options for nanostack heap statictics

7402
Replace mbed_mem_tracing_enabled macro with config option

7399
Bug fix for receive windows

7389
Update nsdynmemlib in frameworks/nanostack-libservice

7364
Fix storage rtos types - remove including internal header file

7336
Fix connected UDPSocket filtering

7335
LoRaWAN: Refactoring LoRaRadio::receive(uint32_t) API

7294
Add CPU stats for greentea tests

7287
Remove FEATURE_LWIP

7277
Tools: Persist config errors until validation occurs

7243
Disable XTS cipher mode by default when importing Mbed TLS

7221
Cordio: Add tests that validates a cordio port.

7217
Cellular: Add AT+CCID and AT+CGSN

7212
FlashIAP & NVStore tests: Skip test if overwriting code in flash

7192
Create abstract Socket interface

7183
Tools: Extract resources object and implement incremental scan

7174
tools: crash_log_parser: make ELF and MAP parameters optional

7163
Cordio driver hook

7148
Tool, build_release: Return nonzero when builds fail

7145
NRF52: add a separate .nvictable section and allow .noinit to be used

7133
Override ROM/RAM start/size for TrustZone targets

7099
Add reference counter for platform context

7090
Add non-blocking write function for USBCDC

7061
Tools: Include configuration in ASM

6999
Extend feature which displays errors/warnings as Link

6929
STM32 : script to generate PeripheralPins.c for new target addition

6582
Implement zoomable html-flamegraph memap output

8022
Update Mbed TLS version to 2.13.1

8020
Update mbed-coap to version 4.6.3

8016
[OOB 5.10] Fix typo

8015
QSPI driver: API parameters fix

8012
IOTCORE-389 - bring back legacy alignment for Arm C6

7995
Reverting PinNames.h after PR #7774 changes

7991
fix example code in QSPI.h

7990
DISCO_L475VG_IOT01A remove old QSPI pins

7988
Unittesting: Update mutex stub

7985
Unittesting: Update Mbed CLI subcommand in Readme

7971
Fix memory reservation for Softdevice in NRF52_DK

7964
NFC: fix reading from NFC EEPROM

7950
Fix memory allocation on STM32L4 devices

7924
Add special handling for "/default" filesystem

7893
Lora: Improve description of callback methods

7824
Use MbedCRC for LittleFS

7803
Add Socket test plan

7720
python scripts : table print with github policy

8140
requiremnts: Bump IceTea

8137
Icetea hw restriction

8123
Unit tests: fix coverage exclude paths on Windows

8100
Allow storage doxy to build

8092
Fix quotes around gcovr install command for Windows

8086
Fix SocketAddress unittests

8079
BUGFIX: Remove account management API calls from DM

8075
Syncronize mbed-ls minimum version with icetea requirements

8066
Move unittest paths to hyphens

8063
mbed dm: Accept api key and host on the command line

8031
Fix TCPServer::accept()

8017
IAR: Fix for #7662, only massage the error decode URL for the IAR .xcl

7945
Move SYNCHRONOUS_DNS_CACHE test to extended set

7909
Adjust STMF411xE IAR linker file to mbed-os memory needs.

Testing and improvements

Icetea test framework: Icetea is an automated testing framework for Mbed development. It automates the process of flashing Mbed boards, running tests and accumulating test results into reports. Developers use it for local development as well as for automation in a Continuous Integration Environment. Icetea allows you to execute commands remotely via the command line interface in a device under test. More information is available at https://github.com/ARMmbed/icetea

Support for unit tests: Unit tests enable testing of code in small sections on a host machine and don’t require embedded hardware. Unit testing takes place in a build environment where you test each C or C++ class or module in isolation. This means you build test suites into separate test binaries and stub all access outside to remove dependencies on any specific embedded hardware or software combination. This results in much faster testing using native compilers on the build machine. For more information, please visit our unit testing documentation.

Support for Fast Models: Arm Fast Models are software models of Arm cores, subsystems, peripherals and so on. Mbed OS has enabled working with Cortex-M family Fast Models. You can run Mbed OS on the software model instead of the hardware. This give users the flexibility of running and testing Mbed OS and its applications in a hardware-free environment. For the details of running Mbed OS on Fast Models, please visit the Fast Models documentation.

Continuous integration framework:

The continuous integration framework ensures that every new feature and change in Mbed OS is tested, so that:

  • For every new feature, we create tests that we then deliver to our Partners. For every board to be Mbed Enabled, we need our Partners to successfully conduct these tests.

  • Partners must test the changes on their boards before submitting pull requests (PRs) on GitHub.

  • Once the PR is submitted, the Mbed OS gatekeepers manually review the code to ensure it meets the coding guidelines and code standards.

  • Once approved by gatekeepers, the code goes through the automated test infrastructure, which tests the submitted code across multiple platforms using three toolchains: IAR, ARM and GCC.

  • During the testing phase, we select the combination of boards and devices that support a variety of peripherals, MCU cores and features for maximum coverage.

  • To ensure the Mbed OS code is compatible with all the IDEs, we test that the code exports properly to all the compilers.

  • We merge the PRs only if all the above procedures are successful.

Below are the summary results for testing conducted for Mbed OS 5.10.0:

  • Total test time is 40,293 hours on actual development boards.

  • We have added 292 new test cases since the Mbed OS 5.9.0 release to test new and existing features on Mbed OS. The number of total test cases is 1,316.

  • The total number of binaries built since the Mbed OS 5.9.0 release is 46,270,224.

Using this release

Arm Mbed CLI

When you create a new program, Mbed CLI automatically imports the latest Mbed OS release. Each release includes all the components: code, build tools and IDE exporters. If you want to update your Mbed OS version or existing program to Mbed OS 5.10.0, run the CLI command mbed update mbed-os-5.10.0.

Arm Mbed Online Compiler

When you create a new program, the Mbed Online Compiler automatically uses the latest Mbed OS release. If you want to update your Mbed OS version, right click on mbed-os library, and press update.

GitHub

You can also fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.10.0".

If you need any help with this release please visit our support page, which provides reference links and details of our support channels.