Skip to content

mbed-os-5.15.0

Compare
Choose a tag to compare
@adbridge adbridge released this 19 Dec 10:48
· 6971 commits to master since this release
64853b3

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

Summary

This is the last planned minor release from the Mbed OS 5 series and, as such, doesn't contain many new features. We focused on fixing issues and working on quality and size improvements.
We put a lot of effort into networking, working on various improvements to Wi-SUN, Cellular and DNS, as well as BG96 and ESP2866 modules drivers. We also introduced support for offloading TLSSockets to an external hardware module.
We updated our tools to support Python 3, so they are ready for the imminent end of life of Python 2.7.
We introduced the static pin map extension to the HAL layer, which allows developers to save memory by selecting the used pins at compile time.
We also updated our code base and infrastructure to use the newest versions for compilers: GCC9 and Arm Compiler 6.13.

Migration guide

This section lists specific changes that are part of this release and may need special attention.

Add support for Wi-SUN RF channel configuration

11958

Summary of changes

Added support for Wi-SUN RF channel configuration options to Wi-SUN tasklet.

Impact of changes

Wi-SUN RF channel .json options have effect on channel configuration, and they need to be valid.

Migration actions required

Default configuration used with Wi-SUN should be that none of the settings affected by this pull request are set, and Wi-SUN will use the defaults for them.

If application .json configuration file has any of the these settings defined:

wisun-uc-channel-function
wisun-bc-channel-function
wisun-uc-fixed-channel
wisun-bc-fixed-channel
wisun-bc-interval
wisun-bc-dwell-interval
wisun-uc-dwell-interval

they need to be removed or checked for validity.

Remove string-based API usage within mbed-os

11941

See #11914 for deprecation information. This PR provides SocketAddress-based APIs if they were missing after previous changes but does not remove the old APIs.

Summary of changes

New SocketAddress based API added to ESP8266 module, anticipating future string-based API removal.

Impact of changes

None.

Migration actions required

None.

Updates to tools for Python 3 compatibility

11921

Python 3 is now supported by the tools.

Summary of changes

No functional changes, code should be equivalent.

Impact of changes

Code should be Python 3 compatible.

Migration actions required

None.

Deprecate string-based APIs in IPCore

11914

This is NOT a breaking change, but it is worth notifying all API users that the string-based APIs are going to be removed soon.

Summary of changes

The following API functions are being deprecated and will be removed in Mbed OS 6:

TCPServer (whole class is deprecated already)
TCPSocket::connect(const char *host, uint16_t port);
TLSSocket::connect(const char *host, uint16_t port);
DTLSSocket::connect(const char *host, uint16_t port)
InternetDatagramSocket::sendto(const char *host, uint16_t port, data, size);
InternetSocket::bind(const char *address, uint16_t port);
L3IP:add_ipv4_multicast_group(const char *address);
L3IP:add_ipv6_multicast_group(const char *address)
L3IP:remove_ipv4_multicast_group(const char *address);
L3IP:remove_ipv6_multicast_group(const char *address)
NetworkInterface::get_ip_address()
NetworkInterface::get_netmask()
NetworkInterface::get_gateway()
NetworkInterface::set_network(const char *ip_address, const char *netmask, const char *gateway)
NetworkStack::get_ip_address()
NetworkStack::get_ip_address_if()
Impact of changes

Code gives deprecated warnings whenever old API is used.

Migration actions required

Switch to the new SocketAddress based API.

Bring static pin map extension to master

11892

Summary of changes
  1. Provide types that will hold static pin maps for peripherals (PWM, AnalogIn, AnalogOut, SPI, I2C, UART, QSPI, CAN).
  2. Provide xxx_init_direct(xxx_t *obj, static_pinmap_t *) functions to HAL API (these functions will not use pin map tables).
  3. Provide additional constructors in drivers layer, which will use the xxx_init_direct(xxx_t *obj, static_pinmap_t*) HAL functions.
  4. Provide default weak implementations of xxx_init_direct(static_pinmap_t *) functions. These functions will call standard xxx_init(xxx_t *obj, PinName, ...) function (backward compatibility for targets that don't support static pin map mechanism).
  5. Provide constexpr utility functions to look up for pin mapping in compile time (requires C++14).
  6. Initialize console using static pin map mechanism, so hal\mbed_pinmap_common library is not needed and can be removed.
  7. Modify FPGA tests to verify xxx_init_direct(xxx_t *obj, static_pinmap_t*) APIs.

Make SMS configurable in Cellular stack

11873

Summary of changes

Cellular stack now has configurable SMS support. This is added to Cellular mbed_lib.json. It is enabled by default for backward compatibility.

Impact of changes

If one does not need SMS, disable it in mbed_app.json to decrease the application footprint.

Migration actions required

None.

mbed_retarget: Add a minimal console implementation to provide basic functionalities

11796

Summary of changes

Add a minimal console implementation in mbed_retarget to provide basic console functionalities.
A new configuration parameter platform.stdio-minimal-console-only has been added to select it.

Impact of changes

Smaller memory footprint for applications that only require basic console functionalities.

Migration actions required

None.

Deprecates NVStore

11785

Summary of changes

NVStore is marked as deprecated.

Impact of changes

NVStore won't be available from the next major release onward.

Migration actions required

Users must switch to use KVStore. For documentation, please see Docs APIs Storage KVStore .

Update to Mbed TLS 2.20.0d0 and Mbed Crypto 2.1.0d0

11687

What is breaking?
The PSA Crypto secure element (SE) driver API - an additional parameter (a persistent data pointer) is now also passed to the slot validation for the driver to use.

Why is this breaking?
Mbed OS tracks the unstable PSA Crypto API. This particular break is to enable drivers to modify persistent data during slot validation.

Migration
Users implementing SE drivers should add an additional void *persistent_data parameter to the slot validation callback, regardless of whether the persistent_data will be used or not.

Old New
psa_drv_se_validate_slot_number_t did not have a modifiable persistent_data parameter psa_drv_se_validate_slot_number_t now has a modifiable persistent_data parameter

New declaration of psa_drv_se_validate_slot_number_t:

typedef psa_status_t (*psa_drv_se_validate_slot_number_t)(
psa_drv_se_context_t *drv_context,
void *persistent_data,
const psa_key_attributes_t *attributes,
psa_key_creation_method_t method,
psa_key_slot_number_t key_slot);

Old declaration of psa_drv_se_validate_slot_number_t:

typedef psa_status_t (*psa_drv_se_validate_slot_number_t)(
psa_drv_se_context_t *drv_context,
const psa_key_attributes_t *attributes,
psa_key_creation_method_t method,
psa_key_slot_number_t key_slot);

Check return of BlockDevice::init() in TDBStore.

11595

TDBSTore::init() is now allowed to return error codes from underlying BlockeDevice.
Previously, the API was limited to return only MBED_ERROR_READ_FAILED or MBED_ERROR_WRITE_FAILED, which might have hidden the actual error code from the device.
Now, the application will get the original return value passed from BlockDevice.

modified Wi-SUN tasklet to return success when calling connect twice

11556

Summary of changes

As stated in the Mesh API documentation, we should return the status NSAPI_ERROR_IS_CONNECTED if connect is called twice. This PR (11556) fixes it.

Impact of changes

If connect method is called twice, a different status code is returned.

Migration actions required

Implementations that rely on NSAPI_ERROR_DEVICE_ERROR status code when calling connect twice as their recovery method need to change the handling to the correct status NSAPI_ERROR_IS_CONNECTED.

Enable DER coded certificate support to Wi-SUN mesh API

11539

Added support for DER formatted certificates and keys to Wi-SUN certificate API.

DNS manual cleanup mechanism added

11535

Add nsapi_dns_reset() function to be able to clear a DNS cache when it is not needed anymore.

ESP8266 unlocks deep sleep when disconnected

11514

This release contains changes for ESP8266.
UART input is enabled and deep sleep is locked:

  • If module is connected to the network.
  • For operations which communicate with the device but do not require network connectivity

UART input is disabled and deep sleep is unlocked:

  • If module is disconnected

Cellular: Add API to clear CellularDevice

11414

CellularStateMachine calls CellularDevice::clear() to clean-up the modem on initial connect().
The previous functionality can be restored by defining the flag cellular.clear-on-connect: false.

ESP8266 nonblocking connect/disconnect

11409

This release contains changes for ESP8266 nonblocking operations, which make them compliant with documentation:

  • connect() and disconnect() will now return immediately in non-blocking mode and pass all blocking operations to asynchronous thread.
  • In the case of consecutive calls of connect() or disconnect(), the returned value from the second one may be NSAPI_ERROR_BUSY.
  • If ESP8266Interface::set_credentials(...) is called during connecting to the network, it is not executed and NSAPI_ERROR_BUSY is returned.

The change will not affect any users, unless they took advantage of the incorrect nonblocking behavior.

Offloaded TLSSocket and BG96 support for it

11357

Some external modems have an internal TLSSocket implementation, which can be used instead of Mbed TLS based TLSSocket. Using the offloaded TLSSocket can result in significantly reduce ROM usage.

Offloaded TLSSocket can be enabled with "nsapi.offload-tlssocket". The used network stack (for example, the cellular modem's CellularStack class) must support the setsockopt's defined in nsapi_types.h.

Compared to the original Mbed TLS based TLSSocket, offloaded TLSSocket brings in one significant API limitation. Offloaded TLSSocket requires setting of certificates and keys after open() and before connect() calls, where Mbed TLS based TLSSocket allows setting these before open() call.

This PR also includes a reference implementation for BG96 cellular modem.

Add watchdog lower limit timeout test

11203

watchdog_features_t extended by two uint32_t members: clock_typical_frequency and clock_max_frequency. These values can be used to determine the accuracy of an uncalibrated watchdog clock.

Introduce an Mbed config to enable XIP

11006

Introduce XIP-enabled config to allow text/RO data to be loaded to QSPI flash where XIP (execute-in-place) is supported. This allows programs with larger text/RO data sections to run on a system with smaller on-chip flash.

This feature is disabled by default on all targets.

XIP can be enabled by adding target.xip-enable: true in mbed_app.json, then locating the text/RO data sections to QSPI flash region in the linker script. In the boot sequence, QSPI flash needs to be configured to XIP mode.

LwIP: Add ICMPv4 Socket support

10978

The netsocket feature is extended with ICMP socket implementation. This change is only for ICMPv4 and ICMPv6 is not currently supported

Free serial resources if not needed anymore

10924

The handling of enable/disable input/output of UARTSerial is moved into SerialBase. The underlying serial peripheral is freed if both input and output are disabled to reduce current consumption. If either input or output is enabled again, the serial peripheral is reinitialized.

Tools: check for GCC 9, rather than 6

10618

GCC 9 is now the officially-supported compiler version for the GCC_ARM toolchain.

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 section 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 the 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 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: Self Test Failure with Some Hardware Accelerators

  • Description: Most hardware 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 hardware accelerated engines.
  • Workaround: None.
  • Reported Issue: Reported by the development team.
  • Priority: Major.

TLS: Hardware-accelerated hash creates CBC padding oracle in TLS

  • Description: The current countermeasures against CBC padding oracle attacks in Mbed TLS call a low-level, internal API. The implementation of this API might not be possible with the hardware accelerator API, and even if it is, the timing might still have detectable differences. The lower-level API is called out of sequence, and accelerators that are not aware of this might crash.
  • Workaround: Keep MBEDTLS_SSL_ENCRYPT_THEN_MAC enabled in mbedtls/config.h, and enable the Encrypt-then-MAC extension (RFC7366) on the peer's side.
  • Reported Issue: Reported by the development team.
  • Priority: Major.

Crypto: Mbed OS ATECC608A example fails to build with IAR

  • Description: The current ATECC608A secure element example fails to build with the IAR toolchain. The Microchip-provided cryptoauthlib library does not build with IAR.
  • Workaround: Use a different toolchain, such as GCC_ARM.
  • Reported Issue: MicrochipTech/cryptoauthlib#116.
  • Priority: Minor.

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.

Cordio Link Layer: GAP Advertising parameters need to be set before advertising data is set

  • Description: This issue only affects users of the Cordio Link Layer. If this ordering is not respected, GAP advertising data will not be set correctly.
  • Workaround: If using the BLE API, apply changes from #10772. If using the Cordio Host Stack API, make sure Advertising parameters are set before advertising data is set when using the Cordio Link Layer.
  • Reported Issue: IOTPAN-486.
  • Priority: Major.

NRF52480: Bare metal build fails due to Cryptocell dependency

  • Description: The bare metal build on NRF52480 fails because the Cryptocell depends on Mbed TLS. Mbed TLS is not present in bare metal builds.
  • Workaround: Remove the CRYPTOCELL310 feature using your application's target config.
  • Reported Issue: #11428.
  • Priority: Major.

ArmC5 builds may be broken

Wi-SUN Hardfaults with IAR compiled image with Mbed OS 5.15.0

  • Description: Mesh Wi-SUN FAN may HardFault in rare occasions with IAR8 compiled binaries during initial network connection.
  • Workaround: Use other compilers.
  • Reported Issue: IOTTHD-3898.
  • Priority: Major.

Test report

OOB (out-of-box) testing

  • Manual OOB testing has been carried out against 5.15.0 RC1/RC2/RC3.
  • OOB testing is focused on the out-of-box experience with official Mbed OS examples.

Release automated CI testing

In addition to the regular pull request tests and nightly tests, we also ran branch tests for mbed-os 5.15.0-RC1/RC2/RC3.

CI pipeline tests

  • Compilation tests: ARMC6 ALL PASSED
  • Compilation tests: GCC_ARM ALL PASSED
  • Compilation tests: IAR ALL PASSED
  • Unittest ALL PASSED
  • Greentea test SOME FAILS
  • Example test ALL PASSED
  • Exporter test ALL PASSED
  • Cloud Client integration test ALL PASSED
  • Memory usage test ALL PASSED
  • Mbed 2 build test ALL PASSED

The Greentea test failures are:

  • UBLOX_EVK_ODIN_W2 failed on network-wifi tests ---- Tracked by defect IOTPART-8659, waiting for Partner’s input for fixing.
  • UBLOX_C030_U201 failed on netsocket tests ---- Tracked by defect ONME-4400, under investigation by Mbed teams.
  • UBLOX_C030_U201 failed on LP_ticker tests ---- Tracked by defect IOTHAL-528, not a regression, under investigation by Mbed teams.

Test numbers:

  • Greentea test number 1421 (-33 ).
  • Unittest number 624 (+84 ).

Targets coverage:

In Mbed OS 5.15, compilation test targets scope has not changed. It remains the same for all Mbed OS enabled targets.

As of the Mbed OS 5.15.0 release, we run Greentea tests on 11 targets:

  • NRF52840_DK.
  • DISCO_L457VG_IOT01A.
  • K64F.
  • K66F.
  • LPC55S69.
  • NUCLEO_F303RE.
  • NUCLEO_F411RE.
  • NUCLEO_F429ZI.
  • NUCLEO_F767ZI.
  • UBLOX_C030_U201.
  • UBLOX_EVK_ODIN_W2.

Compared to the Mbed OS 5.14.0 release, we have added testing for:

  • NRF52840_DK.

And removed testing for :

  • NUCLEO_F207ZG.
  • NUCLEO_F746ZG.
  • NUCLEO_F746NG.

Coverity

In this release, the number of Coverity issues has reduced from 77 to 49 ( -28).
Critical Coverity issues have reduced from 15 to 13 ( -2).

Code coverage

Test code coverage has been tracked, and the information is published on COVERALLS (https://coveralls.io/github/ARMmbed/mbed-os).

  • Since the 5.14 release, we have had a code coverage base alignment leading to the inclusion of all the components of Mbed OS and a fixed code base.
  • In the coverage base alignment, our code coverage dropped from 60% to 18%.
  • Mbed TLS Mbed Crypto coverage data has been merged, and overall coverage has increased to 30%.

Memory monitoring

Mbed OS ROM size has increased by approximately 2.8K, mostly because of updating GCC6 to GCC9. (The std library increased by approximately 1.5K).

Other contributors to the ROM size increase include:

  • nanostack-libservice +273.
  • LWIPInterface.o +256.
  • Netsocket +666.
  • Storage - TDBStore +491.

Contents

Ports for upcoming targets

11886
Add target for CY8CPROTO-062S3-4343W

11846
Add support for Makerdiary nRF52840-MDK

Fixes and changes

11979
Bare metal Greentea tests compilation fixes

11978
LPC55S69_NS: Fix bare metal compilation error

11971
TDBStore: Unlock the master mutex even after garbage_collect()

11967
Fixed crashing nsapi_dns unittest

11966
Fix targets.json syntax errors

11963
STM32 USB: Add __HAL_RCC_PWR_CLK_ENABLE

11959
Minimal Console: Fix compilation error

11958
Add support for Wi-SUN RF channel configuration

11956
tests-mbed_hal-sleep_manager: Fix regression found on since PR #11721

11950
DISCO_H747I: Add support of MBED_TICKLESS

11949
Fix for ArmC5 compilation errors for some targets

11947
Minimal Console: Fix syntax errors

11944
Cypress: Minor fix for mbed astyle

11943
Split integration tests in fs/net

11941
Remove string-based API usage within mbed-os

11938
STM32: Update and align serial_clear implementations

11937
Cellular: Replace CellularSocket.rx_avail with pending_bytes

11936
DNS tests: Cancel asynchronous dns query if it times out

11935
Cellular: Mark to be deprecated in CellularDevice

11930
Add FlashIAP to NUCLEO_L4R5ZI

11928
Allow MBED_ASSERT to throw errors in unittests, so we can verify it

11926
Fixed Greentea FileHandle test for microlib

11925
Fixed Greentea minimal-printf test for microlib

11923
Cellular: Fix PPP to wait until connected event from (LWIP) PPP

11921
Updates to tools for Python 3 compatibility

11919
Cypress: FPGA: Improve SPI async calls

11918
IOTSTOR-978: Bug fixes to TDBStore and SecureStore

11915
TESTS: Fix TCP/TLS send_timeout test to nonblocking

11914
Deprecate string-based APIs in IPCore

11913
LPC55S69_NS default TDBStore size increased to 32kB

11911
Update mbed-coap to version 5.1.2

11908
I2C byte read/write transmission improvement

11901
Update MPN for CYW9P62S1_43012EVB_01 board

11899
Fixes to PR template

11895
TESTS: Allow ipv6_link_local_address() as unsupported

11892
Bring static pin map extension to master

11890
S2-LP: Sync with development repository

11889
Nanostack release for Mbed OS 5.15

11888
Pelion enable for UNO_91H

11887
Add target for CYW9P62S1_43438EVB_01

11886
Add target for CY8CPROTO-062S3-4343W

11885
Update to WHD 1.60 release

11884
Update Cypress targets

11882
DISCO_L475VG_IOT01A: Fix bare metal profile Greentea tests

11881
UBLOX_EVK_ODIN_W2: Fix bare metal build and Greentea tests

11877
Fix for sending IPv6 UDP packet over link local interface

11875
Bare metal: Fix Arm toolchain Greentea test compilation for NUCLEO_F411RE

11873
Make SMS configurable in Cellular stack

11870
STM32F7: linker scripts updates

11868
Cypress Target update to support Manufacturing Test

11867
Fix for Cypress GPIO driver (fix for issue #11835)

11865
IAR: Enable linker optimizations for develop/release profile

11851
Enable FAT ChaN lib configuration with mbed_lib.json

11846
Add support for Makerdiary nRF52840-MDK

11841
Wi-Fi: Reorder Greentea tests with minor fixes

11839
SerialBase.h|cpp [-Wreorder] compiler warning fix

11829
USB STM32: Don't wrap direct function calls in MBED_ASSERT

11827
DISCO STM32H747I ETHERNET support, but disabled

11825
Bare metal Greentea test for storage component

11824
Skip bare metal Greentea test for Network component

11821
Skip bare metal Greentea test for PSA component

11819
Add code to verify if external Wi-Fi module is still responsible

11811
STM32H7 FLASH API issue with M4 core

11808
Document Socket API functions return values

11796
mbed_retarget: Add a minimal console implementation to provide basic functionalities

11789
STM32H7: code and feature alignment for both NUCLEO and DISCO targets

11785
Deprecates NVStore

11783
Adding set baud rate routine

11773
Fix watchdog reset test

11755
Unittests for nsapi_dns

11735
Dns unittest preparation

11721
Bare metal Greentea support

11720
ATCmdParser: Merge scanf and recv functions

11713
Remove Tickless from STM32F4 targets

11711
STM32F7 update drivers version to CUBE V1.15.0

11701
Arm toolchain: heap setup micro-optimization

11687
Update to Mbed TLS 2.20.0d0 and Mbed Crypto 2.1.0d0

11682
Make FPGA tests to pass on CI targets (SPI, analogIn, PWM)

11675
STM32 USB update step 1

11654
Adjustment of netsocket tests to the lossy mesh network limitation.

11641
PmwOut: Add method to enable/disable PWM

11634
Serial design draft

11595
Check return of BlockDevice::init() in TDBStore.

11556
Modified Wi-SUN tasklet to return success when calling connect twice

11551
Coverity updates

11539
Enable DER coded certificate support to Wi-SUN mesh API

11535
DNS manual cleanup mechanism added

11514
ESP8266 unlocks deep sleep when disconnected

11480
Enable tickless mode in additional tested targets

11469
Cellular: Disable cellular.clear-on-connect by default

11463
Enable tickless mode in MAX32630FTHR

11460
ESP8266 Unified Mbed trace prints.

11459
Replaced in ESP8266::oob* recv() with scanf()

11444
QSPI : Define default pins at drivers level

11430
Member get_interface_name implemented in ESP8266Interface

11414
Cellular: Add API to clear CellularDevice

11409
ESP8266 nonblocking connect/disconnect

11357
Offloaded TLSSocket and BG96 support for it

11332
mbed_error.c: Better HW fault exceptions and stack dump

11203
Add watchdog lower limit timeout test

11032
Add test header files and defined behavior for APIs tested using FPGA-Test-Shield

11006
Introduce an Mbed config to enable XIP

10978
LwIP: Add ICMPv4 Socket support

10940
Deinitialize the pin definition

10924
Free serial resources if not needed anymore

10618
Tools: Check for GCC 9, rather than 6

12059
Config: Fix bootloader config errors - propagate errors

12058
Add static pin map support: SDBlockDevice, KVStore, system storage (reduce ROM used by Mbed Cloud Client example)

12047
NANO130: Fix OOM with packing algorithm at IAR linking

12039
Fix build errors for bare metal Greentea tests on NRF52840_DK

12033
static pin-map: patch for SerialBase class

12030
Updates the Cypress Wi-Fi Host Driver to 1.7.0

12006
FIX: Fix a bug introduced by static pin map

11991
TESTS: Fix integration tests

11983
Ublox Odin Driver OS 5 v3.7.1 rc3: Network-Wi-Fi Test Crash Fixes

11970
Avoid crashes during fault handler

12117
Storage features: fix static pin-map for ArmC5

12112
Notify on configuration exception rather than breaking build

Using this release

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

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