Mbed OS Releases

Feature releases of Mbed OS are made available on a roughly quarterly basis. We release patch releases every two weeks. The latest version is always available through our development tools and on GitHub.

Latest stable release:

  • mbed-os-5.14.1

    Downloads: zip tar.gz

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

    Important note about this patch release

    The Nanostack RF driver has been updated and as an exception to our normal release protocol, contains
    a breaking change.

    Summary of changes

    4-octet FCS which follows IEEE Std 802.15.4-2015
    Bug fix related to channel spacing configuration
    

    Impact of changes

    This release contains version of a S2-LP driver which is not inter-operable with previous versions of the driver.

    Migration actions required

    To make previous version (Mbed OS 5.14.0) of the S2-LP driver inter-operable with this release, following changes are needed.

    /components/802.15.4_RF/stm-s2lp-rf-driver/source/NanostackRfPhys2lp.cpp
    @@ -553 +553 @@ static void rf_init_registers(void)
    -    rf_write_register_field(PCKTCTRL1, PCKT_CRCMODE_FIELD, PCKT_CRCMODE_0X1021);
    +    rf_write_register_field(PCKTCTRL1, PCKT_CRCMODE_FIELD, PCKT_CRCMODE_0x04C11DB7);
    @@ -556,0 +557 @@ static void rf_init_registers(void)
    +    rf_write_register_field(PCKTCTRL2, PCKT_FCS_TYPE_FIELD, PCKT_FCS_TYPE_4_OCTET);
    @@ -1001,0 +1003 @@ static void rf_receive(uint8_t rx_channel)
    +        rf_channel_multiplier = 1;
    /components/802.15.4_RF/stm-s2lp-rf-driver/source/s2lpReg.h
    @@ -251,0 +252,3 @@ extern "C" {
    +#define PCKT_FCS_TYPE_FIELD     0x20
    +#define PCKT_FCS_TYPE_4_OCTET   (0 << 5)
    +#define PCKT_FCS_TYPE_2_OCTET   (1 << 5)
    @@ -255,0 +259 @@ extern "C" {
    +#define PCKT_CRCMODE_0x04C11DB7 (5 << 5)
    

    Summary of changes

    In this release we have added the following targets: * NUMAKER_M252KG * ST DISCO-H747I * OKDO * TARGET_CY8CPROTO_063_BLE * MTS_DRAGONFLY_F413RH

    Cypress targets have been updated to the latest PSoC 6 CSP (HAL, RTOS abstraction, Resource Abstraction).
    This update includes:

    • Minor bugfixes/code cleanup
    • Re-organization of resource/rtos abstraction folder structure
    • Documentation improvements

    The Cypress Specific HCI Cordio Driver has also been updated to add:

    • MCU and BT device low-power support
    • HCI UART enhanced to work at 3M baud rate for improved BT performance. In order to put the UART interface at 3M baud rate the state machine for initialization has been modified
    • Updated BT device-wake pin drive mode from input to output mode to be able wake up the BT device from low-power state when needed
    • Added delays to BT device wake de-assert function to ensure that UART data is drained

    We have provided an STM32H7 ST CUBE V1.5.0 update. The main impact of this update is the introduction of a
    Cortex-M4 instruction cache through ART accelerator.

    We have had to disable tickless mode on UBLOX_EVK_ODIN_W2 as it appears to cause crashes in WiFi tests (Issue #11557).
    It will be re-enabled once this has been addressed.

    This release also includes a Nanostack update to v11.3.0. This includes coap-service updates and
    bug fixes to the Wi-SUN protocol.

    We have fixed the following reported issues:

    • 11295 QSPIFBlockDevice does not differentiate between mode (alt) and dummy cycles
    • 11362 Pin speed control
    • 11496 iar export: multiple -O in the project - fails to build
    • 10854 Mbed Os 5.12.4 ATHandler::resp_stop
    • 11508 LSI as RTC clock source on certain STM targets
    • 10880 VREFINT_CAL_ADDR wrong address for MTB_RAK811

    We have also:

    • Added an initial implementation of Cypress Crypto hardware acceleration for mbedTLS
    • Re-enabled GCC/ARMCC support for RTL8195AM
    • Enabled asynchronous serial with DMA for K66F
    • Added flow control (IFC) into the BG96 AT driver

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    11573
    Add 413 dragonfly

    11561
    Add TARGET_CY8CPROTO_063_BLE

    11407
    Add OKDO platform

    11384
    ST DISCO-H747I introduction

    11176
    Support Nuvoton target NUMAKER_M252KG

    Fixes and Changes

    11678
    Travis CI: Fixed issue where jobs are getting stalled/timing out

    11649
    Fix memory leak on NetworkInterface destruction

    11647
    Nanostack RF driver updates for Mbed OS 5.14.1

    11639
    Nanostack patch release for mbedos 5.14.1

    11638
    Change imgtool lib import to relative import

    11628
    Make devicekey remainder test more meaningful

    11627
    pinmap_peripheral function: update error code for easier debug

    11626
    DISCO_L4R9I: update default STMOD+ pin

    11625
    Revert tickless on UBLOX_EVK_ODIN_W2

    11621
    STM32L151: update calibration memory address

    11618
    Cellular: Fix CellularStateMachine to not loop between init/power states

    11616
    Cellular: Setting timeout before send command in gethostbyname.

    11615
    Cellular: Remove old deprecated tests

    11612
    IPCore unittests improvements

    11607
    Tests: USB: Move control endpoint buffers to heap

    11601
    DNS tests modification for ESP8266-specific scenario

    11598
    AT_CellularDevice.cpp - unused variable err warning

    11597
    Missing errno.h include

    11596
    LoRa: Fix build warning about _ongoing_tx_msg

    11590
    Moved Cypress TriggerMux initialization out of the HAL and into the BSP

    11589
    Enable PSA tests for fastmodel

    11587
    ATCmdParser doxygen header’s documentation update for scanf

    11585
    NRF52: Fixed missing guard in port_api.c

    11583
    STM32H7 ST CUBE V1.5.0 update

    11582
    TEST: change integration fs test format and mount order

    11581
    Cellular: Fix setting of PDP context ID (cid)

    11573
    Add 413 dragonfly

    11572
    Tighten GCC 2-region _sbrk

    11568
    Speed up unit test build with parallel jobs

    11567
    Simplicy QSPIF target overrides for PSoC6

    11566
    EP_AGORA: Add config logic to enable BLE, cell, and LoRa by default

    11564
    Fix ARMC6 linker error for the bare metal profile

    11562
    STM32H7: memory relocation

    11561
    Add TARGET_CY8CPROTO_063_BLE

    11560
    Explicitly set tdb internal flash size for PSoC6 Targets

    11558
    Coverity fixes

    11548
    Cellular: Fix resolving of DNS server IPv4/6 address

    11546
    Tests: USB: Fix Python 3 compatibility

    11542
    Update Cypress targets

    11541
    esp8266 oob* : recv() brought back where it was needed

    11540
    Tests: USB: Update error handling in basic tests

    11538
    Cellular: Enable IPV6 for WISE_1570

    11534
    Cellular: Handle SEND FAIL and ERROR response

    11529
    PSOC6: update to PDL 1.3.1

    11525
    STM32WB/STM32H7 : LSI selection when LSE is not available

    11523
    Correct force inline syntax for IAR compiler

    11518
    Cypress Cordio Driver Update

    11517
    TCP Packet loss happens due to running of out of Mailbox size.

    11516
    Update to latest psoc6csp

    11499
    Cellular: Fix stop tag for Quectel M26 send command

    11498
    iar export: fix invalid optmization flag - remove from misc

    11495
    Improve cellular unittests

    11494
    Fix Coverity issue: Initialize FlashIAP non-static member in constructor

    11491
    Equeue chain, add documentation of using equeue_destroy

    11490
    Cellular: Add flow control (IFC) in BG96 AT driver

    11489
    Examples.py add –jobs argument

    11488
    Cellular: Fix get_interface_name to not include leading zero

    11486
    update googletest to v1.8.1

    11483
    Change reset_reason test timeout.

    11478
    Refactor CRC constructor method to remove warning

    11474
    Remove Mbed Crypto source files before importing

    11473
    Fix compilation warnings from GCC in netsocket/network tests

    11472
    Suppress Coverity warnings

    11471
    STM32WB ADC : consecutive VBAT reading

    11470
    Prevent unreachable statements and correct variable sizes.

    11465
    Updated mbedTLS CRYPTO target to be more flexibly configured for supported boards

    11464
    TEST: update compare log file name

    11462
    Minimal-printf: Remove file printing in README and update tables

    11458
    Tests: USB: Use libusb0 backend on Windows

    11456
    IOTBTOOL-349: Correct handling of spaces in project name.

    11455
    minimal-printf: Add capability to run floating point tests manually

    11454
    ST: Change the LSI_VALUE according to documentation

    11453
    Fix Coverity issues

    11452
    Coverity changes in USBMSD.cpp

    11449
    Coverity changes in USBDevice.cpp

    11448
    STM license file update

    11447
    Coverity changes in USBHID.cpp

    11446
    add missing asserts to UserAllocatedEvent class

    11445
    Add catch-all rule to makefile template

    11443
    Enable asynchronous serial with DMA for K66F

    11440
    Add missing documentation about tls testing

    11439
    Remove unreachable statements warnings

    11438
    Correct doxy-spellchecker error message

    11437
    Harmonise Doxygen comments in drivers, events, platform and rtos dirs

    11427
    ESP8266Interface buffer null-terminated and parameters of scan function in correct order

    11424
    Stack type ip versions

    11421
    Dns synchronous cache fix

    11420
    Fixed smsc9220_emac link_out memory management.

    11417
    Change stack sizes of threads used in tests. GR_LYCHEE failing CI

    11408
    Remove mbed_trace dependency to Nanomesh headers

    11407
    Add OKDO platform

    11404
    FUTURE_SEQUANA: InterruptIn implementation bug fix

    11396
    Remove floating point from AT_CellularSMS

    11395
    Avoid non-trivial copy when initializing lorastack struct

    11394
    Replace wait_ms calls with rtos::ThisThread::sleep_for

    11393
    Cast void pointer before deallocating with delete[]

    11392
    Remove minor build warnings

    11384
    ST DISCO-H747I introduction

    11383
    Change LSI_VALUE in STM implementation.

    11382
    Use very verbose to see more details in case of problem

    11381
    M263: Enlarge required deep sleep latency

    11380
    M263: Enlarge LPTICKER_DELAY_TICKS for safe

    11379
    M263: Fix FPGA CI testing failing

    11377
    Fixed byte string related TypeError if using python3.

    11372
    Cellular: Fix BG96 power on and connect

    11368
    Add pin speed controlling interface

    11347
    Fix NRF52832 softdevice memory map

    11338
    Bring down interface when stopping softap

    11330
    RTL8195AM - resuscitate AMEBA GCC/ARMCC support

    11314
    Add executable analaysis tool for floating point checks.

    11297
    Differentiate alt and dummy cycles in QSPIF

    11254
    Update gcc.py for preprocessing in linker script

    11176
    Support Nuvoton target NUMAKER_M252KG

    11046
    Initial implementation of Cypress Crypto hardware acceleration for mbedTLS

    10991
    Explaining how to opt in modules

    10684
    Cellular: fix ATHandler destructor possible crash on delete

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.14.1”.

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

  • mbed-os-5.14.0

    Downloads: zip tar.gz

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

    Summary

    This release continues to improve and stabilize Mbed OS. We added a static mode for the event queue, which doesn’t require using dynamic memory. This aligns the event queue’s memory usage with other parts of the system, including RTOS. You can still use dynamic memory, but if you are worried about memory fragmentation or know your memory requirements upfront you can only rely on static memory. We updated the version of C++ standard to C++14, to leverage modern features of the language. We implemented multiple changes to our connectivity, including PPP support for the Nanostack and enterprise security for WiFi. A big item that we started working on is splitting our public interfaces from the internal code; the work for the OS core is done, and we’ll continue this work in future releases for other parts of the system. It will add clarity and help our users use only public and stable APIs. We introduced a minimal version of the standard library printf family calls, which addresses most of the common use cases in a fraction of the memory footprint. We continued to update our PSA support to track the upstream development in PSA and Trusted Firmware. We doubled our effort in tracking and fixing Coverity warnings, reducing the number by 50%.

    Compatibility

    This release is compatible with Device Management Client 4.0.0

    Migration Guide

    This section lists changes that may require your attention.

    Update Mbed OS for PSA Crypto API 1.0b3

    11315

    Background

    Mbed Crypto is our implementation of the PSA Crypto APIs. We shipped an implementations of prerelease versions of the PSA Crypto API in Mbed OS 5.11, 5.12, and 5.13, with a warning in the documentation that these APIs were subject to change and that we did not intend to maintain backwards compatibility with them. The PSA Crypto API has continued to develop and change over the past few months and a number of breaking changes have been made since the pre-release version we based our Mbed Crypto implementation on.

    What is being broken?

    The PSA Crypto APIs in Mbed OS as shipped in Mbed OS 5.13 are breaking.

    PSA Crypto API 1.0b3 API breaking changes, addressed in Mbed OS 5.14 (see https://github.com/ARMmbed/mbed-os/pull/11315)

    • Use key attributes structures for key creation
    • Make generating or importing a key also allocate the key
    • Update key derivation functions to accept chunked inputs
    • Update key agreement API
    • Align PSA Crypto error codes with other PSA error codes
    • Rename functions for consistency with each other and the rest of PSA
    • Be consistent in use of stdint types

    Expected PSA Crypto API 1.0 API breaking changes, to be addressed in the next Mbed OS release
    - None

    Why is it being broken?

    Mbed Crypto needs to track the upstream PSA Crypto API as maintained by ATG in order to pass ATG’s PSA Compliance Kit tests. The PSA Crypto API was not yet finalized in Mbed OS 5.13 and continues to evolve. We shipped an implementation in Mbed OS 5.13 to enable other teams working on Mbed OS to develop their services a top APIs that should be mostly similar to the final APIs, rather than save up all the integration pain for a later Mbed OS release when the APIs are finalized.

    Analysis of impact on users

    There should be no surprises to users based on our statements of PSA API instability. We’ve worked with Mbed TLS, Pelion Client, Storage (ITS), SPM, and Attestation teams to ensure the message of API instability was understood and to coordinate our changes to the API. There are potentially other users of the PSA Crypto API, and our documentation states the stability level of the API for these users.

    Alternatives

    We could continue to provide the version of the PSA Crypto API shipped with Mbed OS 5.13, but to save flash size and reduce the maintenance burden of maintaining an API we clearly communicated we’d be breaking in the next release, this was deemed not worth the cost.

    Mitigation and migration path for users

    Users must update to use the new version of the API.

    Renaming of key pair names

    Replace KEY_PAIR in names that would have used KEYPAIR in the previous API version. For example, PSA_KEY_TYPE_ECC_KEY_PAIR replaces PSA_KEY_TYPE_ECC_KEYPAIR.

    Using persistent keys

    Use psa_open_key() to open a persistent key. Previously, volatile keys could also be opened. With PSA Crypto API 1.0b3, keys are implicitly opened for you upon import, generation, or derivation.

    psa_status_t psa_open_key(psa_key_id_t id,
                              psa_key_handle_t *handle);
    

    Only persistent keys can be opened, so there is no need to pass the lifetime anymore.

    It is no longer necessary to call psa_create_key() to make a key persistent. A key is persistent if it is created with a lifetime other than PSA_KEY_LIFETIME_VOLATILE. As part of key creation, use psa_set_key_id() to set both the key’s persistent identifier and to set the lifetime to persistent and then call the key creation routine: like psa_generate_key() or psa_import_key()

    Old New
    psa_open_key() Only use for opening previously created persistent keys
    psa_create_key() psa_set_key_id() Keys with IDs are made persistent implicitly upon creation

    Allocating keys

    Key creation will implicitly allocate resources as necessary, so psa_allocate_key() has been removed from the API and is no longer needed.

    Old New
    psa_allocate_key() Not necessary. Delete calls to psa_allocate_key().

    Importing keys

    Previously, you had create a policy structure and pass many function arguments to communicate the properties you wanted the imported key to have. Now, you describe them entirely within the attributes structure, passing only the attributes and data to psa_import_key().

    Old New
    psa_key_policy_init() psa_key_attributes_init()
    psa_key_policy_set_usage() psa_set_key_usage_flags(), psa_set_key_algorithm()
    Pass key type to psa_import_key() psa_set_key_type()
    psa_set_key_policy() Pass the attributes to psa_import_key()
    psa_import_key() psa_import_key()

    Generating keys

    Previously, you had create a policy structure and pass many function arguments to communicate the properties you wanted the imported key to have. Now, you describe them entirely within the attributes structure, passing only the attributes and data to psa_generate_key().

    Old New
    psa_key_policy_init() psa_key_attributes_init()
    psa_key_policy_set_usage() psa_set_key_usage_flags(), psa_set_key_algorithm()
    Pass key type to psa_import_key() psa_set_key_type()
    psa_set_key_policy() Pass the attributes to psa_import_key()
    psa_generate_key() psa_generate_key()

    Reading key policy or information

    What used to be two functions with many parameters each is now one function that returns the attributes in one structure, in the same format you’d use to create new keys.

    Old New
    psa_get_key_policy(), psa_get_key_information() psa_get_key_attributes()

    Deriving keys

    The previous “generator” class of functions has been renamed to “key_derivation”. The psa_crypto_generator_t structure was previously used to derive keys. Use of the psa_key_derivation_operation_t structure replaces psa_crypto_generator_t for deriving keys.

    Old New
    psa_crypto_generator_t psa_key_derivation_operation_t
    psa_generator_abort() psa_key_derivation_abort()
    psa_get_generator_capacity() psa_key_derivation_get_capacity()
    Function parameter psa_key_derivation_set_capacity()
    psa_generator_read() psa_key_derivation_output_bytes()
    Use of generator with PSA_ALG_SELECT_RAW psa_raw_key_agreement()
    psa_key_derivation() Deriving keys now uses key derivation objects and consists of multiple parts. See the getting started guide for details.

    Key agreement

    Old New
    psa_key_agreement() psa_key_derivation_setup(), psa_key_derivation_key_agreement(), psa_key_derivation_output_key()

    Hashing

    Note: Not yet implemented

    The PSA Crypto API 1.0b3 adds a few new functions to help with hashing. Specifically, functions to perform one-shot computation or comparison of hashes.

    Old New
    Many hash function calls psa_hash_compute()
    Many hash function calls psa_hash_compare()

    Computing or verifying a MAC

    Note: Not yet implemented

    The PSA Crypto API 1.0b3 adds a few new functions to help with working with MACs. Specifically, functions to perform one-shot computation or comparison of MACs.

    Old New
    Many MAC function calls psa_mac_compute()
    Many MAC function calls psa_mac_verify()

    Symmetric cryptography

    Note: Not yet implemented

    The PSA Crypto API 1.0b3 adds a few new functions to help with working with symmetric ciphers. Specifically, functions to perform one-shot encryption or decryption. The types used by psa_cipher_generate_iv(), psa_cipher_set_iv(), and psa_cipher_update() have changed from unsigned char to uint8_t.

    Old New
    Many cipher function calls psa_cipher_encrypt()
    Many cipher function calls psa_cipher_decrypt()

    Authenticated encryption

    Note: Not yet implemented

    The PSA Crypto API 1.0b3 introduces multi-part authenticated encryption functions. The original one-shot AEAD functions still remain and aren’t being replaced.

    New functions for multipart AEAD

    • psa_aead_operation_init()
    • psa_aead_encrypt_setup()
    • psa_aead_decrypt_setup()
    • psa_aead_generate_nonce()
    • psa_aead_set_nonce()
    • psa_aead_set_lengths()
    • psa_aead_update_ad()
    • psa_aead_update()
    • psa_aead_finish()
    • psa_aead_verify()
    • psa_aead_abort()

    Mbed Crypto entropy injection

    Use of uint8_t replaces unsigned char in mbedtls_psa_inject_entropy(). The macro MBEDTLS_PSA_INJECT_ENTROPY replaces MBEDTLS_PSA_ENTROPY_INJECTION.

    Netsocket: Change DNS retry and total attempt counts

    11244

    DNS lookup is done for each of five predefined servers twice. This change affects the previous DNS lookup functionality only when it’s expected that DNS is made three times on the very first DNS server.
    Although that’s unlikely needed, the previous functionality can be restored reverting the changes to DNS configuration.

    uVision export: Handle more C++ language standards

    11225

    • Mbed OS now uses C++11 language and C++14 library constructs, so requires the C++ compiler to be set to C++14 standard or later. Custom build profiles that select C++98 or C++11 are no longer supported. (ARMC5 should work in its C++11 mode, as C++14 library replacements are provided in-tree, but ARMC5 is not officially supported).
    • uVision export now requires MDK 5.28a or later, as -std=gnu++14 mode cannot be selected in earlier versions. In Mbed OS 5.13, the Vision exporter was selecting -std=gnu++11, but this is no longer sufficient.

    Cellular: moved string_to_pdp_type from AT_CellularContext to Cellular

    11200

    Moved string_to_pdp_type from AT_CellularContext to CellularUtil. string_to_pdp_type is a common method for AT and other layers. Without moving there will be duplicate methods.

    Feature public headers

    11073

    This will break user code that was using an internal API using a prefixed path, for example #include "foo/bar.h" instead of #include "bar.h".

    Port the cryptocell 310 cmac driver

    10947

    This is a target update, adding hw accelerated CMAC, however, it can also be considered as a breaking change, as it removes support for key sizes other than 128 bit keys, and removes support for DES CMAC.

    Port CC 310 sha 512 driver

    10913

    SHA384 is not supported, returning MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED

    Port aes cc310 driver

    10907

    This is a target update, adding hw accelerated AES, however, it can also be considered as a breaking change, as it removes support for AES other than 128 bit keys.

    Sleep rework, RTOS API for bare metal, wait deprecations

    10104

    • Subset of RTOS API now available in bare metal builds
    • Full power save functionality now available in bare metal builds via RTOS API
    • Consistent sleep vs wait API naming - wait() and wait_ms() deprecated

    Migration notes

    • Use of wait and wait_ms should be reviewed to check whether sleeping is appropriate or not in the context the call occurs - if so, change to ThisThread::sleep_for/thread_sleep_for, else change to wait_us.

    Update to Mbed TLS 2.19.1

    11493

    The Mbed TLS key export feature’s export keys callback, new in Mbed TLS 2.19.0, now requires use of const on its hello.random buffers (7th and 8th parameters). This is an API change.

    f_export_keys_ext in ssl.h now has signature:

    int (*f_export_keys_ext)( void *, const unsigned char *,
    const unsigned char *, size_t, size_t, size_t,
    const unsigned char[32], const unsigned char[32],
    mbedtls_tls_prf_types );
    

    Convert TZ target name ‘NPSA’ to test spec platform name

    11487

    Define naming rule for TrustZone targets: ‘PLATFORM’_[‘NPSA_‘]’S’/’NS’, where:
    1. ‘PLATFORM’ for test spec platform name, which is registered in platform database of mbed-os-tools.
    2. ‘NPSA’ for non-PSA targets. Defaults to PSA target if absent.
    3. ‘S’/’NS’ for secure/non-secure targets.

    M2351: Enhance secure/non-secure image build flow for non-PSA target

    11288

    Changes for NuMaker-PFM-M2351:
    1. Change target name to NU_PFM_M2351_NPSA_S for non-PSA secure target and and NU_PFM_M2351_NPSA_NS for non-PSA non-secure target. Original target name NUMAKER_PFM_M2351 is recycled.
    2. Combine secure image and non-secure image into one in non-secure target post-build. With this, user just needs to flash the combined image instead of flash secure image and then non-secure image separately.
    3. To drop pre-built secure image in mbed-os tree and provide custom one, add the line ‘“target.extra_labels_remove”: [“NU_PREBUILD_SECURE”]’ into ‘mbed_app.json’ instead of via .mbedignnore.

    What’s new

    add queue static allocation support

    11342

    Adds UserAllocatedEvent API to provide mechanism for event posting and dispatching without utilization of queue internal memory.

    Nanostack release for mbed OS 5.14

    11335

    This release contains updates for the Mesh protocols:

    • Stability improvements and bug fixes to Wi-SUN.
    • Enabled Nanostack PPP protocol support.

    This version of Wi-SUN stack is inter-operable only with itself (development work still on-going).
    Wi-SUN protocol is tested using functional protocol testing suites.
    Wi-SUN non-functional testing is performed using more than 100 devices connected to single Wi-SUN network.
    Thread stack is verified using protocol testing suite that includes certification test suite

    Sys timer should let deep sleep happen

    11522

    When next SysTimer wake-up is scheduler far enough, always consider
    that deep sleep may be entered and program an early wake-up.

    So that even if deep sleep is only allowed some time later, it can be
    entered. If not doing this, then the deep sleep would be prevented by
    SysTimer itself and may not be entered at all.

    This has been proved to happen in a simple blinly example.

    Add a gpio pinmap

    10644

    Add a weak gpio_pinmap(), that every target has to override, to provide a set of pins for GPIO testing.

    Add Atomic template

    10274

    • Added Atomic<T> template to make atomics easier in C++.

    PSA storage: Conform to “PSA 1.0.0” spec release

    10847

    PSA Storage: Add the integrity only and no replay protection flags.

    Changed EventQueue::cancel to return boolean value

    10750

    EventQueue::cancel now returns the boolean value to indicate whether the cancel was successful or not.

    Cellular: add method to set authentication type to CellularContext

    10694

    Add new method virtual void set_authentication_type(AuthenticationType type) to CellularContext so application can set the correct authentication type.

    Add C++11/14 support utility file

    10868

    • Various modern C++ forward-compatibility helpers have been added in mbed_cxxsupport.h to assist with C++11 and later code, including supporting ARM C 5 as much as possible.

    Adding stmod_cellular component

    10866

    This library allows enabling the cellular module that is connected to the STMOD+ connector of the board.

    Currently supported cellular modules are Quectel UG96 and BG96 expansion boards that are included in [p-l496g-cell01] (https://www.st.com/en/evaluation-tools/p-l496g-cell01.html) and [p-l496g-cell02.] (https://www.st.com/en/evaluation-tools/p-l496g-cell02.html) packs.

    The STMOD+ Connector specification can be found [here] (https://www.st.com/content/ccc/resource/technical/document/technical_note/group0/04/7f/90/c1/ad/54/46/1f/DM00323609/files/DM00323609.pdf/jcr:content/translations/en.DM00323609.pdf).

    BLE: allow overriding event signal

    11058

    This makes no change to existing code and users. Only affects future porters.

    Add minimal printf

    11051

    To replace the standard implementation of the printf functions with the ones from the minimal-printf library, the custom minimal-printf profile should be used when compiling with mbed-cli. For example:

    $ mbed compile -t <toolchain> -m <target> --profile release --profile minimal-printf
    

    Add C++ headers

    11039

    • A set of C++11/14 library support headers have been included in platform/cxxsupport. These include standard-C++-like APIs, eg mstd::atomic in <mstd_atomic>, to improve on implementations provided with toolchains. See platform/cxxsupport/README.md for more information.

    Created PPP interface and PPP service classes to netsocket

    10974

    Add Cellular PPP connection support to Nanostack. Support is made by creating a common PPP service class that both lwIP and Nanostack can use for cellular connectivity.

    Affected components are lwIP and Nanostack on board IP stacks, new netsocket PPP interface and PPP service class. Cellular network interface, cellular classes and “nsapi_ppp.h” interface are not modified. No changes are required from the users of the Cellular network interface to continue using the lwIP as the default IP stack.

    To use the Nanostack IP stack with the Cellular network interface instead of the lwIP stack, cellular application configuration must be modified in following way:

    Set the default stack to nanostack

    "nsapi.default-stack": "NANOSTACK"

    Configure PPP to IPv6 only mode (Nanostack does not support IPv4)

    "ppp.ipv4-enabled": false, "ppp.ipv6-enabled": true,

    mbed-mesh-api: Add new API for Wi-SUN configuration

    11181

    Add new APIs to Wi-SUN network certificate handling and network configuration. This includes:
    - network name
    - regulatory domain, operating mode and operating class
    - setting own and trusted certificate
    - removing own and trusted certificates

    Optimize debug profile flags for size

    11126

    Changed the Debug compiler profile to favor size optimization over speed optimization.

    Enterprise security support

    11104

    Add NSAPI_SECURITY_WPA2_ENT type to nsapi_security enum.

    • Phrase helps to connect to an 802.1X capable network.
    • Phrase conforms to WPA2-AES and WPA-TKIP with enterprise security.

    Add a gpio-irq pinmap

    11074

    Add a weak gpio_irq_pinmap(), that every target has to override, to provide a set of pins for GPIO IRQ testing.

    AT_CellularSMS: allow configuring SMS encoding (7-bit/8-bit) at initialization

    11245

    AT_CellularSMS::initialize takes an additional encoding parameter that defaults to 7-bit (behavior of existing code does not change, one needs to opt-in to send 8-bit SMS)

    Change default optimisation level to O1 when exporting to uVision

    11212

    Default uVision optimisation level changed to O1. It matches the debug profile.

    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 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: 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

    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 peers side.
    • Reported Issue: Reported by the development team.
    • 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: https://github.com/ARMmbed/mbed-os/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: https://github.com/ARMmbed/mbed-os/issues/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: https://github.com/ARMmbed/mbed-os/issues/5640
    • Priority: Major

    NVStore and TDBStore objects can collide in internal flash

    • Description: NVStore and TDBStore are classes implementing storage solutions. By default they will allocate the last two sectors in internal flash.
      If both are used, a runtime error will happen. NVStore is deprecated, and TDBStore should be used instead.
    • Workaround: Use TDBStore instead of NVStore.
    • Priority: Minor

    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 https://github.com/ARMmbed/mbed-os/pull/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: baremetal build fails due to cryptocell dependency

    • Description: The baremetal build on NRF52480 fails because the CryptoCell depends on Mbed TLS. Mbed TLS is not present in baremetal builds.
    • Workaround: Remove CRYPTOCELL310 feature via your application’s target config.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/11428
    • Priority: Major

    Cellular stack receives corrupted data when there is a thread frequently calls wait()

    • Description: The low-power ticker of certain targets has been seen to sometimes cause interrupt latency problems, leading to symptoms such as loss of serial data.
    • Workaround: To work around this direct use of LowPowerTicker etc classes can be replaced by Ticker etc. The RTOS itself will be using the low-power ticker if MBED_TICKLESS is set for the target and target.tickless-from-us-ticker is false. Undefining MBED_TICKLESS or setting target.tickless-from-us-ticker to true will stop the RTOS from using the low-power ticker.
    • Reported Issue: https://jira.arm.com/browse/IOTCORE-1352 (Internal)
    • Priority: Major

    Enabling MBED_SLEEP_TRACING_ENABLED crashes the system on STM boards

    • Description: MBED_SLEEP_TRACING_ENABLED is disabled by default. Enabling it on STM boards can cause the system to crash.
    • Workaround: Do not enable it on STM boards
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/11497
    • Priority: Major

    Test Report

    Overview

    Numbers of improvements around testing had been made into product by mbed-5.14.0 release:
    • Introduced FPGA test shield along with new peripheral test suites for Silicon Partners
    • Reduced Coverity defects numbers by ~50%
    • Merged Greentea test coverage and Unittest coverage, overall test code coverage reached ~61%
    • Reduce CI testing time PR test (~2 hrs), Branch test (~4 hrs), nightly test (~8 hrs)
    • Tracking down night test failures, fixed most of failures and keep the unfixed defect managed

    Release automated CI test

    Apart from regular Pull Request test and Nightly test, We also have Branch test executed on Mbed OS 5.14.0-RC3

    Tests run on CI: * Compilation tests: ARM , GCC_ARM, IAR * Unittest Test matrix : Test Results (all passed) * GreenTea test matrix : Test Results (mostly passed) * Exporter test: * Cloud Client test:

    With the above Greentea test failures: we identified the following failure reasons: * DISCO_L475VG_IOT01A failed on network-wifi tests ---- We believe this is a false positive, nightly tests on the same target(but different RaaS) are passed, the target on This RaaS will need RF-boxes * UBLOX_EVK_ODIN_W2 failed on network-wifi tests ---- Tracked by defect IOTPART-8659, waiting partner’s input for fixing * GR_LYCHEE failed on platform and rtos tests ---- Test code issue, fixed on master #11417, but not pulled in to 5.14 RC * LPC55S69 failed on storage devicekey and KVStore tests ---- Tracked by defect IOTSTOR-925 , under investigation by mbed teams * 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

    Greentea test result matrix

    Test Numbers: * Greentea test numbers increased from 1281 to 1454 * New FPGA shield tests been add to Mbed OS * Integration tests for storage and connectivity has been added to Mbed OS * More event queue greentea tests has been added * More mbed platform tests has been added * Unittest numbers increased from 582 to 624 * New event queue unit tests has been added * More cellular unit test has been added * New watchdog unit test has been added

    ### Targets Coverage

    In Mbed OS 5.14, compilation test targets scope has not changed, remains all Mbed OS enabled targets.
    As of the time mbed-os 5.14.0 release, we run greentea test on 13 targets: * DISCO_F746NG * DISCO_L457VG_IOT01A * GR_LYCHEE * K64F * LPC55S69 * NUCLEO_F207ZG * NUCLEO_F303RE * NUCLEO_F411RE * NUCLEO_F429ZI * NUCLEO_F746ZG * NUCLEO_L073RZ * UBLOX_C030_U201 * UBLOX_EVK_ODIN_W2

    Coverity

    • During the 5.14 time frame we started to focus on stabilizing and fixing the Coverity static analysis issues
    • We started with 145 total issues in the Coverity.
    • Now we have reduced the number to 73 ( 89 - 16 False Positive ) that is decrease of around 50%.

    Code Coverage

    Test Code Coverage has been tracked and information is published on COVERALLS * Over the period of mbed-OS 5.13 to 5.14, the coverage numbers increased from ~36% to ~61% * Part of the coverage increase is due to changes in how we run some of the tests, that allow us to measure the coverage including:
    * Converting some tests to greentea.
    * Merging unittest coverage with greentea test coverage. * Some of the Mbed OS modules are being tested outside of the main Mbed OS CI, this coverage data is not yet merged into the overall coverage (mbedtls, nanostack, FPGA shield etc.). * Because of the reasons above, the ~61% coverage number is not an absolute reflection of real code coverage. * We will continue working to bring missing coverage info into the overall coverage number, including FPGA HW coverage.

    Memory Monitoring

    • NXP Enabled TICKLESS mode by default on K64F and other targets added ~2200 bytes ROM and ~200 bytes RAM PR#10796
    • Enabled async serial with DMA on K64F/K66F added about 200 bytes ROM and 400 bytes RAM PR#11443
    • Minimal printf feature is not enabled by default, so we didn’t see any memory savings

    Release OOB manual test

    • Release manual OOB test been carried out against 5.14.0 RC1/RC2/RC3
    • OOB focused on out-of-box experience with official mbed OS examples
    • More than 10 issues been identified, blocking and critical issues been resolved.

    Contents

    Ports for Upcoming Targets

    11122
    Support Nuvoton’s new target NUMAKER_IOT_M263A

    Fixes and Changes

    11402
    STM32L4 USB device

    11400
    nsapi_dns: cleanup dns queue when running out or memory

    11391
    EvenQueue: fix template functions passing UserAllocatedEvent<…> as argument.

    11370
    Driver Updates + ARMC6 driver support + WIFI fixes

    11369
    Specify QSPI frequency for more Cypress targets

    11367
    Cypress 5.14 rollup

    11359
    Update mbed-coap to version 5.1.0

    11356
    Fix WHD link state change event handling

    11355
    Initial support for Serial Flash on PSoC Devices

    11354
    Update linker scripts based on latest PDL 1.3

    11353
    Add reserved resources metadata to Cypress BSPs

    11349
    TDBStore bugfix: won’t rely on flash erase value to detect is a sector erased

    11348
    Mutex: _count incrementation brought back

    11345
    Fix bare-metal configuration to support Pelion Device Management Client

    11344
    S2-LP: Sync with development repository

    11343
    ESP8266: Support power pin in custom wiring

    11342
    add queue static allocation support

    11339
    mbed-os/LwIP changes and fixes in auto-IP for Bonjour Conformance Test

    11337
    Updating SDP-K1 PinNames.h.

    11335
    Nanostack release for mbed OS 5.14

    11334
    I2 c sequential communication rework

    11326
    Update PDL for Cypress Targets

    11324
    PSOC6: Update CSP to latest

    11322
    Updated the LWIP buffer pool size for PSoC6

    11319
    Update WHD to 1.30.0

    11315
    Update Mbed OS for PSA Crypto API 1.0b3

    11309
    MCUXpresso Kinetis SPI drive: Add a delay between CS assertion and first sclk edge

    11306
    At handler improvements

    11304
    RSSI getter fixed for ESP8266

    11303
    NUCLEO_H743ZI2 : increase system clock from 400 MHz to 480 MHz

    11302
    Enable json overriding ESP8266 default baud rate

    11301
    STM32L4+ : increase system clock from 80 MHz to 120 MHz

    11298
    Explicitly set rbp_internal_size for TARGET_PSOC6

    11296
    Fix missing offset in TBStore read from flash

    11294
    KL43Z: Enable FALSHIAP storage

    11293
    K82F: Add USBDEVICE support

    11291
    Stm32 ospi qspi fallback support

    11290
    MX25LM51245G QSPI test config file

    11289
    Replace TEST_ASSERT_INT_WITHIN usage in netsocket tests

    11276
    Add integration tests

    11275
    Enable building feature storage with a bare metal profile

    11272
    mbed fault handler: fix mbed_fault_context parameter

    11269
    storage: fix potential memory corruption and check return values

    11266
    ADC internal temperature support and EMAC header fix

    11265
    Add and ARMC5

    11249
    Make AT_CellularSMS::list_messages support index 0 in SMS inbox

    11248
    Allow ATHandler::read_int to return 0 successfully

    11247
    AT_CellularSMS: set “international” flag in PDU when applicable

    11246
    Cellular: Fix BG96 AT driver for IPv6

    11245
    AT_CellularSMS: allow configuring SMS encoding (7-bit/8-bit) at initialization

    11244
    Netsocket: Change DNS retry and total attempt counts

    11239
    crypto: Copy legacy crypto from Mbed Crypto

    11236
    Force inline Timer::attach() to get rid of floating-point instructions

    11235
    minimal-printf should not bypass the retargetting code

    11225
    Vision export: Handle more C++ language standards

    11224
    Coverity issues fixed

    11220
    Fix cellular dns test with IAR compiled binary

    11213
    Moved partial profile to a subdirectory

    11212
    Change default optimisation level to O1 when exporting to uVision

    11211
    Review follow-up mstd fixes

    11208
    Atomics: GCC fix for M23 (again)

    11201
    Cellular: Fixed improper AT handler setup through virtual calls in co

    11200
    Cellular: moved string_to_pdp_type from AT_CellularContext to Cellula

    11191
    Cellular: move RAT reading to better support ublox custom boards

    11190
    Cellular: failure when deleting created context is not considered error

    11185
    Move rtos & platform TARGET directories to source

    11181
    mbed-mesh-api: Add new API for Wi-SUN configuration

    11154
    Cellular API shutdown to stop state machine

    11152
    Nuvoton: Fix FPGA CI test failing

    11149
    Cellular: Remove unnecessary local variables

    11148
    Cellular: Fix SIM pin enter command

    11145
    Implement queue.count()

    11142
    Relocate USB target specific code to root targets directory

    11136
    USBDevice: Avoid forcing end device to be derived from USBDevice class

    11126
    Optimize debug profile flags for size

    11122
    Support Nuvoton’s new target NUMAKER_IOT_M263A

    11119
    Riot Micro cellular device

    11104
    Enterprise security support

    11099
    Update EP_AGORA target pinout

    11084
    NVStore.cpp (and KVStore) - run-time failure handling missing

    11082
    Cellular: Add BG96 AT driver with DNS support

    11076
    ARMC5 extensions

    11074
    Add a gpio-irq pinmap

    11073
    Feature public headers

    11072
    STM32L4: update drivers version to CUBE V1.14.0

    11070
    IAR: Suppress “exceptions are disabled” warning

    11067
    Add Unittest equeue tests

    11058
    BLE: allow overriding event signal

    11053
    Add Mbed bootloader support to CY8CKIT_062_WIFI_BT and CY8CPROTO_062_4343W

    11051
    Add minimal printf

    11050
    DISCO_L4R9I new target

    11039
    Add C++ headers

    11038
    Extend the GPIO HAL API tests

    11019
    Nuvoton: Modify wait ns(…) to provide more accurate implementation

    11018
    PSOC6_SB: initial integration of Cypress Secure Boot target CY8CPROTO_064_SB

    11009
    FPGA SPI: remove 4 and 12 bits size support

    10980
    LwIP: make TCPIP_THREAD_PRIO configurable

    10974
    Created PPP interface and PPP service classes to netsocket

    10971
    Nanostack: sync libservice with changes in master copy

    10947
    Port the cryptocell 310 cmac driver

    10921
    STMOD_CELLULAR: readme file additional information

    10919
    AT Cellular Network: mutex lock issue

    10913
    Port CC 310 sha 512 driver

    10907
    Port aes cc310 driver

    10900
    Armcc5 compilation fixes

    10895
    Reduce Event.h and EventQueue.h using C++11

    10885
    Reduce Callback.h using C++11

    10877
    Cellular: Ublox cellular context activation updated for C030_R412M

    10868
    Add C++11/14 support utility file

    10866
    Adding stmod_cellular component

    10847
    PSA storage: Conform to “PSA 1.0.0” spec release

    10841
    TARGET_STM: Add DEVICE_SPI_COUNT to use SPIs without interference

    10837
    Toolchain attributes - use C++11/C11

    10829
    PSA: TFM import

    10821
    Cellular: Refactor APN db implementation to reduce memory usage

    10813
    Make ARMC5 and IAR develop profile also size optimized

    10792
    Fix: Allow target size restriction for LPC55S69

    10750
    Changed EventQueue::cancel to return boolean value

    10741
    M2351: Override wait_ns to provide more accurate implementation

    10711
    Add i2cee-driver to components

    10703
    Cellular: Removed boilerplate code

    10699
    MbedCRC: make buffers const void *

    10694
    Cellular: add method to set authentication type to CellularContext

    10683
    Export wait_ns to be overridable

    10660
    Add SCLK and SIN stats to SPIMasterTester

    10659
    Replace uses of ArrayView with mbed::Span

    10644
    Add a gpio pinmap

    10274
    Add Atomic template

    10104
    Sleep rework, RTOS API for bare metal, wait deprecations

    11467
    Convert TZ target name to test spec platform name

    11450
    Minimal-printf: Set default configurations to false

    11441
    Organize source files and add Doxygen labels

    11435
    Update to Mbed TLS 2.19.0 and Mbed Crypto 2.0.0

    11419
    Adds missing include required by fixed-width format specifiers

    11418
    NRF52: fix config

    11412
    Kinetis update to fix tickless

    11410
    Mesh API, Wi-SUN: Initialize Wi-SUN settings with values from json

    11385
    Fix problem with low level lp_ticker STM wrapper

    11376
    Update PDL documentation and metadata

    11526
    Fix added to unlock AT handler mutex

    11522
    Sys timer should let deep sleep happen

    11521
    Bux fix: Context can be cleared using CGDCONT after sim ready state

    11493
    Update to Mbed TLS 2.19.1

    11487
    Convert TZ target name ‘NPSA’ to test spec platform name

    11484
    Delaying message id random initialization to later stage.

    11479
    no-systick targets: fix systick irq handler setup

    11423
    Nanostack release for mbedos 5 14

    11288
    M2351: Enhance secure/non-secure image build flow for non-PSA target

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.14.0”.

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

  • mbed-os-5.13.4

    Downloads: zip tar.gz

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

    Summary

    In this release we have added the following targets: * CC3220SF_Launchxl * Arduino Nano 33 BLE

    mbed-coap has been updated to version 4.8.1. This brings the following changes:

    • Store ACK’s also into duplicate info list.
    • ROM size optimization. Flash size has gone down ~1100 bytes.
    • IOTCLT-3592 - Client does not handle Duplicate ACK messages during blockwise registration correctly, issue closed

    We have fixed the following reported issues:

    • 11175 Watchdog issue with timeout
    • 10198 FATFileSystem::stat() function broken with IAR
    • 11143 TT_M3HQ fails to compile with mbed-os master

    We have also:

    • Enabled MBED_TICKLESS on K22F, K64F, K66F, K82F, KL82Z, KW24D, KW41Z, MIMXRT1050 and HEXIWEAR
    • Added SPISlave, SPI_ASYNCH, I2CSlave, I2C_ASYNCH and RTC features to Toshiba’s TMPM46B
    • Added TRNG support for MIMXRT1050_EVK
    • Implemented Watchdog & Reset Reason for LPC1768 targets
    • Updated MCUXpresso SDK SPI drivers
    • Add ethernet support for NUCLEO_H743ZI
    • Added FlashIAP and USBDEVICE support for K22F

    There are also a number of other fixes and code improvements.

    Migration Guide

    This section lists specic changes which are part of this release and may
    need special attention.

    Allows placing KVStore and update images on separate storage devices - to internal and external flash

    11165

    Fixes TDB_INTERNAL configuration - makes possible to have the KVStore inside internal flash while update images are kept in an external storage.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    11137
    Add Arduino Nano 33 BLE target

    11063
    Add CC3220SF_Launchxl to Mbed OS

    Fixes and Changes

    11284
    K22: Add USBDEVICE support

    11282
    K22F: Add FlashIAP for storage

    11280
    Tweak stm_spi_api Coverity warning.

    11274
    Add ethernet support on NUCLEO_H743ZI board

    11273
    Fix Coverity uninitialized pointer field Thread.h

    11270
    Update mbed-coap to version 4.8.1

    11268
    Update MCUXpresso SDK SPI drivers

    11267
    NXP MCUXpresso: optimize us_ticker for LPC platforms

    11261
    MCUXpresso: Add TICKLESS support for LPC platforms

    11260
    Typo in USBSerial.h function prevents compilation

    11259
    FATFS / IAR compilation issue Pe029

    11255
    Update NVRAM image for target CY8CMOD-062S2-43012

    11250
    hal fhss timer: removed unnecessary and potentially unsafe memset

    11243
    Python3 fixes

    11241
    LoRaWAN: Terminate RX when receiving uplink messages

    11237
    Fix TT_M3HQ build problem

    11231
    Python3 fixes

    11226
    LPC1768 Watchdog & Reset Reason

    11222
    BLE: fix recursive call

    11216
    BLE: make advertising data parser handle early termination

    11215
    LPC1768: Make use of the other 32K of RAM

    11204
    BLE: add nonscannable connectable type

    11194
    Greentea testing wifi connect nonblocked

    11193
    FATFileSystem::stat() enabled for all compilers

    11189
    __cplusplus guard fixed pwmout_device.h for STM32 families

    11188
    MIMXRT1050_EVK: Add TRNG support

    11183
    M252KG: Fix kvstore-static_tests failing with OOM

    11180
    tweak atomic_test timeout

    11178
    ST: Watchdog: Fix timeout registers value calculation

    11172
    make watchdog kick reset test pass CI (LSI problem)

    11171
    Add Nuvoton M261 sub-family into arm_pack_manager

    11169
    TLSSocketWrapper::recvfrom sets SocketAddress output variable

    11167
    Fix lp ticker and common ticker tests

    11166
    Fix inclusion of test related directories by build tool

    11165
    Allows placing KVStore and update images on separate storage devices - to internal and external flash

    11157
    Relax us ticker frequency requirement + test update

    11137
    Add Arduino Nano 33 BLE target

    11127
    Fix ANALOGIN support for LPC55S69

    11118
    Add new features to Toshiba’s TMPM46B

    11116
    Define IC related pin names for the L-Tek FF_LPC546XX target

    11063
    Add CC3220SF_Launchxl to Mbed OS

    11021
    Nuvoton: Enlarge LPTICKER_DELAY_TICKS for safe

    11020
    Nuvoton: Enlarge required deep sleep latency

    10796
    NXP: Enable MBED_TICKLESS on various NXP platforms

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.13.4”.

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

  • mbed-os-5.13.3

    Downloads: zip tar.gz

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

    Summary

    In this release we have added the following targets: * CY8CKIT_062S2_43012

    We have fixed the following reported issues:

    • 10912 How to reset Cellular network interface?
    • 9850 GREENTEA can’t compile if DEVICE_SERIAL is not enabled

    We have also:

    • Added a USB device implementation for PSOC6
    • Added the missing serial_free() implementation for FUTURE_SEQUANA
    • Fixed rom start & size for CY8CKIT_062_WIFI_BT & CY8CPROTO_062_4343W
    • Added crash capture support to STM32F413 targets

    There are also a number of other fixes and code improvements.

    Migration Guide

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

    Known Issues

    In this release the release version block in mbed_version.h was not updated correctly and still points
    to mbed-os-5.13.2.

    Contents

    Ports for Upcoming Targets

    Fixes and Changes

    11179
    Zero initialise all NVStore&kvstore members

    11173
    Coverity and compilation warnings fixes

    11168
    Xpresso: qspi_write fix

    11163
    Bring back SPIF module-specific debug logs

    11162
    Add DNS servers from cellular PDP to nsapi

    11161
    Fix include path issues on NRF5x with Cordio

    11160
    Nuvoton: Remove dead code nu_delay_cycle_x4

    11151
    Fix PSoC 6 inout pins

    11150
    __cplusplus guard fixed pwmout_device.h for STM32F4

    11141
    freescale: fix i2c_byte_read function

    11139
    STM32F413 Crash Capture

    11138
    fix rom start & size for CY8CKIT_062_WIFI_BT & CY8CPROTO_062_4343W

    11132
    Fix MBED_ASSERT for UTs

    11131
    FUTURE_SEQUANA: Add missing serial_free() implementation

    11130
    Updated testcases

    11123
    NRF52 need to call TIMER_TASK_SHUTDOWN for current consumption

    11103
    STM32F7: Do not generate redundant IN tokens

    11101
    PSoC 6 I2C and SPI driver updates

    11086
    Mbed-os compile without DEVICE_SERIAL

    11080
    Add target for CY8CKIT_062S2_43012

    11071
    PSOC6: USB device implementation

    11066
    Cellular: Fix cellular statemachine stop and BG96 power up

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.13.3”.

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

  • mbed-os-5.13.2

    Downloads: zip tar.gz

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

    Summary

    In this release, we have made a number of quality improvements:

    • Updated Mbed TLS to 2.18.1 and Mbed Crypto to 1.1.1
    • Updated the MCUXpresso AnalogIn driver to pass the FPGA test shield tests
    • Enabled FPGA-based SPI testing on Silicon Labs targets
    • Added information about sectors to STM32F446ZE targets

    The following reported issues have also been fixed in this release:

    • Fixed the MCUXpresso LPC GPIO IRQ driver to not disable both rising and falling edges of the interrupt
    • Fixed SAADC resolution for nRF52-based targets
    • Fixed serial device IRQ infinite loop in STM devices when buffer size is greater than 256 bytes

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    Fixes and Changes

    11090
    Cellular: Fix to delete context just once

    11079
    NRF52840: enable TRNG in Nordic SDK config

    11078
    NRF52840: fix include path issues for ble pal cordio ll and gcc

    11077
    NRF52840: remove align instructions from gcc linker for ARM.extab exi

    11069
    add defines sectors for STM32F446ZE

    11064
    MCUXpresso: Fix the LPC GPIO IRQ driver

    11062
    Fix SAADC resolution for nRF52-based targets… again

    11060
    MCUXpresso: Update LPC spi driver

    11059
    GCC ARM: Increase develop and release debug level

    11052
    Update MCUXpresso AnalogIn driver for LPC devices

    11049
    Normalize line endings for IM880B startup files.

    11042
    Fixed serial_device IRQ infinite loop bug due to uint8_t overflowing in STM devices

    11035
    mbedtls: Update to Mbed TLS 2.18.1

    11028
    Fix FPGA CI Test Shield warnings

    11026
    Add a restricted peripheral list

    11022
    Fix watchdog tests failing with OOM

    11015
    Fix wrongly declared ADC pinout for EFM32GG11 STK3701A

    11014
    Increase ADC tolerance to 5% in FPGA-based tests

    11010
    FPGA SPI: ASYNC issue

    11008
    Enable FPGA-based SPI testing on Silicon Labs targets

    11007
    Fix PWM output on Silicon Labs targets for large pulsewidths

    11005
    FPGA PWM: wait 1 period before measurement

    11004
    FPGA I2C: correct init bloc number

    11003
    LPC MCUXpresso: Remove extra I2C transaction on byte write

    10994
    Add DEVICE_SERIAL_FC guards to serial HAL API

    10963
    PSA TESTS: Include mbedtls/config.h before evaluating MBEDTLS_PSA_CRYPTO_C

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.13.2”.

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

  • mbed-os-5.13.1

    Downloads: zip tar.gz

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

    Summary

    In this release we have added target support for:
    MTB ublox ODIN W2 and NUCLEO-F413ZH.

    We have: * Introduced a watchdog API to detect system malfunctions and reset the system to recover from them * Introduced an API to detect the system reset reason to compliment the watchdog functionality * Updated ST CUBE for the STM32F0 series to v1.9.0. This brings:
    * Current ST Cube version in MBED to V1.7.0
    * CMSIS part update from 2.3.1 to 2.3.3
    * HAL part update from 1.5.0 to 1.7.0 * Replaced our BLE Nordic PAL client implementation. Issues in the GattClient logic have been fixed and previously missing GAT procedures have been implemented:
    * Discover Primary Service by Service UUID
    * Find Included Service
    * Read Using Characteristic UUID
    * Read Multiple Characteristics
    * Queue Prepare Write
    * Execute Write * Added Flash support for STM32F0, STM32F1 and STM32F3 devices * Enabled tickless mode on nRF52840

    Important changes are:

    • 10997 VSCode exporter now uses executables that are installed into the system PATH instead of absolute paths to the compiler executables.
    • 10967 ESP8266 driver fix to work with older firmware version of ESP8266 module.
    • 10938 K64F, STM32F429: IAR icf linker scripts modified to use dynamic heap allocation of all available memory.
    • 10879 PSA Crypto APIs are now available on all Mbed OS targets.
    • 10857 Watchdog API:
    • Added new HAL API: watchdog and reset_reason
    • Added new drivers: ResetReason and Watchdog
    • 10824 STM32: pwmout_write: configure channel only when not already enabled
    • 10794 LWIP DNS servers setting/getting fixed.
    • 10776 UDPSOCKET_ECHOTEST_NONBLOCK performance improvement.
    • 10757 Add support I2C 3 for target EFM32G11
    • 10701 STM: replace C++ low power ticker wrapper with a low level wrapper to remove the latency limitation of the LP ticker wrapper.
    • 10665 Add hardcoded Echo server defaults for Greentea socket tests.
    • 10609 wait_us has been optimized for certain platforms - see us_ticker_api.h for the details of enabling optimizations on other targets. It can be optimized further if the option target.init-us-ticker-at-boot is enabled.

    There are also a number of bug fixes and test enhancements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    10972
    add new target IM880B

    10884
    NUCLEO_H743ZI2 new target support

    10633
    Add new features to Toshiba’s TMPM4G9

    10629
    Add support for the Embedded Planet Agora target

    Fixes and Changes

    11027
    PSOC6: add LwIP configuration for Cypress boards

    11013
    Revert “K64F, STM32F429: IAR linker scripts dynamic heap fix”

    11012
    Remove FPGA analog out test

    11011
    Allow re-initialising an I2C peripheral on Silicon Labs targets

    11002
    LPC546XX: Add pins to LPCXpresso restricted list

    10997
    Removing absolute paths to compiler executables

    10990
    Fix doxygen_options.json for ResetReason

    10989
    SPI FPGA test extension + SPI driver fix (K64F)

    10984
    Skip form factor pins marked as NC

    10982
    STM32 LPUART minor update for easy maintenance

    10977
    Fix out-of-bounds array access in tests-mbedmicro-rtos-mbed-malloc

    10976
    Fix error in tests-mbed_drivers-ticker when LED2 is not connected

    10975
    Restrict FPGA tests to Arduino form factor

    10972
    add new target IM880B

    10968
    Add FLASHIAP for MTB_STM_S2LP

    10967
    ESP8266: fix driver’s support AT firmware version

    10966
    Add RZ/A1 settings to arm_package_manager

    10964
    Add newline after mbed error so greentea shows it

    10954
    Watchdog: Clean up the doxygen comments

    10950
    Enable split heap in K64F/K66F devices

    10948
    BLE: fix flex word

    10944
    Update I2CTester for fpga-ci-test-shield

    10939
    Fix SAADC resolution for nRF52-based targets

    10938
    K64F, STM32F429: IAR linker scripts dynamic heap fix

    10934
    Fix: Low frequency clock will now selected by given “lf_clock_src” setting.

    10933
    Nordic NRF52832 cache ON

    10932
    Internal delay loop code alignment to 16

    10928
    STM: Correct macro test in us_ticker_defines.h

    10925
    Doubled ATHandler’s BUFF_SIZE

    10920
    Kinetis MCUXpresso: Update the clock drivers

    10910
    Increase dns-response-wait-time

    10908
    Fix netconn_recv_tcp_pbuf ARMC6 linker error

    10896
    microlib support: Specify compiler version unable to build without the fix

    10894
    Add adjust-check-config script to mbedtls importer

    10893
    cellular: fix file permission

    10888
    Remove macro MBEDTLS_PSA_CRYPTO_C from PSA targets

    10884
    NUCLEO_H743ZI2 new target support

    10881
    Fix Nordic/Mbed Critical Section API Inconsistency (In Builds w/o Softdevice)

    10879
    PSA Crypto for all targets

    10874
    Add new features to Toshiba’s TMPM3H6

    10873
    Add new features to Toshiba’s TMPM3HQ

    10870
    HAL I2C: adds missing DEVICE_I2C guards

    10869
    LPC55S69: fix cosFactor data size in header file

    10867
    LoRaPHY: Pass frequency set in rx_config() to caller

    10864
    TLSSocket: print certificate info only when tracing is enabled

    10861
    Make the sys_arch_protect() mutex be recursive.

    10859
    Removing I2C and SPI pin names in SDP-K1 PinNames.h file.

    10858
    Check Cellular Properties have been set

    10857
    Bring watchdog feature branch into master

    10856
    STM32: enable CRC for all L0/L4/F7

    10855
    Nuvoton: Fix idle thread stack underflow in debug build

    10846
    MbedCRC doxygen fixes

    10845
    Wrong timeout value in greentea tests

    10842
    Cellular: Stack type fixes

    10840
    Cellular: cellular socket flags updated

    10835
    M23: Fix compile error with mbed fault handler

    10834
    Fixed UDP sendto if IP version not match

    10833
    fix IAR compile error on fastmodels

    10826
    Add STM32H743ZI to IAR export definition

    10825
    Cellular: Fix PLMN debug trace for IAR

    10824
    STM32: pwmout_write: configure channel only when not already enabled

    10823
    Nuvoton: Fix channel release in analogout_free()

    10820
    Bring FPGA-Test-Shield tests into Mbed-os master.

    10812
    Cellular: fix athandler to use correct timeout in case of multiple urc’s

    10811
    socket close callback

    10808
    Cellular: Added handling for BG96 network PDP context deactivation

    10807
    NSAPI/lwIP: Use netconn_recv_tcp_pbuf

    10804
    TARGET_STM: SPI: update pull up config depending on clk polarity

    10798
    TARGET_TT:Add GPIO INT pin with PT1

    10795
    FastModel: trun off MPU for FVP_MPS2_M0P

    10794
    LWIP DNS servers setting/getting fixed.

    10793
    STM32: remove compilation warnings

    10791
    bootloader: Fix LPC55S69 bootloader segmentation

    10790
    STM32H7 enable LPUART

    10782
    GR_LYCHEE,RZ_A1H,VK_RZ_A1H: Fix greentea test failure with ARMC6

    10781
    Include TICKLESS stack size increase even without LPTICKER_DELAY_TICKS

    10779
    Add support for SPIF of size bigger than 16Mbyte

    10776
    UDPSOCKET_ECHOTEST_NONBLOCK performance improvement.

    10775
    STM32H7: refactor TARGET directory

    10774
    Fix serial IRQ handling

    10772
    Workarounds for GAP advertising issues on Cordio

    10769
    PSOC6: add SOFTFP to standard component list

    10767
    usb_device-msd test: fix powershell unmount script issue

    10762
    Disable only time drifting test cases and fix GREENTEA_SETUP() call in tests

    10761
    Fix networkinterface non-blocking status test

    10758
    Move Seeed ARCH_MAX to TARGET_STM32F407xE MCU

    10757
    Add support I2C 3 for target EFM32G11

    10756
    Cleaned up trace log SPIF Block Device

    10755
    hal_qspi_test: undo buggy code

    10752
    STM32L0: Add DEVICE_SPI_COUNT to DISCO_L072CZ_LRWAN1 + MTB_MURATA_ABZ

    10751
    TARGET_TT:Setting wisely pin mode for TT_M3HQ.

    10749
    Examples: enable more tests for examples

    10746
    PSA protected storage: Add encrypt & RB protect flags by default to set.

    10744
    Fixes in Sys Timer test

    10742
    CThunk: Fix assertion when CThunk object is destroyed

    10739
    M487: Fix wait_ns test failed

    10708
    TARGET_STM: SPI: add pulse on master transmissions

    10707
    Add C++14 sized delete operators

    10706
    mem pool size: Fix calculation of memory pool size for portability

    10705
    Atomics: GCC fix for M23 (ARMv8-M baseline)

    10704
    microlib support: Fix build with Arm Compiler 6 and MicroLib

    10702
    Add extra idle debug stack size in case all STATS are enabled

    10701
    STM: replace C++ low power ticker wrapper with a low level wrapper

    10700
    Update HAL Sleep manager test to cope with STM32 LPTIM HW

    10698
    timeout_tests: do not call sleep from test thread

    10697
    STM32H7: flash issue while erasing sector in Bank 1

    10696
    Cellular: Fix socket connect on UBLOX_AT driver

    10695
    GD32_F450ZI : Add bootloader support

    10692
    PSOC6: initial integration of Cypress HAL

    10689
    nRF52840 USB Device Implementation

    10688
    Add a top level README file for USB tests

    10686
    MAX32630.sct fix

    10680
    Add compilation flags to rf_configuration

    10676
    STM32: common cmsis.h and device.h files

    10674
    TARGET_TT: adding switches to PinNames

    10672
    Fix typos in the FPGA CI Test Shield component

    10665
    Add hardcoded Echo server defaults for Greentea socket tests.

    10663
    PSOC6: move cmsis.h and device.h out from psoc6pdl directory

    10656
    Cellular: AT_CellularContext disconnect in non-blocking mode

    10654
    USBHostMSD: Implement BlockDevice get_type()

    10653
    STM USBHALHost: Fix NULL pointer dereference

    10651
    USBHost: Wait for device to implement SET ADDRESS

    10647
    Fix LWIP warning issues found by Coverity scan

    10633
    Add new features to Toshiba’s TMPM4G9

    10629
    Add support for the Embedded Planet Agora target

    10619
    Fastmodel: enable flashIAP and kvstore

    10609
    wait_us optimization

    10588
    Cell bg96 power

    10536
    Changes required by the ST low power ticker wrapper.

    10501
    Remove excessive info and debug prints in SPIF driver

    10484
    Cellular: Telit ME910 driver

    10466
    STM32H7: WATCHDOG and RESET_REASON support

    10437
    PSA: Exclude mbed-hal-spm test for M23 target

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.13.1”.

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

  • mbed-os-5.13.0

    Downloads: zip tar.gz

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

    Summary

    As IoT devices proliferate, our focus is shifting toward optimizing Arm Mbed OS to best address the use cases our customers face. In 5.13, we have reduced the number of new features we’re delivering and have instead concentrated on specific optimizations of existing features that benefit our customers.

    Migration guide

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

    Nanostack release for Mbed OS 5.13

    10624

    This release contains updates for the Mesh protocols:

    • Stability improvements and bug fixes to Wi-SUN and Thread protocol.
    • EAPOL (certificate-based network authentication) enabled to Wi-SUN mesh protocol.

    Notes about Mesh stack maturity:

    • This version of Wi-SUN stack is interoperable only with itself (development work still ongoing).
    • Wi-SUN protocol is tested using functional protocol testing suites.
    • Wi-SUN nonfunctional testing is performed using 40 devices connected to single Wi-SUN network.
    • Thread stack is verified using protocol testing suite that includes certification test suite.

    DataFlash: Change erase size to pages to reduce memory use

    10478

    Previously the DataFlash driver exposed the minimum erase size as blocks, which are typically 4 K. DataFlash, however, supports page erases as small as 256 B.

    This change implements page erases, which lower RAM requirements for buffers.

    Because this has no relation to any file system and lowers the minimum erase size, it should not cause issues with devices with existing data stored on them. However, a future format of FATFS may end up with smaller sectors by default, which would further reduce RAM requirements.

    Enterprise_mode + wifi_configuraiton_api: update ODIN drivers to v3.7.0 RC1

    10454

    A private API is provided for ODIN_W2 target against enterprise mode.

    nsapi_error_t connect(
    const char          *ssid,
    const char          *pass,
    nsapi_security_t  security,
    auth_cert_s         *cert_handle,
    const char          *username = NULL,
    const char          *user_pswd = NULL,
    uint8_t               channel = 0);
    

    The application is required to pass a certificate (CA cert or client cert) and key (private key) in PEM format. You are required to pass those certificates through cert_handle auth_cert_s. An appropriate security should be selected: either NSAPI_SECURITY_EAP_TLS or NSAPI_SECURITY_PEAP.

    For example:

    static auth_cert_s   certificates;
    _wifi = new OdinWiFiInterface(true);
    #ifdef EAP_TLS_TESTING
    certificates.client_cert = &cert_data[0];
    certificates.client_prvt_key = &cert_data_key[0];
    certificates.ca_cert = NULL;
    #elif defined(PEAP_TESTING)
    certificates.client_cert = NULL;
    certificates.client_prvt_key = NULL;
    certificates.ca_cert = &ca_cert_data[0];
    #endif
    _wifi->connect(ssid, pass, security, &certificates, _peap_username, _peap_user_pass, channel);
    

    Configuration API

    virtual unsigned int get_config(void *setting);
    virtual void set_config(void *setting, cb_uint32 value);
    

    A description of parameters is available in https://github.com/u-blox/mbed-os/blob/0dda8c447c644cb8ee5063099ad09226a6caf746/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/cb_wlan_driver_config.h

    Cellular: Make AT_CellularContext::get_context() virtual

    10442

    Makes AT_CellularContext::get_context() virtual - overwrite-able by the individual cell module driver authors (similar to what is available for other AT_CellularContext functions, like do_connect()).

    Set compilers to C++14 and C11

    10427

    GCC and Arm toolchain profiles now select C++14 and C11, matching IAR, and these are the tested profiles. The code base in this release should still work if profiles are set to C++98 and C99, though this is no longer tested.

    Migration notes

    As the default profiles now select C++14 and C11 for GCC and Arm toolchains, some applications may fail to compile because they use constructs that were valid in C++98 but are not in C++14.

    IAR 8 has always operated in C++14/C11 mode, so there are no new changes for IAR users who switched to IAR 8 for Mbed OS 5.12, but these notes apply to users migrating from older Mbed OS versions that used IAR 7.

    Common compatibility issues
    • A space is required when a macro follows a string literal, for example in C99-style printf formats:

    C++ uint32_t val; printf("val = %"PRIu32, val); // Not valid in C++11 printf("val = %" PRIu32, val); // OK

    Without the space, C++11 interprets it as being a request for a user-defined “PRIu32-type” string literal.

    • Initializer lists cannot have implicit narrowing conversions:

    C++ uint32_t x; uint8_t array1[] = { x }; // Not valid in C++11 uint8_t array2[] = { 0xffff }; // Not valid in C++11 uint8_t array3[] = { x & 0xff }; // Not valid in C++11 uint8_t array4[] = { (uint8_t) x }; // OK uint8_t array5[] = { static_cast<uint8_t>(x) }; // OK uint8_t array6[] = { 0xffff & 0xff }; // OK (because it's a compile-time constant that fits)

    These changes should be easy to make to existing code bases. You can find a guide to other possible breakages in C++11 at https://stackoverflow.com/questions/6399615/what-breaking-changes-are-introduced-in-c11. C++14 and C11 can cause a few extra issues.

    Future compatibility issues

    The register keyword is deprecated in C++14 and is removed in C++17. Some compilers issue warnings for register use in C++14, but this has been temporarily suppressed due to the prevalence of the keyword in target code. C++ code should be updated to remove the keyword as soon as possible: The warning will be reactivated after Mbed OS itself no longer triggers it.

    Fallback

    Mbed OS 5.13 releases should still work if compiled as C++98/C99, though this is not tested. If you have serious application compatibility issues, you should be able to switch the build profile back to the earlier language version as a temporary measure. This is likely to no longer be the case for Mbed OS 5.14.

    Arm Compiler 5

    Arm Compiler 5 has limited C++11 support and no C++14 or C11 support, and Arm Compiler 5 is no longer tested or officially supported. Nevertheless, Arm Compiler 5 builds have deliberately not been broken; the Arm Compiler 5 build profiles select its C++11 mode in an attempt to match the other toolchains as much as possible, but the limited support may itself cause issues. Attempts to check __cplusplus >= 201103 may activate code Arm Compiler 5 cannot actually compile. Like the other toolchains, the profile can be switched back to C++98 if necessary for now.

    Continued Arm Compiler 5 support will limit the adoption of C++11 and C++14 features in the Mbed OS code base, so it is possible Arm Compiler 5 builds may stop working in an upcoming release.

    Nanostack: translate errors from sendmsg

    10410

    Nanostack send calls return more accurate information in case of errors.

    Update CMSIS to 5.5.1

    10366

    CMSIS updated from 5.4.0 to 5.5.1.

    KVStore: Support external storage out of mbed-os tree

    10355

    Support external storage out of mbed-os tree in KVStore. To enable it, you need to:

    1. Configure KVStore configuration parameter blockdevice to other.
    2. Override get_other_blockdevice() to provide block device out of mbed-os tree.

    C++ BlockDevice *get_other_blockdevice();

    Update to LWIP 2.1.2

    10353

    The latest LWIP 2.1.2 released is now integrated with Mbed OS. The new LWIP release has improvements in following areas:

    -IP4 routing.
    -IP6 scopes and zones.
    -DHCP6.
    -ND6.
    -TCP.
    -Sockets.
    -Binding network interfaces to sockets.

    The LWIP changelog contains detailed changes

    Mbed OS dedicated patches were applied to the new LWIP version.

    Multihoming was refactored due to the new socket-interface bind implementation.

    Add option to disable default UART console

    10328

    A new configuration option, target.console-uart, allows default serial console functionality to be deactivated, either because the target has serial but no console, or to save power/memory by not using the console.

    Remove FEATURE_STORAGE and all underlying deprecated features

    10258

    Remove FEATURE_STORAGE and all underlying deprecated features: cfstore, flash-journal and storage-volume-manager.

    Mail/MemoryPool: blocking alloc

    10225

    Mail and MemoryPool now provide blocking forms of alloc calls that can sleep the thread until a memory block is available.

    Cellular: CellularContext must provide access to CellularDevice

    10210

    When using NetworkInterface::get_default_instance(), the application gets handle to CellularInterface, which is actually CellularContext derived from CellularInterface. The application also needs to handle CellularDevice to open other interfaces.

    Assembler atomics

    10147

    We have:

    • Separated atomic APIs into mbed_atomic.h from mbed_critical.h. Code not including mbed.h may need to check their includes.
    • Added atomic fetch_add, fetch_sub, fetch_and, fetch_or, fetch_xor and compare_exchange_weak operations.
    • Added explicit memory ordering specification. (Don’t use this unless you are familiar with the C++11 memory model.)
    • Added freestanding atomic function templates.

    Cellular: retry logic for CellularContext connect

    10056

    Add retry logic for CellularContext connect last phase: activating pdp context/open ppp channel. Retry logic is the same as in CellularStateMachine.

    Enable post build bootloader merging in uvision

    10021

    Offline projects that use the managed bootloader mode (as is the case for all Pelion Device Management projects using the update capability) should now be able to export and debug properly in uVision. A post build script is now enabled, which takes care of the header generation, binary merging and loading of the correct symbols for your application. This only allows debugging the application, not the bootloader.

    Note: This feature is only enabled when exporting offline with Mbed CLI. This is because the post build script has a dependency on the Mbed OS tools and their Python dependencies. This means projects exported from the Online Compiler can’t use this capability.

    Use LP tickers for waiting in no-RTOS builds when available

    9960

    For bare metal builds, use the lp_ticker for calls to wait_ms instead of us ticker if lp_ticker is available.

    ESP8266: treats Wi-Fi scan results as out-of-band data; new API to adjusting Wi-Fi scan settings

    9955

    ESP8266: new Wi-Fi scan API for active and passive mode. Making channel scan time configurable

    GCC - Add support to split heap across 2-RAM banks

    9944

    Mbed heap split into 2-RAM banks is added, which can be enabled by compiling source with MBED_SPLIT_HEAP macro. You should add linker symbols __mbed_sbrk_start __mbed_krbs_start __mbed_sbrk_start_0 __mbed_krbs_start_0 in GCC linker script to state start and end of each HEAP region.

    ESP8266: Country code API

    9927

    ESP8266Interface: new API to configure country code and channels to be used.

    Default to Cordio BLE stack for NRF52* targets

    10709

    Starting with mbed-os 5.13 and the introduction of Nordic SDK V15, Nordic SoftDevice Bluetooth stack is not supported. Bluetooth remains supported with the help of Arm’s Cordio stack.

    Known issues

    We publish Mbed OS as a collection of modules on GitHub. Issues are raised in 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, please 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, so use it at your own responsibility.
    • Reported issue: Issue reported by a customer in an 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: 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: There are no known workarounds.
    • 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.

    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: There are no known workarounds.
    • Reported issue: https://github.com/ARMmbed/mbed-os/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-and-drop programming.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/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: There are no known workarounds.
    • Reported issue: https://github.com/ARMmbed/mbed-os/issues/5640.
    • 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: There are no known workarounds.
    • Reported issue: https://github.com/ARMmbed/mbed-os/issues/8081.
    • Priority: Major.

    NVStore and TDBStore objects can collide in internal flash

    • Description: NVStore and TDBStore are classes implementing storage solutions. By default, they allocate the last two sectors in internal flash. If you use both, a runtime error happens. NVStore is deprecated, and you should use TDBStore instead.
    • Workaround: Use TDBStore instead of NVStore.
    • Priority: Minor.

    SPI failures on CY8CKIT_062_WIFI_BT

    • Description: When reading from an SD card connected with SPI, sometimes we see that read operation leave some bytes unchanged in the buffer without reporting the error. The root cause is under investigation.
    • Workaround: https://github.com/ARMmbed/mbed-os/tree/feature-SD-verify.
    • Reported issue: IOTSTOR-815.
    • Priority: Major.

    UART flow control does not work on Cypress CY8CKIT_062_WIFI_BT_PSA

    • Description: UART hardware flow control: When connecting a Wi-Fi shield with UART, flow control does not work. The root cause is under investigation.
    • Workaround: There are no known workarounds.
    • Reported issue: IOTHAL-481.
    • Priority: Major.

    Wi-SUN static IPv6 backbone configuration in nanostack border router is not working

    • Description: Static IPv6 backbone configuration is not working in border router if Wi-SUN mesh network is used and will cause hard fault.
    • Workaround: Use dynamic configuration in border router with functional IPv6 backend.
    • Reported issue: IOTTHD-3591.
    • 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 https://github.com/ARMmbed/mbed-os/pull/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.

    Mbed_platform_wait_ns fails on NRF52* when compiled with Arm Compiler 6

    • Description: Under some circumstances, the wait_ns test will fail when compiled with Arm Compiler 6 and run on NRF52_DK. The test results seem highly dependent on compilation options and what is put in the binary. The test always succeeds when -O0 or -O2 is used. It fails only with -Os.
    • Workaround: Compile with a different optimization option.
    • Reported issue: https://github.com/ARMmbed/mbed-os/issues/10849.
    • Priority: Critical.

    Testing and improvements

    GitHub pull request testing speed up

    We have improved our internal Jenkins testing scripts to speed up pull request tests. The purpose is to test only what is needed. The three main improvements are:

    • Algorithms that select needed checks based on code change. In practice, this is most visible in pull requests that contain only README changes. For those changes, no testing is needed at all.
    • An algorithm that ignores greentea tests that did not change and passed previously. This reduces >90% of greentea test duplication, which was the bottleneck of the testing pipeline.
    • Additional hardware, so we can run more hardware tests in parallel.

    Based on these big changes and many smaller improvements, automated tests are not the bottleneck for the pull request handling process.

    Nightly test setup

    We have introduced an additional test phase that runs every night. In this phase, we have more tests and hardware coverage. We will introduce new hardware first in nightly tests and later in pull request tests. This makes pull request testing faster and more robust.

    We currently use this setup internally but will report relevant findings to the Partners and community. The intention is to make this more visible to the external community.

    Test coverage metrics

    We are moving away from calculating the number of tests executed and number of build binaries. These metrics are no longer as relevant because of many optimizations in the test flow.

    Below is the number of test cases for each of the test tools. The change since 5.12.0 in the parentheses:

    • Unit tests: 582 (+1), line coverage: 87% (coverage measure only files which contain some tests).
    • Greentea: 1281 (-155), line coverage: 36% (coverage is calculated with Fast Models which cannot execute all test at the moment).
    • Icetea: 42 (+0).

    Contents

    Ports for upcoming targets

    9221
    Add ARM_MUSCA_A1 target

    Fixes and changes

    10675
    Update Mbed TLS 2.18.0 rc1

    10666
    Bring Nordic SDK v15 update to master

    10646
    Fix deprecation notice for ble::Gap::getState()

    10640
    BLE HealthThermometerService: correct GATT characteristics

    10639
    Cellular: Preventing Socket ID assignment until actual socket creation at the modem

    10638
    Fix AdvertisingDataBuilder UUID insertion bug

    10636
    +UPSND sent to poll activation status

    10635
    BLE: Deprecate UARTService and suppress compiler warnings

    10634
    BLE: Fix deprecated API calls in battery and thermometer services

    10631
    Update cube h7 to 1.4.0

    10627
    Remove targets FUTURE_SEQUANA_M0_PSA and FUTURE_SEQUANA_PSA

    10625
    TESTS: Update examples.json to enable testing

    10624
    Nanostack release for Mbed OS 5.13

    10623
    Cellular: Fix unit test valgrind warnings

    10621
    Fix usb_device-msd test Python dependencies

    10620
    Update mbed-coap to version 4.8.0

    10617
    Change W7500 GPIO driver

    10616
    Fix bug Operator new[] out of memory

    10615
    This allows CPP application to use the functions from cc.h

    10614
    Include mbed-greentea==1.7.1 for mbed-os-tools==0.0.8

    10606
    PSA release script update: Add toolchain option

    10605
    K66F: Update SAI and SAI EDMA driver to SDK 2.5

    10602
    Runtime DNS server addition implement

    10598
    Add Wi-Sun certificate options to mesh API configuration JSON

    10597
    SysTimer should be buildable without lp ticker

    10596
    Introduce Semaphore::acquire methods

    10594
    Arm Compiler 5: Fix mbed_atomic_impl.h assembly

    10593
    Cellular: Fix flow control pin configs for BC95 and Gemalto targets

    10591
    M2351: Fix serial sync error in SPDMC test

    10587
    GR_LYCHEE,RZ_A1H,VK_RZ_A1H: Fix greentea test failure with Arm Compiler 6

    10582
    Add LED4 definition in PinNames.h of SDP-K1 board

    10581
    BLE: Management of Tx path on Cordio

    10580
    BLE: Put the acl buffer size in config

    10557
    Cellular: Initialize CellularContext member variables in correct class

    10554
    Cellular: Fix compile warnings from cellular

    10553
    Add semihosting and SWO examples to mbed_override_console()

    10540
    Check in files for the FPGA CI test shield

    10521
    TEST: Update Python script to enable examples smoke test

    10511
    Cellular: Fix setting of statemachine timeout

    10505
    Improve importer.py

    10489
    gpio_api.h: Clarify desired behavior for NC

    10482
    Allow NC pins to be instantiated on Silicon Labs platforms

    10478
    DataFlash: Change erase size to pages to reduce memory usage

    10476
    LWIP TCP socket close - disconnecting fix

    10475
    Implement nanostack eventloop tick timer

    10473
    Add exception case for IPv6 only mode of BG96

    10456
    LWIP 2.1.2 tcpip thread stack overflow fix

    10454
    Enterprise_mode_+_wifi_configuraiton_api: update ODIN drivers to v3.7.0 RC1

    10442
    Cellular: Make AT_CellularContext::get_context() virtual

    10427
    Set compilers to C++14 and C11

    10410
    Nanostack: Translate errors from sendmsg

    10402
    Cellular: Send disconnect to correct ctx

    10398
    Clean up Arm toolchains from get_mbed_official_release()

    10366
    Update CMSIS to 5.5.1

    10355
    KVStore: Support external storage out of mbed-os tree

    10353
    Update to LWIP 2.1.2

    10328
    Add option to disable default UART console

    10324
    Cellular: New state machine state and better info from stm

    10322
    GCC: remove -fno-builtin option

    10258
    Remove FEATURE_STORAGE and all underlying deprecated features

    10254
    Remove unused tools modules and document the used ones

    10244
    Add the INTERRUPTIN compilation guard for ESP8266

    10225
    Mail/MemoryPool: blocking alloc

    10210
    Cellular: CellularContext must provide access to CellularDevice

    10162
    BLE - Notify HCI driver of host stack inactivity

    10151
    Sleep manager: Optimize counter

    10150
    Timer: Remove hard-coded lp_ticker knowledge

    10147
    Assembler atomics

    10146
    CellularBase -> CellularInterface tidy

    10056
    Cellular: Retry logic for CellularContext connect

    10053
    Cellular: Make CellularStateMachine timeouts configurable

    10043
    Add vprintf to Rawserial

    10021
    Enable post build bootloader merging in uVision

    9960
    Use LP tickers for waiting in no-RTOS builds when available

    9955
    ESP8266: Treats Wi-Fi scan results as out-of-band data; new API to adjust Wi-Fi scan settings

    9944
    GCC - Add support to split heap across 2-RAM banks

    9927
    ESP8266: Country code API

    9476
    Asynchronous Serial API fixes and refactoring

    9443
    Add USBCDC_ECM class

    9221
    Add ARM_MUSCA_A1 target

    9111
    CAN: Fix signness mismatch in CANMessage constructors

    10747
    Cypress: Fix issue #10613

    10740
    ARMC6: Suppress “register deprecated” warning

    10733
    Fix NRF52 memory pools

    10722
    mbed-crypto: Automatically enable entropy injection

    10716
    Update requirement for manifest-tool

    10809
    ns_list: avoid UINT_FAST8_MAX (fix Arm Compiler 5 builds)

    10805
    Fix Arm Compiler 5 compilation

    10802
    Update to Mbed TLS 2.18.0rc3

    10786
    Re-enable complilation for Wi-Fi and nanostack examples

    10770
    mbed-crypto: Update to Mbed Crypto 1.1.0d1

    10753
    Fix NRF52 enabled UART count and enable UART0/1

    10709
    Default to Cordio BLE stack for NRF52* targets

    10875
    Cellular: Remove IPv6 and IPv4v6 as supported properties for BG96

    10764
    BG96 IPv6 support and socket ID fix for BG96 and M26

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.13.0”.

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

  • mbed-os-5.12.4

    Downloads: zip tar.gz

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

    Summary

    No new targets being added in this release.

    Important changes are:

    10520 Permit non-TrustZone ARMv8 build

    • Non-TrustZone ARMv8 targets now supported (core must be set to Cortex-M33 rather than Cortex-M33-NS).

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    Fixes and Changes

    10579
    Cellular: fix Quectel BG96 missing unlock at socket_connect

    10578
    Modify PinName file to keep correspondence with spec

    10575
    BLE: fix CCC callback not being called when writing to a CCC

    10573
    Change “aplication” to “application”

    10570
    STM32 astyle updates

    10544
    Py3 fixes for test scripts

    10543
    Cellular: Increase receiving timeout for UDP echo non-blocking test

    10541
    Adding QSPI support to target RHOMBIO_L476DMW1K

    10539
    Add mbed studio flag during assembly

    10538
    Enabled crash reporting for DISCO_F407VG target

    10534
    NANO130: Fix optimization error with NVIC_SetVector/NVIC_GetVector on ARMC6

    10530
    C027 Fix for modemOn flag

    10529
    Cellular: Target name change for ublox cellular instance

    10527
    Nuvoton: Add COMPONENT_FLASHIAP support

    10524
    TRAVIS: turn off upload python test code coverage

    10523
    Removing support of FLASHIAP in general_filesystem tests

    10520
    Permit non-TrustZone ARMv8 build

    10512
    requirements: update urllib3 to 1.24.2

    10500
    This removes many const char* warnings related with LWIP_ASSERT()

    10496
    Allow application to override LWIP_RAW

    10483
    PSOC6: move mbed_sdk_init to mbed_overrides.c

    10480
    SPI: Prime asynch transaction buffer on construction

    10479
    STM32WB: Update Flash size

    10468
    Add support for CAN to SiLabs targets

    10287
    Enable MTS_DRAGONFLY_F411RE to register with Pelion

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.12.4”.

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

  • mbed-os-5.12.3

    Downloads: zip tar.gz

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

    Summary

    In this release we have fixed the following reported issues:

    • 10498 FRDM-K66F Missing ADC pins mapping
    • 10400 No flow-control on TARGET_LPC55S69

    We have also:

    • Added support for QSPI to Cypress targets
    • Re-added IAR support for MIMXRT1050
    • Updated the wifi driver for rda target UNO_91H
    • Activated FLASHIAP for STM32F303RE

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    Fixes and Changes

    10525
    Fix ‘LICENSE’ file 404 link error in README.md

    10516
    32 Byte key derivation may fail with a 16 Byte ROT key

    10513
    Fix ARMC6 fpu detection for M33 core

    10509
    LPC55S69: Add support for UART hardware flow control

    10507
    PSA: mbedSPM correct SPM initialization order

    10506
    Add missing ADC pins mapping for FRMD-K66F (#10498)

    10502
    PSA: TFM import

    10493
    STM32F303RE: Activate FLASHIAP

    10492
    Remove sleep lock/unlock from Silicon Labs HAL implementation

    10490
    Cellular: Added UT for case when read_string buff size hits middle of

    10488
    Cellular: Add description for CellularProperty

    10485
    NVStore.cpp compiler warning removal (os_ret)

    10477
    Wi-SUN: adds greentea test config

    10474
    fix usb msd test python dependencies

    10472
    Fix USB control transfers using small size

    10471
    SDP-K1: Updates to target code

    10465
    Cellular: fix calls to ATHandler::read_string(…) give correct size

    10463
    Cellular: Add WISE-1570 handling for socket closing URC

    10462
    Nanostack: release connect_semaphore only when it is pending

    10461
    Update wifi driver for rda target UNO_91H

    10453
    Cellular: Minor doc update for CellualrSocket object

    10451
    MIMXRT1050: Readd IAR support

    10449
    Configure UNO_91H to support PDMC compile

    10448
    Size should be calculate after confirm the final start address

    10443
    Fix for downloading the wrong binary in the online compiler

    10438
    PSA: Pass TFM_LVL macro to linker files

    10436
    NUC472: Workaround for unknown error with power-down

    10435
    Add support for QSPI to Cypress Boards

    10434
    Nanostack network handle does not always call status cb for BOOTSTRAP events

    10426
    UDPSOCKET_ECHOTEST fails if a packet of every size was not sent

    10401
    NUC472: Support crash capture for no-XRAM configuration

    10390
    Correct some CPU selections in tools

    10364
    Refactor PSA code generators

    10303
    STM32L4xx: IAR memory maps updated

    10078
    Fix heap init error in rtos-less code

    10018
    STM: Update linker script for using SRAM1 and SRAM2 in ARM

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.12.3”.

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

  • mbed-os-5.12.2

    Downloads: zip tar.gz

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

    Summary

    In this release we have added target support for:
    ARM_MPS2_M3, ARM_MPS2_M4 and ARM_MPS2_M7.

    The following reported issues have been fixed: * 8411 VSCode exporter with zip option: .vscode directory not included in zipfile * 875 mbed complie can’t find ARM complier 6 in the PATH with quotes * 10049 DISCO_F746NG QSPI WriteEnable might Fail on IAR8 * 9578 Mbed-OS build fails for FUTURE_SEQUANA/family of targets with ARM Compiler 6.11 * 10107 OS2 ARM build is no more possible * 10109 map file extraction is failing with GCC and M33 * 9069 M487: Crash report test failed in IAR * 10352 ATHandler.cpp malloc undefined * 10242 Mbed error info not printed with mbed-os-5.12.0 * 10344 Printing fault information fails if console is not initialized * 9106 Wait() function causes system to hang on STM32F0(91RC) * 5467 Export: uvision5 + STM32 does not flash * 10360 Inconsistent Licensing Information

    We have:

    • enabled low-power ticker and sleep HAL API for FastModels.
    • provided a basic driver for Quectel EC25/EC21
    • reactivated the data cache for i.MX RT1050
    • updated mbed-cloud-sdk to 2.0.6

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    9870
    Re-enable MPS2 platform

    Fixes and Changes

    10421
    Update Jinja2 for CVE-2019-10906 fix

    10420
    Updated mbed-cloud-sdk to 2.0.6

    10419
    FUTURE_SEQUANA: Clean up “unused variable” compiler warnings

    10418
    CordioGattServer: reset settings variable before ANDing the properties to it

    10417
    suppress coverity error

    10415
    rtos/drivers: add license information

    10414
    ExhaustibleBD: licensed under Apache 2.0

    10412
    FUTURE_SEQUANA: Fix flash_api bug introduced with e16d2d81d9

    10411
    Cellular: Added BG96 handling for socket closing URC

    10409
    Fixing default algorithms in cmsis pack index

    10408
    Update comments and improve readability for the BusInOut class

    10407
    Fix warnings on PSA secure builds

    10406
    Modify CMSIS pack manager to properly handle OSError

    10395
    mbed_error: Avoid negative left shift

    10394
    Networking: Fix some ARMC6 warnings

    10393
    approcah -> approach

    10391
    Update the writing example in unit testing README

    10387
    Atmel SAMG55: Cortex-M4 -> Cortex-M4F

    10386
    ARM MPS2: Cortex-M4 -> M4F & M7 -> M7FD

    10385
    README file for wifi tests gives configuration example

    10384
    Toshiba: Cortex-M4 -> Cortex-M4F

    10383
    GigaDevice: Cortex-M4 -> Cortex-M4F

    10382
    SDP_K1: Cortex-M4 -> Cortex-M4F

    10381
    ECHOTEST internal loop simplification and fix

    10380
    Nordic QSPI data must be written from/read to aligned buffers in RAM

    10378
    STM32: protect compilation when DEVICE_USTICKER is disabled

    10377
    Fix ESP8266 driver behavior on connection failures

    10376
    LPC55S69: Fix APB bridge security programming

    10375
    Cellular: Fix to delete PDP context on disconnect

    10369
    L3IP interface input handler change.

    10368
    FUTURE_SEQUANA_PSA fix PSA Protected storage

    10367
    Increase background stack size to fix overflows with debug profile

    10363
    Flagging WEAK method implementation for default construction

    10358
    Error print improvements

    10354
    Cellular: Using new rather than malloc in debug_print

    10350
    Fix doxygen comment in USBDevice

    10349
    Fix crash capture feature for nuvoton

    10348
    Parse M33 + GCC_ARM map files

    10347
    Fix detection of supported targets for mbed 2 builds

    10346
    FUTURE_SEQUANA: Add suport for ARMC6

    10343
    TARGET_STM32F7: Reset QSPI in default mode on abort for all versions.

    10341
    Cellular: Check for URC during AT response stop

    10340
    BLE: fix missing implementation call

    10338
    Cellular: Fix deleting of state machine to correct class

    10335
    PSA release.py - Check that required toolchains are in PATH

    10334
    MXRT1050_EVK: Fixes test failure seen with ARM & IAR toolchain

    10333
    Allow toolchain paths to be wrapped in quotes

    10332
    Break up large prints from –supported

    10330
    Reduce greentea socket tests failures related to network issues

    10318
    Crash with MTB_MXCHIP_EMW3166 has been corrected.

    10314
    i.MX RT1050: Reactivate data cache

    10301
    examples test compile optional verbose

    10292
    Cellular: Basic driver for Quectel EC25/EC21

    10268
    PSoC6 serial driver: Setup RTS and TX lines on deepsleep entry/exit

    10257
    Correct Python 3 errors and lint warnings in build_release.py

    10232
    PSA Crypto Service - multipart operation memory fixes

    10124
    Enable low-power ticker and Sleep for FastModels

    10096
    Add USB HID tests

    10020
    Fix single-threaded apps for IAR v8 builds

    10019
    uARM - Move heap region after IRAM1

    10004
    M2351: Support memory custom partition

    9981
    test_soap_connection_handler leaks memory when open_connection fails

    9967
    Fix for projects exported as a zip file (affects online compiler)

    9966
    tools: fix the path generated to the sct file

    9870
    Re-enable MPS2 platform

    9844
    Travis CI: Stages, OS update, apt-get relief!

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.12.2”.

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

  • mbed-os-5.12.1

    Downloads: zip tar.gz

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

    Summary

    We have added support for two new targets in this release, MTB ublox ODIN W2 and NUCLEO-F413ZH.ST CUBE for the STM32F0 series has been updated to v1.9.0.
    This brings: * Current ST Cube version in MBED: V1.7.0 * CMSIS part update from 2.3.1 to 2.3.3 * HAL part update from 1.5.0 to 1.7.0

    Our BLE Nordic PAL client implementation has been replaced. The previous implementation was found to contain a number issues deep in the GattClient logic (improper queueing and order ofoperations). It was deemed more efficient to re-write the implementation than try to patch the previous version.
    As well as fixing issues, the re-write has the added benefit of including all the previously missing GAT procedures: * Discover Primary Service By Service UUID * Find Included Service * Read Using Characteristic UUID * Read Multiple Characteristics * Queue Prepare Write * Execute Write

    We have also added Flash support for STM32F0, STM32F1 and STM32F3 devices, and enabled tickless on nRF52840.

    There are also a number of bug fixes and test enhancements.page, which provides reference links and details of our support channels.

    10118 Selectively append changes to exported config files

    Not tested on windows or python 2.
    Uses .splitlines(), and newlines should be correctly handled by the file read and write functions.

    10106 Update manifest tool to version 1.4.8 and install it from pypi

    10102 Remove fuzzywuzzy dependency

    10081 Cellular: call AT+CGEREP after sim is ready

    AT+CGEREP call was made before sim was ready and it was failing in most modems.
    Now call is made after sim is ready.

    9964 Add imports of basestring for python 3

    9905 Tests: check if recv returned too much data

    9904 Handle oversized packets in tcp and udp socket tests.

    9896 wait_us without usticker

    Some targets have no usticker. Fallback to use busy loop wait_ns() for cases like this.

    9837 Cellular: CGACT not supported in coming firmware in BG96
    Change API CellularNetwork::is_active_context to take more parameters to reduce copy-paste code.
    API can be use in old way as parameters have default values.
    Change CGACT to QIACT in case as BG96 module. Reason is that in upcoming firmware versions only QIACT is supported. Current firmware versions do support both commands.

    9814 Adding NUCLEO_WB55RG support

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    10281
    Adding support for S2_LP (WiSUN) as a new MTB target

    10133
    Adding STM32_F439 as a new MTB target

    10115
    Uhuru RAVEN: Adding platform HAL

    10000
    Adding support for SDP-K1.

    9814
    Adding NUCLEO_WB55RG support

    Fixes and Changes

    10317
    Fix for DigitalOut(NC) instantiation for all Toshiba targets

    10304
    equeue: align passed-in buffer

    10302
    BLE: force mandatory services to have lowest handles

    10299
    MIMXRT1050: Fix ENET issues

    10296
    Build script: add explicit console log in case of linker script error

    10295
    eclipse_gcc_arm export improvement

    10294
    NUCLEO_L4R5ZI_P: enable sw4stm32 export

    10290
    README link to license guide 404s

    10289
    PSOC6: Rebuild WICED libraries

    10288
    Revert limiting Renesas targets to ARMC6

    10282
    Nuvoton: Support export IAR8 project

    10281
    Adding support for S2_LP (WiSUN) as a new MTB target

    10280
    Remove CFSTORE VERSION file (colliding with an ARM 6.12 C++ header file)

    10276
    Parse Errors and Warnings from Arm Compiler 6

    10275
    Updated AWS url for astyle.

    10270
    BLE SimpleAdvertisingBuilder moved functions out of mbed_assert calls

    10269
    cellular: valgrind defect fix

    10267
    PSOC6: Modify lp_ticker to 32 bit

    10260
    Remove leftover waffle comments from README.md

    10248
    TARGET_STM32F7: Refresh cache when erasing or programming flash

    10246
    LPC55S69: Update Flash driver to set clock frequency

    10243
    Nanostack::EthernetInterface::bringdown() can handle blocking mode

    10240
    Add Python modules to LICENSE file

    10234
    Update flash algo default with CPM 0.2.4

    10231
    Nanostack ARMC6 update

    10230
    Cellular: cellular_network_test Compilation Error Removed

    10229
    Cellular: Power ON Wait Increased for C030_U201

    10222
    Travis CI: Updated astyle to work with updated .astyleignore file

    10221
    Travis CI: Replaced ‘./’ with ‘^’ in .astyleignore file.

    10219
    BLE: fix scan timeout being called from interrupt

    10214
    LoRaWAN: Adding TOA and Channel info in RX metadata

    10213
    GR_LYCHEE,RZ_A1H,VK_RZ_A1H: Fix greentea ticker test case failures

    10212
    Fix tempsensor cal1 constant in stm32f3xx_ll_adc.h

    10209
    Nuvoton: Add button names BUTTON1/BUTTON2

    10206
    Define program_cycle_s for LPC55S69 & CY8CKIT_062_WIFI_BT

    10200
    update vscode default gcc arm version to 6-2017-q1-update

    10196
    LoRaWAN: Fixing premature RX2 closure

    10194
    readme: remove waffle as not supported soon

    10190
    Fixed compilation error in LWIPStack class if lwip tcp is disabled.

    10185
    Nanostack 802.15.4 RF drivers update

    10184
    Cellular: Increase receiving timeout for UDP echo non-blocking test

    10182
    Workaround for ARMC6 Windows 7 assembler issue

    10181
    DISCO_L496AG: Add PMOD and STMOD+ connector

    10180
    Fix SPIF speed for MTB_ADV_WISE_1570 and max packet size for BC95

    10179
    Cellular: C030_N2XX default interface

    10178
    Nuvoton: Remove SD component from targets.json

    10171
    Fix QSPIF Bus mode mask and quad enable write SR size

    10166
    Travis CI: Tweak astyle to not over-exclude files

    10160
    Crypto access control additional tests

    10156
    MTB_STM_L475: fix UART clock

    10155
    Remove dependency on us_ticker HAL apis for non USTICKER targets

    10154
    Fix for LoRaWAN downlink sequence counter rollover

    10149
    STM32H7 ADC internal channels

    10145
    RTOS API: minor tidies

    10144
    Atmel RF: use system wait_ns

    10143
    STM32 ADC INTERNAL CHANNEL reset after read

    10142
    Nanostack 802.15.4 RF drivers update

    10140
    Cellular: fix astyle for files that already in master

    10138
    Cellular: don’t allow ATHandler read/write if filehandle not usable

    10133
    Adding STM32_F439 as a new MTB target

    10131
    Add baremetal example to testing

    10122
    mbed_error.c: fix warnings

    10121
    Cellular: Improve ATHandler AT debug traces

    10120
    Cellular: Fix network interface test for cellular targets

    10118
    Selectively append changes to exported config files

    10115
    Uhuru RAVEN: Adding platform HAL

    10110
    Improve genenral BlockDevice tests

    10106
    Update manifest tool to version 1.4.8 and install it from pypi

    10105
    test_configs: generic app config for boards with Wi-Fi

    10102
    Remove fuzzywuzzy dependency

    10100
    Cellular: Support Cinterion EHS5-E cellular module

    10098
    Cinterion Cellular: Setup connection profile with username and password

    10094
    BLE: Fix ble gattserver autorization list registration

    10093
    BLE:Fix cordio reset sequence

    10092
    BLE:fix on_phy_update_complete function

    10084
    Cellular: AT information response to return false on empty prefix

    10081
    Cellular: call AT+CGEREP after sim is ready

    10074
    Fixed issue with PWM not being freed when the object is destroyed

    10073
    Removed PSoC6 SystemInit Workaround for ARM compiler

    10072
    Adding variable length attributes to Maxim Feather

    10070
    PSA more options in release tool

    10065
    Correct post-build-hook detection logic

    10048
    Fix for reallocation memory fail in TMPM46B

    10045
    Uvision exporter fixes for Python 3, CPM updates, and Windows path issues

    10037
    TCP/TLS Socket tests will skip if TCP is not supported

    10036
    Refactor Crypto Service Proxy

    10030
    TESTS: skip timing accuracy test on FastModels

    10029
    Cellular: Remove compile dependency of UARTSerial

    10014
    Update nanostack-interface error mapping

    10008
    Fix MBED_RAM_START/MBED_RAM_SIZE symbol generation

    10005
    cellular: remove last CELLULAR_DEVICE references

    10000
    Adding support for SDP-K1.

    9998
    Remove intervaltree from requirements.txt for mbed-os as it contradic

    9995
    Fixing path comparisons in config tests on Windows

    9992
    BLE - Use low power timing primitives

    9988
    BLE: fix tick rate set to 10 ms

    9986
    OdinWifiInterface is calling memcpy with a null pointer

    9985
    GigaDevice targets can return uninitialized variable in CAN driver

    9980
    Dead pointer usage in GenericSecurityManager

    9979
    TEST_APPS socket_app leaks memory when cannot initialize packetSizes

    9972
    cellular: BC95 memory leak fix

    9971
    Correct thread status callback functionality

    9964
    Add imports of basestring for python 3

    9959
    Refactor socket stats to reduce boiler plate

    9952
    Fix PWM driver of RZ/A1

    9948
    BLE:Cordio:insert_descriptor check r/w properties

    9941
    Add missing RSPIF component to the defaut BlockDevice handler

    9937
    Cellular: removed manual registering state.

    9936
    Fix lwip to compile if MBED_CONF_LWIP_DEBUG_ENABLED is defined

    9935
    Increased timeout for lwip waiting netif_is_link_up

    9930
    NUCLEO_H743ZI: Arduino A5 is mapped on ADC3_IN6

    9925
    SAML21J18A: #endif without #if in analogout_api.c

    9924
    Update Wi-SUN network default name

    9921
    BLE:Cordio:Fix insert characteristic not handle error

    9919
    BLE - Report extended advertising in legacy handler

    9914
    Remove #ifndef NO_GREENTEA from tests

    9905
    Tests: check if recv returned too much data

    9904
    Handle oversized packets in tcp and udp socket tests.

    9902
    Remove assertion of MDMRST in case of SARA-R4

    9900
    DNS send returning WOULD_BLOCK forces delayed retry

    9896
    wait_us without usticker

    9895
    Fix for i2c_t object not being initialized to 0 causing timeout

    9893
    ESP8266: astyle fixes

    9884
    STM32F429 ARM MICRO startup file update

    9873
    Corrected timeout for +UDNSRN command

    9872
    Fix for NUCLEO_F207 UDPSOCKET_ECHOTEST_BURST_NONBLOCK fails.

    9837
    Cellular: CGACT not supported in coming firmware in BG96

    9814
    Adding NUCLEO_WB55RG support

    9801
    Correctly include EventQueue.h

    9637
    Cellular: UBLOX_C030_N211 Cellular API’s

    9444
    Usb msd tests

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.12.1”.

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

  • mbed-os-5.12.0

    Downloads: zip tar.gz

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

    Summary of release

    Mbed OS 5.12.0 brings support for Platform Security Architecture (PSA) to truly secure your data end-to-end. The release is supported in Mbed Studio Beta, providing a seamless development and debugging experience. We also included the first open sourced Wi-SUN stack for Field Area Networks based on 6LoWPAN and IEEE 802.15.4 technologies, and our new USB device stack supporting multiple device classes. Finally, we introduce a new Mbed OS profile called bare metal, which targets memory constrained devices.

    This release also includes fixes, new versions of various components and updates to supported compiler versions.

    Notes for specific pull requests

    9920 Update Mbed TLS for 5.12 release to Mbed TLS development HEAD
    This release of Mbed TLS includes:

    • Integration of the PSA Crypto API sufficient to support Pelion Client.
    • RAM optimizations to reduce RAM usage during TLS handshakes when using X.509 authentication. This reduces the overall RAM required by Mbed TLS.

    9898 Cellular: fix connect-disconnect sequence called many times
    Removed API get_connection_status() from CellularNetwork. This was left accidentally after refactoring. It wasn’t giving correct states after refactoring. The application should use CellularContext::get_connection_status, instead.

    9864 BLE: Cordio host upgrade
    Upgrade of Cordio host to new version (from 2.4 to 19.02). This should not impact users and be an in-place upgrade. Replace compiled Cordio controller libs with sources - no functional change and no impact on users.

    9851 feat: add support for .obj files in memap

    • A brief description of changes introduced
      Add support for .obj files in memap tool.
    • An analysis of effects: components affected, potential consequences for users and reasons for the addition or change.
      Affects tools component, behaviour doesn’t change for existing users. This adds support for using the memap tool for CMake/gcc-arm-none-eabi builds (and maybe others too).
    • Migration guidance: actions for updating the current code. Please include code snippets to illustrate before and after the addition or change.
      N/A

    9838 Nanostack release for Mbed OS 5.12

    • Initial version of Wi-SUN mesh stack.
    • Improvements and bug fixes to Thread and 6LoWPAN ND protocol stacks.

    9813 BLE: Cordio build time configuration through mbed_lib.json
    This doesn’t remove the old Cordio stack config file and merely sits on top, so it will not introduce any unexpected changes. If users modified the cfg files themselves (in features\FEATURE_BLE\targets\TARGET_CORDIO\stack\cordio_stack\ble-host\sources\stack\cfg), they will have to resolve the conflict.

    9812 Add wait_ns API

    • wait_ns() API added for <10us small software-loop based delays.

    9808 IAR 8 feature branch merge
    Updating the IAR toolchain version to IAR 8.32.

    9804 Provide an option to disable writing developer certificate
    It is possible now to disable writing developer certificate to mbed_cloud_dev_credentials using an option –no-developer-cert with “mbed dm init” command

    9800 Bare metal profile
    Mbed OS may now be built without the RTOS by creating an mbed_app.json with the following contents:

    {
    "requires": ["bare-metal"]
    }
    

    9799 Increase events.share-eventsize to 768B because of ESP8266 AT driver and asynchronous DNS

    “events.shared-eventsize” increased from 256B to 768B

    Original value was too small once both the ESP8266 driver and asynchronous DNS started to use the shared event queue. An assumption is made that once the shared event queue is taken into use, there are going to be multiple users instead of one, for which the original value would have been sufficient.

    9797 API to temporarily enable/disable FileHandles

    • UARTSerial can now be temporarily or permanently disabled for input and/or output. This is particularly useful to save power when reception is not required - disabling input permits deep sleep. To do this more generically for the console, use mbed_file_handle(STDIN_FILENO)->enable_input(false).

    9795 crypto: Update to Mbed Crypto 1.0.0d5 and then to 1.0.0d6
    Previously, calls to psa_crypto_*_setup() would succeed even if a user did not initialize their operation context. Help users of the PSA Crypto API catch their own bugs by returning PSA_ERROR_BAD_STATE when a setup function is called with an uninitialized context.

    9790 BLE conf
    No changes made to existing programs. By default, all options are enabled, which is the current state.

    9768 Bring USB Feature branch into master
    This feature brings USB device support into Mbed OS from a feature branch. Targets that support USB include the LPC1768, ARCH_PRO, K64F, NUCLEO_F207ZG, NUCLEO_F412ZG, DISCO_F413ZH, NUCLEO_F413ZH, NUCLEO_F429ZI, NUCLEO_F446ZE, NUCLEO_F746ZG, NUCLEO_F756ZG, NUCLEO_F767ZI, DISCO_F469NI, DISCO_F746NG, DISCO_F769NI, DISCO_L475VG_IOT01A, DISCO_L476VG, RZ_A1H, GR_LYCHEE, DISCO_L496AG, NUCLEO_L496ZG, NUCLEO_L4R5ZI. Supported USB device classes include USBAudio, USBHID, USBMouse, USBKeyboard, USBMIDI, USBMSD, USBSerial and USBCDC.

    9758 Allow hash or mac on large buffers with less memory use
    Description: Hash and mac operations are now processed in secure partition in multiple chunks internally leading to decrease in memory use for large buffers.
    Effect analysis: This change has no impact on API and should not alter behavior from the user perspective.
    Migration: No action should be required from the user side.

    9746 Cellular: Retire CellularBase class
    In order to align to other connectivity technologies CellularBase is deprecated and CellularInterface usage is preferred. This change is backward compatible.

    9708 Implement PSA protected storage & restructure PSA storage implementation

    • Restructure PSA storage implementation (directory structure and common code)
    • Add the PSA protected storage feature

    9668 PSA Initial Attestation service

    • A brief description of changes introduced.
      Add PSA Initial Attestation Service implementation.
    • An analysis of effects: components affected, potential consequences for users and reasons for the addition or change.
      this code is a new feature and doesn’t effect existing code.
    • Migration guidance: actions for updating the current code. Please include code snippets to illustrate before and after the addition or change.
      This breaks backwards compatibility with Nucleo F411RE entropy injection.

    9571 Update to 2-region model for HEAP and Stack Memory
    RAM memory model is updated to a two-region model. RTOS and non-RTOS versions of Mbed OS across all targets and toolchains will have separate stack and heap sections. ISR stack size is unified across all targets and is set as 1K for Mbed OS with RTOS. In case of no RTOS, stack size is also the main thread size and is set as 4K.

    9568 Merge feature cellular refactor
    This PR has impact on cellular application development and porting of new cellular devices.

    Application developers need to select the suitable NetworkInterface type. When using NetworkInterface NSAPI configuration defines are applied by default, see NSAPI configuration options for cellular in more details. CellularBase users have a new function set_default_parameters to apply NSAPI configuration options. CellularContext is to be used instead of CellularBase for new extended cellular functionality, such as NonIP sockets and EPS CP optimization…

    Migration guidelines for application developers:

    • Change CELLULAR_DEVICE macro to get_default_instance
    • Change OnboardCellularInterface or EasyCellularConnection to CellularContext
    • Call CellularDevice::set_data_carrier_detect to set HUP signal detection

    Cellular API changes need to be taken into account when porting new cellular devices. This PR already contains the changes needed for the existing cellular drivers and the onboard modems. Arm has an internal ticket to update the cellular porting documentation for Mbed OS 5.12.

    Migration guidelines for porting developers:

    • Follow GENERIC_AT3GPP implementation when porting new AT based cellular devices
    • Change power_on/off to onboard_modem_api with soft_power_on/off and hard_power_on/off
    • Move implementation from CellularSIM and CellularPower to CellularInformation and CellularDevice
    • Implement CellularDevice::init and CellularDevice::shutdown
    • Use CellularNetwork::get_signal_quality instead of CellularNetwork::get_extended_signal_quality

    9449 Pinmap extensions
    Added pinmap support to the HAL API. For more information see the porting targets docs page - https://os.mbed.com/docs/mbed-os/latest/porting/porting-targets.html.

    9219 LoRaWAN: Retiring LoRaWANBase class
    There has been only one user of the LoRaWANBase class, the LoRaWANInterface. We anticipated that the third parties may use this class to provide their own LoRaWAN network stacks alongwith the default network stack provided by Mbed OS. However, a trend has been observed that the default stack provided by Mbed OS has become the de-facto choice. Having LoRaWANBase class adds 1K to the ROM in terms of footprint (for GCC, ARMCC and IAR optimize that already). It has been decided to do away with the LoRaWANBase class for now, and if the need arises it can be reintroduced back.

    9184 Adds an NFC System Test suite
    Adds an automated test suite which provides Standalone and End-2-End validation for either the supported PN512 NFC Controller shield or the M24SR NFC EEPROM. This is an icetea framework based test suite and requires additional hardware.

    9940 Reduce flash page size from 512 to 32 bytes in PSOC6 based boards
    Reduce flash page size from 512 to 32 bytes in PSOC6 based boards

    10193 Fallback to ARMC5 when ARMC6 is not configured
    The -t ARM argument defaults to using the Arm Compiler 6 when it is configured in a user’s enviroment. However, In cases where a target supports building with both Arm Compiler 5 and Arm Compiler 6 and Arm Compiler 6 is not properly configured, the tools will fallback to compiling with Arm Compiler 5.

    10164 tls: Update Mbed TLS to 2.17.0
    Update Mbed TLS to version 2.17.0.

    10152 crypto: Update Mbed Crypto to 1.0.0
    Update Mbed Crypto to version 1.0.0.

    10114 Allow the use of Mbed Studio’s version of Arm Compiler 6
    You can use the Arm Compiler 6 compiler that is bundled with Mbed Studio with the command-line tools. Enable this behavior by adding the Arm Compiler 6 executable to your system path (the default location of this on Windows is C:/MbedStudio/tools/ac6/bin). Alternatively, you can set this same location with Mbed CLI with the command mbed config ARMC6_PATH C:/MbedStudio/tools/ac6/bin (be sure to use the correct path when you run the command). You also need to set the ARMLMD_LICENSE_FILE environment variable to the license file that is bundled with Mbed Studio. Please see the Mbed OS documentation for further details.

    Known issues

    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; please use it at 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: 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: There are no known workarounds.
    • 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.

    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 issue: https://github.com/ARMmbed/mbed-os/issues/8064.
    • Priority: Major.

    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: https://github.com/ARMmbed/mbed-os/issues/5640.
    • 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: https://github.com/ARMmbed/mbed-os/issues/8081.
    • Priority: Major.

    NVStore and TDBStore objects can collide in internal flash

    • Description: NVStore and TDBStore are classes implementing storage solutions. By default, they allocate the last two sectors in internal flash. If both are used, a run time error will happen. NVStore is deprecated, and TDBStore should be used instead.
    • Workaround: Use TDBStore instead of NVStore.
    • Priority: Minor.

    SPI failures on CY8CKIT_062_WIFI_BT

    • Description: When reading from an SD card connected via SPI, sometimes we see that read operation leave some bytes unchanged in the buffer, without reporting an error. The root cause is under investigation.
    • Workaround: https://github.com/ARMmbed/mbed-os/tree/feature-SD-verify.
    • Reported issue: IOTSTOR-815.
    • Priority: Major.

    UART flow control does not work on Cypress CY8CKIT_062_WIFI_BT_PSA

    • Description: UART hardware flow control: When connecting a Wi-Fi shield via UART, flow control does not work. The root cause is under investigation.
    • Workaround: None.
    • Reported issue: IOTHAL-481.
    • Priority: Major.

    Mbed CLI may use the wrong armasm or armlink version when both Arm Compiler 5 and Arm Compiler 6 are configured using the host platform PATH environment variable

    • Description: If you have configured both Arm Compiler 5 and Arm Compiler 6, Mbed CLI may use the wrong armasm/armlink version based on which version is listed first in the host platform PATH environment.
    • Workaround: Use “mbed config” commands as documented in https://os.mbed.com/docs/mbed-os/v5.12/tools/after-installation-configuring-mbed-cli.html to configure toolchains instead of using the host platform PATH environment variable. This is the preferred solution until Arm Compiler 5 is deprecated.
    • Reported issue: https://github.com/ARMmbed/mbed-os/issues/10069.
    • Priority: Minor.

    Some hardware platforms don’t support ArmCompiler 6

    • Description: With the Mbed OS 5.12 release, we are adding support for Arm Compiler 6.11, and it will become the default Arm compiler for Mbed OS targets. At the moment, we still have some targets not compatible with Arm Compiler 6. Below is the list of targets not compatible with Arm Compiler 6:
      CY8CKIT_062_4343W, CY8CKIT_062_BLE, CY8CKIT_062_WIFI_BT, CY8CKIT_062_WIFI_BT_M0, CY8CKIT_062_WIFI_BT_M0_PSA, CY8CKIT_062_WIFI_BT_PSA, CY8CPROTO_062_4343W, CYW943012P6EVB_01, CYW943012P6EVB_01_M0, FUTURE_SEQUANA, FUTURE_SEQUANA_M0, FUTURE_SEQUANA_M0_PSA, FUTURE_SEQUANA_PSA, KW24D.
      We are working with our Partners to ensure they are fully supported by Arm Compiler 6.
    • Workaround: The developers compiling for these targets should use Arm Compiler 5.06u6.
    • Reported issue: https://github.com/ARMmbed/mbed-os/issues/9578, IOTCORE-1059.
    • Priority: Major.

    Contents

    Ports for upcoming targets

    9224
    Add platform TT_M4G9

    9910
    Add support for LPC55S59

    9908
    Pr/cy mbed os 5.12.0

    Fixes and changes

    9946
    Fix include paths for the assembler for makefiles

    9932
    Fix direct access to device key test for small erase/program ratio

    9920
    Update Mbed TLS for 5.12 release to Mbed TLS development HEAD

    9918
    Unify PSA code generators

    9917
    Add attestation doxygen

    9916
    Skip test on Cortex M33 devices

    9915
    Update TF-M sources

    9913
    Fix bug in crypto_acl test

    9906
    Docs: fix doxygen not being generated for BLE classes

    9899
    Regenerate mbed-spm files

    9898
    Cellular: fix connect-disconnect sequence called many times

    9892
    Update PSOC6 postbuild prints

    9891
    Correct the device name for NUC472 / M453 - IAR 8

    9888
    Arm Toolchain update to Arm Compiler 6.11(ARMC6)

    9885
    ESP8266: graceful disconnect on network state timeout

    9883
    Free dynamic memory in Crypto Service proxy (PSA targets)

    9879
    Lock sleep when USB is initialized

    9875
    Fix multihoming tests

    9874
    Add mbed_lib.json to usb folder

    9871
    ESP8266: receive is able to handle device busy indication

    9867
    PSOC6: Rebuild WICED libraries with IAR8 support

    9866
    QSPI write alignment fix for nRF52x

    9864
    BLE: Cordio host upgrade

    9862
    Backward support PSA_ITS

    9861
    STM32 InterruptIn protection

    9856
    Crypto: Update Mbed Crypto to 1.0.0d7

    9852
    Docs: fix release notes link in PR template

    9851
    Feat: add support for .obj files in memap

    9849
    Update mbed-cloud-sdk to latest version 2.0.5

    9845
    Add spi_get_peripheral_name() to stm_spi

    9843
    Fix Cordio gatts configuring write permission

    9842
    Add missing license description to RZ/A1 driver

    9838
    Nanostack release for Mbed OS 5.12

    9836
    TF-M: Fix issues found in SPM tests

    9835
    Add define to skip greentea sync

    9834
    Add missing copyright header to STM32 driver

    9833
    Remove Arm Beetle target for Mbed OS 5.12

    9831
    Update mbed-cloud-sdk to latest version 2.0.4

    9829
    Fix SPM error codes

    9828
    Update 802.15.4 RF drivers to the latest version

    9825
    Remove unnecessary prints in FileSystemStore class

    9823
    mbed-SPM updates

    9822
    Return the new values for key type & size even if function fails

    9821
    PSOC6: send HCI reset after patch RAM download

    9817
    Apply artifact_name configuration parameter to exported projects

    9813
    BLE: Cordio build time configuration through mbed_lib.json

    9812
    Add wait_ns API

    9808
    IAR 8 feature branch merge

    9806
    Update mbed_stats.c to use __ARMCC_VERSION flag for compatibility with AC6

    9804
    Provide an option to disable writing developer certificate

    9802
    Fix psa_system_reset() on PSA IPC platform

    9800
    Bare-metal profile

    9799
    Increase events.share-eventsize to 768B because of ESP8266 AT driver and asynchronous DNS

    9797
    API to temporarily enable/disable FileHandles

    9796
    New Wiced binaries

    9795
    Crypto: Update to Mbed Crypto 1.0.0d5 and then to 1.0.0d6

    9794
    Refactor tcpsocket tests to use sigio and not to wait

    9792
    NUCLEO_L073RZ Bootloader support

    9791
    Support mbed_start_application for Cortex-M0+

    9790
    BLE conf

    9786
    Optimize tickless tick computation

    9785
    Use us ticker for tickless on devs with wrapper

    9783
    Ensure header CRC is written as unsigned int

    9781
    PSOC6: correctly align hex files with split text sections

    9780
    Crypto Service - keys access control TESTS

    9778
    Add missing wifi parameters to test configs

    9772
    Additions to TF-M source integration

    9768
    Bring USB Feature branch into master

    9766
    Update Toolchain Arm Micro scatter files

    9763
    BLE: fixed initialisation order in GattServer

    9759
    Multiple memory handling fixes

    9758
    Allow hash or mac on large buffers with less memory use

    9755
    Support in more types then just RSA_KEYPAIR

    9754
    Fix SPM returning the wrong value

    9752
    Add comment fix warning

    9751
    Cellular: Fix ATHandler set/restore_at_timeout with mutex lock

    9746
    Cellular: retire CellularBase class

    9745
    Fix incorrect return value in psa_security_lifecycle_state (emul)

    9738
    Tools: Reoder post-build hooks and bl merging

    9728
    Cellular: Fix sigio to be released in ATHandler destructor

    9727
    BLE API devirtualization

    9718
    Greentea tests: user-configurable timeouts

    9714
    Only GCC_ARM toolchain is supported, removing legacy code

    9710
    Crypto: Remove PSA Crypto API from targets without entropy

    9708
    Implement PSA protected storage & restructure PSA storage implementation

    9706
    Cellular: fix onboard modems powering failure.

    9705
    Cellular: Fix cellular stack and drivers for netsocket tests

    9702
    Fix dependencies of platform partition

    9701
    Refactor psa entropy inject test

    9698
    Netsocket documentation cleanup

    9690
    Pinmap design doc

    9684
    enet_tasklet_disconnect() should generate event to tasklet.

    9681
    Make a few trivial syntactic changes to better support cross-compilation

    9679
    Default behavior of C030-R412M should be to use modem IP stack

    9678
    FUTURE_SEQUANA_PSA: fixed deep sleep mode

    9677
    Add MBEDTLS_ENTROPY_NV_SEED to NUCLEO_F411RE to fix the build

    9668
    PSA Initial Attestation service

    9667
    Linker files for LPC11U68 and LPC1549 updated

    9666
    Use new delivery for FUTURE_SEQUANA_PSA

    9660
    Cellular: clean sensitive information from trace

    9655
    Cellular: Non-IP doxygen updates

    9653
    TF-M sources integration to Mbed-OS

    9645
    Change TESTS/netsocket/ for cellular testing

    9638
    Crypto Service - keys access control

    9633
    Improvement to artifact delivery method

    9630
    Publish tests documentation for DNS, Emac, NetworkInterface and Wifi

    9628
    Bare metal mbed_lib updates

    9617
    SPE: Fix up atomic usage

    9616
    nRF52 serial: Tighten/simplify atomics

    9605
    Restore MBEDTLS_PSA_CRYPTO_C for PSA targets

    9600
    Atomic extensions: 64-bit, bool, exchange

    9588
    DISCO L475VG IOT01A: heap in SRAM2 region

    9581
    SharedPtr: use atomic load

    9575
    Crypto IPC 64 bit key ids for ITS

    9571
    Update to 2-region model for HEAP and Stack Memory

    9568
    Merge feature cellular refactor

    9566
    Fix warning in Crypto when using boot seed injection

    9561
    Tools changes for bare metal

    9555
    Wio BG96: Modified sequence of module startup

    9554
    Wio 3G: Modified sequence of module startup.

    9537
    BLE: Add MTU events

    9530
    Use atomics for double-checked locks (SingletonPtr + __cxa_guard)

    9529
    RollUp PR Crypto with ITS

    9528
    Second barrier for core_util_atomic_flag_clear

    9520
    ESP8266: reduces SIGIO signaled to the upper layers

    9503
    ESP8266: OOB handling done based on arrival of SIGIOs

    9493
    Initialize platform in trng test

    9474
    Fix newlines at end of files

    9473
    ESP8266: treats reset-ready-message as OOB

    9469
    SPI upgrade - per-peripheral mutex and GPIO-based SSEL

    9456
    ESP8266: calls MBED_ERROR if modem’s watchdog reset gets triggered

    9449
    Pinmap extensions

    9438
    Use dedicated PinMap for each QSPI data line

    9437
    FPU_USED to be set based on HW FPU support + Squash commits

    9424
    Allows multiple network status listeners

    9414
    Clarify asynchronous Networkinterface::connect() and disconnect() API

    9410
    STM32F756 and STM32L486 alignment with STM32F746 and STM32L476

    9405
    Travis: Fix doxy-spellcheck job

    9401
    Tools: adds and implements a –custom-targets command line switch

    9398
    Revert “Warn with ARMC6 and not v8m”

    9392
    Documentation of TLSSocket behavior on AUTH_FAILURE

    9387
    Multihoming initial release

    9386
    SD default configuration for ST boards is already defined in TARGET_STM

    9378
    Add get_connection_status() override in CellularContext

    9352
    mbed_boot_arm_std.c: remove redundant compiler check

    9350
    GD32_F450ZI: Support boot stack size configuration option

    9317
    Tools: support cases where bootloader is in chunks

    9305
    Minor Doxygen fixes for all file system classes

    9277
    Sleep: error flags fix

    9248
    InternetSocket: use atomics, not volatile

    9247
    Add atomic loads and stores and barriers

    9245
    LoRAWAN: volatile bool -> atomic_flag

    9231
    Critical sections: remove unnecessary volatile

    9224
    Add platform TT_M4G9

    9219
    LoRaWAN: Retiring LoRaWANBase class

    9188
    Add more information to error url to enhance error analytics

    9184
    Adds an NFC System Test suite

    9096
    BLE: Enforce advertising data payload limits

    9092
    Interrupt stack size unification + test

    9067
    Move socket-stats-enable config to socket-stats-enabled

    8972
    Merge feature-posix branch (FileHandle::truncate)

    8961
    ThisThread get_name()

    8887
    Adding debugger awarness with Keil MDK

    8757
    Update Cmsis-pack-manager to 0.2.3

    8749
    Cellular: AT handler API

    8739
    L3IP Interface Implementation

    8497
    Add get/settimeofday retargets

    7799
    Removing feature names from the “allowed feature” config list.

    10077
    Create green-tea init for attestation test

    10046
    PSA: release.py bugfix - send the correct parameter to _get_target_info()

    10042
    BLE: fix conflicting include by qualifying cordio pal includes

    10041
    Fix include in psa compliance tests to mbedtls config file

    10038
    PSA: release.py updates to fixes situation where the script would get stuck

    10033
    Port spi_get_peripheral_name fix to some Freescale boards

    10031
    Add new mbed-os-example-attestation example

    10027
    TF-M patch: Handle extended stack frame in tfm_svcall_psa_call

    10026
    Add needed crypto macros to secure side

    10025
    PSA: PSoC 6 Correct TRNG behaviour

    10023
    Fix crypto compliance tests

    10012
    Generate BLE Static Random Address on U-blox Odin-W2 platform

    10011
    Removed cymetadata section from FUTURE_SEQUANA targets

    10010
    Update PSA tools

    10002
    Disable PSA in baremetal profiles

    10001
    PSA: release.py - add build profile

    9997
    Platform reset API rename

    9996
    PSA: Fix error codes masking in psa_attestation_inject_key()

    9990
    Sync PSA compliance test to latest version

    9989
    Test for and Recompute sector information for all targets

    9982
    Nanostack update for Mbed OS 5.12

    9978
    PSA: Fix psa/release.py tool

    9977
    NUCLEO_L073RZ: IAR linker script issue

    9976
    PSA: Remove unused type which was conflicting wiith errno.h

    9973
    TF-M config: Add max_ns_thread_count parameter

    9963
    PSA tools docs

    9957
    Fix issues found in LPC55S69 integration

    9956
    Add attestation doxygen

    9953
    PSA: automatic mocking of PSA targets in test builds

    9940
    Reduce flash page size from 512 to 32 bytes in PSOC6 based boards

    9939
    Fix for secure partition

    9931
    Reduce number of threads in block device test

    9928
    Secure binaries release script

    9911
    Add TF-M flags to doxygen

    9910
    Add support for LPC55S59

    9908
    Pr/cy mbed os 5.12.0

    9907
    BLE: Fix cordio configuration

    9894
    PSA tools: Find secure image at post-build

    9312
    PSA compliance tests suite

    10113
    Use secure/non-secure rom for bl modes

    10108
    Fix functionality for FlashIAPBD & SlicingBD

    10101
    LPC55S69_S: reduce ITS size to 32KB

    10089
    Make the presence of cmsis-pack-manager package optional

    10088
    Temporary disable Crypto HW accelerator on UBLOX_EVK_ODIN_W2

    10086
    Add bootloader support for the LPC55S69 board

    10068
    LPC55S69: Add IAR and uvision exporter support

    10055
    Add bootloader support for Cypress PSA boards

    10047
    Reduce 32KB from LPC55S69_S binary size

    10044
    Correct check for the ARM toolchain binary in the PATH.

    10034
    PSA: PSoc 6 configurable secure memory size

    9994
    Correct FPU settings traceback found by IAR

    10199
    Fix the removal of Mbed-added core flags in uvision exporter

    10193
    Fallback to ARMC5 when ARMC6 is not configured

    10188
    Configure sector information in targets.json

    10187
    Fall back to configuration information when CPM reports no memories

    10186
    Remove cypress boards from CMSIS pack manager

    10173
    Collect excluded libraries into ignored_dirs

    10172
    Cellular: Fix plmn trace for IAR

    10164
    TLS: Update Mbed TLS to 2.17.0

    10157
    Deduplicate IAR MBED_ROM__xxxx defines

    10152
    Crypto: Update Mbed Crypto to 1.0.0

    10114
    Allow the use of Mbed Studio’s version of ARMC6

    9965
    Fix undefined tr_debug for QUECTEL_BG96 cellular feature

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.12.0”.

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

  • mbed-os-5.11.5

    Downloads: zip tar.gz

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

    Summary

    In this release we have added target support for: * STM32_L475 MCU * RHOMBIO_L476DMW1K

    We have added fixes for the following reported issues:

    • 9276 nrf52: after disconnect, device doesn’t go into sleep again
    • 9513 Occasional hard falt when using the mbedtls entropy function in parrallel threads (K64F)
    • 9523 Non Rtos build fails for ARM compiler (K64F)
    • 9620 FUTURE_SEQUANA: failing to pass block device tests.
    • 8894 Document EventFlags wait function timeout units
    • 8618 Python3 build fails on MTS_MDOT_F411RE
    • 8205 Sleep tracer is not finding matching driver when performing an unlock
    • 9494 nanostack unittests: do not contain license headers
    • 9695 NRF52_DK LED2 always on

    mbed-coap has been updated to version 4.7.4. This brings the following changes: * Remove dependency on the yotta tool * Do not remove stored (GET) blockwise message when EMPTY ACK is received. When non piggybacked response mode is used the original GET request must not be removed from the stored message list. Message is needed for building the next (GET) blockwise message * Move definitions to sn_config.h

    Support has been added for: * WIFI on the RDA target UNO_91H * CMake export on PSOC6

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    9782
    Adding RHOMBIO_L476DMW1K as a new Board target

    9777
    Adding STM32_L475 as a new MTB target

    Fixes and Changes

    9798
    STM32 LPTICKER (LPTIM): correct init execution after bootloader

    9782
    Adding RHOMBIO_L476DMW1K as a new Board target

    9777
    Adding STM32_L475 as a new MTB target

    9776
    adv builder helper now returns an object

    9775
    PSOC6: fix port_write API

    9774
    license: use .md extension

    9767
    Remove ITM from NRF52_DK and DELTA_DFBM_NQ620 targets

    9765
    Add config header to assembly compilation

    9762
    PSOC6: update the psoc6pdl and HAL to the latest version

    9756
    PSOC6: enable export to CMake

    9753
    Update Nanostack_HAL licenses and copyright year

    9748
    BLE:Cordio: ATTS setting for write cback should use bitwise or

    9742
    tools: export: MCUXpresso: fix case inconsistencies in .templ file names

    9741
    ESP8266: connect() returns OK in non-blocking calls

    9740
    Remove pyocd requirement and update icetea.

    9736
    tools/test/cmsis: add license header

    9730
    Greentea: Remove TLSSocket_simultaneous test

    9724
    tools/utils: ensure default build profiles are processed first

    9722
    Add flash sum check

    9715
    Add .inc as a header file type.

    9713
    Add release notes section to PR template

    9709
    Reverting to original doxy configuration

    9696
    features: nanostack: fix warning in thread_extension.h

    9694
    nanostack: icmpv6: fix build warning

    9693
    platform: fix build warning in mbed_error

    9692
    target: UBLOX: Fix build warning in UBLOX_AT_CellularNetwork.cpp

    9691
    btle: fix build warning about unused clockConfiguration

    9686
    Greentea tests: set correct port to test against google.com

    9685
    Fix sleep tracing not finding matching driver during unlock.

    9680
    FUTURE_SEQUANA: Fixed Arduino signal mappings

    9673
    Fix Py3.7 mdot target build

    9670
    Add units to timeout argument in EventFlags

    9658
    REALTEK_RTL8195AM binary timestamp

    9657
    Revert “MIMXRT1050_EVK: Add IAR support in the exporter”

    9656
    M2351: Fix crypto AC management

    9654
    Update mbed-coap to version 4.7.4

    9652
    Fix minor bugs in secure targets file filtering

    9651
    FUTURE_SEQUANA_M0_PSA - fix CM4 starting address

    9650
    Multi thread Block Device Tests Fix - Ensure unique block address

    9649
    Fix IntelliSense in VSCode export

    9647
    FUTURE_SEQUANA: SPI HAL fixes

    9639
    ESP8266: connect() checks errors from ESP chip

    9636
    Fix compiler warnings

    9635
    Do not provide a default Pelion host address.

    9613
    K64/ARM: Update to 2-region model for HEAP and Stack Memory

    9602
    STM32 GPIO: use maximum speed

    9601
    LoRaWAN: Proper size checks for link ADR cmds & correct include path in Unittests framework

    9587
    targets: QUECTEL: Fix build warning

    9584
    TLSSocket send/recv return WOULD_BLOCK error instead of NO_CONNECTION

    9582
    Greentea Socket test improvements

    9570
    tests-netsocket-udp: UDPSOCKET_ECHOTEST_NONBLOCK fixes

    9532
    Mutex-protect mbedtls_hardware_poll

    9514
    BG96 netsocket tests

    9502
    readme: add list of licenses - not Apache 2.0

    9501
    Add WIFI support for RDA target UNO_91H

    9372
    BLE - Nordic: Release crypto cell when not in use.

    9326
    Doxygen correction

    9307
    Configuration options for STM_EMAC buffer counts

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.11.5”.

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

  • mbed-os-5.11.4

    Downloads: zip tar.gz

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

    Summary

    In this release we have added fixes for the following reported issues:

    • 9402 Mbed-OS build fails for LPC546XX and FF_LPC546XX targets with ARM Compiler 6.11
    • 8513 NVSTORE deinit function doesn’t free memory
    • 9468 FlashIAPBlockDevice init failing if using default constructor
    • 7308 Deep_sleep_lock Ticker.h Issue
    • 9525 Flow control fails on STM32L476
    • 8626 Update device peripherals for STM32 series
    • 9026 [Wio 3G] PB_7 (RXD) cannot be used for Serial
    • 9504 analogin_device.c doesn’t clear internal buffer for Vref
    • 9402 Mbed-OS build fails for LPC546XX and FF_LPC546XX targets with ARM Compiler 6.11
    • 9608 GCC_ARM build fails for v8m secure targets
    • 9611 FUTURE_SEQUANA: failing make nightly exporters

    Support has been added for:

    • MIMXRT1050 IAR exporter
    • TRNG for STM32F2

    There are also a number of other fixes and code improvements.

    Known Issues

    9688 PSOC6 WICED drivers need to be recompiled for 5.11
    The PSOC6 WICED drivers will not work correctly with this release.

    Contents

    Ports for Upcoming Targets

    None

    Fixes and Changes

    9631
    Update linker scripts for bootloader target TMPM46B

    9625
    Fix cortex-m33 armlink error

    9619
    Correct the dsp flag from no_dsp to nodsp

    9615
    FUTURE_SEQUANA: Remove special “tags” from M0 hex images

    9614
    Fix cortex-m33-S gcc compilation error

    9606
    Correct typo no_dsp - nodsp

    9596
    Implement Linker command/response files in make export

    9595
    Define USBTX and USBRX for targets without them

    9594
    Remove SERIAL_FC on devices which don’t support it

    9593
    Standardize Arduino form factor

    9589
    Improve error message for exports for OS2-only targets

    9585
    PSOC6: M0 core binary image for BLE controller updated to version 1.05

    9583
    STM32F2: Enable TRNG

    9580
    Fix SharedPtr::reset

    9579
    FHSS timer: Use singleton pointer

    9572
    Use an ip4- and ip6-compliant site to test TLS certificate error reporting

    9562
    LPC546XX, MIMXRT1050: Update to fix ARMC6 build failures

    9560
    Reset internal vref buffer after an ADC conversion

    9557
    [Wio BG96] Modified pin map

    9556
    [Wio 3G] Modified pin map

    9553
    STM32: Enable SERIAL_FC for all

    9552
    STM32H7: Enable OS2 compilation

    9551
    Modify general blockdevice tests to run all storage components

    9550
    Prevent double attempt to connect mesh api

    9549
    BLE: fix missing scan timeout for 4.2 controllers using new API

    9546
    Mesh api fixes

    9534
    STM32 Serial Flow Control

    9533
    Cellular: Remove makefile and mbedignore refering to obsolete cellula

    9531
    Remove COMPONENT_FLASHIAP tests

    9527
    Remove yotta references within testing frameworks

    9526
    Remove yotta and minar references in NCS36510

    9522
    Update all mbed test packages

    9521
    Py3 fixes and Travis CI enablement

    9515
    tests-netsocket-udp UDPSOCKET_SENDTO_INVALID allow unsupported empty UDP packet

    9509
    PSOC6.py: generate hex files with 16 bytes per row

    9500
    TCPSocket.cpp setting socket should terminate with semicolon

    9499
    Remove unused yotta module metadata

    9498
    Remove outdated text and fix spelling in README.md

    9497
    Remove yotta from README.md

    9496
    MIMXRT1050_EVK: Add IAR support in the exporter

    9487
    Add sd-driver example

    9485
    UBLOX_C030: Fix modem reset functionality

    9483
    Fix for Issue #7308 (Deep_sleep_lock Ticker.h Issue)

    9482
    ARCH_PRO: add missing SPI pin definitions

    9480
    Refactor core optional parameters (FPU + DSP + Security extensions)

    9478
    Refactor storage components

    9475
    FlashIAP Block device: Assert if default constructor is used without setting config parameters

    9471
    lwipstack: mem-size set to the to minimal working size with DTLS

    9466
    Improve PSoC 6 post-build hooks, whitelist makefile export

    9445
    NVStore: fix area calculation function

    9431
    Update IAR Armv8M changes

    9430
    LPC546XX, MIMXRT1050: Update to fix ARMC6 build failures

    9429
    Fix TCPSOCKET_ENDPOINT_CLOSE: Cannot accept WOULD_BLOCK

    9394
    STM32: PeripheralPins files update from lastest CubeMX tool version

    9393
    BLE: Fix SafeEnum type safety

    9388
    Fix for ARMc6 compiler errors

    9342
    Add support for debug and program launch configurations

    9328
    Doxygen fixes for IP networking area

    9283
    Add TLSSocket greentea tests.

    9236
    COMPONENT_SD tests update for small RAM targets

    9021
    tools: check that part size is not exceeding region size

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.11.4”.

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

  • mbed-os-5.11.3

    Downloads: zip tar.gz

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

    Summary

    In this release we have added target support for Quectel M26 GSM/GPRS module and C030-R412M,

    We have added fixes for the following reported issues:

    • 9138 Can’t execute OS2 tests in ARM if default_toolchain is uARM
    • 85 Len vs amount check
    • 9400 tests-mbedmicro-rtos-mbed-systimer to tune ?
    • 9426 NUCLEO_H743ZI: iar export failing
    • 9281 lfs_emubd.c needs to be ignored?
    • 9513 Occasional hard fault when using the mbedtls entropy function in parallel threads (K64F)

    Support has been added for:

    • Nanostack on KW41Z
    • An updated PSA binaries importer for FUTURE_SEQUANA_PSA
    • FLASH on TARGET_MAX32620C MCU, MAX32620FTHR and SDT32620B
    • CAN on STM32H7
    • TICKLESS on NUCLEO_H743ZI
    • QSPIF as default storage for LPCXpresso546XX

    Important notes:

    • A folder path fix for KVStore FILESYSTEM configuration and default configuration (under SD component) has been added. Previously the folder path was the constant “kvstore”. This has been fixed to now behave correctly by taking the value from the configuration store. Users will now need to ensure they have the correct values in the configuration store.

    • The IAR heap size for STM32L496xG has been increased

    • A problem was identified where ther FlashIAP driver would fail during write actions due to HW limitations. A fix has been added to retry a few times until the write is successful.

    • There was a random issue where a device would not boot. This was found to be due to the pre-main check of error_reboot_count being applied repeatedly on every boot. This meant that once the reboot limit was hit, every subsequent reset would halt before main, until something managed to clear or corrupt the error context. This has been fixed by setting the is_error_processed flag before halting, so that when an external agent resets the device while halted, the error is not reported (which would cause the device to halt again).

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    9261
    Initial version for Quectel M26 GSM/GPRS Module.

    9369
    Add target C030-R412M

    Fixes and Changes

    9548
    FlashIAP driver: Add retries to erase and program operations.

    9547
    mbed_die: Use wait_us not wait_ms

    9544
    Halt to enforce reboot limit once only

    9532
    Mutex-protect mbedtls_hardware_poll

    9492
    Travis CI: Fix for license check job

    9488
    Fix licenses in travis test and realtek lib

    9484
    Start Component SD test by formatting SD Card

    9462
    Corrected the targets value in json file as CI uses real board names

    9453
    mbed-host-tests minimum requirement set

    9452
    Crypto platform renaming

    9448
    Fix links to https://os.mbed.com documentation

    9440
    Put LittleFS emulated BD module under .mbedignore

    9439
    Examples: enabled some examples build for FVP_MPS2_M3 target

    9433
    Set DSP and floating point flags for ASM files

    9428
    STM32H743ZI: iar removal as not supported in v7.x

    9427
    BLE: fix possible truncation

    9422
    PB_1 is not connected to D4 in R412M above

    9421
    ESP8266: implements possibility to decide between non-blocking/blocking connect.

    9418
    tools: build_api: remove redundant initialization and fix spelling

    9417
    Netsocket DNS test: increase timeout value

    9416
    RTOS: SysTimer: Fix test timing issues

    9415
    Allow NSAPI_ERROR_UNSUPPORTED from Socket::setsockopt()

    9411
    STM32L496xG: increase IAR heap size

    9408
    SPIF - Fix command to unlock Global Block-Protection register

    9407
    DirectAccess DeviceKey: add support for default storage type

    9406
    Extended mount to check all metadata-pairs

    9404
    DSP_PRESENT flag is needed for Armv8m devices having DSP enabled

    9403
    Clarify addition to CONFIGURATION.md

    9399
    BLE: fix missing null checks on Gap event handler

    9397
    Fixing folder path for KVStore FILESYSTEM configuration.

    9389
    Travis CI: Bind remaining python modules

    9385
    Fixes typos in SMSC9220 Ethernet driver

    9380
    UNO_91H: open hal lib source

    9377
    test: general_block_device fix to always erase prior the first program

    9376
    TCP/UDP greentea tests refactoring and cleanup

    9374
    Add QSPIF as default storage for LPCXpresso546XX

    9368
    PSOC6: Fixes for serial hal driver, asynchronous mode.

    9366
    ESP8266: add an error check for data overflow from modem side

    9365
    Fix for asserion failing in BLE::callDispatcher with gcc debug profile.

    9363
    Remove unnecessary error prints in FileSystemStore

    9361
    Removing dependency of TDBStore in SystemStorage file and moving some file location - TFM support.

    9360
    LPC546XX, LPC54114: Add README and LICENSE files for the power libraries

    9357
    NUCLEO_H743ZI : enable TICKLESS

    9356
    ESP8266 - fixes disconnect to check the state from modem

    9354
    STM32H7 : add CAN support

    9347
    stm32: Improve the CRC function to support fully accumulate

    9339
    Fix Out-Of-Band (OOB) data generation for BLE OOB pairing

    9337
    unittest: remove cellular driver L3IP stub

    9335
    thread_mle_message_handler: fix build warning

    9333
    Minor Doxygen fixes for BufferedBlockDevice and iBeacon

    9331
    ESP8266: prevent WOULD BLOCK from TX if UDP

    9318
    fix bug for RDA UNO_91Hcalling us ticker functions without init.

    9316
    Add FLASH support to TARGET_MAX32620C and brd targets

    9302
    Add TRNG checkup in devicekey

    9297
    uARM targets now build in correct ARM_MICRO directory

    9296
    Remove printf completely and fix the optimization check

    9291
    NRF5x: QSPI SFDP read, min read/write implementation

    9288
    Gemalto Crinterion UDP test adjustments

    9286
    travis: Add include_check job

    9280
    Sleep manager implements all the API’s in platform file

    9258
    FLASH test: skip test if test region overlaps code

    9257
    FLASHIAP test: skip test if test region overlaps code

    9223
    Update PSA binaries importer for FUTURE_SEQUANA_PSA

    8970
    Add doxygen spellcheck job to Travis

    6622
    Add nanostack support for KW41Z

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.11.3”.

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

  • mbed-os-5.11.2

    Downloads: zip tar.gz

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

    Summary

    In this release we have added target support for NUCLEO_H743ZI, GD32_E103VB and GD32_F450ZI.

    We have added fixes for the following reported issues:

    • 8567 Equeue unchain bugs
    • 8913 Build of NUCLEO_F030R8 fails when DEVICE_SERIAL=0
    • 8903 Realtek_RTL8195AM is printing a lot of traces
    • 9196 ESP8266 CTS/RTS fails in stop_uart_hw_flow_ctrl()
    • 9075 K82F QSPI test fails intermittently
    • 9216 Defining MBED_SLEEP_TRACING_ENABLED caused error
    • 9266 Astyle in travis doesn’t use .astyleignore
    • 9255 FLASHIAP component tests failed
    • 9207 MCU_LPC546XX - breaks on master
    • 9272 Block device test : skip multi thread part in case of small RAM

    Support has been added for: * PSA APIs on Pelion supported boards * a bootloader on the DISCO_F469NI

    There have also been some updates to improve the quality of the documentation.

    Important notes:

    • There was an issue with the internal KVStore, identified after the 5.11 release. The fix for this
      required changes which would normally not be accepted into a patch release. We have made an exception in
      this case due to the significant nature of the issue.

    Prior to the fix provided in, 9156,
    the space left for the internal TDBStore (when working in the default internal configuration) was allocated from
    the sector following the end of the application until the end of flash. While this worked, it was problematic if the
    application would have crossed the sector boundary after an update. This PR leaves the application a couple
    of sectors to grow at the expense of the allocated storage (if they are available, which is the likely case).

    The fix is defined as a breaking change, even if not a typical one: Boards that use the default internal
    configuration will lose the storage content after the upgrade (as the internal storage start will move forwards).
    Two boards will be affected: K66F and FUTURE_SEQUANA_M0_PSA. Non default configurations won’t be
    harmed.

    • The device key in versions before 5.11.2 may have been insecure as the TRNG may have unknowingly failed.
      This issue has been addressed in this release by 9278 DeviceKey: [Security Fix] Generated ROT-key is still used when TRNG fails.

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    9056
    NUCLEO_H743ZI: add new platform

    9203
    Add GD32_E103VB as new target

    9232
    Add GD32_F450ZI as new target

    Fixes and Changes

    9391
    Add pyocd depencency to resolve Travis CI issue

    9384
    MBRBlockDevice: When partitioning, clear the rest of first erase unit

    9371
    travis: set hypothesis to v3.88

    9362
    Fix the general block device for better support of low memory boards

    9355
    Parameterise the repo used in the Mbed TLS importer script

    9346
    Travis CI: Corrected astyle job behavior with non-master base branch PRs

    9341
    Flush ESP8266 serial input buffers after HW reset

    9334
    Doxygen fixes in block devices

    9332
    Update and cleanup BLE.h doxygen

    9330
    Doxygen update for LoRaRadio class

    9329
    SDBlockDevice docs update

    9327
    STM32: replace missing #ifdef DEVICE_xxx

    9324
    Avoid building mbed_tz_context.c for TF-M targets

    9323
    STM32: astyle check

    9321
    STM32 : typo error in QSPI

    9319
    tools/importer script changes

    9315
    LPC546XX: Do not make MCU_LPC546XX target public

    9313
    STM32L476VG: fix wrong pin map function on ADC channels

    9311
    Edit README.md

    9310
    SPIFBlockDevice docs update

    9309
    ESP8266 - fix send buffer exhaustion handling

    9295
    Add missing END to Armv8M IAR assembly files

    9293
    Updated pyyaml due to possible vulnerability

    9290
    ESP8266: Set HW reset time to 2ms

    9289
    travis: add keys for ubuntu - workaround

    9284
    ESP8266: Fixes AT-layer socket_open-functions

    9278
    DeviceKey: [Security Fix] Generated ROT-key is still used when TRNG fails

    9274
    UNO_91H: fix MPU compilation issue

    9271
    Correcting the error-case trace from mesh-api interfaces

    9269
    SDT64B: Add TARGET_SDT64B, a bootloader file on SDT64B

    9268
    Calculate FlashIAPBlockDevice start address and size automatically for test only

    9267
    Fix travis astyle usage of .astyleignore

    9264
    reduce info traces to debug level to prevent logs overflow

    9260
    Use mbed_error_printf instead of debug for ISR friendly prints

    9256
    STM32L0 & STM32L1: FLASH is EEPROM

    9252
    STM32L4 ADC : power optimisation for VBAT channel

    9251
    LoRaWAN: Randomizing backoff for Join process

    9250
    Fix Python 3 syntax in rtc host test

    9249
    add bootloader support to the DISCO_F469NI

    9246
    STM32L0 TEMPERATURE ADC CHANNEL minor update

    9244
    Kvstore tests api change to run on K64F only

    9241
    TDBStore: fix bug in sector blank check for variant sized sectors

    9239
    Increases events.shared-stacksize to 2K

    9237
    Refactoring and fixing some issues in KVStore configuration.

    9234
    nanostack-mac-tester sync with v1.0.1

    9233
    FastModel: update platform header, removed unwanted smsc9220 device

    9229
    hal-qspi_test: move frequency setting before flash init

    9227
    [SDT64B] changed UART0 to UART2, added UART_5 on SDT64B

    9220
    BLE: NRF52 returns used tx/rx phy on phy update callback

    9218
    Change to mbedtls_platform_zeroize()

    9215
    Direct access to device key

    9210
    mbed.h includes removed

    9209
    More static place for astyle

    9202
    Realtek-RTL8195AM-Hide_Debugging_Messages

    9200
    TDBStore: Perform garbage collection on failed writes

    9198
    Fixing bug - overwrite of default configuration values for RBP start address and size fails

    9197
    Nuvoton: Fix UART flow control CTS/RTS

    9195
    Enable PSA APIs on Pelion boards

    9191
    Nuvoton: Fix crypto compile error with Mbed OS 2

    9187
    Resolves build failures with IAR 8.x

    9186
    Fix ticker_read_us() race condition.

    9183
    Allow LwIP TCP retransmissions to be configured and tune those smaller.

    9182
    Disable MPU support on NRF52x platforms

    9175
    Greentea tests ignore bind returning UNSUPPORTED

    9173
    Prevent ESP8266 stopping HW control on init

    9167
    Modify IRQ handler processing when unusing RTOS at Cortex-A

    9163
    Don’t use define checks on DEVICE_FOO macros (partner code)

    9154
    ARMC6: Use float-abi=hard

    9152
    Cellular: fix state machine to check network attach

    9135
    Get type for BlockDevice

    9128
    Fix SPM HAL test

    9114
    Simplified astyle travis test to be easier to reason about

    9066
    Equeue chaining bug fixes

    9058
    BLE: suppress scan timeout if we disabled scanning

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.11.2”.

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

  • mbed-os-5.11.1

    Downloads: zip tar.gz

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

    Summary

    In this release, we have added support for GD32F307VG, TT_M3HQ, Seeed Arch MAX, ACONNO ACN52832,
    NUCLEO_L4R5ZI_P and the KW41Z side of RapidIoT .

    We have added fixes for the following reported issues:

    • 8714 STM32L4 - using TICKLESS and serial (UART - AT cellular) losing characters
    • 8864 TRNG on L4 pulls rug out from USB
    • 5348 K64F: LowPowerTimeout: Inaccurate delay after board power up
    • 8880 CordioGattServer is using wrong connection handles resulting in faults / memory corruption
    • 8555 NVSTORE test issue
    • 7398 UART not working on LPC54608
    • 8913 Build of NUCLEO_F030R8 fails when DEVICE_SERIAL=0
    • 8992 Support for Cortex-M33FD
    • 8710 Build failure for FUTURE_SEQUANA_M0 with PSOC6_DYNSRM_DISABLE=1
    • 8864 TRNG on L4 pulls rug out from USB
    • 8950 Properly fix Travis CI Rabbit MQ issue
    • 9014 ATHandler.cpp - Bad logical comparison
    • 8785 NvStore does not correctly persist values through reset
    • 8870 Feature: QSPI support on DISCO_F769NI
    • 8124 RTL8195AM netsocket test failures
    • 8870 Feature: QSPI support on DISCO_F769NI
    • 8664 equeue cancel function can corrupt internal data structures, causing queue failure
    • 9099 Identically names structs in different files
    • 9176 STM32: RTC No Longer Enabled by Reading the Time

    Support has been added for: * nrf52_dk bootloader * DAC (analog-out) HAL on NUMAKER_PFM_NANO130, NUMAKER_PFM_M453, NUMAKER_PFM_M487/NUMAKER_IOT_M487 and NUMAKER_PFM_M2351 * TICKLESS for STM32 targets which are using LPTIM feature for LPTICKER

    We have updated mbed-coap to version 4.7.3.

    There are also a number of other fixes and code improvements.

    Known Issues

    There is the following known issue with this release:
    ESP8266::_open_tcp: device refused to close socket

    Contents

    Ports for Upcoming Targets

    8725
    Add support for GD32F307VG

    8815
    Add platform TT_M3HQ

    8831
    [Seeed Arch MAX] Add Mbed OS 5 support

    8860
    Add the port for the ACONNO ACN52832 module on MTB’s form factor

    9008
    Add NUCLEO_L4R5ZI_P target

    9053
    Rapid-IoT: Add support for the KW41Z side of the platform

    Fixes and Changes

    9180
    Revert “STM32 RTC : skip rtc_write if possible”

    9174
    MTB_ODIN_v2_fixes

    9171
    Nuvoton: Fix NUC472 hard fault in SMCC tests

    9168
    Fix to unit test losing process output due to timing issue

    9166
    Ublox C030 ADC internal channels added

    9164
    Disable printf in crash reporting for release builds

    9159
    Drop MBED_EXTENTED_TESTS flagging from network tests.

    9158
    Fix LTO build failures due to duplicate local types

    9157
    PSOC6: Updated default M0 image to not modify UDB configuration when

    9155
    PSOC6: Fixing merge issue for pull request #9009

    9151
    github: add reviewers to the PR template

    9150
    Check correct ARMC6 predefine for FP codegen

    9148
    Fix FLASHIAP_ROM_END macro for GCC_ARM & IAR toolchains

    9144
    EventQueue: Old pointers of sibling were not cleared

    9143
    Fix BLE long write execution failure

    9134
    STM32: enable TICKLESS

    9131
    Add versioning limits to intervaltree module

    9130
    Fix ESP8266 “Link Type” errors after reset

    9129
    DNS tests: improve debug messages

    9127
    WIFI test: improve debug messages

    9126
    Fix multiple definitions of ‘__aeabi_atexit’

    9122
    Update the CC310 IAR libraries

    9109
    Rework fseek/ftell tests

    9107
    Fixing execution of OS2 tests

    9105
    Add some rounding to determine the pulse value for PWM for the STM target

    9102
    Nuvoton: Support boot stack size configuration option

    9101
    Cellular: Fix to use PPP stack in PPP mode

    9100
    Align prototype & implementation of enet_tasklet_disconnect & friends

    9097
    Update to add support for Cortex-M33FD

    9089
    STM32 QSPI update

    9087
    kvstore tests: reduce reset

    9085
    U-blox C030 PinNames Updated

    9084
    Realtek-rtl8195am-Network_Socket_Updates

    9081
    Nuvoton: Fix crypto AC management

    9079
    Add socket stat logging state change update

    9073
    W7500x target ADC 6 and 7 not implemented

    9063
    mbed_fault_handler: fix build warning

    9061
    More MPU work

    9060
    Fix duplicate ‘overrides’ keys in targets.json config file

    9057
    Prefer QSPI Bus mode 1-4-4 as highest priority for QSPIFBlockDevice

    9055
    travis: use https for fetching astyle package

    9054
    Fix max_keys reset limitation

    9052
    Cellular: Rewrite AT handler consume to tag

    9049
    Fix test-netsocket-tcp greentea test build fails.

    9047
    travis: add license

    9045
    Fix wrong PIN config for RTL8195AM platform

    9043
    Removed rabbitmq fix from travis.yml

    9037
    BLE: Update toolchain.h with mbed_toolchain.h

    9035
    STM32L4: correct RNG clock source

    9034
    Change enet_tasklet declarations to match code

    9033
    Fix Stream for IAR toolchain

    9009
    [PSOC6]: Fix for static resource manager.

    9001
    Missing socket greentea tests implementation

    8995
    Add core option for Cortex-M33 with DSP enabled

    8993
    Apply GitHub style to exporter matrix

    8990
    Adjust FAT FS tests to low memory boards

    8980
    memap.py: Cope with IAR 8 linker map

    8978
    fixed wrong __StackTop calculation

    8975
    Initialize the interface at the construction

    8965
    Coverity fixes.

    8964
    Correct behavior of PSA code generator

    8960
    STM32: avoid STM32 family name check

    8957
    Fix incorrect #ifdefs on DEVICE_FOO macros

    8956
    Update Ticker wrapper to handle early interrupts

    8955
    Bug fix for UART issue on LPC54608 - issue #7398

    8951
    Remove NVSTORE enabled from NUCLEO_F410RB

    8949
    TARGET_WICED updated.

    8947
    ONME-4007: Fix mbed_lib link from ESP8266 Readme.md

    8936
    Reduce default MBEDTLS_MPI_MAX_SIZE

    8934
    Setting K64F to use KVStore FileSystem configuration

    8933
    Fixing Doxygen descriptions

    8916
    STM32F429/STM32F439 alignment

    8911
    Fix ESP8266 recv_udp timeout with flow control

    8910
    Fix rare NRF52 serial TX lockup

    8900
    Nuvoton: Refine UART init/deinit

    8899
    Renesas : Add the setting of SD as components

    8888
    Align comment block in sys stats struct

    8884
    BLE: Fix iteration on connections in CordioGattServer.

    8883
    LPC546XX: Fix build failure due to incorrect merge

    8882
    Update mbed-coap to version 4.7.3

    8879
    Ble extended advertising doc fixes

    8872
    MCUXpresso: Ensure the RTC OSC is running at bootup on Kinetis platforms

    8867
    STM32L4: fix trng clock setting

    8866
    Cellular: Refactored GEMALTO_CINTERION_Module to GEMALTO_CINTERION

    8861
    Bugfix-tests-network-wifi drop the assumption about more than one SSID

    8855
    Fix compilation warnings (apart from nanostack)

    8854
    SMCC FOTA: bin name change

    8852
    Cellular: update doxygen and add attach CellularDevice.

    8844
    STM32 : Remove html release notes files

    8843
    Fix C++11 build with Arm Compiler 6

    8835
    Moving some examples testing from K64F to K66F

    8832
    nRF52840_DK: “qspi_api.c” check read/write WORD alignment, set clock frequency divider

    8828
    Nuvoton: Support DAC HAL

    8827
    TARGET_MCUXpresso_MCUS: fix lp ticker init function

    8822
    LoRaWAN: Mitigating reception issues at lower data rates & FCnt increment after retry exhaustion

    8819
    Improve the unit testing documentation

    8817
    Correct network status callbacks with ethernet and nanostack

    8802
    Fix long writes/reads stack overflowing

    8798
    STM32 : Add default deep sleep latency of 3ms

    8797
    Fix issues in Cryptocell 310 cc_internal discovered by On Target Testing

    8796
    nanostack-mac-tester sync with v1.0.0

    8795
    cellular: registration status change fix

    8779
    Migrate old memap file handling into toolchains

    8777
    STM32 LPTICKER with RTC : better sleep time

    8771
    STM32 LPTICKER with LPTIM optimisation

    8728
    Fix issues in Cryptocell 310 shax_alt discovered by On Target Testing

    8690
    drivers/hal/platform/rtos: add SPDX identifier

    8655
    Disable write buffer in debug builds (M3/M4)

    8097
    Add support for nrf52_dk bootloader

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.11.1”.

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

  • mbed-os-5.11.0

    Downloads: zip tar.gz

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

    Summary

    Mbed OS 5.11 adds secure sockets, so your Mbed OS applications can securely connect and send data to any cloud or server through any TCP-based protocol. It also provides advanced storage solutions for IoT devices to encrypt external memory, and a storage stack that allows using internal flash for firmware updates. Mbed OS 5.11 also supports enhanced device statistics APIs for capturing key information, such as network statistics and advanced system information.

    This release includes many minor fixes and enhancements and brings support for 157 target development boards.

    Operating system

    Secure sockets

    With secure sockets, your Mbed OS applications can securely connect and send data to any cloud or server through any TCP-based protocol. By introducing native secure sockets to Mbed OS we enable TLS functionality in the background, simplifying secure connections. For more information, please visit secure sockets.

    Advanced storage solutions for IoT devices

    Encrypted and authenticated storage

    Encryption and authentication for external memory provide greater protection against physical attacks against IoT devices. This adds significant value to products that do not trust the PCB, and which could be tampered with, making security comparable to being on-chip. For more information, please visit storage.

    Storage stack for internal memory

    Microcontrollers now provide more performance and bigger internal memory, offering new opportunities. In Mbed OS 5.11, we allow businesses to use internal MCU memory to store configuration and firmware images, and reduce the cost of the bill of materials for IoT devices. For more information, please visit storage.

    Enhanced device statistics APIs

    Pulling valuable stats from IoT devices is key for any business deploying these devices, and is an important initiative driven by Arm. The intension is to collect data from embedded devices and (in the future) predict their behaviour using machine learning.

    Mbed OS already implements a Device Statistics API to collect data such as thread info, CPU usage, memory info, and system info. In Mbed OS 5.11, we’ve added advanced device stats such as network stats, advanced system Info, and errors info. For more information, please visit statistics.

    Internal RAM marked as execute never

    Many Remote Code Execution (RCE) exploits attempt to use buffer overflows in the stack or the heap to write exploit code into memory, and then cause the system to execute that code. If the address where the exploit was written were marked execute never, this exploit code would not be executable. With Mbed OS 5.11 on supported targets, all RAM space is marked as execute never by default. For more information, please visit MPU management.

    Crash reporting for critical fault with automatic reboot

    When the system encounters a fatal crash (for example, a hard fault), we capture information such as register context and thread info, as these are required to debug the issue. This information is usually dumped over the serial port, but when the crash happens in deployed devices, there will not be any serial port enabled or logged, so a different mechanism is needed to record and report this data. With the crash-reporting feature of Mbed OS, the system reboots without losing RAM contents, and we can send this information over a network or other interfaces to be logged, or even write to the file system if required. For more information, please visit error handling.

    Connectivity

    Support for extended and periodic advertising in GAP (BLE stack)

    Extended advertising uses multiple physical layers and spreads the payload across many packets to support much larger payloads than normal. In this scenario, advertising is split across primary advertising on the advertising channels and secondary advertising on channels normally used for sending data to connected devices. Similarly, if the controller supports periodic advertising, you may use it to send changing data to many peers. Each peer needs to scan the advertisements on the primary channels and create a sync with the periodic advertisement it’s interested in. For more information, please visit GAP.

    Cellular stack updates

    The LoRaWAN stack was updated to version 1.1, which includes support for secure device provisioning through a Join Server, new security primitives, handover roaming, and optimizations for communication from the network to the device. For more information, please visit LoRaWAN-11.

    In addition, we added support for AT-mode TCP over cellular for selected modules * Quectel BG96 * Quectel BC95 (used in the WISE-1570 module) * Gemalto cellular modem driver.

    Security

    Update to Mbed TLS

    Mbed OS 5.11 includes Mbed TLS 2.15.1, which introduces the Mbed Crypto library and other new features. For more information, please visit, mbedtls.

    Mbed Crypto APIs

    The Mbed Crypto library is a reference implementation of the Platform Security Architecture (PSA) Cryptography API. Therefore, the library’s API documentation is the PSA Cryptography API specification. Arm’s PSA is a holistic set of threat models, security analyses, hardware and firmware architecture specifications and an open source firmware reference implementation. PSA provides a recipe, based on industry best practices, that allows security to be consistently designed, at both a hardware and firmware level. The PSA Cryptography API provides access to a set of cryptographic primitives. It has a dual purpose: It can be used in a PSA-compliant platform to build services, such as secure boot, secure storage and secure communication; and it can be used independently of other PSA components on any platform. The Mbed Crypto APIs are currently in development. For more information, please visit mbed-crypto.

    PSA Secure Partition Manager

    We have added PSA compliant process separation for the Future Electronics Sequana dual-core v7-M platform. The process separation is enforced with the Secure Partition Manager (SPM), which uses hardware on the device to provide RAM and Flash isolation between the two cores. It also implements the PSA Firmware Framework Inter-Process Communication (IPC) API, which allows the cores to communicate with each other. More information about Sequana is available at Future-Sequana. For more information about SPM, please visit SPM.

    Targets and tools

    Thanks to our Partners’ hard work, Mbed OS 5.11 added 12 new target platforms for a total of 157. We’ll continue to add targets in our biweekly patch releases as partners work with us.

    The official Arm Mbed OS compiler has been update from ARM CC 5.06 update 3 to ARM CC 5.06 update 6, which includes new bug fixes.

    Testing and improvements

    Support Ethernet 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 and test Mbed OS and its applications on the software model instead of the hardware. In Mbed OS 5.11, we now support Mbed OS sockets examples with Fast Models Ethernet. For more information, please visit Fast Models.

    Continuous integration framework

    We designed Mbed OS to significantly reduce the cost and time of embedded software development by providing production-quality toolset and code. We are committed to delivering high-quality code working across all supported boards and platforms. To ensure all the features of code meet our quality control requirements, we have built an automated testing environment and processes that perform rigorous testing on every line of code. The continuous integration framework is a highlight of our testing framework - it ensures that every new feature and change in Mbed OS is tested:

    • 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.
    • The Mbed OS gatekeepers manually review the code of each PR to ensure it meets our coding guidelines and code standards.
    • Once approved by the gatekeepers, the code goes through the automated test infrastructure, which tests 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 IDEs, we test that the code can be exported properly to all the compilers.
    • We merge a PR only if all the above procedures are successful.

    For Mbed OS 5.11.0, our testing included:

    • Total test time of 42,372 hours on development boards.
    • 30 new test cases since the Mbed OS 5.10.0 release. These test new and existing features and bring the total number of test cases to 1,346.
    • The total number of binaries built since the Mbed OS 5.10.0 release is 50,800,176.

    We plan to share more details about testing processes, such as our out-of-box testing coverage and system testing, in upcoming release blogs.

    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 list 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: 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

    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 peers side.
    • Reported Issue: Reported by the development team.
    • Priority: MAJOR

    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: https://github.com/ARMmbed/mbed-os/issues/8146
    • 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: https://github.com/ARMmbed/mbed-os/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: https://github.com/ARMmbed/mbed-os/issues/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: https://github.com/ARMmbed/mbed-os/issues/5640
    • 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: https://github.com/ARMmbed/mbed-os/issues/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: https://github.com/ARMmbed/mbed-os/issues/8124
    • Priority: Major

    NVStore and TDBStore objects can collide in internal flash

    • Description: NVStore and TDBStore are classes implementing storage solutions. By default they will allocate the last two sectors in internal flash.
      If both are used, the behavior of the system will be unexpected. NVStore is deprecated, and TDBStore should be used instead.
    • Workaround: Use TDBStore instead of NVStore.
    • Reported Issue: Internal reference: IOTSTOR-697
    • Priority: Minor

    ESP8266 works unreliably, unless latest firmware is used and CTS, RTS and RST are connected

    • Description: Due to missing flow control and issues with older firmwares the ESP8266 can end up in states, where it
    • fails to connect
    • fails to resolve name queries (DNS).
      With ESP8266 firmware version 1.6.2 the behaviour of the module is greatly improved, but it will not be 100% reliable. However,
      firmware 1.6.2 is the newest you can install to a board with less than 2 MB flash. The newest firmware 1.7 can only be
      updated to boards with 2 MB flash memory.
    • Workaround: Update the firmware on the ESP8266 module. Preferrably you should get a ESP8266 with 2 MB flash and have the
      CTS, RTS and RESET pins connected.
    • Reported Issue: Internal references: ONME-4002, ONME-4074, ONME-4073, ONME-4071, ONME-4069
    • Priority: Critical

    STM32L4 random / entropy broken

    • Description: STM32L4 random / entropy broken
    • Workaround: None, Fix will be available in 5.11.1 patch release
    • Reported Issue: Internal reference: MBEDOSTEST-377
    • Priority: Critical

    Bluetooth: NRF52/Cordio platforms experience faults when using GATT Server with IAR in Release profile

    • Description: A Cordio Stack function is called with invalid parameters which leads to a crash with IAR in Release profile.
    • Workaround: Cherry-pick commits from https://github.com/ARMmbed/mbed-os/pull/8884
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-ble/issues/205 Internal reference: IOTPAN-345
    • Priority: Critical

    Contents

    Fixes and Changes

    8898
    Add crypto example to examples.json

    8897
    Add TLS Sockets example to examples.json

    8896
    Update Statistics examples in example test json

    8895
    Add crash-reporting example to examples.json

    8876
    Add support for Cordio to NRF52 Devices

    8871
    MPU API (Reopened)

    8863
    Adding KVStore Examples for Global API

    8859
    Import Mbed TLS v2.15.0 with Mbed Crypto

    8851
    Change error code from NSAPI_ERROR_PARAMETER to NSAPI_ERROR_NO_CONNEC

    8850
    DISCO_F746NG: add bootloader support

    8849
    Correct detect_code for TMPM4G9

    8847
    Cellular: Fix bc95 to accept only RAT_NB1

    8840
    Fix build of library archive with Arm Compiler 6

    8839
    S2-LP: Cleaned thread deprecation warnings

    8837
    Update mbed-coap to version 4.7.2

    8836
    Clarify asynchronous NetworkInterface::connect() documentation

    8826
    Revert “Merge pull request #8272 from NXPmicro/Ensure_RTC_OSC_Start”

    8824
    NUCLEO_F030/F070: remove ADC_VBAT pin definition

    8823
    DISCO_L072CZ: remove ADC_VBAT pin definition

    8821
    Cellular: add radio access technology as configurable in json

    8820
    travis: fix coding style for remaining 2 files

    8814
    Cellular: unified return value comments on API folder.

    8804
    PSA Crypto SPM

    8803
    Compatibilize ArmC6 with ArmC5-built archives

    8794
    Deprecate TCP/UDPSocket open-calling constructors

    8790
    Cellular: Fix ATHandler URC processing

    8787
    [Wio 3G] Adding IAR exporting definition

    8784
    NRF52 serial fixes

    8782
    Fix traceback when running mbed test

    8778
    STM32 LPTICKER with LPTIM : reduce clock feature

    8772
    Cellular: more gracefully disconnect.

    8767
    Cellular: Update cellular debug prints

    8766
    Fix cellular backward compatibility

    8764
    ONME-3983 Fix the defects found in IPV4 testing against packet dropping

    8761
    Add MBED_ALL_STATS_ENABLED to config system

    8756
    Adding Murata WSM-BL241 as new target

    8751
    Cellular: minor fix to CellularDevice and adding updating unit tests after refactoring

    8750
    realtek-rtl8195am-wifi-headerfile-updates

    8744
    PSA Secure partition manager and services

    8743
    Add design document for network statistics.

    8740
    Add block device test for small data sizes

    8738
    Ble extended advertising

    8737
    Add low power implementations for CM3DS

    8735
    Compliance test errors fixed

    8734
    Patch whitespace inconsistencies in platform lib file

    8730
    Add a new PSA Internal Trusted Storage APIs

    8719
    M2351 RAM / ROM defines updated

    8718
    NFC Eeprom erase command fails

    8717
    Format targets.json to put the items of large lists on their own line

    8711
    Fix astyle errors (clears all remaining styling issues)

    8708
    [Wio BG96] Adding platform HAL

    8704
    Fix issues in Cryptocell 310 ccm_alt discovered by On Target Testing

    8703
    Improve the efficiency of BufferedBlockDevice

    8702
    Crash Reporting implementation

    8701
    [Wio 3G] Added default I/F type and pin defs

    8689
    Add ESP8266 driver v1.7

    8687
    TLSSocketWrapper: decouple error requirements

    8685
    Clean up deprecated feature code

    8683
    Feature qspi lpc546xx

    8680
    Add PSA build components to build configuration for non-PSA targets

    8673
    Add Mbed Configuration Option Range Limits

    8671
    Feature: Add non-blocking serial break/unbreak functions

    8670
    Remove protected member functions and protected attributes from rendering

    8668
    Enable Fast Models emac drivers

    8667
    KVStore & derived classes: design docs, implementation & configuration

    8662
    KW41Z: Add Bootloader support

    8659
    Implement DTLSSocket and fix non-blocking connections on TLSSocket

    8657
    Icetea tests - update socket command client

    8651
    Implement Socket::getpeername() API

    8647
    Nanostack release for Mbed OS 5.11

    8646
    Add a Unity macro to assert on platform error code difference

    8643
    Modify HW accelerator drivers to new error code

    8639
    Add get_erase_value() support

    8621
    Add missing include for TLSSocket

    8617
    Typo fixes in Doxygen for Platform

    8613
    Make sure that TLSSocketWrapper::close() is called before the transport is destroyed.

    8612
    Add names to system thread

    8607
    Fetch ram/rom start/size

    8602
    Sync 802.15.4 RF drivers

    8601
    Add format checking to printf-type APIs

    8600
    Wi-SUN interface implementation.

    8592
    Network Socket Statistics

    8591
    features: fix coding style

    8590
    Export: Remove DS-5

    8589
    Support erase value in Flash HAL drivers, FlashIAP and block devices

    8584
    system_reset is MBED_NORETURN

    8579
    Major refactoring: changing Network inheritance from CellularNetwork to new class CellularContext

    8573
    Compile time config flag MBED_CONF_SD_CRC_ENABLED for CRC in SD

    8569
    CellularConnectionFSM unchain queue when stopped

    8563
    Add QSPIF block device to default system storage

    8561
    Design document for Crash Reporting feature in MbedOS

    8560
    Fix typos in Features/Netsocket

    8550
    Add required namespace instead of relying on mbed.h

    8530
    Docs: Mail docs fixed

    8488
    Rewrite CThunk so it does not execute from ram

    8487
    Update mbed_mem_tracing config option

    8478
    Fhss timer dev

    8465
    Flag certificate verification functions with MBEDTLS_X509_CRT_PARSE_C.

    8441
    More mbed_error refinements

    8440
    Cellular: Gemalto TCP Socket support

    8417
    I2c doc update

    8401
    At handler fixes

    8365
    Fix astyle for tests folders

    8354
    SingletonPtr: const and alignment

    8352
    QSPI SFDP Flash Block Device

    8342
    Icetea missing test doc

    8332
    Refactoring fault handler implementation

    8331
    Stream: add necessary flushes, removing unneeded IAR workaround

    8329
    Platform: fix missing namespace for SharedPtr

    8328
    Error path tightening: use MBED_NORETURN; add+use core_util_atomic_flag

    8313
    Reduce cellular memory footprint

    8311
    Implement TLSSocket

    8295
    Cellular: Update Cinterion AT drivers

    8291
    *LPC546XX: Finish MCU Refactoring

    8266
    Realtek-rtl8195am: Add MCU_ target

    8255
    Change behaviour of mbed_asert to use mbed_error instead of mbed_die

    8245
    Nanostack libservice update

    8223
    Improve RTOS behavior with deep sleep

    8190
    MIMXRT1050EVK: Add ENET support

    8189
    Wait API updated to remove deepsleep lock

    8180
    Cellular: Quectel BG96 TCP socket support

    8176
    CellularDevice_stub added

    8148
    Cellular: Quectel BC95 TCP socket support

    8114
    Registration parameters as struct

    8109
    Add reset recovery for I2C bus

    8076
    Error output improvements

    8050
    Cellular: Fix Greentea tests for UBLOX_C027

    8039
    Add framework for configuring boot stack size

    8019
    Cellular: fixed crash when closing CellularNetwork via CellularDevice.

    8003
    Leverage the simplification of the IPv6 parsing primitive

    8001
    Add * operator to SingletonPtr

    7980
    Clean up rtos::Thread deprecation warnings

    7979
    Using SPI_ macros from PinNames in SPIF and SD config files.

    7969
    Cellular: CellularDevice:get_default_instance() implemented

    7955
    Add SPI_FREQ parameter to DATAFLASH block device configuration

    7948
    Add enable/disable cb function in mem_trace

    7864
    Add required header file and namespace element instead add all.

    7760
    Give an option to remove ‘using namespace’

    7304
    Add MTS dragonfly, MTS dragonfly l471

    8953
    Update FEATURE_BLE README

    8952
    Turn off MPU for PSOC 6

    8946
    STM32L4: before calling HAL_CRYP_DeInit initialize the Instance member

    8944
    Travis fix: rabbitmq key update (travis msg broker)

    8932
    Fix target handling in build.py

    8926
    mbedtls: Update Mbed TLS to 2.15.1

    8925
    Fix PSA storage typo

    8922
    MTB_ADV_WISE_1570: disable MPU code until target properly supported

    8920
    MODULE_UBLOX_ODIN_W2: disable MPU code until target properly supported

    8908
    Fix PSA internal storage configuration

    8904
    Ble extended advertising fixes

    8873
    PSA-SPM documentation follow-up

    9051
    ESP8266 send returns WOULD_BLOCK error when busy

    9040
    Add a platform config to disable the MPU

    9030
    Reduce ROM impact of MPU code

    9025
    Mbed os 5.11.0 oob: fix fault exception issue

    9020
    Revert “Turn off MPU on targets failing OOB”

    9005
    Mbed TLS: Fix ECC hardware double initialization

    9003
    Revert “Merge pull request #8922 from juhoeskeli/wise_1570_mpu_disable”

    8998
    Ble extended advertising fixes

    8996
    Fix uninitialized handler pointer in FastModels ethernet driver

    8994
    Turn off MPU on targets failing OOB

    8987
    Fix a few SecureStore issues (following preliminary security review)

    8986
    Fix a few bugs in TDBStore and KV config

    8982
    Ensure macros and parameters with the same name are not repeated.

    8981
    Cordio Nordic memory optimizations

    8959
    [ESP8266] Adds support for controlling HW reset of the modem from the

    8935
    Fix PSA crypto partition and tests

    8905
    SPI and deep sleep fixes for FUTURE_SEQUANA target.

    8890
    ESP8266 disconnect returns ERROR_NO_CONNECTION

    8889
    Add PSA code generation check in travis

    8875
    Add dependency checks to components

    8853
    Reports NSAPI_STATUS_CONNECTING when trying to reconnect

    8841
    Bugfix restrict send size; namespace fixes; ATCmdParser::read return value fix

    8754
    Mbed Crypto Tests

    8745
    Add new target future sequana PSA

    9072
    Enable stats reporting with a flag in targets.json

    9036
    Disable MPU on RT1050 due to memory map

    Using this release

    Arm Mbed CLI

    To take advantage of the new device management and testing framework features, please update your Mbed CLI to 1.8.x or higher.

    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.11.0, run the CLI command mbed update mbed-os-5.11.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 the Mbed OS version of an existing program, right click on the mbed-os library, and click update.

    GitHub

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.11.0”.

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

  • mbed-os-5.10.4

    Downloads: zip tar.gz

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

    Summary

    This is the final patch release for mbed-os-5.10.

    In this release we have added support for UNO_91H and TMPM3HQ devices.

    We have added a fix for the following reported issue: * 7804 RF52 serious behavioural regressions in RTC

    The mbed-client-cli has been updated to v0.4.0.

    We have also added:

    • EMAC driver for CM3DS
    • Flash IAP support for STM32F407VG on DISCO_F407VG and ARCH_MAX platforms

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    8324
    Add Support for TOSHIBA TMPM3HQ

    7309
    New target UNO_91H from RDA Microelectronics.

    Fixes and Changes

    8524
    Add more generic BlockDevice tests.

    8605
    Make examples commands return a failure

    8606
    Fix off-by-one-error in BusIn/Out

    8604
    Increase EMAC test timeout to 1400 seconds

    8603
    Doxy fix on netsocket docs

    8623
    Fix typos in RTOS doxygen.

    8622
    Fix typos in Events doxygen

    8435
    Kernel.h doxygen update

    8449
    TOOLS : Add missing M33 and M33F in python scripts

    8587
    Remove extra _deselect to prevent possible hard fault

    8640
    Fix compile warning about initializing and variable order

    8642
    nanostack: fix memory leak

    8641
    Fix licensing

    8653
    mbed_lib.json updated for other all C030 targets and code corrected t

    8645
    Detect xinetd service pattern and generate correct pattern (ONME-3733)

    7849
    Low power timer needs to be reset when setting time

    8444
    Add EMAC driver for CM3DS

    8551
    Increase background stack size to fix overflows

    8528
    MCUXpresso: Update LPC Flash driver program page function

    8648
    Fixed bugs in Fast Model MPS2 GCC startup scripts

    8654
    InternetSocket: Fixed missing unlock before return

    8660
    Online: Include project root path

    8677
    Sync mbed-client-cli files with v0.4.0

    8684
    Update peripheral pins

    8595
    Put quotes around include path options

    8681
    STM32F407VG: Add FLASH support

    8679
    STM32 GPIO : code cleaning

    8692
    fix a bug in the FVP platform where flash API page size was wrong

    8699
    Revert flash_get_value for M2351 done in PR#8589

    8696
    Resources: Avoid assuming that deps have a sane name

    8697
    Resources: Use path names for ignored dirs

    8712
    ONME-3852 Check that test cases disconnect at the end

    8729
    Adding arch option instead MCPU for no dsp and no fpu support

    8727
    LoRaWANTimer UT fixed

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.10.4”.

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

  • mbed-os-5.10.3

    Downloads: zip tar.gz

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

    Summary

    In this release we have continued our focus on improving our documentation.

    We now have support for FUTURE_SEQUANA devices.

    We have fixed the following reported issues:

    • Low power ticker wrapper layer still used when suspended
    • Error occurs when building exported mbed-os programs on e2studio
    • CMake exported build fails with multiple –source arguments
    • ATHandler::consume_to_tag method doesn’t detect tags in some cases
    • UBLOX_EVK_ODIN_W2 does not pass Greentea testcase WIFI-CONNECT

    The ODIN drivers have been updated to v3.5.0 RC1. This brings: * BLE Cordio Stack Ported for ODIN_W2 * Updated ODIN drivers for BLE cordio

    We have also added: * QSPI support for KL82Z and K82F * Bootloader support for DISCO_F769NI * TRNG support for STM32F407VG * Bootloader support for DISCO_F413ZH and NUCLEO_F413ZH

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    8491
    New target future sequana

    Fixes and Changes

    6293
    Reduce .text footprint of the network stack

    8409
    Fix doxygen comments and spelling errors

    8046
    NRF52 serial: Fix UART console RX

    8339
    Unit testing: update unit testing documentation for Mac OS

    8412
    PwmOut.h: Documentation improvements only

    8413
    Fix doxygen for Serial and RawSerial

    8462
    Move inline code snippets to code blocks

    8464
    EventQueue documentation fix.

    8303
    Tools: Use logical paths in ignored_dirs

    8249
    Tools: Restrict toolchains reported by mbed compile -S to official ones

    8250
    Tools: Don’t traceback on missing linker script

    8348
    Add K66F default sd storage

    8377
    Fix for issue #8368

    8482
    [tests-mbedtls-multi] Fix typo in the printf (no functional change)

    8484
    Component SD test: skip multiple thread test depending on RAM

    8486
    LPC54608: Raise the core freq on LPC54608 targets

    8483
    BLE: write size first when writing an eeprom message

    8350
    Cellular: Fix for AT handler consume to tag

    8476
    mbedgt-network-wifi WIFI CONNECT TC - check that SSID is cached

    8493
    STM32 RTC : Prescaler macro issue

    8495
    Adding file type for linker script arg in make script

    8489
    Clean up UARTSerial.cpp includes.

    8369
    Cellular: UBLOX_C030_R410M cellular target add

    7966
    nrf52-ble: fix total links count

    8485
    Feature qspi kinetis

    8430
    Block device general tests

    8474
    NRF52 : Fix UART RTS initialization

    8505
    Continue Socket and WiFi tests even on test failure.

    8515
    Merge duplicate keys in JSON.

    8503
    mbed_rtc_time.h - documentation fix

    8506
    Docs: fix I2CSlave documentation

    8504
    Span doc

    8510
    Doc: SPI slave doxygen cleanup

    8514
    EventFlags docs update

    8512
    Explain default port number, and construction

    8319
    Checksum the vector table of the LPC546XX

    7864
    Add required header file and namespace element instead add all.

    8244
    storage: fix component coding style

    8346
    storage: fix valid partion check with windows formatted sd card

    8526
    Fix for unit test build on Windows machines

    8279
    Fix LowPowerTickerWrapper operation when suspended

    8292
    Fix hardware flow control on NRF52 series

    8259
    Update the Mbed TLS README

    8509
    Non copyable doc

    8521
    MbedCRC docs update

    8516
    Doc: spi documentation fixes

    8511
    Update documentation for the ConditionVariable API

    8529
    Doxygen: Move free standing HAL tests module inside their HAL module

    8534
    Docs: InternetSocket doxygen fixes

    8539
    Docs: UDPSocket doxygen cleanup

    8537
    Doxygen: Hide friend declarations in dox.

    8536
    PlatformMutex docs update

    8549
    contributing: simplify it via a link to our docs

    8546
    Add warning about deviating from the template format

    8452
    ble: update ODIN drivers to v3.5.0 RC1

    8554
    NUCLEO_L4R5ZI: Fix alignment of execute region to 8byte boundary

    8562
    build_api: remove unused import

    8556
    BLE: fix using an optional feature before checking for support

    8499
    Socket closing improvements and tests adjustments

    8559
    STM32F407VG: Add TRNG support

    8461
    api->API

    8572
    Move #endif to fix PwmOut.h doxygen

    8371
    Cellular: Add unsupported features for UBLOX targets

    8566
    Wifi: ublox fix to keep the credentials stored

    8564
    Drivers: fix typos in doxygen

    8580
    Fix the incorrect comment for set_blocking()

    8593
    Build and run latest released doxygen in Travis CI

    8598
    ATCmdParser: Fix OOB handling performance-wise

    8585
    Phy drivers: Added S2-LP driver

    8599
    DISCO_F769NI: Add bootloader support

    8588
    Fix Ice Tea test execution order to be sorted by names.

    8542
    Update python module versions in requirements.txt

    8577
    Fix Makefile export with Python 3

    8538
    Rework make.py CLI to avoid treating apps as tests

    8616
    Updated and pinned version for requests

    8624
    Fix missing doxygen pages

    8611
    Unittest fixes

    8553
    STM32F413ZH: Add bootloader support

    8541
    Docs: netsocket group doxygen fixes

    8540
    Update documentation for the Queue API

    8508
    Update linker scripts for bootloader target L496GZ

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.10.3”.

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

  • mbed-os-5.10.2

    Downloads: zip tar.gz

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

    Summary

    In this release we have added support for TMPM4G9, RapidIoT and Laird BL654.

    We are currently focusing on improving the quality of our documentation, so there
    are a number of documentation fixes in this release and upcoming ones.

    There are a number of reported issues that we have fixed:

    • A 4/8 byte alignment error in the device scatter files.

    • On the STM32F1 family of devices the set_time function was not setting the time correctly.

    • On STM32 devices extra power consumption was observed when in STOP mode. This was due to
      the HSI clock being enabled in that mode, whereas only the LSE clock should be enabled.

    Mbed-coap has gone through a couple of version updates:

    • Version 4.7.0 brings:
      A new function that can be used to clear the received blockwise payloads, for example in
      the case of a connection error.

    Silencing the compiler warning when CoAP duplicate detection is enabled.

    • Version 4.7.1 brings:
      A new re-scan routine whch is called when blockwise message sending times out, preventing
      a hard fault.

    We have added: * us ticker support for TMPM066 and TMPM46B * RTC support for MIMXRT1050_EVK * missing IAR exporters for the STM32 family * ADC support for DISCO_L496AG * an ADC update for internal channels on STM32L1 devices. * flash support for KL43Z, KL82Z, KW41Z and K22F.

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    7923
    Add Support for Toshiba TMPM4G9

    8307
    Add support for RapidIoT

    8454
    Adding Laird BL654 as a new MTB target

    Fixes and Changes

    7890
    Circular buffer should use conditional statement instead of modulo

    7934
    corrected a typo in AT_CellularPower::opt_power_save_mode

    7953
    Fix is_valid_erase function to use get_erase_size with address

    7896
    Fix pin names of MIMXRT1050 I2C pins

    7914
    Remove references to “mBed”

    7957
    nRF5x: pass ram linker start/length from config system

    7975
    Use high resolution time for Timer::read().

    7998
    MIMXRT1050_EVK: Add RTC support

    8048
    NRF52: serial_api: Use polling for putc

    8049
    Nuvoton: Fix mbed_hal-sleep test failed

    8134
    STM32L1 ADC update for internal channels

    8006
    SD - Add required header file and namespace element instead add all

    7813
    STM32L4: Fix sleep implementation

    7861
    Removing default flow control for MTB_LAIRD_BL652

    8057
    Removed cellular PIN code print from debug log.

    8061
    NRF52: Ensure that we configure hardware after flow control changes

    8072
    Renesas : Improve Flash iap driver

    8149
    Add usticker feature to TMPM066

    8167
    Change update file format to binary for all targets

    8168
    DISCO_L496AG : enable ADC

    8169
    STM32: add missing IAR exporters

    8175
    Fix the CMSIS macro ARM_MPU_RASR

    8179
    Add missing SIM PIN configuration item

    8193
    M2351: Add license file for default secure library/executable

    8235
    Mbedgt netsocket tc fixes

    8239
    Fix for pwmout & serial fuart in TMPM46B

    8241
    Fix WIFI_CONNECT_PARAMS_CHANNEL_FAIL testcase.

    8268
    Cellular: Fix greentea network set credentials test case

    8275
    tools, NRF51-post-build: Use paths to hex files

    8276
    tools: Make “file” key in notifications consistant

    8280
    STM32: Fix I2C stop condition

    8315
    Fix cellular unittests

    8325
    Fix for pinmap & usticker free() in TMPM3H6

    8330
    Tools: Fix Python3 + firmware header traeback

    8323
    Add blockdevice example back to CI

    8286
    STM32 RTC : write RTC time while LPTICKER is enabled

    8263
    STM32L4: clear error programming flags before erase & program operations

    8243
    mcr20a use core_util_critical_section functions

    8225
    Adjust stack & heap for IAR on STM32F412xG

    8210
    platform timer: Call timer start in enable

    7958
    nrf_ble: Expose configuration of max characteristics and descriptors

    8327
    Guard Atmel RF driver build by DEVICE_I2C

    7582
    Update sleep manager tests

    7877
    Improve the config ajustment script of TLS for ENTROPY_NV_SEED

    7898
    Travis: fix astyle report (-/+ files)

    8024
    Fix alignment of execute region to 8byte boundary

    8177
    tools/utils: Fix issue with loading json files as ascii on python3 linux

    8186
    Freescale/NXP: Fix alignment of execute region to 8byte boundary

    8298
    Reset channel settings back to default

    8305
    Tools: Fix Microbit releases

    7937
    Export, MCUXpresso: Avoid assigning self.libraries

    8316
    unittests: Add tests for netsocket classes

    8122
    LPC1768 us_ticker.c timer choice

    8261
    Enabled the removal of a trailing slash

    8213
    STM32F1 RTC : save values in register

    7902
    Fix overflow in disk_get_sector_size()

    8183
    Adding QOS in response to LinkADRReq and fixing class C bugs

    8219
    STM32 EMAC : lock deep sleep

    8256
    Fix warnings in block devices

    8258
    Cellular: Fix compile warnings for CellularNetwork

    8270
    Tools: Ensure vtor reserved bits are all 0

    8273
    Update mbed-coap to version 4.7.0

    8363
    Remove mbed-os-example-client

    8248
    Tools, Resources: Convert to a set during win2unix

    8393
    Revert “Merge pull request #8183 from hasnainvirk/QOS_impl”

    8390
    Fixed colorama Python package

    8002
    Storage: Add required header file and namespace element instead add all

    8274
    Export, nb: Use same path for cpp as the rest of the tools

    8304
    Remove GCC_CR

    8237
    PR template: add “docs update”

    8234
    Renesas : Modify LPTicker driver

    8334
    mbed dm: Check for missing payload and give a better error message

    8226
    Unit tests: improve unit testing documentation

    8208
    Align github’s issue template with pull request’s look&feel.

    8338
    poll: Un-doxygen internal comment

    8385
    improve can documentation

    8391
    improve mutex doc

    8389
    Fix minor typo in Timeout

    8388
    QSPI docs updates

    8395
    Adding doxygen comments for mem trace enum

    8394
    improve ticker doc

    8392
    Interruptin documentation update

    8397
    Updating stats doc comments

    8407
    DeviceKey doxygen update

    8406
    Timer documentation update

    8310
    MCUXpresso: Add Flash support for KL43Z, KL82Z, KW41Z, K22F

    8230
    Fix for issue #8214

    8062
    Signature to track memory allocations by wrapper functions

    8238
    Add usticker feature to TMPM46B

    8271
    Tools, memap: Silence warnings that we handled correctly

    8284
    STM32: Only LSE clock should be enabled in STOP mode

    8370
    Cellular: Error handling for socket create

    8383
    DISCO_F413ZH : set default Wifi module SPI state to inactive

    8379
    Renesas : Minor change of SPI driver

    8408
    Added bootloader bin license and config for DISCO_L475VG_IOT01A

    8416
    wich->which

    8414
    Remove protected class from EventQueue Doxy

    8420
    Doc changes and rephrasing

    8418
    Remove protected members from doxy in Analog/Digital classes

    8299
    Making cancel_sending() API robust

    8336
    Fix hard-fault when socket created using accept() is closed

    8317
    Add FlashIAP block device as default block device for WISE 1570

    8434
    Change Mbed TLS platform error code and value

    8429
    M2351: Fix LED_GREEN naming error

    8374
    Renesas : Improve ARMCC linker script

    8403
    STM32: fix issue with serial_is_tx_ongoing function

    8427
    STM32L4 : sleep issue

    8405
    [LoRaWAN]: Adding QOS in response to LinkADRReq and fixing class C bugs

    8419
    PortIn.h: Documentation improvements only

    8437
    MCUXpresso: Fix for the TRNG HAL driver

    8446
    Pin urllib3 pip module in requirements.txt

    8008
    Add required header file and namespace element instead add all

    8302
    Use wait_ms(int) instead of wait(float)

    8425
    M487: Fix SW2/SW3 interchange error in NUMAKER_IOT_M487

    8359
    Allow overriding build timestamp from env

    8442
    Add missing define in drivers/SerialWireOutput.h

    8453
    Fixed lorawan unittests valgrind issues

    8451
    Added missing _mutex->unlock() to FileBase::lookup().

    8439
    Correct mesh network connection status callback functionality.

    8349
    A Reduced SPIF Block Device for Boot Loader

    8456
    Remove extra e in deepsleep

    8455
    underlyng->underlying

    8459
    Minor mbed_assert doxy typos patch

    8458
    locable->lockable

    8457
    Infered->Inferred

    8460
    funtion->function

    8288
    tools: Raise NotSupported when target definition is incomplete

    8381
    Fix status sequence and reporting for LWIP stack

    8424
    Update doxygens to be in sync

    8400
    This PR retrieves the TimerSync function to fix the lockup issue

    8421
    PortOut.h: Documentation improvements only

    8469
    mbedgt-network-wifi WIFI_CONNECT - check for empty passwd

    8272
    MCUXpresso: Ensure the RTC OSC is running at bootup on Kinetis platforms

    8382
    Mts dragonfly l471 qg

    8013
    STM32: Fix alignment of execute region to 8byte boundary

    5285
    Update devices to have minimum 2K RAM and heap, also added test

    8404
    Update mbed-coap to version 4.7.1

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.10.2”.

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

  • mbed-os-5.10.1

    Downloads: zip tar.gz

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

    Summary

    In this release we have added support for the NUCLEO_L4R5ZI and NUMAKER_IOT_M487.

    We have made a number of quality improvements :

    • Addressed numerous compiler warnings
    • Tidied up the include paths
    • Updated the documentation in a number of areas

    A couple of reported known issues from the 5.10.0 release have been addressed:

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

    The following reported issues have also been fixed in this release:

    • New TCPSocket API always returns NULL from accept function
    • Problems with the LowPowerTickerWrapper for all Nuvoton devices
    • SPI is not initializing correctly when an object is destructed and then constructed again.

    We have implemented changes required to allow TB_SENSE_12 to provide a default network interface for Silicon Labs targets. We have also added a bootloader image for Nucleo F207ZG and enabled RTC for LPC1768.

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    7585
    NUCLEO_L4R5ZI: add new platform

    8164
    Support Nuvoton’s new target NUMAKER_IOT_M487

    Fixes and Changes

    7758
    Include user defined static lib files in the Linker object files paths

    7904
    MIMXRT1050_EVK: Update SPI HAL driver

    6293
    Reduce .text footprint of the network stack

    7939
    Export, Embitz: Avoid assigning self.resources.linker_script

    7992
    Fix TCPSocket::accept()

    7787
    STM32L4 : code cleanup in MSI SetSysClock

    7821
    Add license files for MTS bootloaders

    7901
    Compiler Warning fixes

    7960
    Change mbedtls_platform_context parameter to NULL

    7982
    LoRaWAN: Memory overrun correction

    8010
    NXP: Update serial driver’s parity handling

    8052
    FileBase: Fix unsetting of default when destroyed

    8067
    Spelling fixes and general readability improvements for TEST_APPS documentation

    7856
    Realtek: fix gpio is connected

    7981
    BLE: fix missing updates sent callback in GattServer using Cordio stack

    7944
    Cellular Unittests refactored to GoogleTest framework

    7700
    STM32: Correct device_has_add flags for bluepill_f103c8 target, fixes #7654

    7883
    netsocket: Fix compiler warning

    8104
    mbed dm: Remove references to internal script from help

    8136
    STM: Fix us_ticker timestamp after deep sleep

    7903
    Clean up include paths.

    8029
    Fix issues with LowPowerTickerWrapper

    8025
    Align to CMSIS defines for Non-Secure

    7920
    Resolve duplicate ADuCM3029 system return code

    7882
    Add greentea tests for network interface status and connect/disconnect

    8054
    Lora: Fix ADRAckReq

    8145
    Add bootloader image for Nucleo F207ZG

    8153
    Unit tests: automatic unit test suite naming

    8074
    LoRaWAN: Refactoring compliance test code

    7921
    Fix Wiznet: IAR heap memory problem

    8160
    Update mbed-cloud-sdk in requirements.txt

    7935
    LoRa: Stop processing MAC commands if command id is unknown

    7987
    M2351: Update to NuMaker-PFM-M2351 V1.3 board

    7993
    Fix EFM32 pwmout hal function pwmout_period

    8171
    Skip the unstable SYNCHRONOUS_DNS_CACHE testcase

    8181
    Py3 support

    7925
    Qspi hal test refactoring/update

    8060
    Clarify test configuration in Socket/Networking test document

    8096
    Lora: Fix sticky MAC command retransmissions

    8112
    specify mbed-cli version requirement

    8187
    STM32: fix wrong LSE config in serial_baud function

    8030
    Nuvoton: Fix Greentea test common_tickers failed

    8023
    Hotfix for PR #7778 on Silicon Labs targets

    8182
    Unit tests: fix cellular athandler unit tests and wait() declaration conflict

    8147
    Fix authentication on a cellular network for Access Point Name (APN)

    8073
    Add documentation about icetea testcases

    8106
    Replace macros with config options

    8218
    Unit tests: add UNITTESTS folder to exclude patterns in doxygen_options.json

    8036
    platform: error: fix bogus usage of memset()

    7918
    Add link to README.md

    7746
    Handle NVStore tests in a low memory environment

    8212
    Unit tests: update README.md

    7989
    M2351: Fix STDIO_UART error

    8005
    BLE: fix whitelist generation (set correct address type)

    8026
    Fix for HW CRC calculations on Silicon Labs targets

    8165
    Fix for issue #8155 (NRF52832: time stops after 35 minutes)

    8009
    LPC1768: Enable RTC

    8037
    STM32: Fix disabling of IRQs shared by multiple events

    8034
    Changed the reported SNR from unsigned to signed.

    8131
    STM32F3 correct analogin_read

    8229
    Fix network and util ut

    7941
    Nuvoton: Fix GPIO mode mapping

    8154
    Unit tests: add code coverage filtering

    8138
    Unit tests for TCPSocket, TCPServer, UDPSocket, NetworkStack, InternetSocket

    7057
    Add TRNG API test

    8014
    realtek rtl8195am lib updates

    7911
    travis: add license check for gnu library license

    7696
    skip the flashsim test if not enough memory cannot be allocated for it.

    8099
    MIMXRT1050_EVK: Fix the PWM Hal driver

    8247
    Update Manifest tool version

    8132
    gt netsocket tcp - increases threads’ stack size

    8262
    Align MBRBlockDevice writes to underlying BlockDevice write size

    8246
    Add back examples updated for mbed-os-5.10

    7932
    ublox c030: Add PC2 pin to ADC pin map

    8085
    STM32 RTC : start LSI clock (for targets without LSE)

    7978
    Cellular: state machine and easycellular now return error fast if sim

    7876
    Tools: Modified version mismatch msg to be warning instead of error

    8090
    Cleanup SPI constructor and destructor

    8309
    use forced_reset_timeout as delay after reset

    7917
    Add overhead count in heap stats

    8318
    BLE: fix use of invalid cccd index

    8121
    Add thread safety info to FatFs/LittleFs

    8257
    tests-mbed_hal-sleep: finish UART transmission before sleep test

    8119
    STM32L496 : wrong ADC init

    8233
    Lora unittests

    7916
    Add LPC1769 template file for MCUXpresso IDE

    8103
    STM32 L0 ADC internal channel fix

    8242
    STM32 LPTICKER : Fix tickless and LPTICKER_DELAY_TICKS

    8269
    BLE: replace malloc with cordio buffer allocation

    8142
    Disable MBEDTLS_CONFIG_HW_SUPPORT on STM targets.

    8108
    Rename device option STCLK_OFF_DURING_SLEEP

    7996
    Add nanostack mac tester and testcases

    8252
    Adjust heap size on stm32f207

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.10.1”.

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

  • mbed-os-5.10.0

    Downloads: zip tar.gz

    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:

    • Advantech WISE 1530 - https://os.mbed.com/modules/advantech-wise-1530/

    • Avnet AT&T WNC M14A2A Cellular LTE kit - https://os.mbed.com/components/Avnet-ATT-WNC-14A2A-Cellular-IoT-Kit/.

    • Nuvoton NUMAKER_PFM_M2351 - https://os.mbed.com/platforms/NUMAKER-PFM-M2351/.

    • NXP FRDM-KL82Z - https://os.mbed.com/platforms/FRDM-KL82Z.

    • NXP I.MXRT1050_EVK - https://os.mbed.com/platforms/MIMXRT1050-EVK/.

    • NXP LPCXpresso54628 - https://os.mbed.com/platforms/LPCXpresso54628/.

    • Sigma Delta Tech SDT51822B - https://os.mbed.com/platforms/SDT51822B/.

    • Sigma Delta Tech SDT52832B - https://os.mbed.com/platforms/SDT52832B/.

    • ST Discovery L496AG - https://os.mbed.com/platforms/ST-Discovery-L496AG/.

    • Toshiba TMPM46B - https://os.mbed.com/platforms/TMPM3H6/.

    • Toshiba TMPM3H6 - https://os.mbed.com/platforms/TMPM46B/.

    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: https://github.com/ARMmbed/mbed-os-example-tls/issues/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

    • Description: Make will fail with the error: make (e=87): The parameter is incorrect.
    • Workaround: Possible workarounds are 1) Use Linux instead 2) Follow advice here,
      https://stackoverflow.com/questions/12598933/ndk-build-createprocess-make-e-87-the-parameter-is-incorrect
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/6335
    • Priority: Minor

    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: https://github.com/ARMmbed/mbed-os/issues/8146 , https://github.com/ARMmbed/mbed-os/issues/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: https://github.com/ARMmbed/mbed-os/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: https://github.com/ARMmbed/mbed-os/issues/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: https://github.com/ARMmbed/mbed-os/issues/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: https://github.com/ARMmbed/mbed-os/issues/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: https://github.com/ARMmbed/mbed-os/issues/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.

  • mbed-os-5.9.7

    Downloads: zip tar.gz

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

    Summary

    This is the last patch release for mbed-os-5.9.

    We have added target support for the following boards in this release:

    • SDT64B
    • SDT8195B
    • SDT32620B
    • SDT32625B
    • SDT51822B
    • SDT52832B
    • MOTE_L152RC

    We have fixed a bug where an exception could be thrown when trying to allocate memory for stats logging (7712).

    There were a couple of issues with the NRF52 (7707 and 7743) that have been fixed.

    We have updated the SPI HAL driver for the MIMXRT1050_EVK.

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    7669
    SDT64, 8195, 32620, 32625, 51822, 52832B added to targets

    7534
    enable MOTE_L152 for OS5

    Fixes and Changes

    7772
    Modified Jenkinsfile into one-liner format.

    7810
    Eventqueue Templatewall Doxygen Rework

    7730
    When stack stats enabled, prevent exceptions if memory allocations fail

    7652
    NRF5x: Fix config of LFCLK source / settings.

    7761
    ifndef some macros to allow overriding during compilation

    7880
    Update Greentea EMAC tests

    7891
    Remove unused cmsis includes.

    7788
    Cellular: Fixed AT+COPN

    7879
    Add tests for synchronous dns

    7904
    MIMXRT1050_EVK: Update SPI HAL driver

    7779
    Fix for nrf52 pwm issues

    7939
    Export, Embitz: Avoid assigning self.resources.linker_script

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.9.7”.

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

  • mbed-os-5.9.6

    Downloads: zip tar.gz

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

    Summary

    The CMake exporter is now capable of creating combined hex files for targets.

    The low power ticker has been updated to prevent unnecessary rescheduling.

    Fast Models’ memory regions have been updated to make maintenance simpler as well as use an extra region of SRAM that was previously unutilized. Additionally, the change prepares the targets for other changes that will be showing up in the near future.

    There are also a number of bug fixes and test enhancements.

    Known Issues

    The release version did not get updated as part of this release so is still showing 5.9.5.

    Contents

    Ports for Upcoming Targets

    Fixes and Changes

    7686
    Correct MTB_ADV_WISE_1530 led configuration

    7738
    Timeout tests : unstable result

    7750
    Cellular: Fixed sms greentea tests init

    7752
    tests-mbed_drivers-timer: change delay method

    7771
    Update mesh_system_heap_error_handler to use new error handler

    7645
    nrf_drv_twi: remove redundant nrf_drv_disable call in nrf_drv_twi_uninit

    7693
    Fix for CM3DS GPIO api

    7716
    Fix issue #5119, changed pwmout_api.

    7777
    STM32F1 RTC : wrong Sunday value

    7719
    Lora: Document all possible error codes for LoRaWANBase methods

    7740
    Cellular: Handle AT response stop in case IP address is missing from

    7741
    tests-mbed_hal-common_tickers: disable ticker free test cases.

    7769
    Fix build_data functionality with python 3

    7782
    equeue: Fix overflow in rtos-less timeout code

    7600
    Remove unnecessary low power ticker rescheduling

    7670
    Check max possible keys in NVStore tests

    7797
    Fix target_name variable in some use cases

    7786
    Moved ASYNCHRONOUS_DNS_SIMULTANEOUS_REPEAT under mbed extended tests

    7706
    Refactoring memory regions definitions for Fast Models MPS2 targets

    7681
    BLE: store secure connections ltk in both local and peer entry

    7830
    Fix uvisor ticker issue on K64F

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

    7770
    LoRa: Fix MAC initialization for connection with parameters

    7768
    Cellular: Document all possible error codes for cellular API.

    7775
    STM32 wrong MBED_ASSERT use

    7791
    Fix TMPM64B IAR linker file

    7798
    Add bootloader support for target NUCLEO_F303RE

    7807
    Compiler warning: unused variable in LoRaMac.h

    7823
    MIMXRT1050_EVK: Update the I2C driver

    7826
    Fix stack size for LwIP on EFM32GG11

    7832
    Nanostack: Fix return code for unsupported socket options

    7831
    LoRaWAN: Restoring default RX2 data rate

    7790
    STM32 LPTICKER : RTC wake up timer is reset before setting a new one

    7785
    Lora: Fix join-response failure handling

    7762
    Add combined hex target to CMake

    7843
    MIMXRT1050: Fix I2C Byte transfer functions

    7744
    RTOS threads test: Handle out of memory cases

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.9.6”.

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

  • mbed-os-5.9.5

    Downloads: zip tar.gz

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

    Summary

    In this release we have added LPTICKER support for Renesas devices and support for SLEEP in
    MXRT1050EVK.

    We have updated mbed-coap to version 4.5.1. This fixes an issue where blockwise observations were not completing.

    We have also updated CubeF1 for STM32F1 to V1.6.1. This includes:
    * CubeF1: updated from V1.5.0 to V1.6.1
    * HAL driver: updated from 1.1.0 to 1.1.2
    * CMSIS driver: unchanged (V4.2.0)

    There were some bugs from the cancel_sending() method in LORAWAN:

    1) The system crashed if the method was called before initialization.
    Now LORAWAN_STATUS_NOT_INITIALIZED is returned.
    2) The method returned LORAWAN_STATUS_BUSY error when no send request was pending.
    LORAWAN_STATUS_OK should be returned in this case.
    3) LORAWAN_STATUS_BUSY is now returned if the backoff timer is just about to be
    dispatched (time_left returns 0).

    These are now fixed.

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    Fixes and Changes

    7273
    Cellular: added unit tests for new API functions (sim, power, base, device).

    6985
    Fix heap base/limit error with ARM_LIB_STACK/ARM_LIB_HEAP in RTOS-less

    7289
    On STM32F439xI IAR linker file decreased stack size and increased heap

    7545
    Fix for Thread::max_stack not returning right value when OS_STACK_WATERMARK is enabled

    7622
    MPS2 platform: Enable interrupt on rx for UART

    7628
    Optimize the configuration for RTX evr events

    7632
    Remove debug print

    7641
    LoRaWAN: Fixing incorrect NetID causing ABP Failures

    7653
    Update mbed-coap version to 4.5.1

    7565
    Nuvoton: Fix NUC472 SD-Host HW IP reset definition

    7658
    Add default interface for wiced WiFi.

    7655
    Remove device emac check from emac greentea tests

    7642
    Changing default SPI CS pin to SD card on MTB

    7620
    Lora: Fix cancel_sending

    7606
    STM32F1: update to CubeF1 V1.6.1

    7552
    Renesas: Add LPTICKER

    7465
    Skip a few tests if not enough memory can be allocated for them

    7648
    Add init reference count to all block devices

    7621
    cellular: astyle fix

    7664
    fix comment copy/paste error

    7661
    Clear CONN_IN_PROGRESS flag after incomplete connect()

    7668
    STM32F7: remove HAL_InitTick() declaration in us_ticker_data.h files

    7374
    Cellular: fix greentea tests C027 and BG96

    7675
    Renesas : Improve Flash iap

    7676
    Nuvoton: Organize file structure

    7660
    Remove inclusion of mbed.h and mbed namespace from filesystem code

    7383
    FlashIAP: Add timing test

    7687
    BLE: set correct default privacy configuration for centrals

    7689
    PR template: fix target update list

    7643
    STM32: remove uart force_reset at init

    7703
    Resolve us_ticker.c api discrepancy between EV_COG_AD4050LZ and EV_COG_AD3029LZ

    7678
    Nanostack: fix error code

    7691
    events: astyle fix

    7419
    MIMXRT1050EVK: Fix Sleep support

    7531
    Cellular: sms greentea tests

    7640
    iar: remove nxp duplicate definitions

    7721
    Fix owner restoration and discard across nvstore init

    7688
    BLE: call secure connections versions of ltk functions

    7717
    STM32: check for UART ongoing transfers before entering deepsleep

    7725
    Update Lwip error calls to use new error codes and mbed_error call

    7731
    Cellular: WISE_1570’s system clock back to HSE_XTAL

    7722
    Fix Microlib compatibility for -t ARM

    7729
    Rename text region in ARM linker file for Renesas & Realtek boards

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.9.5”.

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

  • mbed-os-5.9.4

    Downloads: zip tar.gz

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

    Summary

    This release showcases several new targets added to Mbed OS: * Silicon Labs has enabled their EFM32GG11 chips, with the supporting STK3701 dev board * Toshiba has added a new target, the TMPH3H6 * Nuvoton has enabled the NUMAKER_PFM_M2351, the first Cortex-M23 CPU in Mbed OS, and the first ARMc6 target enabled

    MPS2 Fast Model targets have now been added and enabled.

    An IAR linker fix for the NRF52832 had been made, shrinking the ram size of the part to match it’s datasheet.

    Several Silicon Labs targets have now enabled hardware CRC acceleration.

    Unity macros have now been added to enable the ability to skip tests if requested.

    A variety of smaller bug fixes and general improvements were also brought into Mbed OS.

    Known Issues

    There are no new known issues with this release.

    Fixes and Changes

    7079
    Add support for EFM32GG11

    7448
    Unity: Add macros for test skipping.

    7396
    Tools: Show Mbed-2-only targets in mbed compile -S

    7302
    Support Nuvoton’s NUMAKER_PFM_M2351 target

    7468
    Remove LoRaWAN license from top-level directory

    7533
    Fix linker script for NRF52832/IAR

    7504
    Feature itm fix

    7544
    Remove extra ARMc6 instance in unique mapping

    7479
    Silicon Labs: Add support for hardware CRC

    7520
    LoRaWAN: Wrong return code for JoinRequest retry

    7548
    Fix some targets fail to pass ticker overflow test

    7539
    STM32F2/F4/F7 : LL API is now available for IRQ

    7491
    EFM32: fix weak PeripheralPins configuration

    7556
    Fix spelling in error message in fault handler

    7536
    Add Support for Toshiba TMPM3H6

    7480
    Add MTS Dragonfly bootloader back after accidental removal from pr #7131

    7510
    STM32: Improve GPIO IRQ edge detection when waking from deepsleep

    7519
    Wiznet: fix us_ticker & gpio bug

    7530
    RTOS SYSTIMER test error in TICKLESS mode

    7553
    STM32L496: fix RAM size in ARM scatter file

    7554
    Enable HAL Flash API on Fast Models MPS2 targets

    7549
    Revise heap and stack size for Ethernet of GR-PEACH

    7551
    realtek rtl8195am remove DEVICE_EMAC

    7584
    Minor enhancement to wait_us

    7578
    Makes Greentea TCP test cases to timeout less in connection errors

    7603
    Nuvoton: Replace __wrap__sbrk with overriding _sbrk

    7609
    Make location meaningful in print_error_report

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.9.4”.

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

  • mbed-os-5.9.3

    Downloads: zip tar.gz

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

    Summary

    In this release, we have enabled the ability to determine the Mbed OS release version from within compiled code.

    Nanostack has been updated with the option to use the global event queue to save on memory usage.

    ST and Silicon Labs brought in various clock changes and updated to their targets.

    Mbed OS tools now have the ability to source other C++ file extensions, along with a plethora of smaller changes.

    There are also a number of bug fixes and test enhancements.

    For full details of this and previous releases, please visit our [[https://os.mbed.com/releases/ | releases]] page.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    Fixes and Changes

    7368
    Tools: Include Symbols in dependency list

    7370
    build_api.py : add comment about separate_names

    7359
    Cellular: EasyCellularConnection::connect doesn’t have any check that “CellularConnectionFSM” object is created or not

    7326
    STM32: add lpuart_clock_source config

    7369
    Fix race condition in serial_api.c for NRF52 series

    7348
    LoRaWAN: Correcting doxygen

    7239
    netsocket: dns: make dns-cache-size:0 remove whole DNS cache code

    7029
    Nuvoton: Adhere to reworked ticker spec to release with Mbed OS 5.9

    7008
    AStyle : drivers/hal/platform folders update

    7367
    Tools: Detect Arm Compiler version using Component

    7331
    Improve the process for Cortex-A9 in mbed_application

    7384
    Fix memory leakage with MBR on exiting error path

    7403
    LPC546XX: Fix UART mux setting in the LPCXpresso board

    7342
    Add kernel ticker test

    7376
    DISCO_L496AG: change LED1 and LED2 pins

    7377
    Tools: Summarize stats when depth is 0

    7386
    Make clock source changeable over mbed_app.json for EFM32-Targets

    7390
    DISCO STM32L4 : Add TWO_RAM_REGIONS macro

    7401
    Fix interrupt initialization for NRF52 series

    7405
    Fix target definition for NRF52 series

    7411
    Fix wrong config binding

    7413
    Modified Wiced drivers EMAC instance get

    7371
    Improve efficiency and formatting of ITM output

    7420
    MIMXRT1050_EVK: Fix the GPIO IRQ number assignements

    7421
    MIMXRT1050_EVK: Move clock enable after check of pin

    7406
    NANO130: Change PLL clock source to HIRC instead of HXT

    7429
    MXRT1050: Ensure the pins are in input mode for analogin

    7412
    apply FatFs 0.13b hotfix - fix readdir() never terminates when dir is full

    7352
    STM32: Fix RTC test issue on targets using a 16-bit timer for us_ticker

    7437
    Recognize “.cc” and “.hh” source file extensions

    7410
    Tools: Move exporter alias handling to CLI

    7333
    Cellular: More unit tests for ATHandler’s read routines

    7466
    Tools: py3 compatible version checks

    7446
    Disable LSE for MTB_USI_WM_BN_BM_22

    7404
    Do not print error reports in release builds

    7453
    Fix SWI conflict in SoftDevice for NRF52 series

    7042
    Flash API: Enable Flash api on CM3DS

    7474
    Replace build profile changes with config

    7290
    STM32: Refactor us_ticker files

    7365
    STM32 RTC : bypass shadow registers

    7487
    Allow STDIO pins to be NC in NRF52 series

    7107
    Add option to make Nanostack use global event queue

    7486
    Fix linker script for NRF52840/IAR

    7501
    Tools: Make directories before gen file uses them

    7489
    Cellular: HSI set to be source clock for WISE_1570

    7471
    tests-mbed_drivers-lp_timer: change delay method

    7318
    Cellular: Remove max_packet_size

    7434
    Separate version header file in Mbed OS

    7461
    Raytac: target removal

    7445
    LoRaWAN: Remedy for issue #7230

    7505
    Fix linker script for NRF52840/ARM

    7494
    tests-mbed_hal-lp_ticker: change implementation of the delay before deep-sleep.

    7481
    Tools: Fix py3 bug with mbed export -S

    7500
    Tools: Correct cmse lib creating with make_gcc_arm exporter

    7503
    Tools: Drop quotes from makefiles

    7475
    Tools: py3 compatible mbed-os version lowercasing

    7436
    Update stats to fetch Mbed OS version info

    7507
    STM32 LPTICKER with LPTIM minor update

    7477
    Tools: Skip target lookup in test builds.

    7498
    STM32: enable HSI/LSE clocks for LPUART

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.9.3”.

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

  • mbed-os-5.9.2

    Downloads: zip tar.gz

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

    Summary

    In this release, we have updated mbed-coap to version 4.5.0. This brings fixes for the following issues: * Hardfault during reconnection retry with Thread * mbed-coap: extra response received after registration * Incorrect CoAP request blockwise response handling

    There was a LoRaWAN issue LoRaWAN “Tx Timeout” does not trigger Error Event, which has been fixed in this release. If the radio is unable to transmit, it is considered a fatal error and the application is now notified.

    In the FSM of the Cellular Connection module there was an issue where the code would crash if the SIM interface was closed too early. This has also been fixed in this release.

    To allow the application to choose the default WiFi interface by calling the function, WiFiInterface::get_default_instance() , we have provided default WiFI interfaces for Ublox and Realtek devices.

    We have added iAP and Bootloader support for GR-PEACH and GR-LYCHEE, and binary WiFi drivers for
    MTB_MXCHIP_EMW3166.

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    Fixes and Changes

    7082
    Update mbed-coap to version 4.4.4

    7158
    Add API to read Thread EUI-64

    7197
    Tools: Allow exporting of uARM-only targets to uvision

    7058
    Fix two issues in ExhaustibleBlockDevice

    7209
    Tolerate packet loss up to 30% in udp echo tests

    7231
    Tools: Force small lib when compiling with uARM

    7073
    NRF52_DK: SLEEP enable

    7208
    Added long echo sequence test to EMAC tests

    7201
    LPC54628: Update the ADC clock divider based on the input clock source

    7211
    Nordic BLE: Accept connection parameter update

    7237
    Enable COG boards instruction cache

    7234
    Spelling error in fault handler

    7225
    STM32: Add comments for HAL_InitTick function

    7229
    Disabled STM ethernet driver hardware checksum calculation

    7249
    Maxim: Rename files to fix warning

    7226
    Make MTB_ADV_WISE_1570 respect MBED_APP_START & enable bootloader

    7207
    Change DNS global class definitions to singletons

    7224
    Fix Greentea test code with deepsleep

    7245
    Fix default interface selection by using correct macro names.

    7146
    Cellular: Added power and sim greentea and unit tests.

    7242
    Rename text region in Arm linker file for a few NXP CPUs

    7191
    LoRaWAN: Fine tuning timing for delays and receive windows

    7263
    NRF51 Post-build: Allow Hex BL, SD, APP

    7261
    IAR: Suppress C “bypasses initialization” warning

    7259
    Provide default WiFi interfaces for Ublox and Realtek

    7216
    Asynchronous DNS greentea tests

    7206
    K64f non-blocking powerup

    7205
    STM32: Fix data alignment issue in HASH function for F2, F7, L4

    7264
    Suppress shift warning for IAR compiler as well

    7241
    STM32: Reduce HAL_deepsleep stack usage

    7266
    Update arm_pack_manager index

    7272
    Add binary drivers for MTB_MXCHIP_EMW3166

    7175
    Enable new HAL us_ticker API on fast model MPS2 platform

    7172
    Unify RTC, lp ticker, and us ticker for NRF51 and NRF52 series

    7274
    Travis: fix mongodb key expired error

    7288
    Fix Greentea test code with wakeup from deepsleep

    7283
    Update Greentea netsocket and wifi tests

    7280
    Fix SPI initialization for NRF52 series

    7220
    Fix mbed::InterruptIn.mode() in NRF5x targets

    7295
    Compiling Cortex-A cores in uVision is not supported.

    6973
    Support thread-safety with ARMC6

    7291
    adding USTICKER label for C027

    7275
    Cellular: fixed defect where SIM interface was closed too early

    7262
    BLE: Add setScanParams overload to the Gap API

    7105
    MIMXRT1050: Update to EVK Rev B

    7284
    Add binary drivers for MTB_USI_WM_BN_BM_22 and MTB_ADV_WISE_1530

    7296
    Add names to Idle/timer thread

    6925
    Support Flash iAP and Bootloader for GR-PEACH and GR-LYCHEE

    7269
    Cellular: add cellular network tests

    7214
    Error handling configuration updates and Optimization for exception handling

    7210
    Fix Nordic security cancellation

    7311
    Modify RAM size definition of ARMCC for GR-LYCHEE

    7299
    MBR: Fix issue with MBR init asserting on bad partition size

    7338
    Download astyle from AWS instead of SourceForge

    7286
    Add cellular information tests

    7324
    Fix LED_RED mapping on NUCLEO_F429ZI

    7247
    Tools: Check compiler version

    7320
    Update mbed-coap to version 4.5.0

    7323
    Improve serial performance for NRF52 series

    7341
    Cellular: improved observing of disconnect for callbacks.

    7330
    Clean-up targets.json

    7351
    STM32 files with MBED astyle rules

    7344
    LoRaWAN: Fixing transport of fatal TX timeout event

    7353
    build_api script : separate PeripheralPins.o

    7354
    Fix error history related comments

    7356
    Fix tool crashing when lines end with cr(not crlf)

    7361
    STM32 : get serial RX/TX active state

    7355
    Remove semicolon at the end of #define

    7313
    NRF_52840: Fix us ticker counter size

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.9.2”.

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

  • mbed-os-5.9.1

    Downloads: zip tar.gz

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

    Summary

    In this release, we have added support for the following new target: * Wio 3G

    Uvisor has been updated to v0.31.1 to fix an issue where the thread code was not functioning correctly.

    For Nordic devices, we have added the ability to configure some of the key settings of the softdevice parameters. This allows the user to control the range of functionality in the softdevice as well as the RAM consumption. In particular, the ability to control these values is critical to enable the use of the 16K nrf51 devices.

    We have added support for the mbed_start_application for Cortex-M23 devices.

    There were a number of issues found with the asynchronous DNS provided as part of the EMAC network driver subsystem released in Mbed OS 5.9.0. These have now been fixed.

    We have also fixed a bug where a hard fault was possible in the Nanostack EMAC, if packet reception occurred during initialisation.

    Cmsis/rtx has been updated for Cortex-A to fix a multiple interrupt problem in RTX5. This was particularly affecting GR-PEACH/GR-LYCHEE.

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    7098
    [Wio 3G] Adding platform

    Fixes and Changes

    6968
    Test build: Reduce include command length

    6928
    Cellular: Fixed con-disc sequence can now be called multiple times.

    6947
    EFM32PG12_STK3402 - Correct wrong Expansion-Header pin namings

    6965
    Cellular: Unit tests fixes

    6970
    Fixes to EFM32 port

    6984
    EFM32 IRQ handling fix

    6991
    EFM32: make mbed_rtx.h depend on families instead of targets

    7011
    Fixed float-abi linker option for CCES exporter.

    7014
    Add check for _interface

    7020
    Add STM32L433RC to IAR exporter definitions

    7022
    Fix array overflow in gpio configuration code for NRF5x

    7033
    Cellular: Fix AT URC handler not to dismiss incoming chars

    7034
    Fix redeclaration of type name “bool_t” for Renesas

    7016
    Corrected asynchronous DNS functionality

    7054
    gethostbyname must reject empty name

    7005
    LoRa: Add greentea tests for LoRaRadio API

    7031
    Nuvoton: Adhere to reworked RTC spec to release with Mbed OS 5.9

    7039
    FPGAIO: Add MISC IO initialization support

    7027
    Fix possible bug with SysTimer

    6803
    Wise 1510 uart config

    7007
    AStyle: Fix astyle indentation

    7052
    Cellular: BC95 socket creation to fail on missing socket id in the re

    6987
    STM32 ADC update

    7075
    BLE: Replace Serial with RawSerial in Cordio H4 Transport Driver

    7032
    Update cmsis/rtx for Cortex-A

    7062
    DISCO_F413ZH : map SPI3 to WIFI module

    6022
    nrf5x: Enable asserts -> mbed_error

    6848
    Check that no GPL licence inside code

    6515
    Only schedule mbed_ticker interrupt if queue->head is changed

    7095
    Fixing some coverity issues

    7081
    Fix mbed_crc_ctor is missing in some MbedCRC constructor

    7143
    STM32 : few targets does not support LPTICKER

    7136
    error: fix undeclared memcpy

    7111
    Python 3 makefile export issue

    7124
    Tool: Use TerminalNotifier in singletest

    6860
    Nordic BLE: Allow configuration of softdevice parameters

    6949
    Support mbed_start_application for Cortex-M23

    7120
    Fixed DNS resolution in case all sendto operations fail

    7067
    Add ISM43362 driver support for STM32 wifi DISCO boards

    7173
    Make Nanostack C++ constructor initialise Nanostack

    7167
    Add show full path option to armc6 linker

    7147
    Upgrade uvisor to v0.31.1

    7141
    Kinetis EMAC: Make number of buffers configurable

    7121
    Nanostack EMAC - avoid initialisation race

    6978
    Support default tz_module in event loop thread for M23/M33

    6938
    LoRaWAN: Style and bug fixes

    7164
    Fix NVStore README file (changed APIs)

    7160
    Fixed ppp_lwip_disconnect hangs when connection failure.

    7159
    Add targets to Greentea EMAC tests

    7150
    Nordic: Fix nrf sections on ARMCC

    7106
    STM32: Replace HAL_GetTick

    7103
    Greentea test updated for NXP lpc17xx

    7097
    cellular: random socket port number

    7088
    STM32F76x: Add support of dual bank flash mode

    6948
    STM32 ETH : remove TX RX locking interrupt perforation

    7084
    Cellular: Enable AT debug also when mbed-trace is disabled

    7179
    Fix USB on Kinetis devices

    7119
    NSAPI: Use IPv6 conversion routines from frameworks

    7176
    Fix data aligment problem at STM32F4 hash write

    7182
    Cellular: Disable Greentea tracing to consume less memory

    7161
    Correct PPPCellularInterface::get_gateway()

    7151
    Fixes for RZ_A1H issue 6543

    7166
    BLE: fix pairing for misconfigured devices (deny pairing correctly)

    6935
    Ticker test improvement

    6831
    Add HAL CRC test and header file

    7131
    New mdot bootloader

    7139
    Fix greentea test failure on Renesas Cortex-A9 targets

    7117
    Fix compile error with MBED_MEM_TRACING_ENABLED and ARMC6

    7123
    BLE: check flags to make sure the IRK has been stored before retrieving it

    7102
    Adding cellular tests

    6962
    Cellular: release resources in state machine.

    7194
    Increased LWIP main worker thread stack size for debug builds

    7202
    Corrected casting issue with an assert within the error_handling test

    7196
    Tools: Remove second header when every bl config param is used

    7195
    Cellular: Semaphore wasn’t released in easycellular release build

    7128
    Fix flash_program_page API in LPC boards

    7036
    tests-mbed_hal-sleep fix

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.9.1”.

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

  • mbed-os-5.9.0

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.9.0 release is now available.

    Summary

    Mbed OS 5.9 is releasing device statistics APIs, which allow you to gather critical device information. This is a first step toward giving you power to remotely diagnose the health of IoT devices deployed in the field. Mbed OS 5.9 focuses on mainlining and increasing adoption of low power features, such as the microsecond ticker, low power timer, sleep manager and real time clock APIs. Power consumption is one of the most important design requirements for IoT devices. Meeting the power budget is becoming challenging as the systems today include more sensors, faster responses and more connectivity. With the introduction of and improvements to key low power features, such as the microsecond ticker, low power timer, sleep and real time clock APIs, meeting tight power requirements and designing low power systems becomes straightforward.

    This release also continues our efforts to add comprehensive documentation for Mbed OS. Our ongoing efforts in this area include adding documentation to our connectivity, RTOS and storage APIs, as well as information about our configuration system.

    In addition, this release contains many minor fixes and enhancements and brings support for 135 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.9.0 release.

    Core OS

    Device statistics APIs

    A major challenge in deploying and managing remote IoT devices is monitoring the overall health of the system. Identifying individual mis-performing devices can be challenging when many devices are deployed, and the cost of sending a technician to test devices in the field is very high. We are releasing device statistics APIs in Mbed OS 5.9 to enable device analytics on Mbed OS platforms. Our vision is to continue developing the APIs that provide information about the device and system health and to develop APIs that enable transmission of device health information over the network, so you can remotely monitor the health of your IoT device. The device statistics APIs in the Mbed OS 5.9 release are well-defined APIs that you can use to retrieve OS statistics and device information, such as memory usage, Thread information, stack usage data and runtime CPU load information. The implementation of these APIs is modularized, and it provides multiple APIs for each category. You can enable these separately using build time configuration. For more information, please visit https://os.mbed.com/docs/v5.9/reference/mbed-statistics.html.

    Low power features

    The Mbed OS 5.9.0 release mainlines several low power features to enable long battery life and reduces power consumption to solve key challenges for embedded devices. The low power features were developed over the past few Mbed OS releases and adopted by Mbed Partners. Many platforms now support these features.

    • Tickless RTOS scheduler: In tickless operation, you don’t have to make the tradeoff between the high frequency timing interval, which consumes more power, and the low frequency timing interval, which results in suboptimal time keeping. The scheduler schedules the next timer tick in response to the next event rather than the fixed timer tick. For more information, please visit https://os.mbed.com/docs/v5.9/reference/tickless.html.

    • Improvements to the microsecond ticker and low power timer: Tickers or timers are hardware timers that track small amounts of time​. Mbed OS supports two types of tickers, the high-resolution microsecond ticker​ and the low power ticker​. We have made several improvements to tickers. For example, our ticker now returns native value and configuration data, and the Mbed OS driver is responsible for frequency conversion. For more information, please visit https://os.mbed.com/docs/v5.9/reference/microsecond-ticker.html.

    • Improvements to sleep modes: To save power, Mbed OS goes in sleep modes during idle loop. The sleep modes turn off the system clock when peripherals relying on it are not in use and saves power. We are making several improvements to sleep modes to enhance their functionality. We have APIs to demonstrate the peripheral status during sleep mode. The device must be able to wake up from specified sources. For sleep mode, it is any interrupt, and for deep sleep mode, it is watchdog, low power ticker or GPIO. For more information, please visit https://os.mbed.com/docs/v5.9/reference/power-management.html​.

    • Real time clock: The phrase “real time” differentiates this clock from a ​typical digital clock, which generates electrical pulses but doesn’t keep track of seconds or minutes. The real time clock enables the system to track time in human units​. Usually, it continues to count over system resets, and the date and time remain correct even after you reset the system​. RTC is often supplied with a dedicated battery to keep track of time during power loss. We have improved the real time clock support in Mbed OS. It now continues to keep counting during ​software reset, sleep modes and shutdown mode​. Also, the improved accuracy is now below 100 ms. ​Please visit https://os.mbed.com/docs/development/v5.9/rtc.html for more information.

    Improvements in error codes and error handling

    We are improving our error codes and error reporting infrastructure to ease development by enabling a standard way to describe, debug and communicate error scenarios. Improved error handling implementation provides features such as standardized error code and error status definitions, error handling APIs for error construction, error reporting with thread context, the ability to retrieve previous errors and the ability to save errors to the file system. We designed the error reporting APIs to be used from any context, such as ISR or Threads. The implementation also provides mechanisms for extending the error status definitions to report application specific errors and to extract information from error status values. For more information, please visit https://os.mbed.com/docs/v5.9/reference/error-handling.html.

    Connectivity

    Ethernet MAC API (EMAC)

    We have introduced a new EMAC API to bring unified support for Wi-Fi and Ethernet interfaces and make drivers independent of underlying network stacks. The new changes make it possible to use the same driver with both Nanostack and LWIP Stack. Working closely with our Silicon partners, the new EMAC feature is already available on boards and modules from Nuvoton, NXP, Realtek, Renesas, ST and u-blox.

    Security

    Update to Mbed TLS 2.10.0

    Mbed TLS 2.10.0 provides support for the ARIA cipher and cipher suite for TLS (RFC-6209). Mbed TLS also contains optimizations to reduce code size or RAM, including an option for smaller AES tables. In addition, it contains many security and bug fixes over Mbed TLS 2.7.1, which was included with Mbed OS 5.8. You can access the Mbed TLS feature at https://github.com/ARMmbed/mbed-os/tree/master/features/mbedtls.

    Targets and tools

    Thanks to our Partners’ hard work, Mbed OS 5.9 added 14 new target platforms and now supports 135 target platforms. We’ll continue to add targets in our biweekly patch releases as Partners work with us on support.

    Mbed CLI update and Python 3 support

    We have updated all Mbed OS tools to be compatible with both Python 2 and Python 3 environments. This gives greater flexibility on system requirements because previous installations of Mbed OS required the use of Python 2. You can now choose which Python environment fits your needs. Our tools are backward compatible with all current and previous versions of Mbed OS for Python 2. It is only compatible with Mbed OS 5.9 and later for Python 3.

    We have also added a built-in serial terminal feature to Mbed CLI. You can invoke the serial terminal using the “mbed sterm” command. For more information, please visit https://os.mbed.com/docs/v5.9/tools/debugging.html#serial-terminal

    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.

    Handshake Messages are not fragmented as per MaxFragmentLength Extension Negotiation.

    • Description: “Once a maximum fragment length other than 2^14 has been successfully
      negotiated, the client and server MUST immediately begin fragmenting
      messages (including handshake messages) to ensure that no fragment
      larger than the negotiated length is sent. ” In Mbed TLS only the application data is fragmented and the handshake messages are not.
    • Workaround: Disable MaxFragmentLength Extension Negotiation.
    • Reported Issue: https://github.com/ARMmbed/mbedtls/issues/387
    • Priority: MAJOR

    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

    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

    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: https://github.com/ARMmbed/mbed-os-example-tls/issues/14
    • Priority: MAJOR

    Commissioner does not retransmit message when it receives retransmission

    • Description: There are two issues with DTLS handshake retransmission. Firstly, the joiner fails to correctly parse received records because it does not correctly handle queued retransmissions received. Secondly, the commissioner may cause a deadlock as it does not retransmit certain records after it receives retransmission as instructed in RFC6347 Section 4.2.4.
    • Workaround: There is no known workaround.
    • Reported Issue: https://github.com/openthread/openthread/pull/1207
    • Priority: MAJOR

    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 accelerted engines.
    • Workaround: There are no known workarounds
    • Reported Issue: Reported by the development team.
    • Priority: MAJOR

    uVisor does not support nested interrupts

    • Description: When running an application with uVisor enabled, nested interrupts are not supported.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/345
    • Priority: Major

    On ARMv7-M targets supporting uVisor, the RTOS runs with the same privilege of uVisor

    • Description: The current architecture of uVisor and of RTX require the RTOS to run with the same privilege of uVisor. As such, the RTOS is considered as trusted.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/235
    • Priority: Major

    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: https://github.com/ARMmbed/mbed-os/issues/4651
    • Priority: Minor

    Traceback occurs when ran with factory default firmware on Realtek RTL8195AM

    • Description: When running mbed-ls on the Realtek board a traceback happens
    • Workaround: Version of mbedls in Mbed OS does not have this fix. Workaround is to install mbedls from master until a release is made.
    • Reported Issue: https://github.com/ARMmbed/mbed-ls/issues/276
    • Priority: Major

    Export project to Keil - device not present

    • Description: cmsis-pack-manager assumes that all information is stored in a device tag. According to the official CMSIS Pack specification however this is not the case. cmsis-pack-manager needs to be updated to index by variant as well as device. We currently do not know how many devices are affected by this issue.
    • Workaround: In this case manual selection of the device and flash programming algorithm may be required.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-cellular/issues/41
    • Priority: Major

    OnboardCellularInterface used incorrectly

    • Description: This example invokes methods on OnboardCellularInterface that are not part of the CellularBase abstract class. This means it may not work if OnboardCellularInterface is not a PPPCellularInterface.
    • Workaround: None
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-cellular/issues/54
    • Priority: Major

    WiFi connection fails with client compiled by IAR IDE

    • Description: Mbed connector client example programs do not connect to api.connector.mbed.com when built in the IAR Embedded Workbench IDE. It works when you build using Mbed CLI.
    • Workaround: Do not export mbed connector example for IAR Embedded Workbench.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-client/issues/355
    • Priority: Major

    Client fails to connect via UDP when binary is compiled by Online Compiler

    • Description: using UDP fails when binary is compiled with Online compiler but works if compiled with mbed-cli GCC_ARM .
    • Workaround: Use TCP based connections
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-client/issues/357
    • Priority: Major

    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: https://github.com/ARMmbed/mbed-os/issues/5640
    • Priority: Major

    Makefile export fails to build larger project in Windows

    • Description: Make will fail with the error: make (e=87): The parameter is incorrect.
    • Workaround: Possible workarounds are 1) Use Linux instead 2) Follow advice here,
      https://stackoverflow.com/questions/12598933/ndk-build-createprocess-make-e-87-the-parameter-is-incorrect
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/6335
    • Priority: Minor

    Online exports of projects overriding mbed-os configuration fail

    • Description: Exports from the online compiler of projects that override mbed-os configuration do not work
    • Workaround: Export offline using Mbed CLI
    • Reported Issue: https://github.com/ARMmbed/mbed-os/pull/6428
    • Priority: Major

    NXP LPC17xx targets do not have Ethernet driver

    • Description: Ethernet driver interface was refactored for Mbed OS 5.9. LPC17xx is not yet ported.
    • Workaround: Wait for Mbed OS 5.9.1
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-sockets/issues/12
    • Priority: Major

    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: no
    • Reported Issue: -
    • Priority: Major

    Nanostack Border router does not build for Nucleo F429ZI

    • Description: Ethernet driver interface was refactored for Mbed OS 5.9. Nanostack border router was not refactored, so new versions of F429ZI drivers are not yet in use.
    • Workaround: wait for fix in the Border Router application
    • Reported Issue: https://github.com/ARMmbed/nanostack-border-router/issues/113
    • Priority: Major

    BLE Security Manager initializes cryptographic hardware on NRF52840

    • Description: The CC310 Cryptocell hardware is initialized when using the BLE Security Manager on NRF52840; if the application is already using mbedTLS prior to this initialization it might yield undefined behaviour
    • Workaround: Do not use the BLE Security Manager on NRF52840 if mbedTLS should be used by the application, or make sure it is initialized first and that mbedtls_platform_setup()/mbedtls_platform_teardown() are not called subsequentially
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/7069
    • Priority: Major

    Exporting to GCC in Windows does not work with Python 3

    • Description: Exporting projects to GCC makefiles in Windows does not work when using Python 3.
    • Workaround: Wait for Mbed OS 5.9.1
    • Reported Issue: https://github.com/ARMmbed/mbed-cli/issues/694
    • Priority: Major

    Ublox ODIN W2 crashing with latest client

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

    All NRF52832 based devices (e.g. NRF52_DK) have sleep/deepsleep functionality disabled.

    • Description: sleep/deepsleep functionality will be enabled in Mbed OS 5.9.1 release
    • Workaround: Wait for Mbed OS 5.9.1 (fix available here https://github.com/ARMmbed/mbed-os/pull/7073)
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/7168
    • Priority: Major

    Cortex-A release and develop profiles for ARMCC build fail

    • Description: Bug in CMSIS ARMCC header file causing ARMCC builds with -O3 to fail (release and develop profiles are affected)
    • Workaround: use develop profile for ARMCC or wait for Mbed OS 5.9.1
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/7065
    • Priority: Major

    Fixes and changes

    7030
    Fix lwIP PPP glue

    7023
    Add new examples to example list for CI.

    7019
    Made lwip memory configuration more specific for NXP targets

    7015
    Fix build for MBT_ODIN_W2 and MBED_CONNECT_ODIN when using WiFi

    7012
    Enable DeviceKey class reference for Doxygen

    7009
    Bring in improved HAL APIs to master

    7003
    Add devicekey example to examples list

    7000
    Add warning about FEATURE_UVISOR being deprecated

    6993
    CPU Stats test - Increased wait time to allow device to sleep

    6983
    Standardized Error Handling and Error Codes

    6981
    Remove ns_event_loop_thread_start() from NDInterface and ThreadInterface connect()

    6960
    LoRaWAN: Message flags correction

    6959
    Remove unused ITM implementation from NRF51 series

    6932
    BLE privacy, signing, persistent security database

    6927
    Cellular: AT debugging improved

    6917
    Travis: Quick name-fix for warnings reported by Astyle

    6910
    LoRaWAN: Adding acquisition of metadata, backoff and a cancel_send() API

    6905
    Lora: Remove obsolete FEATURE_COMMON_PAL flags

    6901
    events: Introduce API to query how much time is left for delayed event

    6892
    LoRaWAN: Wrong type of message check

    6886
    Corrected iteritems py2/3 compatability in test_api.py

    6882
    lwIP: Enable TCP out-of-order processing

    6878
    Add low power timer fallback for platforms without RTC

    6876
    Nanostack release for Mbed OS 5.9

    6875
    Lora: Fix battery_level callback

    6866
    fatfs: Add erase disk to format

    6863
    Update Mbed TLS to version 2.9.0

    6862
    Fastmodels support: add FVP_MPS2 targets to mbed os

    6857
    CPU Statistics

    6847
    Merge feature-emac branch into master

    6839
    Lora: fix AU915 build

    6833
    mbed test: add argument --ignore to allow passing in mbedignore patterns

    6826
    Reorganize SoftDevices for NRF52 series

    6823
    tools: Remove long-deprecated build_everything.py

    6821
    System stats - API addition

    6819
    Remove example update scripting from tools

    6808
    LoRa: State machine work

    6800
    Lora: Fix LoRaMacCrypto asserts

    6798
    Fix bug in MBR for NRF52 series

    6796
    Fix us_ticker for NRF52 series

    6795
    Thread stats API

    6794
    Cryptocell 310 support

    6792
    Cellular: Add dynamic alloc and destruction to easycellular

    6791
    Add POSIX fcntl flag support

    6784
    Add common define MBED_ALL_STATS_ENABLED to enable all statistics

    6781
    tools: Refactor notification API

    6779
    [MAX32625PICO] Add new platform

    6772
    littlefs: Map LFS_ERR_CORRUPT to EILSEQ

    6771
    Fix UART initialization for NRF52

    6765
    Cellular: Fix AT Handler compile warning

    6757
    Implement BufferedBlockDevice

    6750
    LoRaWAN: Memory corruption due to band mishandling

    6749
    Add platform setup and teardown calls to mbedtls tests

    6748
    nrf5x: Fix assert test on SERIAL_RESERVED_CHAR_MATCH

    6747
    Support RTOS-less secure image build with Cortex-M23/M33

    6746
    Fix vector table relocation for NRF52

    6744
    Cellular: Changed ATHandler yield to wait

    6741
    Lora: Split add_mac_command() into separate methods

    6721
    Fix bug in Nordic SDK 14.2 I2C driver

    6720
    Fix bug in Nordic SDK 14.2 SPI driver

    6717
    Fix NRF52 SPI pin initialization

    6711
    Cleanup TARGET_NRF5 and TARGET_NRF5x

    6708
    Add Hardware CRC HAL API specification

    6702
    Cellular: Fix to prefer IPv6 single stack with fallback to IPv4

    6700
    mbr: Added assertions for overlapping partitions

    6698
    Make poll() use RTOS tick count

    6696
    CM3DS Maintenance Pull Request: Cleaning

    6693
    Make event queue use RTOS tick count

    6692
    Lora: Remove singleton pattern

    6691
    Cellular fixes

    6682
    Fixed cellular unittests

    6677
    Cellular: fixed null pointer bug in cellular fsm

    6665
    Greentea netsocket more tests

    6663
    Use SingletonPtr in Nanostack HAL

    6657
    add ncs36510 fib and trim generation

    6654
    Add missing carriage returns to fault handler

    6653
    Stop lwIP using us_ticker

    6642
    Device key implementation

    6632
    cellular: Error messages

    6630
    Support secure/non-secure flash IAP for Cortex-M23/M33

    6629
    Cellular: add plmn for CellularConnectionFSM

    6628
    Lora: Make automatic uplink message configurable

    6627
    Nanostack hal timer shortcut

    6626
    Cellular: Separated context activation in CellularConnectionFSM.

    6595
    Fix typo with NVStore

    6592
    Updates tools to be runnable in Python 3

    6590
    AStyle addition to travis

    6588
    [IOTCELL-741] Separating public data structures

    6587
    LoRa: Internal include paths corrected

    6586
    Lora: Introduce new receive API which returns port and flags

    6577
    Get rid of FEATURE_COMMON_PAL and FEATURE_NANOSTACK

    6570
    Cellular: add detach from the network

    6569
    Lora: small fixes

    6566
    LoRa: Stack cleanup

    6559
    Implement FlashSimBlockDevice - flash simulated block device over RAM

    6547
    Update Nordic NRF52 based targets to SDK 14.2

    6536
    Add handling for synchronized low power tickers

    6534
    Update idle loop to reduce calls to suspend

    6530
    Exclude files like .main.cpp from builds

    6496
    standard non-blocking NetworkInterface::connect

    6486
    Thread class tz

    6483
    CMSIS: Add TrustZone functions

    6480
    NVStore: add the allocate_key API (instead of set_alloc_key)

    6441
    Disable all deprecated exporters

    6440
    Remove supertarget

    6433
    Enabl-able Python 3 tools testing in Travis CI

    6427
    Added SerialWireOutput to mbed namespace

    6418
    Add an option to use LowPowerTimer for poll

    6411
    Stack refactoring

    6408
    Add overloaded get_erase_size API with address parameter to BlockDevice

    6402
    Renaming Ublox library for mbed cellular framework

    6388
    NVStore: key management enhancements

    6336
    fatfs: Update error code mapping

    6309
    Peek API to view data of buffer without popping

    6279
    LoRa refactoring

    6273
    Update cmsis/rtx to version 5.3

    6270
    Add parameter in tools settings to show error/warning as Link

    6239
    Interrupt in pin mode

    6238
    Remove windup behavior from break_dispatch

    7132
    Tool: Use TerminalNotifier in Mbed 2 release

    7092
    Additional fixes for running Python 3 in Windows

    7089
    BLE fixes (SM whitelist creation, Nordic scatter file fix, missing TLS initialisation)

    7078
    Windows pytest fixes

    7074
    Remove redundant Cryptocell libraries

    7072
    Edit warning about FEATURE_UVISOR being deprecated

    7070
    set the tolerance to 5% if NO_SYSTICK is enabled

    7060
    UBLOX_C027: init us_ticker in the target initialization

    7059
    OS version not update in mbed_stats

    7053
    Fix RTOS-less build failed with cmsis/RTE_Components.h

    7050
    Fix for filename capture not working

    7035
    tests-mbed_hal-common_tickers: Fix increment test case implementation

    6914
    build: fix notifier typo and passing to builds API

    7144
    Add configuration options to enable CMAC in mbedtls by default

    7135
    Update Mbed TLS to version 2.10.0

    Testing

    We designed Mbed OS to significantly reduce cost and time for embedded software development by providing a production-quality toolset and code. We are committed to delivering high-quality code working across all supported boards and platforms. To ensure all the features of code meet our quality control requirements, we have built an automated testing environment and processes that perform rigorous testing on every line of code. The continuous integration framework is a highlight of our testing framework.

    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 is exporting properly to all the compilers.
    • We merge the PRs only if the all the above procedures are successful.

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

    • Total test time is 28,182 hours on actual development boards.

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

    • The total number of binaries built since the Mbed OS 5.8.0 release is 40,561,560.

    We plan to share more details about testing processes, such as our out-of-box testing coverage and system testing, in upcoming release blogs.

    Using the 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.9.0, run the CLI command mbed update mbed-os-5.9

    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.

    You can also fetch the latest version of the Mbed OS 5.9 release from the mbed-os GitHub repository using the branch “mbed-os-5.9”.

  • mbed-os-5.8.6

    Downloads: zip tar.gz

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

    Summary

    This is the last patch release for mbed-os-5.8.

    We have updated mbed-coap to version 4.4.4.
    This fixes a hardfault which was occurring during reconnection retry with Thread.

    We have fixed an issue with the Cordio BLE stack using the H4 UART transport. The H4 stack was previously calling Serial::writeble() in interrupt context, attempting to obtain a lock on a mutex, which is illegal in this context and was causing the stack to fault.

    When trying to build REALTEK_RTL8195AM with IPv6 support enabled, the build would fail. This has now been fixed.

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    Fixes and Changes

    6939
    NOT_SUPPORTED error was not supported any more in test_api.py script

    6952
    STM32 ETHERNET : Allow user defined Ethernet PHY init functions

    6951
    STM32 SPI: fix NSS pin configuration

    6896
    Export folder needs to not ignore .mbed files.

    6931
    STM32 : PeripheralPins.c and PinNames.h files alignment

    6947
    EFM32PG12_STK3402 - Correct wrong Expansion-Header pin namings

    6970
    Fixes to EFM32 port

    6984
    EFM32 IRQ handling fix

    7011
    Fixed float-abi linker option for CCES exporter.

    7020
    Add STM32L433RC to IAR exporter definitions

    7034
    Fix redeclaration of type name “bool_t” for Renesas

    6803
    Wise 1510 uart config

    7056
    fix realtek_rtl8195am IPv6 build fails update

    6987
    STM32 ADC update

    7075
    BLE: Replace Serial with RawSerial in Cordio H4 Transport Driver

    7062
    DISCO_F413ZH : map SPI3 to WIFI module

    7082
    Update mbed-coap to version 4.4.4

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.8.6”.

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

  • mbed-os-5.8.5

    Downloads: zip tar.gz

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

    Summary

    In this release we have updated:

    • mbed-coap to version 4.4.3.
      This fixes an error where the registration time cannot be set if the server does not use the
      max age option.

    • STM32F3 to STM32CubeF3 V1.9.0
      This updates,
      CubeF3: from V1.7.0 to V1.9.0
      HAL driver: from V1.4.0 to 1.5.0
      CMSIS device: from V2.3.1 to V2.3.2

    We have fixed a couple of LoRaWAN bugs: * rx_config() incorrectly returned a physical layer datarate value when an index to datarate table
    should be returned.

    • Fixed region 2(AU915) failed to compile due to a typo in the code.

    A couple of bugs in the BLE module have also now been fixed:

    • 6760 Missing type definition for public_key_t
      When compiling the Mbed Cloud Client on a BLE target the GenericSecurityManager failed to
      compile due to a missing type definition for public_key_t.

    • 6806 BLE::GenericGattClient::DiscoveryControlBlock terminate() called twice.
      This caused a hard fault.

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    Fixes and Changes

    6797
    Fix compile error with DirectSerial in serial-less build

    6793
    tools: Pass app-config to get_config

    6768
    Nano 100: Lower HEAP size for IAR

    6769
    Move subtract basepath into the resources class

    6773
    Enlarge timer thread stack size for Cortex-M23/M33

    6728
    Fix issue template - simplified version

    6610
    Stm32 eth remove tx rx locking interrupt perforation

    6805
    tools: Reorder test configuration priority

    6814
    GenericGattClient: Fix discovery termination.

    6743
    BLE: Conditional compilation of H4 driver

    6742
    BLE: Update cordio porting guide

    6645
    mbed_wait_api: add comments to warn the func will lock deep sleep

    6809
    Mbed Stats: Assert if NULL pointer passed as arg

    6849
    Add missing semicolon to NRF51 critical_section implementation

    6817
    GenericSecurityManager: Fix crypto_toolbox_f4 signature.

    6845
    Remove obsolete OS_IDLE_THREAD_STACK_SIZE from NRF52

    6852
    Fix for issue #5308 - RTC set/get time issue on NCS36510

    6879
    Build mbed-os-example-lora only for lora targets

    6864
    FlashIAP: Fix problem of programming source buffer not aligned to 4

    6838
    export: Fix invalid config header path in Sw4STM32

    6883
    Update mbed-coap to version 4.4.3

    6885
    BL mode: Prevent jump address conflicts

    6832
    STM32F3: Update with STM32CubeF3 V1.9.0

    6865
    fix greentea-client, require a character input between K-V pairs

    6919
    tools: Add explicit target for NVStore example

    6940
    NVStore - remove Thread.h include

    6846
    Lora: Fix rx datarate

    6829
    LoRaWAN: Fixed region 2(AU915) to compile

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.8.5”.

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

  • mbed-os-5.8.4

    Downloads: zip tar.gz

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

    Summary

    In this release we have updated the SDK TPM driver for the KW41Z. This fixes an issue
    where certain instances of the TPM are missing some registers.

    We have also updated the EFR32 15.4 driver. This includes, * Updates driver library to v2.3.1 (2018q1) for bugfixes and convenience functions * Provides library in correct format (2-byte wchar_t flag) for compiling with ARMCC (bug 6695) uncovered by PR6577 * Reverts to using a statically-allocated packet buffer since malloc is not thread-safe (and the asserts have been turned on)

    The STM32L0 has been updated with CubeL0 V1.10.0. This includes, * CubeL0: from V1.7.0 to V1.10.0 * HAL driver: from V1.7.0 to 1.8.2 * CMSIS device: from V1.7.0 to V1.7.2

    There was an issue when compiling arm assembler in uvision where the error,
    “command too long for buffer” was being observed. This was found to be due to the
    assembler adding a large number of include paths to the command line to try and
    capture every possible location for a header file. We have fixed this by changing the
    arm compiler behaviour to match that of IAR and dropping the include paths.

    We have added bootloader support for NUCLEO_F411RE.

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    Fixes and Changes

    6690
    ADI: Enable bootloader for EV_COG_AD3029LZ and EV_COG_AD4050LZ

    6686
    Remove automatic I2C stop after each read

    6683
    Add IAR export and nvstore page size fix for TMPM46B

    6669
    make PR type box list “fancier” without making it a github tasklist

    6666
    STM32L0: Update with CubeL0 V1.10.0

    6611
    Uninitialized variable warning in UARTSerial at -O3

    6602
    requirements: add future

    6540
    Prevent compiling with unsupported compilers

    6718
    Modifying echo test to be driven more from the device.

    6727
    Update URL that points at a blank page.

    6723
    STM32 RTC Init minor update

    6735
    LPC546XX: Add check for GPIO IRQ

    6701
    Update to EFR32 15.4 driver

    6671
    Update doxygen options rules to not strip code comments

    6745
    Clarify mesh configuration values.

    6734
    LPC54XXX: Set the pin function to Digital mode

    6733
    Fix compiler warnings for Maxim platforms

    6644
    Fix build tool with ARMC6/ARMv8M

    6756
    Re-enable flash clock test for NRF52 but with higher tolerance

    6787
    KW41Z: Update SDK TPM driver

    6786
    Moved stats test to platform folder

    6785
    KL82Z: Fix clock selection for PWMOUT driver

    6780
    resolve LWIP compiler warning

    6778
    Add support for open drain leds

    6774
    littlefs: Fix issue with trailing dots in file paths

    6762
    Fix compile error with MBED_MEM_TRACING_ENABLED and ARMC6

    6740
    Lora: Fix max tx power check

    6729
    Add bootloader support for NUCLEO_F411RE target

    6713
    Drop include paths for ARM assembler

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.8.4”.

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

  • mbed-os-5.8.3

    Downloads: zip tar.gz

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

    Summary

    This release adds new target support for MTB_ADV_WISE_1530, USI WM-BN-BM-22 and MAX32620C with the MAX32620FTHR platform.

    mbed-coap has been updated to version 4.4.2. This contains a fix for the issue where CoAP UDP retransmission does not work for blocks after the first one for requests (Eg. registration POST).

    On the LPC4088 there was an issue where the chip would hardfault just after a power-cycle. This
    has been fixed in this release.

    We have fixed an issue with the RTL8195AM, which wouldn’t compile in the online IDE due to
    its post-build script. We have refactored our tools to use pyelftools which removes the problem.

    We have included IAR export support for STM32L496AG and STM32L151CC. We have also added support
    for a Code::Blocks project file exporter.

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    6503
    [MAX32620C] Add new target

    6511
    Add new target USI WM-BN-BM-22

    6601
    Add new target MTB_ADV_WISE_1530

    Fixes and Changes

    6561
    Stm32 deep sleep clock

    6481
    Code::Blocks project file exporter

    6553
    Correct armc6 detection logic for STM32L4

    6509
    Add an NV_SEED test to the config adjustment script

    6572
    cellular: ATHandler send delay

    6505
    remove MODULE_UBLOX_ODIN_W2 from targets.json

    6544
    add ADC_AN0-2 mapped on PA_0-2

    6550
    Remove MPS2 M1

    6564
    Travis: Fix rate-limit issue with Github requests

    6567
    DISCO_F769NI: set clock_source to USE_PLL_HSE_EXTC

    6169
    CM3DS Maintenance Pull Request: TRNG support (3/4)

    6619
    PR template: fix tick definition

    6600
    [IOTCELL] Setting up channels for AU915

    6618
    Update mbed-coap to version 4.4.2

    6634
    Add iar export support for STM32L151CC

    6625
    rtl8195am - fix excessive compiler warnings

    6620
    Cellular: fixed athandler unit tests.

    6613
    Macro expansion results in a constant boolean expression

    6609
    STM32 PCD negative numbers issue

    6608
    Rework us_ticker and rtc_api/lp_ticker

    6606
    Fix I2C master

    6605
    Rework us_ticker and rtc_api/lp_ticker | Fix compiler warning for spi_api

    6599
    STM32 compilation warning issues

    6598
    LPC4088: Fix hardfault occuring after power-cycle

    6541
    Add mbed-os 5 build support for LPC11C24

    6466
    Nuvoton: Fix issues with SPI

    6468
    Fix deep sleep implementation

    6510
    Adding missing @deprecated to function inline documentation

    6580
    Cleanup get_config (mbed compile –config)

    6607
    Improve SPI block write

    6621
    Use pyelftools for Realtek post-build script

    6637
    Add IAR export for STM32L496AG

    6647
    Fix MCUXpresso LPC I2C driver

    6648
    ADI: Add BUTTON pin names for EV_COG_AD4050LZ and EV_COG_AD3029LZ

    6603
    Optional hardware flow control for STDOUT

    6651
    rtl8195am - Fix more compiler warnings

    6221
    LPC546XX: Add TRNG support

    6660
    Enable flow control in Greentea

    6614
    Macro expansion leads to a bare expression

    6652
    Cellular: Updated doxygen for deprecated API’s.

    6604
    littlefs: Fix some issues with lookahead trust

    6658
    Allow library configs to override target configs

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.8.3”.

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

  • mbed-os-5.8.2

    Downloads: zip tar.gz

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

    Summary

    This release adds new target support for RAK811 and Toshiba TMPM46B.

    We have included a new patch version (4.4.1) of mbed-coap. This brings fixes for the following:

    • Block wise messaging call-backs not working logically
    • Allow TCP+TLS transport method to send larger messages without blockwising.

    We have also added an update to the drivers for STM32L1:

    • CubeL1: Updated from V1.6.0 to V1.8.1
    • HAL driver: Updated from V1.2.0 to 1.3.1
    • CMSIS device: Updated from V2.2.0 to V2.2.3

    We have enabled tickless mode on Silicon Labs targets and added support for the v3.0 pin map on
    the NUMAKER_PFM_M487 platform.

    There are a couple of significant issues which have been fixed in this release:

    • Deep sleep was not unlocking properly in the Timeout class.
    • UARTSerial output not working properly on the REALTEK_RTL8195AM platform,causing the device to crash 6358.

    There are also a number of other fixes and code improvements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    5902
    Added Support for Toshiba TMPM46B

    6043
    add support for the RAK811

    Fixes and Changes

    6415
    rtl8195am: fix LogUART Tx interrupt crash

    6450
    Realtek: serial - line ending fix

    6428
    Avoid incorrect config errors on export with many –source

    6424
    Nuvoton: Support M487 v3.0 pin map

    6416
    lwIP: fix some IPv6 errors, eg TCP keepalive

    6313
    Add missing Doxygen descriptions for Nanostack

    6487
    Minimize the size of uvision include paths

    6373
    flash: add docs for user defined data

    6467
    KL82Z: Update the clock selection method for LPUART module

    6488
    Fix initial SP for new Silicon Labs targets on ARMCC

    6413
    LPC176X: Fix flash program size

    6394
    Nuvoton: Fix us_ticker/lp_ticker

    6475
    Enable tickless mode on Silicon Labs targets

    6494
    [BLE] Fixed inconsistent casing issue for SecurityDb

    6512
    Move Mbed 5 support check so that it affects the exporters

    6518
    Inrease thread stack size to 1024 bytes in NVStore test for NRF52

    6533
    Fix deep sleep locking for Timeout class

    6527
    Test line-ending problems

    6528
    Update mbed-coap to version 4.4.1

    6531
    Fix doxygen comments to reflect the deprecated functions

    6490
    ADI: Fix EV_COG_AD3029LZ and EV_COG_AD4050LZ us_ticker_fire_interrupt() minimal time interval

    6442
    Add test for MbedCRC.h

    6524
    Fix IPv4 address parsing due to not-so-portable scanf modifier

    6557
    LoRa: Fixed cflist decoding issue

    6497
    STM32L1: Update ST HAL driver to CubeL1 V1.8.1

    6552
    Error on invalid mbed_lib JSON

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.8.2”.

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

  • mbed-os-5.8.1

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.8.1 release is now available.

    Summary

    This release adds new target support for DISCO_L496AG, VK_RZ_A1H, Laird BL652 and STEVAL-3DP001V1.

    We have included updates to mbed-coap covering versions 4.3 and 4.4.

    The SDK driver for LPC546XX has been updated to version 2.3.

    There was a problem with the REALTEK RTL8195AM post build script not working in the online compiler, 5976 , this has now been fixed.

    A number of updates have been added to the Cellular functionality, including
    the addition of an internal callback API and ATHandler improvements.

    We have added iar export functionality for MTB_ADV_WISE_1510 and flash support for LPC54114
    and LPC546XX.

    There are also a number of other bug fixes and test enhancements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    6102
    Add support for STEVAL-3DP001V1 board

    6164
    Adding Laird BL652 as new target

    6379
    DISCO_L496AG: Add new platform

    6245
    Update for VK_RZ_A1H

    Fixes and Changes

    6153
    Correct exporter clean behavior

    6191
    Simplify json-to-dict utility

    6189
    LPC546XX: Update SDK driver to version 2.3

    6246
    C030 platform I2C initialisation fix

    6228
    Nuvoton: Rework us_ticker/lp_ticker with one H/W timer

    6143
    Correct mbed export with multiple –source params

    6146
    Correct gcc m33 floating point handling

    6173
    Modifies error text reported from RTX from ‘underflow’ to ‘overflow’

    6268
    Unittests fixed

    6202
    Fix max32625mbed

    6235
    mcu_lpc546xx: move “release_versions” to children and fix clock

    6263
    Clarify intention between comparison to zero and the shift operation

    6286
    Small typo fixes in readme.md files

    6271
    Allow build profiles to omit language entries

    6226
    rtl8195am: fix ARM section error

    6257
    Fix for Crash dump formatting issues and adding more info to crash dump

    6290
    Cellular tests: fix power mgmt stub

    6287
    MCUXpresso_MCUS: Apply K64F us_ticker fix across all MCU’s

    6315
    EFM32: make gpio interrupts faster by offloading expected pin state check to user

    6314
    Cellular: ATHandler write improvements.

    6311
    mts_mdot_f411re: Fix for Multi-Tech mDot IAR linker script

    6310
    MCUXpresso: Fix test failures seen with ci-test shield

    6303
    [ATCmdParser]: Align process_oob() to vrecv()‘s newline handling

    6300
    Fixes to LoRa PHY

    6288
    Fix macro definition of iodefine_typedef for RZ_A1H

    6274
    events: Added note about immediate firing of periodic events

    6198
    Flash support: Add flash support for LPC54114 & LPC546XX

    6149
    Fix typos in the files

    5106
    Timeout & LowPowerTimeout tests

    6092
    mbed-mesh-api: add JSON help

    6292
    rtl8195am - improve credentials handling

    6345
    Cellular: Fixed sms unit tests.

    6329
    Cellular: add callback API

    6361
    Convert option list to unicode

    6359
    NVStore: add comments in header file for Doxygen formatting sake.

    6346
    Fix for #6252

    6353
    STM32 RTC init

    6354
    Enable iar export option for MTB_ADV_WISE_1510

    6114
    Remove mbed 2 builds from Travis

    6326
    rtl8195am : fix gpio toggle slow

    6264
    Deprecated warnings for feature/netsocket/cellular

    6372
    Fix doxygen for ITM HAL

    6367
    ADI: Fix on chip flash minimal programmable unit size

    6216
    Correct Realtek post-build script to work in the online compiler

    6192
    Correct syntax for mbed export in Py3

    6356
    Add include search path when preprocessing assembly files for uvision and make_armc5 exports

    6340
    Disables flash clock and cache test

    6291
    Cellular: BC95 echo test fixes

    6370
    STM32 LPTICKER : optimize RTC wake up timer init

    6363
    dir seek fixed - dptr was not updated before checking

    6350
    Cellular: update attach test

    6338
    littlefs: Fix issue updating dir struct when extended dir chain

    6333
    Corrected lwip adaptation TCP flagging

    6330
    NUCLEO_L433RC_P: fix pins definitions

    6392
    Nuvoton: Remove unnecessary UART INT in UART DMA transfer

    6344
    armcc - remove fromelf output before regenerating one

    6168
    CM3DS Maintenance Pull Request: Memory changes (2/4)

    6378
    equeue: Added profiling reports to Travis

    6368
    Sort out volatiles in the atomic functions

    6348
    Fix PR template

    6399
    STM32L4 ADC Internal Channel : correct sampling time

    6412
    STM32L4 ADC correct internal channel management

    6377
    Replace runtime strip_path function with compiler intrinsic equivalents

    6419
    Correct get_config imports

    6437
    Nuvoton: Fix NVSTORE test failed

    6434
    Modified apt-get retry logic with Travis CI retry feature

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.8.1”.

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

  • mbed-os-5.8.0

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.8.0 release is now available.

    Summary

    Mbed OS 5.8 focuses on Mbed Enabled modules to reduce development cost, time and risk and provide go-to-market value compared to traditional chip down designs. We are continuing our focus on low power with our sleep/deep sleep profiling tool, with which you can identify objects that are stopping entry into low power modes. The 5.8 release continues to strengthen Arm’s connectivity portfolio with an updated LPWAN stack and updated cellular stack with support for IoT-ready NB-IoT and CAT-M1 technologies. We have also launched the closed alpha developer trial of Mbed Studio, a free desktop IDE designed specifically for Mbed OS.

    In addition, this release contains many minor fixes and enhancements and brings support for 121 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.8.0 release.

    Mbed Enabled modules

    Time to market and going to production are key challenges for IoT products. Many IoT products rely on modules to reduce time and cost because modules provide integration, certification and ease of going from prototyping to production. We have expanded the Mbed Enabled program to include production modules preverified to support Mbed OS and associated connectivity protocols. The program provides a simple entry point to the marketplace, with mass production quality modules running high-quality, open source software and supporting a diverse suite of connectivity drivers and protocols.

    The Mbed Enabled Module program launched in February 2018 during Embedded World and Mobile World Congress where, along with our lead partners, we exhibited a range of mass production modules. For a list of modules currently available, please visit os.mbed.com/modules.

    Core OS and storage

    Sleep/Deep sleep profiling tool

    Reducing power consumption is a key challenge for embedded devices. Sleep and deep sleep modes are some of the most used mechanisms to reduce power consumption. To better enable the use of sleep and deep sleep functions, you need to know which specific objects are blocking the device from entering sleep. The sleep/deep sleep profiling tool helps you determine what specific peripherals are blocking you from entering low power modes. The tool uses that information to optimize your system design to reduce power consumption when deployed. For more information on how to use this feature, please visit https://os.mbed.com/docs/v5.8/reference/power-management.html.

    Generation of crash dump in fault exceptions

    A fault exception occurs because of an error during normal or exception processing. There are several reasons for occurrence of fault exceptions. Some of the common reasons are execution of an undefined instruction, attempted load or store to an unaligned address and execution of an instruction from a never execute (XN) memory address. When system crashes or hard faults occur, a lack of crash information can make it difficult to triage the problem further. The system can appear to hang if there are no indications of fault exceptions. In such cases, the only way to find more information on the crashes is to reproduce the issue with an attached debugger to find the location and cause of the crash. Reproducing the issue can take longer if it is an intermittent or rare issue. Mbed OS has a new feature that generates crash dump in fault exceptions. Capturing the system context at the time of exception and emitting it through the serial port (or other mechanisms) provides valuable information, so you can triage the fault exceptions. For more information on how to use this feature, please visit https://os.mbed.com/docs/v5.8/tutorials/analyzing-mbed-os-crash-dump.html.

    New drivers and platform APIs

    In the Mbed OS 5.8.0 release, we have also added several new drivers and platform APIs. Two of the notable additions are the System_Reset and NVStore APIs.

    System_Reset: This API is the official Mbed OS API to reset the processor and most of the subsystem. After the reset call, the processor and most components reset, but it does not affect the debug subsystem. For more information, please visit https://os.mbed.com/docs/v5.8/reference/power-management.html

    MbedCRC class: The Mbed CRC class provides software CRC generation algorithms. We support precomputed ROM tables for 8/16-bit CCITT, 16-bit IBM and 32-bit ANSI polynomials. For more information, please visit https://os.mbed.com/docs/v5.8/reference/mbedcrc.html

    NVStore: NVStore is a lightweight module that stores data by keys in the internal flash for security purposes. For each item key, the NVStore module provides the ability to set the item data or get it. Newly added values are added to the end of the existing data, superseding the previous value that was there for the same key. The NVStore module ensures that power failures don’t harm existing data during any operation. For more information, please see https://os.mbed.com/docs/v5.8/reference/nvstore.html

    Connectivity

    The cellular stack now supports NB-IoT and CAT-M1.

    Cellular is enabling connectivity without complicated setup using a gateway. For IoT use cases, power and cost are more significant considerations than data throughput. This is where NB-IoT and CAT-M1 come in. Cellular IoT aims for simpler, low-cost modems tailored for slower, periodic transmissions and is expected to deliver better signal penetration to support devices located deep inside buildings.

    Mbed OS version 5.8 supports cellular-based low power, wide area technologies (CAT-NB1 and CAT-M1).  Mbed OS cellular APIs are designed to ensure that applications use modems and modules in consistent ways. For more information, please visit https://os.mbed.com/teams/mbed_example/code/cellular-example/

    LoRaWAN Stack: LoRaWAN is a low-power wide-area network technology that combines kilometers of range with low power consumption, a great fit for Internet of Things devices. Arm is continuing its investment in LoRaWAN by adding a native LoRaWAN stack to Mbed OS 5.8. The stable, well-tested and (EU) precertified stack makes it easy for device manufacturers to add long-range connectivity to their IoT devices. For more information, please visit https://os.mbed.com/docs/v5.8/reference/lorawan.html

    Upcoming APIs and Features

    Mbed OS thrives on the large ecosystem and support from leading silicon vendors. Mbed OS has several MCU targets and 121 development boards currently supported and Mbed Enabled. Adoption of Mbed OS APIs by the ecosystem ensures that you have a seamless experience. This section indicates what will be in the upcoming releases from the Mbed OS team, enabled by Silicon and Device Partners. To know more, please visit https://os.mbed.com/forum/upcoming-features/

    Mbed Studio

    One of the key pieces of feedback that we received is that you’d like to see desktop tools, allowing you to write applications easily on top of Mbed OS. For that reason, we decided to develop a desktop tool, Mbed Studio, that supports application development, building, debugging and, in the future, a great level of integration with our web services. With Mbed Studio, we’re targeting application development as the focus, bringing together our command-line tools and utilities into an environment that allows you to begin quickly with a single installer. We currently provide desktop command-line tools and utilities, such as pyOCD and Mbed CLI, which you can use to build custom environments or for CI. However, we wanted to make the experience easier for users who are looking for a simple way to program and debug with Mbed. We now are almost ready to open Mbed Studio for closed alpha. If you’d like to volunteer as an alpha tester for Mbed Studio, please register your interest at https://os.mbed.com/studio/

    USB device stack

    One of the key peripherals used in embedded devices is USB. Many devices need the USB device peripheral to support connecting their devices to a USB host, such as a computer. We are adding USB device support to Mbed OS, which allows you to enable the functionality of USB devices. This is available on a feature branch at https://github.com/ARMmbed/mbed-os/tree/feature-hal-spec-usb-device/hal

    PSA Secure Partition Manager

    We are adding a Platform Security Architecture (PSA) Secure Partition Management (SPM). SPM comes with a set of IPC APIs used to exchange data between secure partitions. The PSA IPC API Null implementation lays the groundwork for future hardware-based Secure Partition isolation. Although the code is still experimental, you can try it early on at feature branch at https://github.com/ARMmbed/mbed-os/tree/feature-spm

    Targets and tools

    Thanks to our Partners’ hard work, Mbed OS 5.8 added 18 new target platforms and now supports 121 target platforms. We’ll continue to add targets in our biweekly patch releases as partners work with us on support.

    Mbed CLI v1.5 update

    We have added the repository caching feature to Mbed CLI to minimize traffic and reduce import times. Mbed CLI now caches repositories by storing their indexes under the Mbed CLI user config folder. Compared to a fully checked out repository, indexes are significantly smaller in size and number of files and contain the whole revision history of that repository. This allows Mbed CLI to quickly create copies of previously downloaded repository indexes and pull or fetch only the latest changes from the remote repositories. This dramatically reduces network traffic and download times, especially for big repositories such as mbed-os. For more information, please visit https://os.mbed.com/docs/v5.8/tools/working-with-mbed-cli.html#repository-caching

    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.

    Misused variable in x509_crt_verify_top()

    • Description: A bug in the X.509 module can potentially lead to two possible vulnerabilities if the application code has been configured to trust certain unusually formed certificates.
    • If the chosen Certificate Authority (CA) certificate does not use DER compliant encoding, but does use DER compliant encoding in an issued certificate (or the adversary manages to get such a certificate signed by the CA), then the maximum path length limit can be overstepped by one, and CRL, time and verification-callback checks will be omitted for the said certificate.
    • If the X.509 Distinguished Name of the chosen CA certificate has more than 11 components, then a remote attacker may be able to trigger a buffer overread. This could potentially crash the application on some platforms.
    • Workaround: Only use standard DER compliant certificates, and use a CA that has an X.509 distinguished name with fewer than 11 components. Note: The overwhelming majority of Certificate Authorities have distinguished names with fewer than 11 components.
    • Reported Issue: https://github.com/ARMmbed/mbedtls/issues/825
    • Priority: MAJOR

    Handshake Messages are not fragmented as per MaxFragmentLength Extension Negotiation.

    • Description: “Once a maximum fragment length other than 2^14 has been successfully negotiated, the client and server MUST immediately begin fragmenting messages (including handshake messages) to ensure that no fragment larger than the negotiated length is sent.” In Mbed TLS, only the application data is fragmented, and the handshake messages are not.
    • Workaround: Disable MaxFragmentLength Extension Negotiation.
    • Reported Issue: https://github.com/ARMmbed/mbedtls/issues/387
    • Priority: MAJOR

    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 through email.
    • Priority: MAJOR

    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

    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 depends on the application and what features of the library it chooses to use. 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: https://github.com/ARMmbed/mbed-os-example-tls/issues/14
    • Priority: MAJOR

    Commissioner does not retransmit message when it receives retransmission

    • Description: There are two issues with DTLS handshake retransmission. First, the joiner fails to correctly parse received records because it does not correctly handle queued retransmissions received. Second, the commissioner may cause a deadlock as it does not retransmit certain records after it receives retransmission as instructed in RFC6347 Section 4.2.4.
    • Workaround: There is no known workaround.
    • Reported Issue: https://github.com/openthread/openthread/pull/1207
    • Priority: MAJOR

    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 is no known workaround.
    • Reported Issue: Reported by the development team.
    • Priority: MAJOR

    uVisor does not support nested interrupts

    • Description: When running an application with uVisor enabled, nested interrupts are not supported.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/345
    • Priority: Major

    On ARMv7-M targets supporting uVisor, the RTOS runs with the same privilege of uVisor

    • Description: The current architecture of uVisor and of RTX require the RTOS to run with the same privilege of uVisor. As such, the RTOS is considered trusted.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/235
    • Priority: Major

    Realtek RTL8195AM does not define flash algorithms for uvision

    • Description: No flashing support in uvision for Realtek RTL8195AM.
    • Workaround: Use drag-and-drop programming.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/4651
    • Priority: Minor

    Traceback occurs when run with factory default firmware on Realtek RTL8195AM

    • Description: When running mbed-ls on the Realtek board, a traceback happens.
    • Workaround: Version of mbedls in Mbed OS does not have this fix. Workaround is to install mbedls from master until a release is made.
    • Reported Issue: https://github.com/ARMmbed/mbed-ls/issues/276
    • Priority: Major

    Export project to Keil - device not present

    • Description: cmsis-pack-manager assumes that all information is stored in a device tag. According to the official CMSIS Pack specification, however, this is not the case. cmsis-pack-manager needs to be updated to index by variant, as well as device. We currently do not know how many devices are affected by this issue.
    • Workaround: In this case, manual selection of the device and flash programming algorithm may be required.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-cellular/issues/41
    • Priority: Major

    OnboardCellularInterface used incorrectly

    • Description: This example invokes methods on OnboardCellularInterface that are not part of the CellularBase abstract class. This means it may not work if OnboardCellularInterface is not a PPPCellularInterface.
    • Workaround: There is no known workaround.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-cellular/issues/54
    • Priority: Major

    Wi-Fi connection fails with client compiled by IAR IDE

    • Description: Mbed connector client example programs do not connect to api.connector.mbed.com when built in the IAR Embedded Workbench IDE. They work when you build using Mbed CLI.
    • Workaround: Do not export the Mbed connector example for IAR Embedded Workbench.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-client/issues/355
    • Priority: Major

    Client fails to connect using UDP when the Mbed Online Compiler compiles the binary.

    • Description: Using UDP fails when the binary is compiled with Online compiler but works if compiled with mbed-cli GCC_ARM .
    • Workaround: Use TCP-based connections.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-client/issues/357
    • Priority: Major

    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. This works for the K64F, so it should work for the Realtek TRL8195AM.
    • Workaround: There is no known workaround.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/5640
    • Priority: Major

    Failure to flash for MTB_ADV_WISE_1570 target

    • Description: It is not possible to flash binaries built for the MTB_ADV_WISE_1570.
    • Workaround: There is no known workaround.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/6252
    • Priority: Major

    Makefile export fails to build larger project in Windows

    • Description: Make will fail with the error: make (e=87): The parameter is incorrect.
    • Workaround: Possible workarounds are 1) Use Linux instead 2) Follow advice here,
      https://stackoverflow.com/questions/12598933/ndk-build-createprocess-make-e-87-the-parameter-is-incorrect
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/6335
    • Priority: Minor

    Fixes and changes

    5363
    Add support and tests for extended RTC

    5311
    BLE: Add generic GAP implementation

    5633
    BLE: added function converting error codes into strings

    5578
    CircularBuffer class modification and test

    5559
    Fix for default test config file

    5748
    Fix PR5578

    5621
    CriticalSectionLock class improvement

    5457
    Network interface: Add status callback register

    5784
    RTC test: fix __result variable

    5768
    Added statvfs API to get storage statistics

    5313
    Cordio: Pal Gap implementation

    5802
    RTC time conversion test - reduce test execution time.

    5346
    Add Critical Section HAL API specification

    5597
    critical: fix set exclusive access if not yet defined

    5201
    Test set for critical section

    5789
    Add tests for critical section HAL API

    5926
    bd: Add sync function to the block device API

    5925
    bd: Add get_erase_value function to the block device API

    5022
    Add JSON schema based validation to mbed config script

    5998
    Restrict target_overrides usage

    5852
    ScopedLock implementation

    5848
    Python2+3: mbed compile, mbed test –compile, python unit tests

    5571
    Complete mbed_retarget FileHandle rework

    6033
    Update mbed-coap to version 4.2.0

    6025
    Mesh-api setters for eui64 and pskd

    5604
    TESTS/NETSOCKET: Refinement of netsocket tests

    5847
    Unify fault handling and add script to show faults

    6053
    Nanostack release for Mbed OS 5.8

    5973
    Update Mbed TLS HW acceleration partner code to new hashing API

    5666
    Add exporter for Analog Devices’ CrossCore Embedded Studio

    6032
    Status callbacks

    6096
    Generate/Link secure object file

    6049
    Nuvoton: Rework RTC

    6087
    Integrating Mbed LoRaWAN Stack in Mbed-OS 5.8

    5956
    [feature-hal-itm] Instrumented Trace Macrocell HAL API for SWO debug output

    6076
    Remove ticker interface initialization while Ticker creation.

    6141
    Verifying datarate bug fix

    6163
    Revert “Update Mbed TLS HW acceleration partner code to new hashing API”

    6154
    Tools: Let unicode error messages through

    6160
    Fix issue 6150

    6140
    FlashIAP driver modifications

    6120
    fatfs: Update error code mapping

    6170
    CM3DS Maintenance Pull Request: Driver updates (4/4)

    6186
    Eventloop in main thread to master

    6185
    nanostack-hal: add alternative critical section implementation

    6166
    Make APN lookup the default behaviour for PPPCellularInterface

    6167
    CM3DS Maintenance Pull Request: Bug fixes (1/4)

    5911
    CRC class implementation

    5548
    Tests for SysTimer (the idle loop timer for tickless mode)

    6240
    Improve invalid configuration error messages

    5950
    Reserve and Render header in managed BL mode

    6230
    Add system_reset call

    6179
    littlefs: Update to version 1.3

    5900
    Add NVStore (A.K.A SOTP) feature

    6188
    BLE: Security Manager

    6210
    Update Mbed TLS to version 2.7.1

    6142
    Add optional tracing to sleep manager lock/unlock

    6251
    Fixed Thread Commissioning issue in CoAP service

    6082
    Mbed OS cellular connectivity

    6341
    Add lorawan and nvstore examples for testing

    6328
    MIMXRT: define PullUp default value

    6327
    Cellular doxygen updates

    6323
    fatfs: Revert “Update error code mapping”

    6304
    Add lorawan and nvstore examples for testing

    6301
    Cellular tests: fixed cellular greentea tests by adding timeout

    6285
    Improve json schema and schema errors

    6280
    NVStore: Enclose header file with DOXYGEN_ONLY option as well

    6275
    NRF52: Customize STDIO pins from config system

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.8.0”.

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

  • mbed-os-5.7.7

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.7.7 release is now available.

    Summary

    We have added support for the following new targets in this release,
    Laird BL652, STEVAL-3DP001V1, UBLOX_C030_R410M and OSHChip.

    The SDK driver for the LPC546XX family has been updated to version 2.3.

    We have added TRNG support for NRF52832.

    To improve the raising of pull requests we have simplified the required header.
    As before, a detailed description is required, but we now have a check box list from which
    the originator needs to select just one option. This indicates the impact of the pull request.
    E.g. Fix, new feature etc. This will help to ensure that the pull request targets the correct
    release.

    There are also a number of bug fixes.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    5892
    add OSHChip as an mbed target

    5957
    C030 R410M Target Added

    6102
    Add support for STEVAL-3DP001V1 board

    6164
    Adding Laird BL652 as new target

    Fixes and Changes

    6116
    Add TRNG for NRF52832

    6197
    Revert “Added pretty bar printing for compile output”

    6287
    MCUXpresso_MCUS: Apply K64F us_ticker fix across all MCU’s

    6177
    littlefs: Fix handling of root as target for create operations

    5046
    TimerEvent tests

    6193
    ODIN MTB LEDs Fix

    6172
    Use SRAM2 32Kbytes on STM32L475 / L476 and L486 devices

    6217
    STM32 RTC : update free function

    6189
    LPC546XX: Update SDK driver to version 2.3

    6229
    Fix a bug using ELF as output extension

    6209
    Platform: Improve mbed_sleep.h

    6214
    Build issue for M33 core

    6227
    Nuvoton: Add I2C & Serial Pin Name

    6225
    Flash test: fix the time over a longer range

    6231
    pull request: add required info

    5993
    Work around Arm Compiler 6 stdvector perfomance cliff

    6246
    C030 platform I2C initialisation fix

    6228
    Nuvoton: Rework us_ticker/lp_ticker with one H/W timer

    6146
    Correct gcc m33 floating point handling

    6173
    Modifies error text reported from RTX from ‘underflow’ to ‘overflow’

    6202
    Fix max32625mbed

    6235
    mcu_lpc546xx: move “release_versions” to children and fix clock

    6263
    Clarify intention between comparison to zero and the shift operation

    6271
    Allow build profiles to omit language entries

    6226
    rtl8195am: fix ARM section error

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.7.7”.

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

  • mbed-os-5.7.6

    Downloads: zip tar.gz

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

    Summary

    In this release we have updated the ST HAL driver for STM32F7 with CubeF7 v1.10.0
    and the ST HAL driver for STM32F4 with CubeF4 v1.19.0.

    We have also added support for Nuvoton M487 ECP Crypto H/W accelerator,
    SERIAL_ASYNCH for STM32F429ZI, 220MHz core speed on LPC54628 and the
    use of LPUART in stop mode for STM32L0/4.

    For lwIP we have enabled EMAC IPv6 support.

    How you write and erase the flash on the NRF52 changes depending on
    whether the SoftDevice is enabled or not. We have added a runtime check
    to ensure the correct flash function is selected.

    There are also a number of bug fixes.

    Known Issues

    6003
    mbed-os-example-wifi hangs on ODIN-W2

    This will be fixed in the mbed-os-5.8 release.

    Contents

    Ports for Upcoming Targets

    There are no new targets supported in this release.

    Fixes and Changes

    6050
    lwip: enable EMAC IPv6 support

    6047
    Fix NVIC Wrapper include for Renesas

    6042
    DISCO_F303VC : STDIO pins correction and alignment with STM32 family

    6035
    Fix serial pins and a typo for ODIN MTB

    6018
    fix compiler warning

    5941
    STM32L0/4 Enable use of LPUART in stop mode

    6058
    Ble: fix size function in advertising_data_t and address_t.

    6051
    add few files to gitignore list

    6070
    remove magic calibration value for HSI in ST’s targets

    6074
    fatfs: Remove extra MBR block

    6083
    tools: build: fix handing of “–stats-depth”

    6063
    STM32F7: Update ST HAL driver with CubeF7 v1.10.0

    6009
    fix for issue “serial example callback not working”

    6095
    mbr: Add note about limitations

    6000
    Prevent detect_targets.py tool script from crashing on known targets

    6068
    Fix for issue #6054 - interrupts scheduled in the past.

    6099
    gnuarmeclipse exporter uses mBed instead of proper casing

    6045
    RTX changes pulled in from d20b8aa

    6029
    RTX5: Pre-processor defines used for assembly

    6112
    STM32F4: Update ST HAL driver with CubeF4 v1.19.0

    6088
    STM32F429ZI add SERIAL_ASYNCH

    6113
    remove unused variable / resolve compiler warning

    6048
    Nuvoton: Rework us_ticker and lp_ticker

    6110
    equeue: Removed RTOS dependencies with RTOS not present

    6118
    equeue: Add note about using global event queues in irq

    6135
    tests-events-timing: print debug info only in case of failure

    6117
    UBLOX C030: I2C avoid any RTOS waits

    6115
    NRF5x: Fix error_t conflict with gcc std>=gnu++11

    5915
    Simplify and Improve error/warning parser for gcc_arm

    6121
    Avoid blowing away .mbedignore files in exporters

    6123
    Correct sector scraping in arm-pack-manager

    6126
    Modified ‘apt-get update’ to loop until successful

    5812
    M487: Support ECP H/W accelerator

    6041
    STM32 STDIO pin redefinition

    6055
    K64F lp ticker driver - calculation bug fix.

    6046
    littlefs: Fix incorrect lookahead population before ack

    6093
    NETSOCKET MBED_EXTENDED_TESTS json configuration

    6124
    Make NRF52 flash work with SoftDevice

    6125
    Add quotes around MBED_BOT parameter

    6139
    LWIP PBUF_POOL_BUFSIZE increased to fit also IPv6 header

    6078
    Pull request template update

    6145
    Correct single file excludes for some exporters

    6156
    retarget: Fix path behaviour without leading slash

    6147
    LPC546XX: Add support for 220MHz core speed available on LPC54628

    6162
    sleep_manager_racecondition test fix for devices with low CPU clock

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.7.6”.

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

  • mbed-os-5.7.5

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.7.5 release is now available.

    Summary

    In this release we have added support for the following new targets :

    Laird BL600,
    STM32L082CZ and CMWX1ZZABZ-078 module,
    STM32L443RC and WISE-1510 module,
    GR-LYCHEE,
    iMXRT1050 EVK
    NINA B1
    MTS xDOT (MTB)
    WISE-1570 (MTB/MCB)

    It should also be noted that a couple of other targets have been renamed to
    bring them inline with the target naming convention:

    CMWX1ZZABZ_078 renamed to MTB_MURATA_ABZ
    WISE_1510 renamed to MTB_ADV_WISE_1510

    Anybody using the old names will need to update them.

    There were some functions that were missing in STM32L4 CUBE HAL drivers to
    enable/disable UART Clock in Stop Mode. These have now been added.

    5921 reported that all the public overloads of nsapi_dns_query_multiple() were broken. They are documented as returning the number of addresses found on success, however, the function was always returning NSAPI_ERROR_OK, i.e. zero. This is now fixed.

    We have added bootloader support for STM32F7, flash support for K82F and new
    tests for FileHandle and Transaction class.

    There are also a number of bug fixes.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    5857
    Registration GR-LYCHEE board as a new mbed board

    5904
    add support for STM32L443RC & WISE-1510

    5905
    add support for the murata’s module CMWX1ZZABZ-078 based on STM32L0

    5996
    Adding LAIRD_BL600 MTB

    5826
    NXP: Add support for MIMXRT1050_EVK

    5837
    Adding MTB ublox NINA-B1 as a new target

    5975
    Adding MTB_MTS_XDOT as a new target

    6013
    Add MTB_ADV_WISE_1570 target

    Fixes and Changes

    5951
    STM32 NUCLEO F413ZH and L433RC : STDIO configuration

    5945
    Correct return value of nsapi_dns_query_multiple

    5933
    Add OpenOCD 5x launch file to e2 studio and update naming

    5929
    Add pretty bars for compile output

    5901
    Netbeans Exporter Bugfix

    5947
    STM32L4 : add missing ST HAL UART functions

    5818
    Enforce sector alignmnent for managed bootloader builds

    5936
    STM32 : set all PinMap structures as weak

    5982
    Wise 1510: fix a silent conflict with PR #5947

    5630
    Fix #5079. Support of call to mbedtls_x_finish without calling mbedtls_x_update

    5962
    STM32: Fix usart irq index

    5909
    Let libraries, targets configure bootloader

    5990
    Correct SW4STM32 supported check

    5964
    VS Code exporter: do not overwrite existing (launch|settings|tasks).json

    5984
    EFM32: make peripherals conditional

    5987
    Pre-processor common macro addition

    5994
    allow use of external memory as heap with TOOLCHAIN_GCC_ARM

    5972
    STM32F7: Add bootloader support (new trial)

    6012
    STM32 SPI ASYNC - Add FIFO flush before transfer

    5419
    Add absolute millisecond tick count to RTOS classes

    5876
    lpc546xx and ff_lpc546xx: create parent object MCU_LPC546XX

    6026
    Update uvisor-tests.txt to disable EFM32 in Jenkins

    5895
    Add FileHandle tests

    5797
    ARMC5+6: Specify CPU for ARM scatter file preprocessor

    6007
    Take OUTPUT_EXT into account in managed bl

    6004
    STM32L476/486: Improve SRAM usage for IAR

    6001
    Corrects intermittent CLion exporter issue with cmake build directory

    6015
    Add missing flash device feature to the K82F board

    6017
    Correct auto-sizing last region of bl

    5914
    Add Transaction class unit test.

    5970
    RZ_A1LU: Fix TRNG function

    6027
    rename MURATA type ABZ & WISE 1510 to their expected name

    6030
    M33: -march not required if -mcpu is set

    5971
    Ticker tests fix

    6036
    DISCO_L072CZ_LRWAN1: move target folder

    6031
    M23: Fix CThunk error on Cortex-M23

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.7.5”.

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

  • mbed-os-5.7.4

    Downloads: zip tar.gz

    mbed OS 5.7.4 release

    We are pleased to announce the mbed OS 5.7.4 release is now available.

    Summary

    This patch release includes new target support for the MTS Dragonfly, EMW3166 and VBLUno51 targets.

    We have created several bug fixes and new tests for our embedded file system.

    We added two new exporters, which allow users to use CMake with CLion and GCC with NetBeans.

    We have made several USB improvements to NXP targets.

    We released CoAP 4.1.1, along with an update to Thread commissioning.

    This release also includes our many bug fixes and test enhancements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    5809
    Add MTB MXChip EMW3166

    Fixes and Changes

    5831
    Increase clock tolerance in Flash HAL test

    5808
    ESP8266 Test Config and fixes for tests tcp_echo/tcp_hello_world

    5829
    Fix: Sector/Size overflow from uint32_t

    5824
    DISCO_F407VG : alignment with other STM32

    5787
    STM32: Add support of Flash API for STM32F2 devices

    5760
    Add notes about ISR safety to RTOS doxygen

    5749
    STM32 LOWPOWERTIMER : introduce LPTIM feature

    5731
    mesh-api documentation removal

    5623
    Clarify TCPSocket::recv() and UDPSocket::recvfrom() documentation.

    5456
    platform: make C++ allocation wrappers log the correct caller address

    5727
    Add presentation format descriptor support for nRF5x

    5855
    Allow overriding of DCDC settings per target

    5846
    littlefs: Fix block addr overflow

    5854
    Fix for Silicon Labs RTC

    5795
    STM32 STDIO pins number are now configurable

    5791
    STM32 CAN: fix wrong ID and MASK filter

    5862
    STM32 LPT optimisation

    5867
    BLE: Fix inclusion of BLE.h (case)

    5880
    Nuvoton: Add gpio_is_connected

    5858
    RTL8195AM - move region headers to 0xb000 and 0xc000

    5870
    NSAPI: Add Nanostack multicast membership support

    5761
    littlefs: Fix issue with immediate exhaustion and small unaligned storage

    5819
    Add COMMON folder for tests

    5836
    Thread commissioning fix

    5882
    Add MTB MTS_Dragonfly as a new target.

    5877
    Kinetis USB improvements and fixes

    5878
    LPC USB stability fixes

    5800
    Some enhancements for the USBHost feature and small bug fix

    4719
    mbed Enabled certificate for the VBLUno51 board

    5532
    Exporter for Netbeans GCC_ARM

    5889
    Provide fix for issue #5835 - Tickers update should be atomic

    5866
    RTX idle: sleep without locked deep sleep fix

    5864
    CoAP v4.1.1

    5821
    STM32F7: Add bootloader support

    5896
    STM32LX : HAL_RCC_OscConfig update in PLL configuration

    5898
    Remove RTC as a supported peripheral for NCS36510

    5894
    STM32: fix serial 7bit data format

    5890
    RZ_A1H: cmsis nvic include fix

    5844
    ST-DISCO_L475VG_IOT01A: Improve SRAM use for IAR toolchain

    5903
    STM32F407 : correct ARM scatter file

    5932
    Revert “STM32F7: Add bootloader support”

    5937
    Update CMSIS pack

    5938
    MTB_XX : STDIO configuration

    5934
    NUCLEO_F401RE : PeripheralPins file update

    5928
    littlefs: Set specific hash for littlefs-fuse testing in Travis

    5920
    Fix issue with MBED_11 test (mbed2)

    5918
    NXP LPC4088: Add missing SPI SSEL pin to Pinmap

    5913
    Add missing EFM32 HAL flash init/deinit function calls

    5912
    CriticalSectionLock: fixing missing include

    5910
    fix typos in lint.py

    5907
    STM32F0: fix issue with usarts sharing the same irq vector

    5874
    USB fixes and improvements

    5942
    Remove tickless assert for tick count

    5476
    add cmake exporter for CLion use

    5087
    Add RTC time test.

    Using this release

    You can fetch this release from the mbed-os GitHub repository,
    using the tag “mbed-os-5.7.4”.

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

  • mbed-os-5.7.3

    Downloads: zip tar.gz

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

    Summary

    We have added support for two new targets in this release, MTB ublox ODIN W2 and NUCLEO-F413ZH.

    ST CUBE for the STM32F0 series has been updated to v1.9.0. This brings:

    • Current ST Cube version in MBED: V1.7.0
    • CMSIS part update from 2.3.1 to 2.3.3
    • HAL part update from 1.5.0 to 1.7.0

    Our BLE Nordic PAL client implementation has been replaced. The previous implementation was
    found to contain a number of issues deep in the GattClient logic (improper queueing and order of
    operations). It was deemed more efficient to re-write the implementation than try to patch the previous
    version. As well as fixing the issues, the re-write has the added benefit of including all the
    previously missing GAT procedures:

    • Discover Primary Service By Service UUID
    • Find Included Service
    • Read Using Characteristic UUID
    • Read Multiple Characteristics
    • Queue Prepare Write
    • Execute Write

    We have added Flash support for STM32F0, STM32F1 and STM32F3 devices, and
    enabled tickless on nRF52840.

    There are also a number of bug fixes and test enhancements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    5740
    Adding MTB ublox ODIN W2 as a new target.

    5608
    NUCLEO_F413ZH: Add support for the NUCLEO-F413ZH board

    Fixes and Changes

    5776
    STM32: Add support of Flash API for STM32F0 and STM32F1 devices

    5253
    Add missing device_name for targets with bootloader

    5435
    Tests for wifi emac interface

    5570
    STM32 UART init update

    5595
    fix nordic critical section

    5606
    Enable tickless on nRF52840

    5673
    mem_trace tests refactoring

    5697
    STM32: Add support of Flash API for STM32F3 devices

    5703
    AD: Fix ADC driver

    5737
    lp_timer test : add a minimum delta value

    4925
    NUC472/M487: Refine code with mbed TLS crypto alternatives

    5651
    ff_lpc546xx: add enet, change led1 and led3 pins

    5708
    Add minimal debug info to release and develop profiles.

    5747
    STM32 : Fix issue to exit deepsleep when RTC has not been initialized

    5775
    Correct memap path handling on windows

    5782
    littlefs: Fix positive seek bounds checking

    5794
    Commit to fix the Online compiler issue for ARM mbed-os on REALTEK_RT

    5807
    Simple typo fix in the README.md

    5792
    STM32F0 : ST CUBE version update to V1.9.0

    5739
    BLE: Nordic pal client implementation

    5722
    Fix bug allowing SPI::abort_transfer to incorrectly unlock deep sleep mode

    5721
    Fix bug allowing I2C::abort_transfer to incorrectly unlock deep sleep mode

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.7.3”.

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

  • mbed-os-5.7.2

    Downloads: zip tar.gz

    Mbed OS 5.7.2 release

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

    Summary

    We have added a new example program, mbed-os-example-filesystem which covers both FAT and LittleFS filesystems.

    The GR-PEACH target was previously removed from the supported targets due to incompatibility with cmsis 5 fixes.
    These have been fixed and the target has now been reinstated.

    We have added IAR export support for EV_COG_AD3029LZ, EV_COG_AD4050LZ and bootloader support for MK24F1.

    There are also a number of other bug fixes to the firmware and tests.

    Known Issues

    None

    Contents

    Ports for Upcoming Targets

    None

    Fixes and Changes

    5720
    Add memory barriers to STM32F7xx Ethernet

    5745
    K64F Ethernet: avoid using NULL thread during init

    5734
    Build failed as code section was not included in map.

    5736
    Allow 6LoWPAN applications to leave out channel specification.

    5756
    Add mbed-os-example-filesystem to examples list

    5693
    Enable IAR export for EV_COG_AD3029LZ and EV_COG_AD4050LZ

    5691
    Nordic add app_start config system support for NRF52840 for bootloader

    5628
    Reregistration GR-PEACH as mbed support board

    5681
    Adding bootloader support to MK24F1 target

    5755
    Fix for #5676 make.py generates duplicate file entries in link_files.txt

    5743
    Greentea wifi test cases - disconnect done as teardown after each connect

    5614
    platform: fix mem_trace trace level guard

    5617
    STM32: USBHost clean-up

    5733
    Access to serial device is allowed when DEVICE_SERIAL is defined

    5723
    Remove destruction of WiFi interface in test runs

    5613
    Added init for ODIN EVK LEDs to be off by default

    5770
    Renesas: fix cmsis lib build

    Using this release

    You can fetch this release from the mbed-os GitHub repository,
    using the tag “mbed-os-5.7.2”.

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

  • mbed-os-5.7.1

    Downloads: zip tar.gz

    mbed OS 5.7.1 release

    We are pleased to announce the mbed OS 5.7.1 release is now available.

    Summary

    This patch release includes new target support for the STM NUCLEO_L433RC-P board.

    Silicon Labs’ sleep management HAL has been updated with better MBed RTOS interoperability. Additionally, ST brought several improvements to their Low Power Timer HAL.

    Analog Devices updated their EV_COG_ADx0xxLZ boards, bringing ARMC6 compiler support.

    Several new Ethernet and WiFi tests have been added, along with enhancements to the mbed-os testing infrastructure. We have also added a number of other bug fixes.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    5591
    Support the STM NUCLEO_L433RC-P board

    Fixes and Changes

    5627
    ADI: Add ARMC6 compatible code

    5610
    STM32 - CAN - Fix RTR position bit in TX mailbox register

    5605
    [TESTS/NETWORK] Split Wi-Fi test for secure & unsecure tests

    5598
    Remove unnecessary inclusion of an internal RTX header

    5581
    Remove custom Silicon Labs sleep management

    5577
    REALTEK_RTL8195AM Wifi driver - adds check of credentials validity

    5576
    Ethernet tests update

    5567
    STM32: Add USB Device on DISCO_F413ZH

    5489
    Correct pack_* members to refer to PACK files

    5469
    Unity framework : add float support in error print

    5459
    STM32 Low Power Timer feature updates

    5678
    Add caching of apt-get + pip to .travis.yml

    5667
    STM32: Fix CAN3

    5657
    Correct typo? in e2studio exporter code

    5648
    Add SingletonPtr test

    5635
    Protect local static object construction in ARMCC

    5729
    Travis: define matrix builds for mbed 2 jobs

    5687
    Statically allocate ARMCC required mutex objects

    5715
    Fixed call to deprecated get_details_txt

    5707
    Add IAR exporter for STM32L475VG (mcu of DISCO_L475VG_IOT01A)

    5698
    STM32 : correct compilation issue with USE_FULL_ASSERT macro

    5677
    C030 Battery Charger Voltage Fix

    5670
    Nanostack EFR32 flag fix

    5649
    Fix greentea test mbed-os-tests-netsocket-connectivity

    5644
    Readme updates for style and branding

    5587
    Fix fatal parameter error when deleting/terminating Thread object

    5568
    Greentea Wifi testcase fixes

    5470
    Add device_name for TB_SENSE_12.

    Using this release

    You can fetch this release from the mbed-os GitHub repository,
    using the tag “mbed-os-5.7.1”.

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

  • mbed-os-5.7.0

    Downloads: zip tar.gz

    Mbed OS 5.7.0 release

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

    Summary

    The Arm Mbed OS 5.7.0 release helps to further simplify the internet of things (IoT) and embedded product development with the addition of several new features, such as the high-integrity embedded file system, which provides power loss resilient operation and maximizes the life of the external memory block device by implementing wear leveling techniques. The release also includes an open-source mesh networking stack, which is IPv6, 6LoWPAN and one of the only two open-source certified Thread networking stacks.

    This release also continues our efforts to add comprehensive documentation for Mbed OS. Our ongoing efforts in this area include adding documentation about contributing and using our platform, drivers, RTOS, connectivity and storage APIs, as well as information about our tools. This release also includes improvements to the user experience of our documentation.

    In addition, this release contains many minor fixes and enhancements and brings support for 103 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.7.0 release.

    Core OS and storage

    High-integrity embedded file system

    Mbed OS introduces a robust, high-integrity embedded file system, which prevents risks of serious data loss due to power loss and significantly improves the life of external block memory by implementing dynamic wear leveling algorithms. Some of the key features are:

    Power loss resilience - The high-integrity embedded file system works consistently through random power failures. During file system operations, the storage on disk is always kept in a valid state. Also, to protect failure, in case of updating a file, the original file remains unmodified until the file is closed or sync is called.

    Wear awareness - The high-integrity embedded file system considers write errors reported by the underlying block device and uses dynamic wear leveling to manage blocks that go bad during the lifetime of the file system.

    Support to SPI NOR Flash and SD cards – We specifically designed it to work on SPI NOR flash and SD cards.

    Along with the traditional FAT file system, the high-integrity embedded file system enhances the storage portfolio of Mbed OS by providing robust and power resilient operation. More information on the high-integrity embedded file system is available at https://os.mbed.com/docs/v5.7/reference/littlefilesystem.html and is currently in early release.

    New drivers and platform APIs

    In the Mbed OS 5.7.0 release, we have also added several new drivers and platform APIs. One of the notable additions includes the ConditionVariable class.

    ConditionVariable class: The ConditionVariable class provides a mechanism to safely wait for or signal state changes. A common scenario when writing multithreaded code is to protect shared resources with a mutex and then release that mutex to wait for a change of that data. If you do not do this carefully, this can lead to a race condition in the code. A condition variable provides a safe solution to this problem by handling the wait for a state change, along with releasing and acquiring the mutex automatically during this waiting period. For more information, please visit https://os.mbed.com/docs/v5.7/reference/conditionvariable.html

    Connectivity

    Open-source mesh networking stack

    We’ve invested many years of effort in building a robust and scalable mesh networking stack, which runs on the 802.15.4 radios. Some of the key principles of this technology are an ability to self-heal the mesh routing and also optimize for low power. The mesh stack has many uses, and the key features are:

    • IPv6/6LoWPAN for 2.4GHz and subGHz.

    • Thread® 1.1 certified for interoperability in connected home applications.

    • Mesh link establishment (MLE) for safe, dynamic and reconfigurable radio link establishment.

    • RPL routing protocol.

    The IPv6 and 6LoWPAN components are Apache 2.0 licensed, and the Thread extensions are under a BSD 3-clause license. Mbed OS applications can use the Mesh and Socket APIs. To use the mesh stack, check the example application mbed-os-example-mesh-minimal. More information on the open-source mesh networking stack is available at https://os.mbed.com/docs/v5.7/tutorials/mesh.html#nanostack

    Upcoming features

    Mbed OS thrives on the large ecosystem and support from leading silicon vendors. Mbed OS has several MCU targets and 103 development boards currently supported and Mbed Enabled. Adoption of Mbed OS APIs by the ecosystem ensures that you have a seamless experience. This section indicates what will be in the upcoming releases from the Mbed OS team and enabled by silicon and device Partners. To know more, please visit https://github.com/ARMmbed/mbed-os/

    LoRaWAN

    We are adding a LoRaWAN API to Mbed OS to enable building LoRaWAN end points with the integrated Mbed OS stack. We will integrate the LoRaWAN stack as part of Mbed OS and provide developers an easy way to connect and use LoRaWAN technology. We will test the integrated stack with several modules to enable fast product integration.

    QuadSPI

    A quad SPI driver enables multiple I/O SPI devices capable of supporting increased bandwidth or throughput from a single device. Some of the advantages of quad SPI include high speeds and that it requires few pins. Several MCUs and memory vendors are adding support for Quad SPI, and it is popular among the use cases that need high bandwidth, such as multimedia, richer graphics and other data-intensive content needing external memory.

    Watchdog

    We are looking to add a watchdog API to Mbed OS to detect and recover from system malfunctions during remote management operations, such as updating the device firmware. The initial watchdog use cases that would be supported are; setting the watchdog, feeding the watchdog, reading the current watchdog status and reading the MCU reset reason.

    MicroSecond and LowPower Ticker

    Power consumption is one of the most important design requirements for IoT devices. Meeting the power budget is becoming challenging because systems today include more sensors, faster responses and more connectivity. We are looking to add a low-power timer with lower accuracy to Mbed OS, which would help to enable the tickless mode and save power. We are also looking to add a unified 64-bit time stamp, allowing devices to seamlessly handle different widths of timers. We plan to enable better low-power performance by adding the feature to turn off the time when the time is not in use.

    RTC

    The real-time clock (RTC) keeps track of the current time in computers and embedded devices. We are looking to update the RTC API to specify behavior that enables it to survive reset and provide the true time.

    Targets and tools

    Thanks to our partners’ hard work, Mbed OS 5.7 added 10 new target platforms and now supports 103 target platforms. We’ll continue to add targets in our biweekly patch releases as partners work with us on support.

    Testing

    We designed Mbed OS to significantly reduce cost and time for embedded software development by providing a production-quality toolset and code. We are committed to delivering high-quality code working across all supported boards and platforms. To ensure all the features of code meet our quality control requirements, we have built an automated testing environment and processes that perform rigorous testing on every line of code. The continuous integration framework is a highlight of our testing framework.

    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 setup, which adds code to Mbed OS for testing and builds examples across all the platforms, such as 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 is exporting properly to all the compilers.

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

    Following is the summary of results for testing conducted for Mbed OS 5.7.0:

    • Total test time is 10,125 hours on actual development boards. Time almost doubled because we are testing nightly on every PR.

    • We have added 111 new test cases since the Mbed OS 5.6.0 release to test new and existing features on Mbed OS. The number of total test cases is 423.

    • We performed 566,440 example builds since the Mbed OS 5.6.0 release.

    • The total number of binaries built is 17,869,800 since the Mbed OS 5.6.0 release.

    We plan to share more details about testing processes, such as our out-of-box testing coverage and system testing, in upcoming release blogs.

    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 forums.

    Title: Handshake Messages are not fragmented as per MaxFragmentLength Extension Negotiation.

    • Description: Once a maximum fragment length other than 2^14 has been successfully
      negotiated, the client and server MUST immediately begin fragmenting
      messages (including handshake messages) to ensure that no fragment
      larger than the negotiated length is sent. In Mbed TLS, only the application data is fragmented, and the handshake messages are not.
    • Workaround: Disable MaxFragmentLength Extension Negotiation.
    • Reported Issue: https://github.com/ARMmbed/mbedtls/issues/387
    • Priority: MAJOR

    Title: 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 an EXPERIMENTAL stage; use it at your own responsibility!
    • Reported Issue: Issue reported by a customer in email.
    • Priority: MAJOR

    Title: 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

    Title: 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 that are particularly limited in RAM.
    • Workaround: The amount of stack required depends on the application and what features of the library it chooses to use. 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: https://github.com/ARMmbed/mbed-os-example-tls/issues/14
    • Priority: MAJOR

    Title: Commissioner does not retransmit message when it receives retransmission

    • Description: There are two issues with DTLS handshake retransmission. First, the joiner fails to correctly parse received records because it does not correctly handle queued retransmissions received. Second, the commissioner may cause a deadlock because it does not retransmit certain records after it receives retransmission as instructed in RFC6347 Section 4.2.4.
    • Workaround: There is no known workaround.
    • Reported Issue: https://github.com/openthread/openthread/pull/1207
    • Priority: MAJOR

    Title: 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

    Title: uVisor does not support nested interrupts

    • Description: When running an application with uVisor enabled, nested interrupts are not supported.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/345
    • Priority: Major

    Title: On ARMv7-M targets supporting uVisor, the RTOS runs with the same privilege of uVisor

    • Description: The current architecture of uVisor and of RTX require the RTOS to run with the same privilege of uVisor. As such, the RTOS is considered trusted.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/235
    • Priority: Major

    Title: Realtek RTL8195AM does not define flash algorithms for uvision

    • Description: No flashing support in uvision for Realtek RTL8195AM.
    • Workaround: Use drag-and-drop programming.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/4651
    • Priority: Minor

    Title: Traceback occurs when ran with factory default firmware on Realtek RTL8195AM

    • Description: When running mbed-ls on the Realtek board, a traceback happens.
    • Workaround: Version of mbedls in Mbed OS does not have this fix. Workaround is to install mbedls from master until a release is made.
    • Reported Issue: https://github.com/ARMmbed/mbed-ls/issues/276
    • Priority: Major

    Title: Export project to Keil - device not present

    • Description: cmsis-pack-manager assumes that all information is stored in a device tag. According to the official CMSIS Pack specification, however, this is not the case. cmsis-pack-manager needs to be updated to index by variant as well as device. We currently do not know how many devices are affected by this issue.
    • Workaround: In this case, manual selection of the device and flash programming algorithm may be required.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-cellular/issues/41
    • Priority: Major

    Title: Wi-Fi connection fails with client compiled by IAR IDE

    • Description: Mbed connector client example programs do not connect to api.connector.mbed.com when built in the IAR Embedded Workbench IDE. They work when you build using Mbed CLI.
    • Workaround: Do not export the Mbed connector example for IAR Embedded Workbench.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-client/issues/355
    • Priority: Major

    Title: Client fails to connect via UDP when binary is compiled by Online Compiler

    • Description: Using UDP fails when binary is compiled with Online compiler but works if compiled with mbed-cli GCC_ARM .
    • Workaround: Use TCP based connections.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-client/issues/357
    • Priority: Major

    Title: Online Compiler error for the Realtek RTL8195AM board

    • Description: Compiling programs in the online IDE for the Realtek RTL8195AM fail with Error L6236E No section matches selector - no section to be FIRST/LAST.
    • Workaround: None. There is a pending pull request to fix this, which will come in a subsequent patch release.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-blinky/issues/102
    • Priority: Major

    Title: 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. This works for the K64F, so it should work for the Realtek TRL8195AM.
    • Workaround: None.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/5640
    • Priority: Major

    Contents

    Ports for upcoming targets

    No new ports in this release

    Fixes and changes

    5060
    BLE: Cordio port

    5113
    STM: I2C: Configure pins in OpenDrainNoPull by default (no pullup)

    5200
    Extend nRF51 AnalogIn voltage range to 3.6 V

    5210
    STM32: Add ADC calibration for L4, F1, F3 devices

    5238
    Include doxygen from test directories

    5028
    Update ticker to map closely to hardware

    5325
    Add fix for Timer test - provide missing get_info ticker interface

    5365
    Remove redundant ISR test

    5385
    SlicingBD: Replace second constructor with default parameter

    5369
    Add API to set ticker IRQ handler

    5088
    UARTSerial: Add flow control and format APIs

    5410
    BLE: Deprecate GapEvent

    5158
    RTOS: Add empty and full functions to Mail and Queue

    5393
    Deprecate CallChain and InterruptManager

    5428
    Shrink RTOS classes

    5426
    BLE: Fix initialization of GattHVXCallbackParams in Nordic port

    3648
    Add ConditionVariable to Mbed RTOS

    5328
    equeue: Add config option to use different timer classes

    5295
    BLE: Gap platform abstraction layer

    5058
    CircularBuffer(): Get available transactions

    5471
    Increase flash program granularity on Realtek RTL8195AM

    5342
    Update CMSIS/RTX with Cortex-A support

    5508
    Fix and add test for ConditionVariable

    5485
    Platform: Allow copy of noncopyable objects

    5475
    BLE: Update heart rate service definition

    5392
    Improve BLE docs

    5296
    BLE: Generic access service abstraction layer

    5196
    Add IPv4 and IPv6 multicast implementation for UDPSocket

    5407
    Python script to add CMSIS/RTX changes in mbed-os

    5299
    BLE: Generic event filter

    5513
    STM32: Initialize ADC peripheral for each AnalogIn object creation

    5528
    Use retarget defines when possible

    5549
    BLE gatt server doc update

    5561
    Definition for stat was missing in header file

    5466
    Make POSIX-like writes write everything when blocking

    5511
    Nanostack OSS release for mbed-os-5.7

    5583
    Remove pointless null check in operator delete

    5601
    Update ODIN drivers to v2.3 RC1

    5596
    Make LDREX/STREX CAS functions strong

    5593
    BLE: Fix greater than or equal to comparison in GattCharacteristic

    5592
    BLE: Fix GattServer::write on Nordic targets.

    5490
    Upgrade ChanFs to R0.13a

    5300
    BLE pal event queue

    5602
    Nanostack release v704

    5538
    Integrate littlefs into Mbed OS

    5675
    Update Cortex-A build errors

    5685
    Export: Fix link in gettingstarted template

    5688
    Mesh fix for Mbed OS 5.7 OOB

    5704
    Fixed LWIP k64f ethernet driver IPv6 multicast groups

    5701
    BLE doxy fixes

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.7.0”.

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

  • mbed-os-5.6.6

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.6.6 release is now available.

    Summary

    This patch release includes new target support for the SAKURAIO_EVB_01 board.

    We’ve included an upgrade to the Silicon Labs HAL. This upgrades the version of emlib in mbed to v5.3.3.
    Additionally it enables the use of USART3, USART4 and USART5 for both serial and SPI (important for using TB_SENSE_12’s IMU). It also fixes a number of compiler warnings.

    There is an upgrade of the Silicon Labs radio driver to v2.1.1. This upgrades the RAIL library (on which the Nanostack
    driver is based) making it run more efficiently alongside an RTOS. The binary should now be fully AAPCS-compliant (no more ambiguity on enum size), so should work across all toolchains and the upgrade also lays the foundation for potential BLE enablement on EFR32

    We’ve added USB Device support for DISCO_F429ZI, bootloader support for DISCO_F429ZI and ENET support for LPC546XX.

    There was an issue where dir_rewind and dir_seek were not working as expected for the FAT filesystem
    (https://github.com/ARMmbed/mbed-os/issues/5440). This has now been fixed.

    Finally we’ve adjusted our thread tests to enable them to be run on devices with a small RAM footprint.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    5397
    add target SAKURAIO_EVB_01.

    Fixes and Changes

    5503
    FATFileSystem: provide working dir_rewind and dir_seek

    5512
    DISCO_L072CZ_LRWAN1 can use LSE from LORA module

    5518
    STM32F407VG: Fix RTC

    5323
    malloc test refactoring

    5483
    heap_and_stack test refactoring

    5516
    lpc546xx: fix adc

    5521
    STM32: Add USB Device on DISCO_F429ZI

    5525
    Fixed: errno update failure with IAR8.x

    5535
    NUCLEO_L432KC: Fixed async serial

    5539
    Prevent traceback when memap fails to parse

    5553
    Nuvoton: fix lpticker interrupt

    5454
    Nuvoton: TRNG_Get support 32 bytes unalignment

    5360
    threads test adjust to run on devices with small RAM

    5526
    Fixed mutex assert in armcc fopen and related memory leak

    5616
    Support bootloader for DISCO_F429ZI

    5611
    Realtek RTL8195AM A3 fix

    5609
    LPC546XX: Add ENET support

    5585
    Fix issue with timer timebase on EFR32

    5589
    Nordic: Set handle of user description descriptors.

    5584
    Upgrade to Silicon Labs HAL

    5580
    DISCO_F746NG: add usp_speed configuration

    5579
    Upgrade Silicon Labs radio driver to v2.1.1

    5565
    STM32: SPI 3 wires mode not supported in SPI slave

    5550
    Fix bug in K64F trng_api.c

    5531
    RTL8195AM - refactor bootloader and fota support

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.6.6”.

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

  • mbed-os-5.6.5

    Downloads: zip tar.gz

    mbed OS 5.6.5 release

    We are pleased to announce the mbed OS 5.6.5 release is now available.

    Summary

    This patch release includes new target support for the following boards:

    NUCLEO_L496ZG_P
    L-Tek FF-LPC546XX
    Mbed Connect Cloud board
    ADI EV-COG-AD4050LZ
    RedBear BLE Nano 2
    ADI EV-COG-AD3029LZ

    There was a workaround that went into mbed-os-5.6.4 for STM32 F767 rev A devices, to address an issue where the Ethernet peripheral had problems on the RMII interface. This workaround turned out to be an incomplete solution, that has now been corrected for this release.

    We’ve added bootloader support for DISCO_L475VG_IOT01A and HEXIWEAR, CAN3 support for STM32 and initial
    cryptographic acceleration support for the Silicon Labs family.

    We’ve made some quality improvements by extending the test set for Ticker class, updating the BLE
    BatteryService documentation and fixing a number of broken test cases.

    We have also added a number of other bug fixes.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    5424
    NUCLEO_L496ZG_P support

    5344
    add new target L-Tek FF-LPC546XX

    5305
    New Target: Mbed Connect Cloud board

    5144
    Add support for ADI EV-COG-AD4050LZ platform.

    5231
    Add support for RedBear’s BLE Nano 2

    5137
    Add support for ADI EV-COG-AD3029LZ platform

    Fixes and Changes

    5291
    Add RealTek WiFi test configuration

    5394
    ONSEMI: Fix a few issues related to I2C

    5445
    test: realtek net config default to none

    5463
    STM32F412 IAR linker file issue

    5455
    STM32 Flash 2MB GetSector fix

    5453
    Increase flash size on Realtek RTL8195AM

    5436
    STM32: Extend Ethernet RMII workaround

    5430
    malloc test: change stack array to two dimensional array

    5428
    Shrink RTOS classes

    5425
    RtosTimer tests update

    5422
    Add bootloader support for DISCO_L475VG_IOT01A

    5270
    Fix for Nanostack threading on EFR32 devices

    5390
    ncs36510: fire interrupt correct timer fix

    5372
    Doxygen comments fixes

    5370
    event queue test: fix out of memory for NUCLEO_F070RB

    5322
    LPC1768: Fix ETHMEM_SECTION placement for ARM

    5319
    Remove build warnings in LWIP

    5432
    HEXIWEAR: define HEXIWEAR target to support bootloader.

    5464
    Fix lockup issue for REALTEK_RTL8195AM

    5473
    Reorganize defines for firmware updates on Realtek RTL8195AM

    5474
    Limit size of equeue for sigio netsocket test

    5510
    M487/NUC472/NANO130: fix TRUE/FALSE redefinition

    5505
    STM32: HAL smartcard, fix memory corruption in Receive

    5499
    Remove mbed-cloud-client-example-internal.

    5486
    STM32: Add support of CAN3

    5487
    Fix bug for issue: initial pin value not retained

    5482
    DISCO_L072CZ_LRWAN1: HSE clock configuration improvement

    5472
    BLE: Update BatteryService documentation.

    5452
    ONSEMI: Fix I2C issues

    5403
    Provide fixes for Timer and LowPowerTimer tests.

    5261
    Extends test set for Ticker class

    4825
    Silicon Labs: Add cryptographic acceleration support

    5335
    Fix for configurable network driver tests

    5547
    Revert Shrink RTOS classes

    Using this release

    You can fetch this release from the mbed-os GitHub repository,
    using the tag “mbed-os-5.6.5”.

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

  • mbed-os-5.6.4

    Downloads: zip tar.gz

    mbed OS 5.6.4 release

    We are pleased to announce the mbed OS 5.6.4 release is now available.

    Summary

    This patch release includes new target support for LPC1769 and NUCLEO_L496ZG.

    There was an issue on the NUCLEO F767ZI (5294) where ‘Error -3004’
    was returned while trying to establish a socket connection. We have added a workaround to fix this issue. A full
    solution will be available in a later revision of STM32 F767 MCUs.

    A number of tests, (race, semaphore, mail and malloc) for the NUCLEO_F070RB were failing with ‘out of memory’ errors.
    These have been fixed. We have also improved our RTOS testing by adding a new MemoryPool test.

    IAR exporter support has been added for TMPM066 and FLASH hal support has been added for DISCO_L475VG_IOT01A and DISCO_L072CZ_LRWAN1.

    We have also added a number of other bug fixes and tool improvements.

    Known Issues

    The following list of known issues apply to this release:

    Contents

    Ports for Upcoming Targets

    5025
    LPC1769 port

    4650
    NUCLEO_L496ZG: Add new Platform

    Fixes and Changes

    5354
    Activate FLASH hal support on 2 STM32 boards

    5179
    STM32: TRNG: remove call to deprecated HAL_RNG_GetRandomNumber

    5188
    NUCLEO_F207ZG: Analogout improvement

    5260
    RTL8195AM - Fix IAR ielftool zero-padding issue

    5317
    Tools: Check for toolchain and core support for Arm Compilers

    5340
    MCUXpresso: Fix issue of ticker interrupt incorrectly firing

    5347
    MCUXpresso: Fix LPTimer issue when using multiple timeout objects

    5324
    doxygen: Change FileSystemHandle group to platform

    5352
    Fix us_ticker collision and race for RTL8195AM

    5327
    STM32: Remove compilation warnings

    4936
    Add MemoryPool test.

    5320
    Fix ethernet API build warnings for LPC4088

    5332
    Improve domain handling and status checking of updated examples.

    5375
    ChainingBlockDevice: fix changing blocks address

    5376
    mail test: fix out of memory problem for NUCLEO_F070RB

    5377
    semaphore test: fix out of memory problem for NUCLEO_F070RB

    5415
    Remove include from assember in makefile exporter

    5359
    Support TMPM066 in IAR export

    5379
    race test: fix out of memory problem for NUCLEO_F070RB

    5391
    Copy edit pull_request_template.md

    5395
    Resolve doxygen warning in filesystems docs

    5047
    Test set for LowPowerTicker class

    5373
    fs: Correct errno when not finding a mounted filesystem

    5399
    STM32F4/STM32L4: remove MSP template file

    5338
    malloc test: fix out of memory problem for NUCLEO_F070RB

    5400
    Beetle BLE: Fix variable length GATT attribute

    5405
    Ensure Thread stack is 8 byte aligned

    5409
    BLE: Update iBeacon documentation.

    5411
    STM32: Ethernet: Workaround for STM32_F767 revA

    5413
    Collect build artifacts, disable cleanup

    Using this release

    You can fetch this release from the mbed-os GitHub repository,
    using the tag “mbed-os-5.6.4”.

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

  • mbed-os-5.6.3

    Downloads: zip tar.gz

    mbed OS 5.6.3 release

    We are pleased to announce the mbed OS 5.6.3 release is now available.

    Summary

    This patch release includes new target support for the SILICA_SENSOR_NODE.

    We have included an update of the uVisor to v0.31.0. This provides a new static debug box, along with
    some stability enhancements.

    There is an update of the u-blox ODIN-W2 binaries to 2.2 rc1, bringing a fix for a major issue, where a new instance of the OdinWiFiInterface manipulates the system event queue, in such a way that a previous configuration is lost (5211). It also contains an update for RED compliance.

    We have added bootloader support for Lpc1768, NUCLEO_F446RE and K66F. We’ve also added exporter support for the NUCLEO_L486RG.

    In Mbed OS 5.6.2 there was an issue where the default lwIP pbuf pool size was configured to be too small to hold a single DTLS handshake flight, thus causing some connections to fail during the handshaking phase. We have now made this user configurable by adding pbuf-pool-size, pbuf-pool-bufsize and mem-size to the mbed_lib json file for the lwIP interface.

    To further improve our code quality, we have increased our test coverage, adding: * Functional Wifi tests * A low power timer test * Timer class test * Rtostimer tests

    There are also a number of other fixes which are listed below.

    Known Issues

    None

    Contents

    Ports for Upcoming Targets

    5104
    add support for SILICA_SENSOR_NODE platform

    Fixes and Changes

    5038
    Lpc1768 bootloader support

    5077
    Added interface version information to mbed detect command.

    5084
    Allow exporters for NUCLEO_L486RG

    5199
    Add quotes to preprocessor path on export

    5212
    Merging changes from ATParser towards parser unification

    5255
    Prevent use of deleted ticker in Ticker test

    5019
    Fix an incorrect comment in ticker API

    5157
    NUC472/M453/M487/NANO130: Add updates for Nuvoton targets

    5161
    Implement functional Wifi tests

    5192
    Moved STDIO_UART defines for UBLOX_EVK_ODIN_W2

    5232
    RTL8195AM - Fix and cleanup mbed_rtx.h

    5229
    Fix documentation of BLE GattCharacteristic

    5272
    Fix echo test handshake and reduce uart load

    4898
    Enable crypto HW acceleration for STM32F437xG platforms

    4971
    Add test for Timer class.

    5086
    Sleep: Disallow sleep for targets turning off the systick clock at sleep entry

    5147
    Test: deepsleep() API replacement

    5187
    nRFx: Use us ticker for I2C timeout

    5216
    Avoid wait_ms() spin

    5074
    Add Low Power Timer test.

    5223
    Fix analogin scaling for EFM32 target

    5224
    Fix branch updates and make Linux compatible

    5228
    Add bootloaderd support to NUCLEO_F446RE target

    5247
    Add profile argument to mbed-os example build tools

    5250
    lwIP: Add memory configs to JSON

    5252
    Enable MPL by default for 6LoWPAN-ND.

    5263
    STM32: Fix analogout structure/variable wrong initialization

    5264
    Error if OS tickrate is changed

    5269
    STM32: Initialize RTC structures at init phase.

    5287
    Updated u-blox ODIN-W2 binaries to 2.2 rc1

    5288
    STM32: Add alternate pins on NUCLEO 32pins boards

    5289
    STM32: RTC: Call irq_handler whenever interrupt fires

    5292
    Update HeapBlockDevice example

    5275
    uVisor: Upgrade to v0.31.0

    5337
    Add additional note on the HeapBlockDevice constructor block parameter

    5315
    Fix behaviour of empty .mbedignore

    5246
    Remove debug print from memap IAR impl

    5243
    Basic test refactoring

    4989
    add flash iap and bootloader support to K66F

    4947
    Rtostimer tests

    5042
    RTL8195AM - Respect Toolchains paths in post bulid script.

    5081
    Extends test set for EventFlags class

    5278
    Move heap_and_stack tests to TESTS/mbed_bootstrap

    5326
    Remove redundant ISR test.

    Using this release

    You can fetch this release from the mbed-os GitHub repository,
    using the tag “mbed-os-5.6.3”.

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

  • mbed-os-5.6.2

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.6.2 release is now available.

    Summary

    This patch release includes an update for Nanostack to v6.2.2, bringing with it some TCP protocol improvements.

    There were a couple of issues found with deepsleep in mbed-os-5.6.1:

    1) deepsleep being left locked unintentionally,

    2) deepsleep locks not being properly released by the timer class.

    These have now been fixed.

    The K66F has been updated to SDK 2.2 providing necessary updates for the DSPI HAL and Flash HAL drivers.

    In BLE, a flush method has been added to the UART service giving the ability to force send the buffer contents.

    A number of filesystem issues have been fixed including:

    1) adding missing retarget definitions that were available for GCC but not for ARM/IAR compilers,

    2) a fix to fstat to enable seek and related functions to work correctly,

    3) a fix for the case where a directory was not left in an openable state when a previous open operation had
    failed.

    There are also a number of other fixes which are listed below.

    Known Issues

    There are no known issues applying to this release.

    Contents

    Ports for Upcoming Targets

    None

    Fixes and Changes

    4959
    e2 studio exporter update

    4994
    missing includes for filesystem.cpp (build with VisualGDB fails)

    5166
    Force preprocessing of asm for make_armc5

    5165
    Platform: Replace non throwing versions of new operator.

    5197
    Fix LPC54114 vector table size

    4961
    Check for mbed 5 support on export

    4979
    STM32: USBDevice files clean-up

    4982
    Update K66F to SDK 2.2

    5016
    Fix cellular APN_db.h lookup.

    5032
    mts targets: fix debug() usage

    5095
    Release deep sleep lock in destructor of Timer class

    5177
    PWMOut: lock deesleep addition

    5027
    cb: Fix uninitialized memory used for equality check

    5026
    STM32: Lock / Unlock flash for each operation

    5171
    STM32L432KC: increase RAM size from 48k to 64k

    5183
    fs: Fix dir open during failure condition

    4990
    Add flush to the BLE UART Service

    5045
    Ticker class description update - small interval warning

    5050
    RZ_A1H: Correct CAN Message ID and recetption rate in extended mode

    5062
    InterruptIn: Use NULL callback by default

    5099
    Move clock() function from mbed_rtc_time.cpp to mbed_retarget.cpp.

    5193
    Omit libraries and tests from tools coverage numbers

    4795
    Add configurable network driver tests

    5066
    UARTSerial: Avoid readable() ambiguity

    5148
    Enable deepsleep for LowPowerXXX objects

    5006
    Extends test set for Ticker class

    5029
    Adjust whitespace in Odin PinNames file to fit verbose LED pin mappings

    5033
    Mapped lwip buffer error to nsapi no memory error

    5052
    Support VK_RZ_A1H with ds5 & e2studio exporters

    5078
    Enable access to kernel tick information in ISR

    5141
    LPC54608: Swap LED pin connections to match naming on the board

    5152
    Kinetis RTC HAL: Allow writing 0 to the seconds register

    5176
    EFM32: fix fire interrupt (set flags)

    5182
    tools/toolhains - Test for flag passing in constructor

    5089
    STM32 : Disable HSE XTAL choice from the default clock source

    5098
    Doxygen comment fix for Thread class

    5105
    Cortex-M33: Add RTX5 context switcher files

    5130
    STM32: Freeze master timer on stop/breakpoint

    5194
    Ensure us_ticker is initialized before it is used

    5207
    NRF5x: Don’t allocate GPIOTE in DigitalIn

    5208
    STM32F7 : Fix RTC Wake Up Timer issue

    5162
    Change LPC54608 to LPC546XX to include support for LPC54608/18/28

    5242
    Fix LowPowerTimer and nightly builds

    5249
    Nanostack v6.2.2

    5220
    Fix deep sleep lock bugs

    5203
    fs: Fix fstat retarget for regular files

    5237
    examples: remove eddystone ble examples

    5240
    Add retry to handle git clone failure

    5204
    fs: Add missing retarget definitions for ARM/IAR

    Using this release

    You can fetch this release from the mbed-os GitHub repository,
    using the tag “mbed-os-5.6.2”.

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

  • mbed-os-5.6.1

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.6.1 release is now available.

    This release includes new target support for the L-TEK FF1705, a critical workaround to issue #5079
    (MD5, SHA1 and SHA256 hardware acceleration not working for STM32F439xI), plus numerous bug fixes to
    improve the code quality and stability.

    Known Issues

    The following list of known issues apply to this release:

    5145
    make_armc5 exporter does not support NUCLEO_F767ZI, NUCLEO_F401RE and DISCO_L476VG

    Contents

    Ports for Upcoming Targets

    4973
    Add new target: L-TEK FF1705

    Fixes and Changes

    4980
    Stm32 flash update

    5138
    Fix redefinition of mbed TLS error codes

    5143
    RTL8195AM - Fix us_ticker porting

    4932
    Fix STM32 CAN reset to not lose context

    5061
    Travis: Fix requirements install

    5018
    Fix use of AES_ALT on STM32F439 for example-tls-client

    5080
    mbedtls: Disable MD5, SHA1, SHA256 HW ACC for STM32F439xI

    5096
    Remove direct use of us and lp ticker from tests

    4983
    bd: Tweaked block device API to fit SD cards and FTLs better

    5000
    flash: add note about program size

    4993
    LPC1768 IAP Fix

    4684
    Add thread terminate hook

    4968
    Add bootloader support for NXP FRDM-KW24D

    4965
    Add heap stats for IAR

    4779
    Fixed sw4stm32 exporter

    Using this release

    You can fetch this release from the mbed-os GitHub repository,
    using the tag “mbed-os-5.6.1”.

    Please feel free to ask any questions or provide feedback on this release on the forum,
    or to contact us at support@mbed.org.

  • mbed-os-5.6.0

    Downloads: zip tar.gz

    About this release

    The Arm Mbed OS 5.6.0 release helps to further simplify the internet of things (IoT) and embedded product development with the addition of several new features, such as tickless RTOS scheduler support to enable long periods of low-power sleep and IPv6 support to cellular stack to provide enhanced web connectivity. The release also adds several new drivers and platform APIs, support for IAR Embedded Workbench v8.1 and hardware security enhancements. In addition, this release contains many minor fixes and enhancements and brings support for 93 target development boards. In the release note below, we summarize some of the key updates to Mbed OS as a part of the Mbed OS 5.6.0 release.

    One additional change you may have noticed is developer.mbed.org is now os.mbed.com. We have updated our URL for consistency across the website. The community should experience no significant changes or issues due to this change because all redirects are in place.

    Core OS

    Tickless RTOS Scheduler

    Power consumption is one of the most important design requirements for IoT devices. Meeting the power budget is becoming very challenging as the systems today include more sensors, faster responses and more connectivity. Mbed OS introduces the Tickless RTOS Scheduler to help achieve the design of low power systems.

    Support Tickless Operation: In tickless operation, you don’t have to make a tradeoff between high-frequency timing interval, which consumes more power, and low-frequency timing interval, which results in suboptimal time keeping, because the scheduler schedules the next timer tick in response to the next event rather than a fixed timer tick.

    Integration with Mbed OS: The Tickless RTOS Scheduler is integrated in the native OS and based on the low power ticker. The Tickless RTOS Scheduler is already integrated in the Ticker API. The specifications are released to help other boards support the implementation of the low power timer and Tickless scheduler. We are working with Mbed silicon partners to enable support for the Tickless Scheduler on all Mbed Enabled boards.

    Support for Arm Cortex-M23 and Cortex-M33 devices

    Connected devices are growing at a fast pace, and according to Gartner, there will be more than 20 billion connected devices by 2020. As the number of IoT devices grows, the devices are becoming an increasingly attractive target for cybercriminals. Security is becoming one the most important product requirements for IoT devices. Arm has announced Arm Cortex-M23 and Cortex-M33 processor architecture, which includes TrustZone for Armv8-M and provides hardware-enforced isolation between trusted and untrusted resources while maintaining the efficient exception handling and determinism that have been the hallmark of all Cortex-M processors.

    Mbed OS 5.6.0 release provides initial support for Arm Cortex-M23 and Cortex-M33 based devices. This release includes support for RTX and tools for GCC only. This release is an instrumental step in supporting upcoming Arm Cortex-M23 and Cortex-M33 MCUs. You will benefit from support for Arm Cortex-M23 and Cortex-M33 as the new development boards including those processors start to come out.

    New drivers and platform APIs

    In the Mbed OS 5.6.0 release, we have also added several new drivers and platform APIs. Following are some of the notable additions.

    CriticalSectionLock Class: CriticalSectionLock class enables the code to run with interrupts disabled. More information is available in the API.

    DeepSleepLock Class: DeepSleepLock class enables the code to run with deep sleep locked. More information is available in the API.

    Mbed_error: Mbed_error prevents recursion if error is called again. More information is available in the API.

    NonCopyable Class: NonCopyable class allows the creation of classes whose objects cannot be constructed using a copy constructor or assigned to another. It forces the classes copy constructors to be private. More information is available in the API.

    Apart from the features described above, Mbed OS 5.6.0 also includes several new features, improvements in current APIs and HAL specification to ensure cross platform support of all APIs. You can find all the changes on GitHub.

    Connectivity

    Cellular stack now supports IPv6 along with previous IPv4

    Cellular connectivity is widely used for connecting IoT devices. It is prominent in mobility, such as smart cars, and devices operating in remote areas, such as oil fields. According to Ericsson, 10% of all IoT devices by 2021 will be connected by cellular connectivity.

    Mbed OS already includes the cellular point to point stack with IPv4 connectivity, and in Mbed 5.6.0, we are releasing cellular stack supporting IPv6. IPv6 is being widely adopted because it allows almost unlimited (3.4*10^38) addresses, and IPv4 only allows up to 4.3 billion addresses. More information is available in the cellular documentation.

    Security

    Update to Mbed TLS 2.6.0

    Mbed TLS is an open source, portable, easy to use, readable and flexible SSL library. It enables you to include cryptographic and SSL/TLS capabilities in your embedded products.

    The Mbed OS 5.6.0 release supports the latest release of Mbed TLS 2.6.0. The Mbed TLS 2.6.0 fixes an authentication bypass issue in SSL/TLS. More Mbed security information is available in the security documentation.

    Targets and tools

    Thanks to our partners’ hard work, Mbed OS 5.6 adds eight new target platforms and now supports 93 target platforms. We’ll continue to add targets in our biweekly patch releases as partners work with us on support.

    Support for IAR Embedded Workbench for Arm v8.1

    Mbed OS 5.6.0 enables initial support to IAR Embedded Workbench for Arm v8.1, which is the latest IAR compiler to support Arm MCUs. Although the default compiler version for IAR remains 7.8.x, you can also build the codebase using IAR 8.1 (builds without dependencies on archives). The current support for IAR Embedded Workbench for Arm v8.1 is limited only to the Mbed CLI tool, and we plan to migrate to the IAR Embedded Workbench for Arm v8.1 as a default IAR toolchain in Mbed OS release 5.7.0.

    Support for Arm Compiler 6

    Mbed OS 5.6.0 adds early support for the latest and most efficient version of the Arm compiler, the Arm Compiler 6. This version is based on the LVVM framework, optimized to best use hardware features. You can read about the Arm Compiler 6. The current support for Arm Compiler 6 is limited only to the Mbed CLI tool, and we plan to migrate to Arm Compiler 6 as a default in Mbed OS release 5.7.0.

    Testing

    Mbed OS is designed to significantly reduce cost and time for embedded software development by providing production quality code and toolset. We are committed to delivering high-quality code working across all supported boards and platforms. To ensure that all the features of the code meet our quality control requirements, we have built an automated testing environment and processes that perform rigorous testing on the code. Following are some of the highlights of our testing framework.

    Continuous integration framework:

    The continuous integration framework is designed to make sure that every new feature and change in Mbed OS is tested to ensure:

    • 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 test the changes on their board before submitting a Pull Request (PR) on GitHub.
    • Once the PR is submitted, then the gatekeepers manually review the code to make sure it meets all the coding guidelines and code standards.
    • Once approved by gatekeepers, the code goes through the automated test setup where code is added to Mbed OS for testing and examples built across all the platforms, such as 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 to select maximum coverage.
    • To make sure that the Mbed OS code is compatible with all the IDEs, we test that the code exports properly to all the compilers.
    • We merge the PR only if the all the above is successful.

    Following are the summary results for testing conducted for Mbed OS 5.6.0.
    - Total test time is 5,770 hours on actual development boards.
    - We have added 94 new test cases since the Mbed OS 5.5.0 release to test new and existing features on Mbed OS. The number of total test cases is 312.
    - We performed 361,440 example builds since the Mbed OS 5.5.0 release.
    - The total number of binaries built is 12,826,080 since the Mbed OS 5.5.0 release.

    We plan to share more details about testing processes, such as our out of box testing coverage and system testing, in upcoming release blogs.

    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. 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 forums.

    Handshake Messages are not fragmented as per MaxFragmentLength Extension Negotiation

    • Description: “Once a maximum fragment length other than 2^14 has been successfully negotiated, the client and server MUST immediately begin fragmenting messages (including handshake messages) to ensure that no fragment larger than the negotiated length is sent. ” In Mbed TLS, only the application data is fragmented and the handshake messages are not.
    • Workaround: Disable MaxFragmentLength Extension Negotiation.
    • Reported Issue: https://github.com/ARMmbed/mbedtls/issues/387
    • Priority: MAJOR

    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 at your own responsibility!
    • Reported Issue: Issue reported by a customer in email.
    • Priority: MAJOR

    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

    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 with Mbed OS in constrained embedded environments, which are particularly limited in RAM.
    • Workaround: The amount of stack required depends on the application and what features of the library it chooses to use. 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: https://github.com/ARMmbed/mbed-os-example-tls/issues/14
    • Priority: MAJOR

    Commissioner does not retransmit message when it receives retransmission

    • Description: There are two issues with DTLS handshake retransmission. First, the joiner fails to correctly parse received records because it does not correctly handle queued retransmissions received. Second, the commissioner may cause a deadlock as it does not retransmit certain records after it receives retransmission as instructed in RFC6347 Section 4.2.4.
    • Workaround: There is no known workaround.
    • Reported Issue: https://github.com/openthread/openthread/pull/1207
    • Priority: MAJOR

    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

    uVisor does not support nested interrupts

    • Description: When running an application with uVisor enabled, nested interrupts are not supported.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/345
    • Priority: Major

    On ARMv7-M targets supporting uVisor, the RTOS runs with the same privilege of uVisor

    • Description: The current architecture of uVisor and of RTX require the RTOS to run with the same privilege of uVisor. As such, the RTOS is considered as trusted.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/235
    • Priority: Major

    Mesh networking applications fail to compile with IAR on non-secure platform

    • Description: If the target has no defined hardware entropy module, then Mbed TLS support is disabled on the build time. This leads to compilation warnings on some Nanostack related modules and compilation failure when using IAR toolchain.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-mesh-minimal/issues/91
    • Priority: Major

    UARTSerial asserts if debug is enabled

    • Description: UARTSerial attempts to claim a mutex from interrupt context. If debug is not enabled, this fails silently, and the driver works as intended. If debug is enabled, the system stops in the assert.
    • Workaround: Turn off the debug build.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/4537
    • Priority: Major

    Link in GettingStarted.html generated by mbed export is incorrect

    • Description: The link generated by mbed export in the file GettingStarted.html is out of date.
    • Workaround: Navigate to the correct document by going to the Handbook and selecting “Third party development tools” in the “Development tools and aids” section.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/5149
    • Priority: Minor

    Assembling fails for make_armc5 exporter in Windows upon update of Mbed OS

    • Description: After updating Mbed OS on Windows and exporting to make_armc5, the assembler will complain of Invalid line start and Unknown opcode __FPU_PRESENT.
    • Workaround: Remove the mbed-os directory, and recreate it from the upstream mbed-os Git repo.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/5145
    • Priority: Minor

    Realtek RTL8195AM does not define flash algorithms for uvision

    • Description: No flashing support in uvision for Realtek RTL8195AM.
    • Workaround: Use drag-and-drop programming.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/4651
    • Priority: Minor

    Ublox EVK ODIN W2 serial baud rate mismatch

    • Description: The default serial port produces incorrect output.
    • Workaround: None.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-wifi/issues/58
    • Priority: Major

    The default address (ff03::1) cannot work for multicast

    • Description: The default address works with Thread but not 6LoWPAN.
    • Workaround: None.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-mesh-minimal/issues/130
    • Priority: Major

    Ports for upcoming targets

    4631 Add new target NUMAKER_PFM_NANO130

    Fixes and changes

    This is the full list of changes available in this release.

    4518 Add new target in mbedtls importer Makefile for mbedtls tests

    4644 Ticker: add fire interrupt now function

    4814 Merge lwip 2.0.2 stable

    4809 STM32: Align HAL & US tickers

    4517 Add cpp API for CMSIS OS 2 EventFlags

    4908 fs: Add FileSystem::reformat

    4920 Modify LED error sequence to be more recognisable

    4960 Nanostack update for mbed-os-5.6

    5003 Move Cortex specific RTX behind TARGET_CORTEX

    4962 platform: add CriticalSectionLock

    4843 fatfs: Add lower bound to block sizes

    4911 Support cellular IPv4v6 dual stack in LWIP

    4907 Update uVisor to v0.30.0

    4580 Use EventFlags instead of Semaphores

    4406 mbed_events.h: Add ability to request a shared event queue

    5037 Revert “Adjusting Stack size Allocation (IAR, LPC176x)”

    5030 Export uVision linker flags so that bootloader projects build correctly

    4912 Add sleep manager API

    4916 Add mcuxpresso exporter

    5055 Travis: fix the latest breakage - use group:

    4991 Add tickless to some mbed-os devices

    5012 STM32_us_ticker_16b: keep code to cope with past event

    4938 Update IAR to version 8

    5063 Fixing lp ticker and sleep manager tests

    4875 Initial support for Cortex M-23/M-33 devices.

    4987 Update mbed TLS to version 2.6.0

    5073 use gcc assembly for arm 6

    4949 NEW TOOLCHAIN: Add the ARMC6 Compiler

    5093 Disable response files on export

    5090 Correct long call macros for ARMC6

    5111 Emit dependency information with ARMC6

    5069 Changed error print to assert

    5107 mbed_rtx_idle: uVisor: Don’t attempt to sleep

    5122 update server name to os.mbed.com

    5103 Parse libraries with memap-arm

    5116 Separate string literal from macro

    5132 Fix MBED_ VERSION

    5091 Correct booting on Nordic devices with ARMC6

    5094 ARMC6 support for Cortex-M23

    5044 Realtek_RTL8195AM fix for debug profile

    5125 Refactor memap for speed

    The upgrade should be generally transparent to developers using the Mbed OS RTOS APIs, but please report in the forums or contact us at support@mbed.com if you have any issues in this area.

    Using the release

    You can fetch the latest version of the Mbed OS 5.6 release from the mbed-os GitHub repository using this branch.

  • mbed-os-5.5.7

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.5.7 release is now available.

    This release includes an update for mbed-coap to version 4.0.10, bootloader support for DISCO_L476VG and a critical workaround for ‘STM32F439xI-family AES hardware acceleration occasionally produces incorrect output (#4928)’ (achieved by disabling AES acceleration by default). There are also numerous bug fixes and code enhancements.

    Known Issues

    The following list of known issues apply to this release:

    Contents

    Ports for Upcoming Targets

    Fixes and Changes

    4977
    disable -f option for assembly files for IAR

    4944
    STM32: F1 GPIO: Enable AFIO clock

    4950
    M487: Support USB device/host

    4951
    UBLOX_EVK_ODIN_W2- add BUTTON1/2 definitions

    4954
    Fix ISR powerdown in mbed_application.c

    4934
    mbedtls: STM32F439xI: Don’t enable AES acceleration by default

    5001
    Update mbed-coap to version 4.0.10

    4933
    test: fix stats depth variable scope

    4963
    K66F,KW24D,K22F,K64F: Fix NVIC_NUM_VECTORS value

    4939
    Fix crashes on boot on some Kinetis devices

    4929
    STM32F4: Increase ADC sample time for VREF

    4945
    Extends test set for Mail class

    4975
    Stm32 spi 3 wires mode support

    4992
    Fix BLE API docs

    4995
    Add LED color remapping definitions to Odin target

    4996
    Reduce K64F Ethernet driver to 1 thread

    4997
    Correct LWIP_DEBUG definition

    5013
    MTS targets: Don’t use any printf() calls when NDEBUG is defined

    4924
    Adjust Stack size Allocation (IAR, LPC176x)

    4776
    Remove use of internal RTX types

    4881
    [STM32F401xE] Freeze master timer on stop/breakpoint

    4984
    Unify mbed OS tools testing style with what’s used in mbed-ls, htrun, greentea

    4665
    Enable sdram usage of REALTEK_RTL8195AM

    4958
    Add bootloader support for DISCO_L476VG

    5055
    Travis: fix the latest breakage - use group:

    Using this release

    You can fetch this release from the mbed-os GitHub repository,
    using the tag “mbed-os-5.5.7”.

    Please feel free to ask any questions or provide feedback on this release on the forum,
    or to contact us at support@mbed.org.

  • mbed-os-5.5.6

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.5.6 release is now available.

    This release includes support for new targets NUMAKER_PFM_M487 and TOSHIBA TMPM066, an
    update of mbed-coap to version 4.0.9, plus numerous bug fixes to improve code reliability.

    Known Issues

    The following list of known issues apply to this release:

    4928
    AES hardware acceleration not working for STM32F439xI

    Ports for Upcoming Targets

    4608
    Support Nuvoton’s new target NUMAKER_PFM_M487

    4840
    Add Support for TOSHIBA TMPM066 board

    Fixes and Changes

    4801
    STM32 CAN: Fix issue with speed function calculation

    4808
    Make HAL & US tickers idle safe

    4812
    Use DSPI SDK driver API’s in SPI HAL driver

    4832
    NUC472/M453: Fix several startup and hal bugs

    4842
    Add call to DAC_Enable as this is no longer done as part

    4849
    Allow using of malloc() for reserving the Nanostack’s heap.

    4850
    Add list of defines to vscode exporter

    4863
    Optimize memory usage of wifi scan for REALTEK_RTW8195AM

    4869
    HAL LPCs SPI: Fix mask bits for SPI clock rate

    4873
    Fix Cortex-A cache file

    4878
    STM32 : Separate internal ADC channels with new pinmap

    4392
    Enhance memap, and configure depth level

    4895
    Turn on doxygen for DEVICE_* features

    4817
    Move RTX error handlers into RTX handler file

    4902
    Using CMSIS/RTX Exclusive access macro

    4923
    fix export static_files to zip

    4844
    bd: Add ProfilingBlockDevice for measuring higher-level applications

    4896
    target BLUEPILL_F103C8 compile fix

    4921
    Update gcc-arm-embedded PPA in Travis

    4926
    STM32L053x8: Refactor NUCLEO_L053R8 and DISCO_L053C8 targets

    4831
    Remove excessive use of printf/scanf in mbed_fdopen/_open

    4922
    bug fix: xdot clock config

    4935
    STM32: fix F410RB vectors size

    4940
    Update mbed-coap to version 4.0.9

    4941
    Update of MemoryPool.h header file.

    Using this release

    You can fetch this release from the mbed-os GitHub repository,
    using the tag “mbed-os-5.5.6”.

    Please feel free to ask any questions or provide feedback on this release on the forum,
    or to contact us at support@mbed.org.

  • mbed-os-5.5.5

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.5.5 release is now available.

    This release includes:
    - mbedTLS SHA1 and SHA256 hw acceleration for NUCLEO_F756ZG
    - Crypto HW acceleration for UBLOX_EVK_ODIN_W2
    - Updating mbed-coap to version 4.0.8
    - Bootloader support for the UBLOX_C030 and NUCLEO_F412ZG platforms
    - Numerous bug fixes and enhancements to improve the stability and functionality of the code.

    Known Issues:

    • None

    Ports for Upcoming Targets:

    • None

    Fixes and Changes:

    • 4623 Improve management handling of multiple instances of analogin ojects
    • 4398 MAX326xx: BLE updates, fixed sleep, open-drain LEDs
    • 4158 NUCLEO_F756ZG / mbedTLS_SHA1 hw acceleration
    • 4750 Enable crypto HW acceleration for UBLOX_EVK_ODIN_W2
    • 4162 NUCLEO_F756ZG/mbedtls: Add hw acceleration for SHA256
    • 4690 test: add us ticker test
    • 4752 RTOS: Queue tests & docs rework
    • 4835 Add bootloader support for the UBLOX_C030 platforms.
    • 4854 NUCLEO_F412ZG add flash driver and bootloader support
    • 4868 STM32F437: remove flash api implementation
    • 4805 K64F: Update the DSPI SDK driver to support the new API to change DUM
    • 4695 F756/F439: add mbedtls md5 hash feature
    • 4833 Updating mbed-coap to version 4.0.8
    • 4822 fix unresolved linker msg: __wrap_
    • 4828 Enhancement - exporter/cdt
    • 4836 mbed exporter: Add IAR support for various NXP platforms
    • 4851 STM32F4_HAL_MMC erase command check is wrong. == has higher precedence than &
    • 4852 SAM_CortexM0P uses uninitialized memory in i2c and uses out of bounds array in pwmout
    • 4857 DISCO_L475VG_IOT01A: Add support of USBHost
    • 4859 Add copyright header to all tests
    • 4813 Dual Flash and Hex file support on NCS36510

    Using the release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.5.5”.

    Please feel free to ask any questions or provide feedback on this release on the forum. You can also contact us at support@mbed.org.

  • mbed-os-5.5.4

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.5.4 release is now available. This release includes 3 new targets: LPCXpresso54114, LPCXpresso54608 and VBLUno52.

    Here is a full list of all changes and fixes in this release…

    Ports for Upcoming Targets

    4290
    Add mbed support for LPCXpresso54114 & LPCXpresso54608 boards

    4765
    Add support for the VBLUno52 board

    Fixes and Changes

    4620
    Extend tests for RTOS Thread class

    4640
    STM32L1 Flash API and xDot bootloader support

    4664
    STM32: Fix the CAN initializing to the wrong frequency

    4676
    Correctly enable / disable InterruptIn Edges detection

    4682
    Test: RTOS: Semaphore: Rework tests

    4687
    STM: cleanup mbed_rtx.h file

    4708
    Enable greentea testing on CM3DS_MPS2 target

    4733
    Prevent double define in very old builds

    4718
    Toolchain: Add a note about weak functions and header files

    4732
    Correct DAC pin assignment

    4727
    Update UART3 pins for UBLOX_C030 platform.

    4745
    WIZnet W7500*: Remove support for RTC

    4751
    Remove redundant ODIN-W2 target folder

    4662
    BLE/HRM : Fix #4661

    4740
    STM32 : Clock source selection in json config file (PR2)

    4696
    Max32630 UART: Fix IRQ dispatching and CTS/RTS line configuration

    4615
    Add set_baud() method to UARTSerial().

    4706
    Fix inconsistent mbed-trace dummy defines and original function declarations

    4721
    REALTEK_RTL8195AM: FlashIAP read and address scope

    4717
    STM32: Remove i2c_read() and i2c_write() redirects to HAL_I2C_IsDeviceReady()

    4726
    Update ATCmdParser example code

    4731
    Boot: Make ARMC library mutexes dynamic

    4734
    Avoid data loss with serial interrupt used at high baudrates

    4754
    Resolve TLS handshake failing issue for REALTEK_RTL8195AM

    4756
    Fix #4613: remove duplicated startup files for MICRONFCBOARD

    4762
    DISCO_L475VG_IOT : pin update

    4764
    STM32F0 : remove unavailable pins

    4774
    Add support for runtime test specification

    4775
    Fix non-portable defines

    4778
    Add AES HW encryption for NUCLEO_F756ZG in mbedtls

    4782
    mbed-hal: Fixed flash test

    4793
    STM32 I2C : correct async issue

    4794
    NUCLEO_F767ZI : boot issue with GCC

    4714
    Expose SystemCoreClock via cmsis.h to support new CMSIS/RTX

    4744
    Allow user to set default transfer byte for block read

    4807
    LPC MCUXpresso: fix write_fill argument for block write function

    4742
    Deprecate unsupported exporters

    4729
    RTOS: Mutex: Rework tests

    4715
    Nanostack+mbed-client libservice update

    4738
    ONME-3113: Fix GCC_ARM and ARM compiler warnings from mbed-mesh-api

    4755
    Bluepill: hse config fix

    4790
    Improve documentation for memory stat ops

    4800
    Fix infinite calling loop

    4804
    Copy static files only

    Using the release

    You can fetch the mbed OS 5.5.4 release from the mbed-os GitHub repository, using the tag “mbed-os-5.5.4”. Please feel free to ask any questions or provide feedback on this release here, or to contact us at support@mbed.org.

  • mbed-os-5.5.3

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.5.3 release is now available. This release includes only bugfixes.

    Here is a full list of all changes and fixes in this release…

    Fixes and Changes

    4446
    Customer port verification tests for cellular

    4531
    Update branching option to branch from another branch.

    4672
    Cellular: not-supported error if MODEM_ON_BOARD not defined

    4468
    Put quotes around include files

    4685
    Rename runnig_thread to running_thread in rtx_mutex

    4163
    STM32L486RG/mbedtls: add aes hw acceleration

    4659
    Add the correct startup s file in TARGET_STM32F767

    4215
    Add script to lint targets.json

    4711
    added the missing verbose=verbose to printout the command line correctly at build_api.py

    4710
    Correct a typo in the github issue template

    4636
    Double escape defines in gnuarmeclipse export

    4635
    _acquire() function added & removed duplication in format/freq calls

    4548
    Resolve Warnings for mbed-os-examples

    4547
    Sort the config parameters before printing them

    4546
    Fix bad test print and move locks for printf into macro.

    4599
    Update timing tests to be robust

    4720
    FlashIAP: Add explicit read function to flash_api.h

    4525
    Improve the startup code on the STM32F070

    4561
    fatfs: Add full support for multiple fs volume prefixes

    4674
    Fix LED4 for UBLOX_EVK_NINA_B1

    4749
    tools: fix toolchain extend inc paths

    4747
    Remove unused header files includes for REALTEK_RTL8195AM

    4736
    NRF52832: Extend idle thread stack size to 512 bytes.

    4707
    STM32: serial: use proper macro to check interrupt

    4699
    STM32L0 : internal ADC channels

    4694
    DISCO_L475VG_IOT01A: typo corrections in PeripheralPins.c

    4693
    Nordic: Fix multiple defined symbol.

    4691
    STM32: F4: Increase ADC sampling time for VBAT

    4677
    Increase default PPP stack size from 512 bytes to 768 bytes.

    4668
    DISCO/NUCLEO_F429ZI: Enable all alternate functions and pins

    4667
    Update and mute debug messages of REALTEK_TRL8195AM

    4666
    Fix timing issues found in “Flash - clock and cache test”

    4652
    fatfs: Fix unaligned access in disk_ioctl

    4592
    [ONME-3089] - Adjust lowpan ND interface connect timeout

    4634
    Fix the issue #4357: NRF52 doesn’t support simultaneous use of I2C and SPI.

    4725
    Parse and use custom targets in exporters

    Using the release

    You can fetch the mbed OS 5.5.3 release from the mbed-os GitHub repository, using the tag “mbed-os-5.5.3”. Please feel free to ask any questions or provide feedback on this release here, or to contact us at support@mbed.org.

  • mbed-os-5.5.2

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.5.2 release is now available. This release includes new target support for DISCO_F413ZH and VBLUno51 and an update for the STM32F7 cube from v1.6.0 to v1.7.0. It also includes SHA256 and SHA1 hw acceleration support for NUCLEO_F439ZI, USB Device for DISCO_L072CZ_LRWAN1, plus a number of fixes to mbed OS and tools to improve stability and functionality.

    Here is a full list of all changes and fixes in this release…

    Ports for Upcoming Targets

    4410
    DISCO_F413ZH: Add new platform

    4629
    Add support for VBLUno51 board

    Known Issues

    Due to a dependency of stm32f413 on a later patch version of IAR which are currently not available in
    our CI systems, IAR export support for this platform is not available for this release.

    4697
    IAR: remove stm32f413 from definitions

    Fixes and Changes

    4578
    Turn off “browse information” in Uvision template

    4616
    Fix unresolved include of mbed_config.h in Eclipse

    4375
    Stm32 spi : use LL API to improve performances

    4401
    STM32 : Add USB used pins in PinNames.h files

    4520
    Update link in CONTRIBUTING.md

    4103
    Add extra_targets.json support to build tools

    4390
    Nucleo-F070RB It doesn’t work when use internal clock

    4405
    DISCO_L072CZ_LRWAN1: PC_13 definition missing in PinNames.h fix

    4426
    Improve directory scanning performance

    4538
    Avoid lock collision b/w SerialBase & UARTSerial

    4552
    NUCLEO_F767ZI: Add missing IAR definitions

    4557
    Enable I2C and Analogin drivers for CM3DS_MPS2 target

    4572
    DISCO_L072CZ_LRWAN1: Add support of USB Device

    4157
    NUCLEO_F439ZI/mbedtls: add SHA1 hw_acceleration

    4422
    STM32F4 set HSE timeout value to 100ms

    4594
    Introduce mbed::NonCopyable traits

    4598
    Fix style issues in IAR exporter

    4604
    cmain IAR: add mbed main

    4607
    bd: Fix missing init in MBRBlockDevice

    4603
    STM32 : mbed_overrides.c is common for all families

    4638
    DISCO_L475VG_IOT01A: Fix startup files for cmsis5

    4610
    STM32 : targets.json file simplification

    4647
    Remove hardcode UART pins definitions for nRF52832 SoC

    4646
    RTX: Fixed RTXv5 mutex owner list handling.

    4625
    Update STM32F7 cube from v1.6.0 to v1.7.0

    4421
    STM32 : Clock source selection in json config file

    4559
    fatfs: Remove unused fat_filesystem_set_errno function

    4571
    events: Adopt osEventFlags from RTX 5

    4577
    XDOT_L151CC: enable HSI after waking from stop mode so ADC functions

    4601
    rtos: Fix MemoryPool and Queue destructor

    4632
    STM32: fix us ticker set event timestamp double ISR possibility

    4641
    Increase L0 ADC sample time

    4656
    Correct comments in flash api for STM32 L0 targets

    4671
    retarget: fix microlib for mbed 2

    4529
    Manage multiple instances of analog out

    4565
    Add FlashIAP support for REALTEK_RTL8195AM

    4159
    NUCLEO_F439ZI/mbedtls: add SHA256 hw_acceleration

    Using the release

    You can fetch the mbed OS 5.5.2 release from the mbed-os GitHub repository, using the tag “mbed-os-5.5.2”. Please feel free to ask any questions or provide feedback on this release here, or to contact us at support@mbed.org.

  • mbed-os-5.5.1

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.5.1 release is now available. This release includes a fix for a critical issue found in mbed-os-5.5.0: 4584 Introduction of RTX/CMSIS 5 has broken semaphore signaling. We have fixed the issue by reverting behavior to how it was in RTX/CMSIS 4.

    The release also includes support for CM3DS_MPS2 and DISCO_L475VG_IOT01A targets, an update to the u-blox ODIN-W2 driver binaries and bug fixes that improve the stability of the tools and codebase.

    Known issues

    The following list of known issues applies to this release:

    4605: Timing tests are unstable on the ARM_BEETLE_SOC

    Here is a full list of all changes and fixes in this release.

    Ports for upcoming targets

    4414: Enable CM3DS_MPS2 target

    4242: DISCO_L475VG_IOT01A: Add new target

    Fixes and changes

    4545: Filter support with a white list of post-bin hooks in uvision

    4544: Export static files from mbed export

    4542: Issue #4528 K82F: Initialize the UART clock inside the board file

    4530: Enable verbose builds when running example build tests

    4516: Check for correct library naming in Travis CI

    4510: u-blox: Rearrange ODIN target

    4502: STM32: serial: Clear Overrun flag if it is set when checking if readable

    4562: fatfs: Fix initialization of block device in mount/unmount functions

    4504: Add reporting of reserved heap in Greentea

    4554: Fix NUCLEO_L476RG linker scripts

    4563: Increase background stack size to fix overflow

    4364: Add C API for Greentea client

    4540: Support app config option for export

    4541: Fix a bug in print_large_string

    4579: Fix semaphore in RTOS

    4444: Resolve lwIP init twice issue

    4523: Check Ethernet before including lwipopts_conf.h

    4337: Platform support for new CellularInterface in UBLOX_C027 and UBLOX_C030_U201

    4567: Update u-blox ODIN-W2 driver binaries to 2.1 rc1

    Using the release

    You can fetch the mbed OS 5.5.1 release from the mbed-os GitHub repository by using the tag “mbed-os-5.5.1”.

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.5.0

    Downloads: zip tar.gz

    The mbed OS 5.5 release upgrades to the latest version of CMSIS, paving the way for support of the latest ARM compilers, ARMv8-M Architecture based MCUs and lower power RTOS modes. It also introduces cellular connectivity, embedded storage and hardware security enhancements to further simplify development of connected, managed IoT devices. In addition, this release contains many minor fixes and enhancements and brings target platform support up to 85 targets.

    Core

    mbed OS 5.5 upgrades to the latest CMSIS version, CMSIS5, including the enhanced CMSIS-RTOS2 kernel. This is a significant step in our roadmap to enable support for the latest generation of compilers (ARM GCC Embedded 6, ARM Compiler 6 and IAR Embedded Workbench 8), support for v8-M architecture cores and introduction of low power tick-less RTOS and deep sleep modes.

    The release includes many general enhancements and fixes, and upstreams those that have been maintained within the mbed OS codebase itself. The upgrade should be generally transparent to developers using the mbed OS RTOS APIs, but please report in the forums or contact us at support@mbed.com if you have any issues in this area.

    The file system infrastructure now supports SPI NOR Flash devices, a low-cost, external storage solution. Developers commonly use it in IoT devices to store firmware update images, device credentials and configuration information and to cache data for later syncing to the cloud. You can use the SPI NOR Flash storage with all mbed Enabled platforms, and it is the recommended storage medium for devices requiring firmware update capabilities.

    The release also includes a standard in-application flash programming API, FlashIAP, and first partner implementations. This component supports the upcoming mbed Cloud Update service capability, available to licensees, that manages device firmware update campaigns across fleets of devices.

    Connectivity

    mbed OS 5.5 introduces improved support for cellular connectivity modules, including standard integration through a built-in PPP network interface.

    A Linux-based Thread Access Point reference that uses the Thread border router is now available.

    Our new native mbed OS BLE stack has reached our Early Partner Release milestone. This allows use of BLE transceivers with any mbed Enabled MCU and provides stack consistency across different BLE hardware. Based on this, we will be working with the first mbed Partners to enable support for their BLE transceivers and SoCs using this stack, planning to provide first access to developers in the 5.6 release. Partners interested in supporting BLE transceivers or SoCs with this stack should contact their Partner Enablement Team representatives.

    Security

    mbed OS cryptography incorporates mbed TLS 2.5 and the completion of internal APIs for enabling hardware entropy and symmetric and asymmetric cryptographic acceleration. Many partners are implementing and landing support for acceleration on their target platforms and are seeing significant performance increases. Partner acceleration will land in patch releases as we work with partners to complete security audits and mainline these contributions.

    uVisor updates address several performance and usability issues reported since the last release. Secure boxes on devices with an ARMv7-M MPU now use less memory and provide more user-friendly configuration options.

    uVisor now also supports the new ARMv8-M architecture, including the TrustZone for ARMv8-M security extensions. Support for this architecture is still experimental and is currently only accessible through a feature branch in mbed OS.

    Targets

    Thanks to our partners’ hard work, mbed OS 5.5 now supports 85 target platforms.

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

    Fixes and changes

    4315: Add support for ubirch boards https://github.com/ARMmbed/mbed-os/pull/4315

    3906: uVisor: Fix ‘publish’ and core libs dependencies https://github.com/ARMmbed/mbed-os/pull/3906

    3738: fix STM USB config after L4 ,F4, F7 file tree changes https://github.com/ARMmbed/mbed-os/pull/3738

    3867: Filesystem: Revert deprecation of FileHandle https://github.com/ARMmbed/mbed-os/pull/3867

    3996: Check in algo generation code https://github.com/ARMmbed/mbed-os/pull/3996

    3995: Move target related code into it’s own directory https://github.com/ARMmbed/mbed-os/pull/3995

    3997: Move contents of project_api to export/init.py https://github.com/ARMmbed/mbed-os/pull/3997

    3998: Remove dead code in tools https://github.com/ARMmbed/mbed-os/pull/3998

    3848: USBAudio: writesync with 1 sample jitter capability. https://github.com/ARMmbed/mbed-os/pull/3848

    3994: Use OUTPUT_EXT to pick binary type https://github.com/ARMmbed/mbed-os/pull/3994

    4015: DISCO_L053C8: Add support of USB Device https://github.com/ARMmbed/mbed-os/pull/4015

    3987: thread link configuration bypass flag in mesh-api https://github.com/ARMmbed/mbed-os/pull/3987

    4013: Fix a small bug in subtract_basepath https://github.com/ARMmbed/mbed-os/pull/4013

    4100: Edit the README and add Travis CI badges https://github.com/ARMmbed/mbed-os/pull/4100

    4125: STM32 USB configuration file move https://github.com/ARMmbed/mbed-os/pull/4125

    3993: Added list options for –supported command https://github.com/ARMmbed/mbed-os/pull/3993

    4097: Debug build flag + change to sleep behavior in debug mode https://github.com/ARMmbed/mbed-
    os/pull/4097

    3991: events: Fix zero wait condition in non-rtos semaphore https://github.com/ARMmbed/mbed-os/pull/3991

    4175: [NRF52840]: Remove unwanted nRF5 SDK’s app_timer libarary. https://github.com/ARMmbed/mbed-
    os/pull/4175

    4179: uVisor: Fix copy of quick-start doc in exporter script https://github.com/ARMmbed/mbed-os/pull/4179

    4167: Replace deprecated import and correct typo in c_blob_mbed.tmpl https://github.com/ARMmbed/mbed-
    os/pull/4167

    4048: Make LWIP options configurable https://github.com/ARMmbed/mbed-os/pull/4048

    4111: [drivers] Update doxygen errors https://github.com/ARMmbed/mbed-os/pull/4111

    4199: USB: bus reset for KL25Z fix, USBSerial update https://github.com/ARMmbed/mbed-os/pull/4199

    3988: Enable USB capabilities on NUCLEO_F446RE https://github.com/ARMmbed/mbed-os/pull/3988

    4212: Maxim USB library update https://github.com/ARMmbed/mbed-os/pull/4212

    4210: USB: Added support for the logo key to the keyboard https://github.com/ARMmbed/mbed-os/pull/4210

    4155: Thread sec policy https://github.com/ARMmbed/mbed-os/pull/4155

    4110: Add –build-data switch to mbed compile and test https://github.com/ARMmbed/mbed-os/pull/4110

    4233: [platform] Update doxygen comments https://github.com/ARMmbed/mbed-os/pull/4233

    4169: [NXP LPC176X] flash_api.c implementation https://github.com/ARMmbed/mbed-os/pull/4169

    4186: Filesystem: Include ‘.’ and ‘..’ in directory iteration https://github.com/ARMmbed/mbed-os/pull/4186

    4259: Add error check in Stream constructor https://github.com/ARMmbed/mbed-os/pull/4259

    4248: Fixed STM32 USB Device support for mbed Classic https://github.com/ARMmbed/mbed-os/pull/4248

    4298: Remove FLASH capabilities for the ARCH_PRO https://github.com/ARMmbed/mbed-os/pull/4298

    4306: Remove unsupported net libraries https://github.com/ARMmbed/mbed-os/pull/4306

    4307: Remove ARM7 support and targets https://github.com/ARMmbed/mbed-os/pull/4307

    4313: Remove and cleanup old code in the tools https://github.com/ARMmbed/mbed-os/pull/4313

    4235: Nanostack libservice https://github.com/ARMmbed/mbed-os/pull/4235

    4284: LWIP random library and TCP sequence number improvements https://github.com/ARMmbed/mbed-
    os/pull/4284

    4291: USBHost : fix build for TARGET_STM https://github.com/ARMmbed/mbed-os/pull/4291

    4312: BEETLE: Remove unused and conflicting systick https://github.com/ARMmbed/mbed-os/pull/4312

    4316: Remove Cortex A boards as Cortex-A it is not supported in CMSIS5/RTX2 https://github.com/ARMmbed
    /mbed-os/pull/4316

    4319: Enable CMSIS_VECTAB_VIRTUAL for Nordic platforms https://github.com/ARMmbed/mbed-os/pull/4319

    4317: Reduce test overhead in preperation for CMSIS 5 https://github.com/ARMmbed/mbed-os/pull/4317

    4325: Decode STDERR from compiler https://github.com/ARMmbed/mbed-os/pull/4325

    4311: Disable lwIP checksum-on-copy https://github.com/ARMmbed/mbed-os/pull/4311

    4274: NSAPI - Don’t send trailing garbage in DNS queries https://github.com/ARMmbed/mbed-os/pull/4274

    4202: Add support for Unmanaged Bootloader https://github.com/ARMmbed/mbed-os/pull/4202

    4185: Include mbed_debug.h in mbed.h https://github.com/ARMmbed/mbed-os/pull/4185

    4385: Allow examples to specify which repo source to use for testing https://github.com/ARMmbed/mbed-
    os/pull/4385

    4381: Fix vscode intellisense engine to ‘Tag Parser’ https://github.com/ARMmbed/mbed-os/pull/4381

    4340: Thread med support https://github.com/ARMmbed/mbed-os/pull/4340

    4333: Adjust Thread interface connect timeout https://github.com/ARMmbed/mbed-os/pull/4333

    4165: fix #3863 Add an mbed API that allows the init of the CAN at the bus frequency https://github.com/ARMmbed/mbed-os/pull/4165

    4351: STM32L4 cube update from v1.5.0 to v1.8.0 https://github.com/ARMmbed/mbed-os/pull/4351

    4345: Nanostack update https://github.com/ARMmbed/mbed-os/pull/4345

    4331: Have objects depend on their respective compiler invocations https://github.com/ARMmbed/mbed-os/pull/4331

    4328: Remove unwanted (and unused anymore) NRF5_SDK13 BLE port https://github.com/ARMmbed/mbed-os/pull/4328

    4299: STM32F4 cube update from v1.12.0 to v1.16.0 https://github.com/ARMmbed/mbed-os/pull/4299

    4230: Usb host msd block device https://github.com/ARMmbed/mbed-os/pull/4230

    4329: Fix for #3863: STM Check can sync error https://github.com/ARMmbed/mbed-os/pull/4329

    3936: bd: Add MBR block device for standard storage partitioning https://github.com/ARMmbed/mbed-os/pull/3936

    4377: Disable Cortex-A in tooling for better error messages https://github.com/ARMmbed/mbed-os/pull/4377

    4321: Update mbed TLS to version 2.5.0 https://github.com/ARMmbed/mbed-os/pull/4321

    4403: mbed: version macros are not defined on master https://github.com/ARMmbed/mbed-os/pull/4403

    4402: Stm32 f2 cube sdk update to v1.6.0 https://github.com/ARMmbed/mbed-os/pull/4402

    4119: Cellular feature br https://github.com/ARMmbed/mbed-os/pull/4119

    4388: Deprecate config store and related libraries https://github.com/ARMmbed/mbed-os/pull/4388

    4207: spi: Add SPI block-write to C++ and HAL for performance https://github.com/ARMmbed/mbed-os/pull/4207

    4178: [NRF52840]: SecurityManager::getAddressesFromBondTable https://github.com/ARMmbed/mbed-os/pull/4178

    4413: Fix a bug in dependency handling https://github.com/ARMmbed/mbed-os/pull/4413

    4094: [HAL] Add support for 64 bit us timestamp https://github.com/ARMmbed/mbed-os/pull/4094

    4415: Disallow building of mbed OS 2 + RTOS, and remove mbed OS 5 support for Cortext-A https://github.com/ARMmbed/mbed-os/pull/4415

    4411: Adding APIs to namespace mbed https://github.com/ARMmbed/mbed-os/pull/4411

    4427: tests: remove ticker test https://github.com/ARMmbed/mbed-os/pull/4427

    4387: Allow target attribute overrides in app config and pick toolchain with default_toolchain https://github.com/ARMmbed/mbed-os/pull/4387

    4294: Update CMSIS-Core and RTX to version 5 https://github.com/ARMmbed/mbed-os/pull/4294

    4431: Restore mbed OS 5.4 mbed_lwip_ function prototypes https://github.com/ARMmbed/mbed-os/pull/4431

    4389: Assert that mutexes and prints are not use in interrupt or critical context https://github.com/ARMmbed/mbed-os/pull/4389

    3972: FAT: Add support for block sizes of 512-4096 bytes https://github.com/ARMmbed/mbed-os/pull/3972

    4438: Add REALTEK_RTL8195AM to mbed-os https://github.com/ARMmbed/mbed-os/pull/4438

    4087: LocalFileSystem: Repair the FileSystemLike hooks https://github.com/ARMmbed/mbed-os/pull/4087

    4295: Update uVisor to v0.28.1 https://github.com/ARMmbed/mbed-os/pull/4295

    4436: Issue#4250: Fix USB driver for Kinetis devices https://github.com/ARMmbed/mbed-os/pull/4436

    4420: Update CONTRIBUTING.md https://github.com/ARMmbed/mbed-os/pull/4420

    4368: MTS_DRAGONFLY_F411RE/MTS_MDOT_F411RE: add IAR to post_binary_hook toolchains https://github.com/ARMmbed/mbed-os/pull/4368

    4365: Fix i2c communication with pcf8574 on stm32 targets of f1, f2, f4 and l1 families https://github.com/ARMmbed/mbed-os/pull/4365

    4455: mbed-coap fixes https://github.com/ARMmbed/mbed-os/pull/4455

    4454: Warning fixes https://github.com/ARMmbed/mbed-os/pull/4454

    4451: Fix typo in test code https://github.com/ARMmbed/mbed-os/pull/4451

    4439: Proper fix for 1fa30b7403176349557d6aea2f02a2075aa6f03b https://github.com/ARMmbed/mbed-os/pull/4439

    4430: utest optimization: Allow case data structure to be put in ROM. https://github.com/ARMmbed/mbed-os/pull/4430

    4424: Fix corner cases in STM32 16bit tickers https://github.com/ARMmbed/mbed-os/pull/4424

    4423: NUCLEO_F412ZG: Remove hal_conf file from NUCLEO_F412ZG https://github.com/ARMmbed/mbed-os/pull/4423

    4417: STM32: Fix 32-bit us ticker interrupt scheduling https://github.com/ARMmbed/mbed-os/pull/4417

    4216: STM32s Serial: Correct handling of parity bits https://github.com/ARMmbed/mbed-os/pull/4216

    4453: Safely initialize RTC on kinetis devices https://github.com/ARMmbed/mbed-os/pull/4453

    4425: Doxygen template and CI to not produce warnings and errors https://github.com/ARMmbed/mbed-os/pull/4425

    4449: Fix semaphore usage on lpc1768 emac https://github.com/ARMmbed/mbed-os/pull/4449

    4493: Fix typo that used 16kB for stack. https://github.com/ARMmbed/mbed-os/pull/4493

    4434: Doxygen EventQueue updates to not produce warnings and errors [DOC Changes Only] https://github.com/ARMmbed/mbed-os/pull/4434

    4496: Fix typo in tools code to handle bootloader builds https://github.com/ARMmbed/mbed-os/pull/4496

    4469: 17q2 l4 bootloader - Rebase https://github.com/ARMmbed/mbed-os/pull/4469

    4474: STM32 L0: Add Flash API support - Rebase https://github.com/ARMmbed/mbed-os/pull/4474

    4501: Fix compilation for NCS36510 RF driver. https://github.com/ARMmbed/mbed-os/pull/4501

    4499: Fix rtc api time conversion https://github.com/ARMmbed/mbed-os/pull/4499

    4497: Silicon Labs: Add TRNG support https://github.com/ARMmbed/mbed-os/pull/4497

    4495: NRF52840: TRNG support https://github.com/ARMmbed/mbed-os/pull/4495

    4494: Use absolute paths for bootloader binaries https://github.com/ARMmbed/mbed-os/pull/4494

    4480: rtc_time: Fix incorrect return value when the calendar is not available. https://github.com/ARMmbed/mbed-os/pull/4480

    4471: [Silicon Labs] Fix compile warnings and ticker test failure https://github.com/ARMmbed/mbed-os/pull/4471

    4482: [Silicon Labs] Bugfix for bootloader on Pearl and Mighty Gecko - Rebase https://github.com/ARMmbed/mbed-os/pull/4482

    4489: mbed sdk boot: fix gcc sw init hook attribute https://github.com/ARMmbed/mbed-os/pull/4489

    4481: Add bootloader support stm32f439xI - Rebase https://github.com/ARMmbed/mbed-os/pull/4481

    4476: Add TRNG support for KW41Z https://github.com/ARMmbed/mbed-os/pull/4476

    4473: [Silicon Labs] Enable dynamic heap with ARMCC https://github.com/ARMmbed/mbed-os/pull/4473

    4441: lwip - fix typo and cleanup coding style https://github.com/ARMmbed/mbed-os/pull/4441

    4450: Doxygen template https://github.com/ARMmbed/mbed-os/pull/4450

    4508: Doxygen combined HAL, RTOS, and features/Framework updates to not produce warnings and errors
    [DOC Changes Only] https://github.com/ARMmbed/mbed-os/pull/4508

    4511: Fix Cortex-M0 devices https://github.com/ARMmbed/mbed-os/pull/4511

    4445: Fixes for exporter issues https://github.com/ARMmbed/mbed-os/pull/4445

    4475: Silicon Labs: Add bootloader support https://github.com/ARMmbed/mbed-os/pull/4475

    4477: Silicon Labs: Fix bug with SPI MISO and CS handling https://github.com/ARMmbed/mbed-os/pull/4477

    4484: STM32L4 Flash support https://github.com/ARMmbed/mbed-os/pull/4484

    4466: Clean up dead classes in retarget layer https://github.com/ARMmbed/mbed-os/pull/4466

    4509: NRF52840: enabled SdBlockDevice capability https://github.com/ARMmbed/mbed-os/pull/4509

    4503: mbed sdk boot: copy vectors addition https://github.com/ARMmbed/mbed-os/pull/4503

    4506: Disable error trapping for mbed 2 builds https://github.com/ARMmbed/mbed-os/pull/4506

    4513: Disabled lwip ethernet ipv6 multicast filter for STM boards https://github.com/ARMmbed/mbed-os/pull/4513

    4472: Silicon Labs: Add flash API support https://github.com/ARMmbed/mbed-os/pull/4472

    4519: Fix mktime test https://github.com/ARMmbed/mbed-os/pull/4519

    4448: Add mbed-os-example-cellular to release data https://github.com/ARMmbed/mbed-os/pull/4448

    4369: Increase DHCP timeout, and rework networking tests logic https://github.com/ARMmbed/mbed-os/pull/4369

    4470: Flash API support using the MCUXpresso drivers https://github.com/ARMmbed/mbed-os/pull/4470

    4490: tests: Reintroduce ticker test. https://github.com/ARMmbed/mbed-os/pull/4490

    4483: Improve error messages for bootloader build errors https://github.com/ARMmbed/mbed-os/pull/4483

    4487: Resolve Realtek device small code space issue https://github.com/ARMmbed/mbed-os/pull/4487

    4536: STM32 - fix bug where sockets stop receiving data https://github.com/ARMmbed/mbed-os/pull/4536

    4543: Fix STM32 crashes on boot due to unset VTOR https://github.com/ARMmbed/mbed-os/pull/4543

    4566: Fix mbed2 failures https://github.com/ARMmbed/mbed-os/pull/4566

    Known Issues

    mbed TLS accepts certificates that use weak signature algorithms

    • Description: mbed TLS accepts X.509 certificates that use the following signature algorithms: md4WithRSAEncryption, md5WithRSAEncryption and sha1WithRSAEncryption. These algorithms are considered weak or unsafe due to the hashing algorithms used.
    • Workaround: For mbed TLS 2.1 and above, the default mbed TLS profile for mbedtls_x509_crt_verify() excludes all these weak algorithms and is safe to use. There are no known workarounds for mbed TLS 1.3.
    • Reported Issue: Received via email.
    • Priority: Critical

    Handshake messages are not fragmented as per MaxFragmentLength Extension Negotiation

    • Description: “Once a maximum fragment length other than 2^14 has been successfully negotiated, the client and server MUST immediately begin fragmenting messages (including handshake messages) to ensure that no fragment larger than the negotiated length is sent.” In mbed TLS, only the application data is fragmented, and the handshake messages are not.
    • Workaround: Disable MaxFragmentLength Extension Negotiation.
    • Reported Issue: https://github.com/ARMmbed/mbedtls/issues/387
    • Priority: Major

    IP addresses in the X.509 certificate subjectAltNames

    • Description: Parsing IP addresses in the X.509 certificate subjectAltNames is not supported yet. Certificate chains relying on IP addresses in subjectAltNames return a BADCERT_CN_MISMATCH error.
    • 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

    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 the 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

    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 dependent on the application and what features of the library it chooses to use. 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: https://github.com/ARMmbed/mbed-os-example-tls/issues/14
    • Priority: Major

    Commissioner does not retransmit message when it receives retransmission

    • Description: There are two issues with DTLS handshake retransmission. First, the joiner fails to correctly parse received records because it does not correctly handle queued retransmissions received. Second, the commissioner may cause a deadlock because it does not retransmit certain records after it receives retransmission as instructed in RFC6347 Section 4.2.4.
    • Workaround: There is no known workaround.
    • Reported Issue: https://github.com/openthread/openthread/pull/1207
    • Priority: Major

    uVisor does not support nested interrupts

    • Description: When running an application with uVisor enabled, nested interrupts are not supported.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/345
    • Priority: Major

    On ARMv7-M targets supporting uVisor, the RTOS runs with the same privilege as uVisor

    • Description: The current architecture of uVisor and of RTX require the RTOS to run with the same privilege as uVisor. As such, the RTOS is considered trusted.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/235
    • Priority: Major

    mbed-os-example-client linking fails in ARMCC for Realtek board

    • Description: mbed-os-example-client takes more flash space than reserved for Realtek board. For it to link properly, more code has to move to SDRAM, which is not yet implemented or tested.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/4462
    • Priority: Major

    Mesh networking applications fails to compile with IAR on unsecure platform

    • Description: If the target has not defined a source of hardware entropy, then mbed TLS support is disabled. This leads to compilation warnings on some Nanostack related modules and compilation failure when using IAR toolchain.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-mesh-minimal/issues/91
    • Priority: Major

    UARTSerial asserts if debug is enabled

    • Description: UARTSerial attempts to claim a mutex from interrupt context. If debug is not enabled, this fails silently, and the driver works as intended. If debug is enabled, the system stops in the assert.
    • Workaround: Turn off the debug build.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/4537

    Introduction of RTX/CMSIS 5 has broken semaphore signalling

    • Description: RTX 5 reduced the semaphore count limit from UINT16_MAX to the arbitrary value 1024 and added an assert that would halt if the semaphore count exceeded this limit. This is especially problematic for applications that are using the semaphore for signaling. In RTX 4, the semaphore was the only library-friendly mechanism available for signaling, and in RTX 5 it is still the only option for the C++ layer. This breaks a number of the higher-level APIs.
    • Workaround: None
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/4584
    • Priority: Critical

    Using the release

    You can fetch the latest version of the mbed OS 5.5 release from the mbed-os GitHub repository using the branch “mbed-os-5.5”.

    Please feel free to ask any questions or provide feedback about this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.4.7

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.4.7 release is now available. This release includes a flash API and IAR exporter for nRF52840 plus a number of bug fixes to improve the stability of the code base.

    Known issues

    There are no known issues for this release.

    Fixes and changes

    4284: Improve LWIP random library and TCP sequence number

    4334: Revert partially “Remove Cortex A support from CMSIS/RTOS”

    4395: Allow generic core exports to UVision

    4282: Flash API nRF52840

    4383: #4354 Fix MOTE_L152RC GPIO Write

    4382: Update cmain.S license

    4332: Fix for blockwise observation failure

    4303: Enable IAR exporter for nRF52840

    4324: STM32F3: Remove dependence on a specific flash vector table location

    4393: Race tests: Fix conditional check for MBED_RTOS_SINGLE_THREAD being defined

    4368: MTS_DRAGONFLY_F411RE/MTS_MDOT_F411RE: Add IAR to post_binary_hook toolchains

    4455: Make mbed-coap fixes

    Using the release

    You can fetch the mbed OS 5.4.7 release from the mbed-os GitHub repository, using the tag “mbed-os-5.4.7”. Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.4.6

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.4.6 release is now available. This release includes new target support for DISCO_L072CZ_LRWAN1 and RO359B. There is an update of the u-blox ODIN driver to v1.3 rc2 and an update of the STM32 F1 STM32 cube (SDK) to v1.5.0. There are also a number of bug fixes and tool enhancements to improve the quality and stability of the codebase.

    Known issues

    There are no known issues for this release.

    Ports for upcoming targets

    4256: DISCO_L072CZ_LRWAN1: Add a new platform

    4302: [RO359B] Add platform

    Fixes and changes

    4270: ODIN: Disable sleep because it’s not compatible with Wi-Fi driver

    4238: lwIP - power up EMAC before reading its settings

    4149: STM32F3: Handle USB ISTR and endpoint registers correctly

    4276: Avoid 03/05 intel-hex records for Nordic devices

    4289: LPC4088: Add “LPC4088Code.binary_hook” to the white list of the embit

    4309: Limit ISR stack to 4k on NUCLEO-F429ZI

    4308: Fix NVIC_SetVector type in HAL for MAX32630FTHR

    4226: [WIZnet][W7500] Add support for mbed OS 5

    4241: [NUC472/M453] Fix serial error with sync/async calls interlaced

    4245: [nRF5 + nRF52840]: Merge nRF52840 to [NRF5] sources

    4272: STM32 NUCLEO boards with Ethernet connector: Solve conflict with D11 arduino pin

    4286: Remove unsupported Coide exports

    4293: Remove duplicate optimization flags in IAR export

    4296: Update STM32 HAL f1 v1.5.0

    4305: Increase STM32 timeout for SPI transfers

    4310: Fix RAM vector table for NCS36510

    4314: Fix timeout units in events timing test

    4263: STM32F4xx: Consider all DMA ready/busy states in conditionals

    4338: u-blox ODIN driver v1.3 RC2 for mbed OS 5

    4353: Add static to nRF5 SDK11 macro definition

    4366: Move duplicated AnalogIn and PwmOut to nRF52 directory

    Using the release

    You can fetch the mbed OS 5.4.6 release from the mbed-os GitHub repository, using the tag “mbed-os-5.4.6”. Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.4.5

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.4.5 release is now available. This release includes exporter support for Visual Studio Code and Qt Creator Generic project, LWIP support for LPC4088, some tool updates, plus a number of bug fixes and enhancements to improve the quality of the codebase.

    Fixes and changes

    4059: [Silicon Labs] Rename targets

    4115: Add support for Qt Creator Generic project export and associated Makefile

    3915: Add Visual Studio Code exporter

    4205: [Tests] Race test - add NOT_SUPPORTED for single threaded environment

    4187: [NCS36510] Reduce default heap size allocated by IAR to 1/4 of RAM

    4145: [Test] Add nanostack to examples.json file

    4093: [Update.py] New feature - update a branch instead of a fork, and make general improvements

    4225: Fix missing device_name for xDot, and remove progen

    4243: [Config] Add new line to config header file

    4251: Fix C++11 build error with u-blox EVK-ODIN-W2

    4236: [STM32] Fix warning related to __packed redefinition

    4224: Add mbed new . output to export

    4190: LPC4088: Enable LWIP feature

    4136: Change behavior when bootloader is specified but does not exist

    3881: Remove debug links to printf/exit in NDEBUG builds

    4260: Inherit Xadow M0 target from LPC11U35_501

    4249: Add consistent button names across targets

    4254: Remove unused variable in TARGET_NXP/lpc17_emac.c

    Using the release

    You can fetch the mbed OS 5.4.5 release from the mbed-os GitHub repository, using the tag “mbed-os-5.4.5”.

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.4.4

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.4.4 release is now available. This release includes a reworking of the internal ADC channels code for numerous STM boards, a new callback API for CAN, support for the bootloader and FlashIAP for NUC472/M453, plus numerous core software and tools bug fixes to improve and further stabilize the codebase.

    Fixes and changes

    4008: [NUC472/M453] Support bootloader and FlashIAP

    4102: Add SCL and SDA defs for I2C[0-2]; redefine I2C_[SCL,SDA] to I2C2

    4106: Fix a scoping typo in toolchains

    4118: [STM32F4] Rework internal ADC channels

    4126: [STM32F4] Remove SERIAL_TX and SERIAL_RX from available pins

    4069: Update gnuarmeclipse to preprocess linker scripts

    4107: Allow configuration of artifact name in app config

    4122: Fix compiler warning in mbed_retarget.cpp

    4123: Update CAN to new Callback API

    4148: Revert “STM32F4 Internal ADC channels rework”

    4152: [STM32F4] Rework internal ADC channels

    4074: [Silicon Labs] Update pinout

    4133: [U-BLOX_C030] Default XTAL is now 12MHz onboard. Option to use Debug 8MHz

    4141: Fix mbed_board.c compiler warning

    4168: Generate GNU ARM Eclipse .mbedignore file with jinja2

    4170: Fix include paths for Windows builds

    4173: Fix Traceback in CMSIS export

    4142: [EFM32] Fixed pwmout_all_inactive being inversed

    3888: [Tools] Add new examples

    4016: [NRF5] Fix rtc overflow-while-set-timestamp issue

    4031: [STM32] Increase IAR heap size for big RAM targets

    4129: Remove old filesystem test

    4137: [MCUXpresso] Update ARM linker files to eliminate reserving RAM for stack and heap

    4150: Move config system into its own folder and refactor header generation

    4171: Fix typo in lpcxpresso exporter template

    4172: Fail IAR exports without linker scripts with NotSupportedException

    4176: [STM32L4] Rework internal ADC channels

    4184: [Events] Remove strict-aliasing warning

    4192: Fix gcc [-Wsign-compare] warning

    4154: [STM32F7] Rework internal ADC channels

    4174: [NRF52840] Fix rtc overflow-while-set-timestamp issue

    4180: [UBLOX_C030] Create target hierarchy for the specific versions of the C030 board

    4153: [STM32F2] Rework internal ADC channels

    Using the release

    You can fetch the mbed OS 5.4.4 release from the mbed-os GitHub repository, using the tag “mbed-os-5.4.4”.

    Please feel free to ask any questions or provide feedback on this release on the forum or to contact us at support@mbed.org.

  • mbed-os-5.4.3

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.4.3 release is now available. This release includes new target support for nRf52840 and UBLOX_C030. There are also a number of bug fixes to improve the stability of the code and improvements to the tools.

    Ports for upcoming targets

    3841: Add nRf52840 target

    3992: Introducing UBLOX_C030 platform

    Fixes and changes

    3951: [NUCLEO_F303ZE] Correct ARDUINO pin

    4021: Fix a macro to detect when RTOS was in use for the NRF52840_DK

    3979: [KW24D] Add missing SPI defines and Arduino connector definitions

    3990: [UBLOX_C027] Construct a ticker-based wait, rather than calling wait_ms(), in the C027 board startup code

    4000: Add some type checking of configs

    4003: Fix OBOE in async serial tx for NRF52 target, fix #4002

    4012: [STM32] Correct I2C master error handling

    4020: [NUCLEO_L011K4] Remove unsupported toolchain files

    4046: [USBHOST] Fix device disconnection from hub during hub port reset

    4049: [Tools] Turn off page alignment of sections

    4065: [K66F] Move bss section to m_data_2 Section

    4014: [Issue 3763] Reduce heap allocation in the GCC linker file

    4030: [STM32L0] Reduce IAR heap and stack size for small targets

    4060: [lpc1768] Remove invalid use of IP_SOF_BROADCAST_RECV option

    4070: Elide adding regions to profile when empty

    4072: Remove superfluous space

    4085: Fix mbed-cli issue #468 and add LPCTargetCode.lpc_patch to POST_BINARY_WHITELIST

    4101: Modify semihost_disabledebug() to support more interface FW revs

    4109: [NUCLEO_L476RG] Make minor serial pin update

    3911: [IAR exporter] Extend debugger settings template with modifiable options needed for Nordic targets

    3982: [Ticker] Fix kl25z bug for handling events in the past

    4112: Only link in LPC17xx ethernet ISR as needed

    4098: Raise error when mbed_app.json is bad

    Using the release

    You can fetch the mbed OS 5.4.3 release from the mbed-os GitHub repository, using the tag “mbed-os-5.4.3”.

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.4.2

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.4.2 release is now available.

    This release includes support for the new target EFM32PG12, some driver updates for NUC472/M453, an update for STM32 to Cube version v1.6.0 and TLS hw acceleration (AES ECB) for NUCLEO_F439ZI. There are also bug fixes and improvements to the tools and mbed-os core.

    Ports for upcoming targets

    3934: [Silicon Labs] Update to HAL and devices

    Fixes and changes

    3691: [TLS/hw acceleration] AES ECB for NUCLEO_F439ZI

    3827: Correct return values for I2C::write(int, const char*, int, bool)

    3862: Trap earlier when a Thread instance is reused

    3869: [NCS36510] Default range changed from 0 to 950mV - ADC

    3893: [STM32F7] Update STM32 Cube version v1.6.0

    3895: Use PATH env variable when GCC found in PATH

    3917: Fix mistake register setting in serial_format()

    3931: ARM Pack Manager improvements

    3927: [DELTA_DFBM_NQ620] Add RC calibration setting and revise mbed_overrides.c

    3747: bd: Add randomness to block device test and more debug friendly output

    3918: [NUC472/M453] Support unique locally administered MAC address and other driver updates

    3920: Adjust heap size to work for both tls-client and mbed-client

    3924: Don’t set the build_dir to anything on export

    3933: #3593 Add template entry to fix exported project build error

    3953: OS2 tests minor updates for STM32

    3969: [NUCLEO_F302R8] Add missing PB_8/PB_9 CAN pins

    3975: [NSAPI/lwIP] Free held netbuf on close

    3976: mbed-coap error fixes merge to mbed OS

    3968: [Greentea] Fix test code mbed-os-tests-mbed_hal-flash

    3949: Fix C declaration of dir functions and types

    3922: Fix/improve error parsing from API messages

    3939: Update mbed trace

    Using the release

    You can fetch the mbed OS 5.4.2 release from the mbed-os GitHub repository, using the tag “mbed-os-5.4.2”.

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.4.1

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.4.1 release is now available.

    This release includes an update of mbed TLS to version 2.4.2, bringing essential and critical security patches, including a fix for CVE-2017-2784. For core mbed OS, there are a number of bug fixes to improve the stability of the code and improvements to the tools.

    Fixes and changes

    3716: fix for issue #3715: correction in startup files for ARM and IAR, alignment of system_stm32f429xx.c files

    3741: STM32 remove warning in hal_tick_32b.c file

    3780: STM32L4 : Fix GPIO G port compatibility

    3831: NCS36510: SPISLAVE enabled (Conflict resolved)

    3832: lwip: Increase timeout on network tests with python projects

    3836: Allow to redefine nRF’s PSTORAGE_NUM_OF_PAGES outside of the mbed-os

    3840: STM32: gpio SPEED - always set High Speed by default

    3844: STM32 GPIO: Typo correction. Update comment (GPIO_IP_WITHOUT_BRR)

    3846: STORAGE: removal of unsupported tests having ported to sd-driver repository

    3850: STM32: change spi error to debug warning

    3860: Define GPIO_IP_WITHOUT_BRR for xDot platform

    3875: Add post-build hook white-list to exporters

    3880: DISCO_F469NI: allow the use of CAN2 instance when CAN1 is not activated

    3897: Ignore FuzzyWuzzy warnings

    3898: Prevent underflow in heap size calculation

    3913: [NRF51822] Fix reference to sleep in hal_patch override

    3795: Fix pwm period calc

    3828: STM32 CAN API: correct format and type

    3842: TARGET_NRF: corrected spi_init() to properly handle re-initialization

    3843: STM32L476xG: set APB2 clock to 80MHz (instead of 40MHz)

    3852: Ignore build directory from scan resources

    3866: bd: Fix missing const attributes on functions

    3879: NUCLEO_F446ZE: Add missing AnalogIn pins on PF_3, PF_5 and PF_10.

    3877: Update mbed TLS feature to mbedtls-2.4.2

    3902: Fix heap and stack size for NUCLEO_F746ZG

    3864: Fix mbed 2 builds

    3829: can_write(): return error code when no tx mailboxes are available

    Using the release

    You can fetch the mbed OS 5.4.1 release from the mbed-os GitHub repository, using the tag “mbed-os-5.4.1”.

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.4.0

    Downloads: zip tar.gz

    This is the release note for ARM mbed OS 5.4.0. It summarizes the major enhancements in this version.

    You can find the mbed OS 5.4.0 release on GitHub.

    About this release

    mbed OS 5.4.0 incorporates functionality you can use to prepare for the upcoming mbed Cloud device management services. This includes bootloader and filesystem infrastructure and the certified Thread 1.1 stack for developers. In addition, this release contains many minor fixes and enhancements and brings target platform support up to 74 targets.

    The following sections provide more details about this release.

    Core

    mbed OS 5.4 adds flexible filesystem support to address the needs of IoT applications requiring storage within the end node. This release already includes a FAT filesystem implementation for removable media, such as SD cards, and future releases will add embedded flash filesystems and encryption.

    The filesystem is integrated with the C standard libraries of the ARM, IAR and GCC compilers. It is available for use across all mbed Enabled platforms.

    The release also includes early access to the mbed OS bootloader, so partners can add support for their targets’ flash controllers. This forms part of the support for the upcoming mbed Cloud Update service, which allows managing device firmware update campaigns.

    To read the documentation, see file system and bootloader.

    Connectivity

    mbed OS 5.4 uses the recently certified mbed Thread 1.1 stack to provide solutions for building end nodes and border routers.

    A Linux-based Access Point reference that uses the Thread border router is also available.

    The mbed OS LoRaWAN APIs are available for partner feedback and integration.

    Security

    The mbed crypto libraries in mbed TLS include all the internal partner APIs and documentation for enabling hardware entropy and symmetric and asymmetric cryptographic acceleration. Partners are working on implementations for their target platforms, and a partner workshop will support them. We expect support for the first set of targets in 5.5.

    Upcoming

    The feature branch work on our CMSIS5 and CMSIS-RTOS2 upgrade is nearing completion, so testing will begin soon after the release of 5.4. We are aiming for inclusion on mainline for 5.5.

    Throughout the year, we also plan a program of upgrading supported compilers to ensure the latest features and fixes from the different ARM compilers are available to developers; this will mean supporting ARM GCC Embedded 6, ARM Compiler 6 and IAR Embedded Workbench 8.

    If you would like to be involved in helping test any of these upgrades to help minimize the effect on developers, please contact us.

    Targets

    Thanks to our partners’ hard work, mbed OS 5.4 now supports 74 target platforms.

    We will continue to add new targets in our biweekly releases as partners introduce support.

    Fixes and changes

    Please see the mbed-os GitHub repository referenced below for a full list of changes introduced in this release.

    Known Issues

    Online IDE does not support multiple binary production

    • Description: Compiling an application with bootloader only produces the standalone application binary. It should produce the composite binary.

    • Workaround: Use mbed CLI.

    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-bootloader-blinky/issues/4

    • Priority: MAJOR

    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 depends on the application and what features of the library it chooses to use. 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: https://github.com/ARMmbed/mbed-os-example-tls/issues/14

    • Priority: MAJOR

    mbed TLS DTLS renegotiation checks also compare record epoch value

    • Description: The TLS renegotiation routines execute after the DTLS record sequence number for incoming or outgoing messages has exceeded a user-defined period. According to the RFC 6347 Section 4.3.1, the record sequence is a 6 byte unsigned integer, but the mbed TLS function ssl_check_ctr_renegotiate() compares 8 bytes. The additional 2 bytes correspond to the record epoch value, which may result in the incorrect execution of the renegotiation routines.

    • Workaround: There is no known workaround for this issue.

    • Reported Issue: https://github.com/ARMmbed/mbedtls/issues/687

    • Priority: MAJOR

    mbed TLS server does not check that TLS_FALLBACK_SCSV is the last cipher suite

    • Description: An mbed TLS server does not check that the TLS_FALLBACK_SCSV value is the last element in the cipher suites part of the ClientHello message. Note that RFC7505 Section 4 states that placing the SCSV at that position is a SHOULD for the client. However, the server behavior description in RFC7505 Section 5 does not prescribe anything regarding the location of the TLS_FALLBACK_SCSV in the ClientHello.

    • Workaround: There is no known workaround for this issue.

    • Reported Issue: https://github.com/ARMmbed/mbedtls/issues/810

    • Priority: MAJOR

    mbed TLS commissioner does not retransmit message when it receives retransmission

    • Description: There are two issues with DTLS handshake retransmission. First, the joiner fails to correctly parse received records because it does not correctly handle queued retransmissions received. Second, the commissioner may cause a deadlock because it does not retransmit certain records after it receives retransmission as instructed in RFC6347 Section 4.2.4.

    • Workaround: There is no known workaround.

    • Reported Issue: https://github.com/openthread/openthread/pull/1207

    • Priority: MAJOR

    Using the release

    You can fetch the mbed OS 5.4.0 release from the mbed-os GitHub repository using the tag “mbed-os-5.4.0”.

    Please feel free to ask any questions or provide feedback about this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.3.6

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.3.6 release is now available.

    This release includes a number of bug fixes to improve stability.

    Fixes and Changes

    3590: [NUC472/M453] Export IAR project and other bugfixes

    3740: STM32L4 HAL update for RTC Wake Up Timer

    3739: STM32F7 : remove multiple HSE_VALUE define value

    3759: STM32: spi_frequency table index fix

    3760: Fix #3756 for 64 bytes transfers

    3779: NCS36510: Fix the sporadic semaphore timing issue

    3806: NXP KL43Z/KL27Z: fix spi format bits check

    3814: NCS36510: I2C idle delay of 1us

    3803: Bug fix of initial value of interrupt edge in “gpio_irq_init” again

    Using the release

    You can fetch the mbed OS 5.3.6 release from the mbed-os GitHub repository,
    using the tag “mbed-os-5.3.6”.

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.3.5

    Downloads: zip tar.gz

    We are pleased to announce that the mbed OS 5.3.5 release is now available.

    Fixes and Changes

    3432: Target STM USBHOST support

    3181: NUCLEO_F207ZG extending PeripheralPins.c: all available alternate functions can be used now

    3624: Fix Stack stats by running the test command with “-DMBED_HEAP_STATS_ENABLED=1”

    3626: NUCLEO_F412ZG : Add USB Device +Host

    3628: Fix warnings

    3629: STM32: L0 LL layer

    3632: IDE Export support for platform VK_RZ_A1H

    3642: Missing IRQ pin fix for platform VK_RZ_A1H

    3653: Adding fatal error detection to toolchains

    3661: [Exporters] Add core to uvision exporter template

    3664: Fix ncs36510 sleep definitions

    3655: [STM32F4] Modify folder structure

    3657: [STM32L4] Modify folder structure

    3658: [STM32F3] Modify folder structure

    3685: STM32: I2C: reset state machine

    3689: Updated to allow for new directory structure for mbed-dev source.

    3718: Fixing uvisor defines to fix build issues

    3692: uVisor: Standardize available legacy heap and stack

    3621: Fix for #2884, LPC824: export to LPCXpresso, target running with wron

    3649: [STM32F7] Modify folder structure

    3669: Adding case insensitive ‘error’ detection

    3695: Enforce device_name is valid in targets.json

    3717: Add IAR export support for NUCLEO_F207ZG

    3723: NCS36510: spi_format function bug fix

    3727: Fix access before variable defined bug in test_api

    3708: [NUC472/M453] Fix USB EP setting error in USBAudio

    Using the release

    You can fetch the mbed OS 5.3.5 release from the mbed-os GitHub repository,
    using the tag “mbed-os-5.3.5”.

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.3.4

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.3.4 release is now available.

    This release includes:

    • New target support for DISCO_F769NI, DELTA_DFCM_NNN50 and MAX32630FTHR.
    • Miscellaneous tool updates and fixes.

    Known Issues

    No known issues for this release.

    Ports for Upcoming Targets

    3571: DISCO_F769NI introduction

    3605: Add DELTA_DFCM_NNN50 platform

    3640: [MAX32630FTHR] Adding new platform

    Fixes and Changes

    3397: Add uVisor support for the DISCO_F429ZI

    3573: fix failing RTC initialization for MTS_DRAGONFLY_F411RE

    3575: Dev stm factorize gpio

    3584: STM32: make PeripheralPins.h a common file

    3583: STM32F7 Cube FW new release v1.5.1

    3534: Turn on debugging by default when exporting. Remove optimizations for IAR and Uvision

    3560: Refactor scan resources to account for base_paths

    3574: Fix invalid assert in exporters

    3578: Target system - Inherit names from target parents

    3586: Linking to latest

    3587: Fixing toolchain executable not found error for build.py

    3588: arm-pack-manager - fix tracebacks

    3594: Allow user overrides of LINKER_SCRIPT Make variable

    3599: K22F: Enable TRNG

    3600: [toolchains] Refactor sys libs

    3603: Delete testing_mbed_OS_5.md

    3604: Renaming test_env.cpp in greentea to avoid warning

    3608: Exporters: make jinja engine strict

    3612: tests: Fix error on MacOS for udp_dtls_handshake test

    3613: README: Build info; Docs version updated

    3614: STM32: make PortNames.h a common file

    3617: EFM32GG: Fix GCC_ARM linker script

    3618: STM32: Move types definitions to a common file

    3601: Clean export dir

    3630: Delete mbed_targets.md

    3631: F3 CUBE update V1.7.0

    3635: STM32 I2C : Fix bug in i2c_byte_read function

    3651: Max32630 - fix LED4

    Using the release

    You can fetch the mbed OS 5.3.4 release from the mbed-os GitHub repository,
    using the tag “mbed-os-5.3.4”.

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.3.3

    Downloads: zip tar.gz

    We are pleased to announce that the mbed OS 5.3.3 release is now available.

    This release includes numerous fixes to code and tools (listed below).

    Known Issues

    There are no known issues for this release.

    Fixes and Changes

    3470: [RZ/A1H]Support RTX v4.80 for Cortex-A and a few Malloc API

    3488: Dev stm i2c v2 unitary functions

    3492: Fix #3463 CAN read() return value

    3503: [LPC15xx] Ensure that PWM=1 is resolved correctly

    3504: [LPC15xx] CAN implementation improvements

    3513: NUCLEO_F412ZG - Add platform in RTOS tests + build_travis

    3514: [NUC472/M453] Remove Tab in USB HAL

    3518: Preventing app_config from clobbering CLI macros

    3526: lwip - Fix static IP address issues with IPv4

    3531: Correctly format include paths for eclipse export

    3537: Remove default -m and -i options for project.py

    3538: Remove deprecated clean argument

    3539: NUCLEO_F412ZG - Add support of TRNG peripheral

    3540: STM: SPI: Initialize Rx in spi_master_write

    3438: K64F: Add support for SERIAL ASYNCH API

    3521: Repair the Emblocks exporer and rename to EmBitz

    3550: events - Fix overflow of timeout on STM32F4

    3559: exporters - group by directories in prj root

    3519: MCUXpresso: Fix ENET driver to enable interrupts after interrupt handler is set

    3528: Modify update command to directly edit the mbed-os.lib files for each example

    3532: Eclipse debug fixes (build w/ DEBUG=1 and load symbols)

    3544: STM32L4 deepsleep improvement

    3546: NUCLEO-F412ZG - Add CAN peripheral

    3547: Add support for ethernet-only configuration with Nanostack.

    3551: Fix I2C driver for RZ/A1H

    3562: Alphabetize UVision groups

    3558: K64F UART Asynch API: Fix synchronization issue

    3563: LPC4088 - Fix vector checksum

    3567: Dev stm32 F0 v1.7.0

    3577: Fixes linking errors when building with debug profile

    Using the release

    You can fetch the mbed OS 5.3.3 release from the mbed-os GitHub repository,
    using the tag “mbed-os-5.3.3”.

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.3.2

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.3.2 release is now available.

    This release includes:

    • New target support for UBLOX_EVK_NINA_B1.
    • A rename of the KSDK2 package to MCUXpresso.
    • CAN support for the DISCO_F303VC.
    • A number of bug fixes and improvements.

    Ports for Upcoming Targets

    3459: Target: Add new target UBLOX_EVK_NINA_B1

    Fixes and Changes

    3430: Fix ci shield eeprom test

    3381: STM32F1 : map ST HAL assert into MBED assert

    3389: STM32F2 : map ST HAL assert into MBED assert

    3390: STM32F3 : map ST HAL assert into MBED assert

    3402: nsapi - Fixed open/close issue in Socket

    3410: STM32L4 : map ST HAL assert into MBED assert

    3422: Enable CAN on DISCO_F303VC

    3428: Change slave address in I2C master slave asynch test

    3442: Dev stm i2c f1

    3450: Correctly filtering examples in test script

    3460: KSDK I2C: Update the return value to match the API documentation change

    3478: Delete TESTING.md

    3477: Delete COMMITTERS.md

    3479: Delete Toolchain_Profiles.md

    3480: Delete config_system.md

    3481: Delete memap.md

    3339: USB audio callback rx and tx

    3472: [RZ/A1H]Fix TTB setting of RO_DATA area

    3439: Remove unused arguments from detect targets

    3451: Rename KSDK2 to MCUXpresso. This is the new name of this package

    3469: Remove invalid thread::start example

    3391: STM32F4 : map ST HAL assert into MBED assert

    3454: STM32: Refactor lp_ticker.c + rtc_api.c + sleep.c + rtc_api_hal.h files

    3457: [ONME-2844] Supporting non-blocking connect()

    3458: [ONME-2844] Avoid option level collisions

    3484: Limiting the thread stack for parallel threads test

    3486: Move clean functionality out of the export api

    3493: Delete events.md

    3494: Delete ignoring_files_from_build.md

    3476: Removing default toolchain paths

    3489: NUCLEO_F103RB - Correct CAN and PWM alternate-functions

    3405: Repair the transmit mailbox (0,1,2) empty interrupt flag not clear BUG

    3473: Stm32f7 ethernet fix for IAR issue #3387

    3475: Delete BUILDING.md

    3483: Improve error message when exporting for make without a linker script

    3490: Fix deprecated Thread ctor usage in RTOS tests

    3502: MCUXpresso I2C: Handle 0 byte write

    3500: Update mbed-client-c version 3.0.4

    3365: [NUC472/M453] Support USB device

    Using the release

    You can fetch the mbed OS 5.3.2 release from the mbed-os GitHub repository,
    using the tag “mbed-os-5.3.2”.

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.3.1

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.3.1 release is now available.

    This release includes target support for FRDM-KW41 and mbed Enabled Maker board with NINA-B1 and EVA-M8Q.
    There are also bug fixes and tool fixes. Please see below for a list of the changes.

    Ports for Upcoming Targets

    3241: Add support for FRDM-KW41

    3291: Add mbed Enabled Maker board with NINA-B1 and EVA-M8Q

    Fixes and Changes

    3062: TARGET_STM :USB device FS

    3114: Fix issue with unrecognized uvision file types

    3213: STM32: Refactor us_ticker.c + hal_tick.c files

    3274: Pass toolchain path info to subprocesses

    3283: Remove remaining references to Curl from ARM pack manager

    3288: Dev spi asynch l0l1

    3289: Bug fix of initial value of interrupt edge in “gpio_irq_init” function.

    3302: STM32F4 AnalogIn - Clear VBATE and TSVREFE bits before configuring ADC channels

    3305: Support building mbed_critical.c with C++ compiler

    3320: STM32 - Add ADC_VREF label

    3321: no HSE available by default for NUCLEO_L432KC

    3352: ublox eva nina - fix line endings

    3322: DISCO_L053C8 doesn’t support LSE

    3345: STM32 - Remove TIM_IT_UPDATE flag in HAL_Suspend/ResumeTick functions

    3309: [NUC472/M453] Fix CI failed tests

    3157: [Silicon Labs] Add support for EFR32MG1 wireless SoC

    3301: I2C - correct return values for write functions (docs) - part 1

    3303: Fix #2956 #2939 #2957 #2959 #2960: Add HAL_DeInit function in gpio_irq destructor

    3304: STM32L476: no HSE is present in NUCLEO and DISCO boards

    3318: Register map changes for RevG

    3330: Fix project profile parsing

    3336: Squashed ‘features/FEATURE_LWIP/lwip-interface/lwip/’ changes from d7

    3349: [Exporters] Fix generic ARM CPU target in uvision

    3350: [Exporter docs] index.json update instructions

    3317: NUCLEO_F429ZI has integrated LSE

    3312: K64F: SPI Asynch API implementation

    3324: Dev i2c common code

    3331: Enabled example export building for more examples

    3347: USB_4 : test OK with IAR ,GCC_ARM(limitation to ARM not needed)

    3355: IAR export will not fail in the absence of a CMSIS pack

    3362: Increase stack size in malloc test for Cortex-A

    3369: Add CAN2 missing pins for connector CN12

    3377: STM32 NUCLEO-L152RE Update system core clock to 32MHz

    3378: K66F: Enable LWIP feature

    3382: [MAX32620] Fix serial readable function.

    3399: NUCLEO_F103RB - Add SERIAL_FC feature

    3409: STM32L1 : map ST HAL assert into MBED assert

    3416: Rename i2c_api.c for STM32F1 targets to fix IAR exporter

    3368: CFSTORE fixes for building with DEBUG trace enabled

    3348: Fix frequency function of CAN driver.

    3366: NUCLEO_F412ZG - Add new platform

    3379: STM32F0 : map ST HAL assert into MBED assert

    3385: Remove deprecated flags args

    3393: ISR register never re-evaluated in HAL_DMA_PollForTransfer for STM32F4

    3408: STM32F7 : map ST HAL assert into MBED assert

    3411: STM32L0 : map ST HAL assert into MBED assert

    3413: Deduplicate IAR exporter templates and enable a few more targets

    3414: Remove unnecessary absolute paths from IAR and ARM compilers

    3415: [make exporters] Add quotes to echo statements

    3424: STM32F4 - FIX to add the update of hdma->State variable

    3427: Fix stm i2c slave

    3429: Fix stm i2c fix init

    3434: [NUC472/M453] Fix stuck in lp_ticker_init and other updates

    3436: Fix network echo test host scripts for Mac

    Using the release

    You can fetch the mbed OS 5.3.1 release from the mbed-os GitHub repository,
    using the tag “mbed-os-5.3.1”.
    Please feel free to ask any questions or provide feedback on this release on the forum or to contact us at support@mbed.org.

  • mbed-os-5.3.0

    Downloads: zip tar.gz

    This is the release note for mbed OS 5.3.0, summarizing the major enhancements in this version.

    You can find the mbed OS 5.3.0 release on GitHub.

    About this release

    This release makes available early versions of key new features we are working on in development branches, alongside many enhancements and bug fixes to our stable release codeline. These new features will be of particular interest to partners and developers who would like to observe and contribute to their development ahead of them being made generally available.

    The new feature developments made available are:

    You can follow our development of these features - and contribute to them - by working with the feature branches linked above.

    In addition, the main mbed OS 5.3 release includes a number of fixes since 5.2 and now supports 70 target platforms.

    The following sections provide more details of these and other changes in this release.

    Core

    A first functional integration of the next generation CMSIS5 libraries, including the new CMSIS-RTOS2 RTOS kernel. This upgrade is integrated under the mbed OS Peripheral and RTOS APIs such that it will have little or no impact on developers, but provides important enhancements that can be taken advantage of internally.

    These enhancements include:

    • Primitives and integration points for supporting TrustZone for Cortex-M and mbed uVisor
    • Improved RTOS kernel
    • Support for ARM Compiler 6
    • Many patches and modifications that mbed OS had made to CMSIS4 and CMSIS-RTOS now incorporated directly in to the CMSIS5 and CMSIS-RTOS2 codebases

    This allows tracking of the latest CMSIS5 development, and will be brought in to the mainline release when it is ready. Impact on end developers when this happens should be very limited, but open up further opportunities for mbed OS functionality and portability.

    Security

    Building on the Hardware Entropy work in mbed OS 5.2, mbed OS 5.3 adds the integration points for implementing Hardware Acceleration on different target platforms. This support extends to both Symmetric and Asymmetric encryption operations, and when implemented for a target will transparently provide benefit for developers directly or indirectly using functions that rely on TLS/DTLS or other Cryptographic operations.

    Partners looking to provide implementations for their targets should contact their ARM Partner Enablement representative for guidance, such that support can be made available for developers using their platforms in future mbed OS releases.

    Connectivity

    New LoRaWAN APIs are introduced to provide native development support for LoRaWAN applications on any mbed Enabled LoRa hardware. These APIs are available for partners and developers to analyze and help refine whilst the full mbed OS LoRaWAN stack is integrated, ahead of making it available as part of our mainline release. In particular, please contact us if you have an interest in LoRa and LoraWAN as a module manufacturer, OEM product developer or network provider.

    Wi-Fi support has also been further improved, with built in support for both the u-blox ODIN-W2 and Espressif ESP8266 modules. Look out for further partner support, which will become available in patch releases.

    Targets

    Thanks to our partners’ hard work, mbed OS 5.3 supports 70 targets platforms.

    We will continue to add new targets in our bi-weekly releases as partners introduce support.

    Fixes and Changes

    Please see the mbed-os GitHub repository referenced below for a full list of changes introduced in this release.

    Known Issues

    [Beetle] BLE scan doesn’t work on BLE.

    • Description: On the beetle board, BLE scanning doesn’t work and the scan procedure will never report any advertisement even if the procedure has been successfully launched.
    • Workaround: None
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/3400

    Odin Ethernet requires configuration

    • Description: The default network interface for the Odin is Wi-Fi.
    • Workaround: Make Ethernet the default interface by removing “EMAC” from “device_has” in targets.json
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/3419

    sockets do not work for NUCLEO_F746ZG using IAR toolchain

    NUMAKER_ PFM_NUC472 does not work with uvision

    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: https://github.com/ARMmbed/mbed-os-example-tls/issues/14

    DTLS renegotiation checks also compares record epoch value

    • Description:
      The TLS renegotiation routines are executed after the DTLS record sequence number for incoming or outgoing messages has exceeded a user-defined period. According with the RFC 6347 Section 4.3.1 the record sequence is an 6 byte unsigned integer, but the mbed TLS function ssl_check_ctr_renegotiate() compares 8 bytes. The additional 2 bytes correspond to the record epoch value, which may result in the incorrect execution of the renegotiation routines.
    • Workaround: There is no known workaround for this issue.
    • Reported Issue: https://github.com/ARMmbed/mbedtls/issues/687

    Using the release

    You can fetch the mbed OS 5.3.0 release from the mbed-os GitHub repository, using the tag “mbed-os-5.3.0”.

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.2.3

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.2.3 release is now available.

    This release includes a number of fixes and additional tests, along with adding I2C_ASYNCH capability for NUCLEO_F410RB and DISCO_F469NI, and support for a single UART shared by multiple serial objects on NUC472/M453.

    Known Issues

    3314: TLS handshake fails using WiFi in mbed OS 5.2.3

    Fixes and Changes

    3087: Update pack-derived files, and add safely test to uVision exporter

    3113: Add static assert macro

    3127: Fixed the issue about push/pop of VFP register.

    3176: Modifying micro:bit pin names to mirror micro:bit edge connector

    3202: Fix arithmetic error in rtos-based wait

    3205: [Exporter tests] Export only

    3207: Add mbed OS version macros

    3208: [example tests] Adding a clone and a deploy step to allow optimizations in CI.

    3206: [Exporter/compile tests] Examples test filters

    3010: Add .hpp to list of Uvision Exporter extensions

    3160: Fix wrong index at LPC43xx tx end ring assignment

    3247: WiFi: Minor fixes to docs and includes

    3232: nsapi - Fix missing NSAPI_UNSPEC check in gethostbyname for ip literals

    3222: [Export - Make] Add message that informs the user which hex to flash

    3220: rtos - Mark the RtosTimer class as deprecated

    3217: Add I2C_ASYNCH capability for DISCO_F469NI

    3211: [NUC472/M453] Support single UART shared by multiple serial objects and other updates

    3198: NUCLEO_F410RB: Add I2C_ASYNCH capability

    3194: Update K64 sdk drivers

    3191: Fix lwip_mac_address buffer overflow and set_ip_bytes out of bound access

    3188: [Exporters] Append targets to scan list for exporting tests

    3159: User trim values for NCS36510

    3243: Fix make exporters compilation

    3229: [Tools - Toolchains] Allow dependency parsing to fail, gracefully continuing

    3231: STM32F3: DISCO_F303VC - Add missing UART and ADC pin muxing options

    3233: K20xx Calculate PWM clock relative to bus clock

    3237: Added back USART 6 pins

    3248: test i2c slave: use standard Arduino pins for NUCLEO_F411RE

    3250: Change MBED_DEPRECATED def order to support Keil 4

    3253: Fix default polarity on LPC43XX PWM driver

    3257: Baudrate in test spec

    3258: Prevent process pool inside of process pool when building tests

    3065: nsapi - Remove assertions on same-thread send/recv

    3238: Dev i2c stm32f4hal

    3244: callback - Relax type-deduction in callback class

    3251: Dev stm32l0 cube v1.7.0

    3252: [NORDIC - NRF51 - MBED 2] Fix non handled RTC IRQ

    3262: Add API which cleans Dcache in IAR compiler.

    Using the release

    You can fetch the mbed OS 5.2.3 release from the mbed-os GitHub repository, using the tag “mbed-os-5.2.3”.

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.2.2

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.2.2 release is now available.

    This release includes support for new targets: Sara-N, MAX32625, FRDM-K82F and k22512.

    Other key highlights are:

    • Implementation of the API for serial port flow control in NRF51 targets.

    • Support for 6LoWPAN PAN ID filter added to mbed mesh API configuration.

    • Updated u-blox ODIN-W2 drivers.

    • A number of bug fixes and tool improvements.

    Known issues in this release

    There is currently a DNS resolution failure in Thread mode. This causes a failure in the mbed-os-example-client and will be fixed in a subsequent release. This can be worked around by reverting to mbed-os-5.2.0.

    Ports for Upcoming Targets

    3011: Add u-blox Sara-N target.

    3099: MAX32625

    3151: Add support for FRDM-K82F

    3177: New mcu k22512 fixing pr 3136

    Fixes and Changes

    2990: [tools] Parallel building of tests

    3008: NUCLEO_F072RB: Fix wrong timer channel number on pwm PB_5 pin

    3013: STM32xx - Change how the ADC internal pins are checked before pinmap_

    3023: digital_loop tests update for STM32

    3041: [nRF5] - added implementation of API of serial port flow control configuration.

    3092: [tools + tests] Adding parallelized build option for iar and uvision exporters

    3084: [nrf5] fix in Digital I/O : a gpioe pin was uninitialized badly

    3009: TRNG enabled. TRNG APIs implemented. REV A/B/C/D flags removed. Warnings removed

    3139: Handle [NOT_SUPPORTED] exception in make.py

    3074: Target stm init gcc alignement

    3140: [tests] Replacing getchar with RawSerial getc in greentea-client

    3158: Added support for 6lowpan PAN ID filter to mbed mesh api configuration

    2988: Update of can_api.c fixing #2987

    3175: Updating IAR definition for the NCS36510 for IAR EW v7.8

    3170: [tests] Preventing test from printing before Greentea __sync

    3169: [Update of #3014] Usb updates

    3143: CFStore fix needed for the Cloud Client

    3135: lwip - Fix memory leak in k64f cyclic-buffer overflow

    3048: Make update.py test compile examples prior to updating mbed-os version.

    3162: lwip/nsapi - Clean up warnings in network code

    3161: nsapi - Add better heuristic for the default record of DNS queries

    3173: [Exporters] Add a device_name to microbit entry in targets.json

    3072: i2c_loop tests update for STM32

    2958: Allowing mbed_app.json files to be discovered for tests.

    2969: [nRF52] - switch irq priorities of driver handlers to the lowest level

    3078: lwip: Allow several configuration macros to be set externally (bis)

    3165: Add address type checks to NanostackInterface

    3166: nsapi_dns: Provide 2 IPv6-hosted default servers

    3171: [tools] Fixing project.py -S printing problem

    3172: [Exporters] New export-build tests

    3184: #3183 Compiler warning in trng_api.c with K64F

    3185: Update tests to fix build failures. Also make the code similar to oth

    3104: [NuMaker] Support CAN and fix PWM CLK error

    3182: Exporter documentation

    3186: MultiTech mDot - add back SPI3 pins

    3187: [Export-Make] Use internal class variable for resolving templates in makefiles

    3195: [Exporters - Make-based] Quote the shell call in mkdir and rmdir

    3204: [Export build-test] Directory traversal error

    3189: [Exporters - Make-based] Force make exporter to search PATH for compilers

    3200: Using Popen for uVision and unifying the structure of the build function

    3075: nsapi - Add standardized return types for size and errors

    3221: u-blox odin w2 drivers update

    Using the release

    You can fetch the mbed OS 5.2.2 release from the mbed-os GitHub repository, using the tag “mbed-os-5.2.2”.

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.2.1

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.2.1 release is now available.

    Fixes and Changes

    2966: Add kw24 support

    3068: MultiTech mDot - clean up PeripheralPins.c and add new pin names

    3089: Kinetis HAL: Remove clock initialization code from serial and ticker

    2943: [NRF5] NVIC_SetVector functionality

    2938: InterruptIn changes in NCS36510 HAL.

    3112: events - Remove unused variable warning in ndebug builds

    2953: nsapi - Fix leftover bytes from suffix during ipv6 parsing

    3108: Fix sleep function for NRF52.

    3076: STM32F1: Correct timer master value reading

    3085: Add LOWPOWERTIMER capability for NUCLEO_F303ZE

    3093: [SDFileSystem] Enable / Disable serial debug.

    3097: Arm-Pack-Manager Remove pycurl dependency

    3046: [BEETLE] Update BLE stack on Beetle board

    3005: New build profile and docs

    3122: [Silicon Labs] Update of Silicon Labs HAL

    3022: OnSemi RAM usage fix

    3121: STM32F3: Correct UART4 and UART5 defines when using DEVICE_SERIAL_ASYNCH

    2897: nsapi - Standardize support of NSAPI_UNSPEC

    3024: analog_loop tests update for STM32

    3142: Targets- NUMAKER_PFM_NUC47216 remove mbed 2

    Using the release

    You can fetch the mbed OS 5.2.1 release from the mbed-os GitHub repository, using the tag “mbed-os-5.2.1”.

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.2.0

    Downloads: zip tar.gz

    This is the release note for mbed OS 5.2.0, summarizing the major enhancements in this version.

    You can find the mbed OS 5.2.0 release on GitHub.

    About this release

    This release builds on the significant enhancements that came in mbed OS 5.1 to add the following headline features:

    • WiFi SoCs and Modules – mbed OS now supports flexible integration for different SoC, Module and Network Processor WiFi architectures, opening up fully integrated platforms as development targets. As part of this work, the IP stack has also been upgraded to the latest LwIP version (2.0), bringing support for both IPv4 and IPv6 to Ethernet and WiFi targets.

    • Hardware Entropy – mbed OS now supports integration of Hardware Entropy sources, essential for strong platform security. Partners with targets containing True Random Number Generators (TRNGs) have already been integrating support so developers will be able to automatically take advantage of enhanced security.

    • Memory Profiling - mbed OS core components and tools have received a number of enhancements to allow memory footprint tracking and analysis. This includes runtime tools for tracking of dynamic memory utilisation and heap information, and stack checking to trap stack over-runs.

    mbed OS 5.2 also extends target support to over 60 target platforms.

    The following sections provide more details of these and other changes in this release.

    Core

    An Events library is now part of the core platform, providing simple primitives for scheduling one-time or repeating events. The library can act as a drop-in scheduler, provide synchronization between multiple threads, or just act as a mechanism for moving events out of interrupt contexts.

    We have added dynamic memory profiling features, allowing tracing the maximum heap usage at runtime, as well as invoking callbacks on each memory operation for more sophisticated annotation. Statistics, including current and maximum bytes allocated and the number of allocations, give visibility of the dynamic memory behavior that can be used in test regression scripts, alongside the existing static memory footprint analysis information.

    Security

    A portable HAL adds support for strong hardware entropy sources such as on-chip True Random Number Generators (TRNGs). These are used as part of the entropy pool the security functions of mbed OS rely on, ensuring each platform uses the maximum hardware-based security it can provide.

    Cipher-based Message Authentication Code (CMAC) support is added, and used in the mbed OS Thread stack.

    The version of mbed TLS integrated within mbed OS has been upgraded to the latest version (2.4.0). For more details, see the mbed TLS 2.4.0 release note.

    Connectivity

    We have introduced support for different WiFi hardware architectures, enabling mbed OS to run on integrated WiFi SoCs and modules as well as work with companion WiFi network processors. This provides hardware design flexibility, and opportunities for significant BOM and complexity reduction, by running mbed OS on the WiFi modules themselves.

    The developer-facing WiFi APIs use the existing mbed OS socket interfaces (used by all IP networking) and network control features. The APIs bring up an interface, including setting the security credentials, scanning for available network access points and to read the signal strength (RSSI) for the current active connection.

    This release introduces support for the u-blox ODIN-W2 integrated WiFi module. We are actively working with a number of other WiFi partners that will be introducing support for their WiFi targets in forthcoming patch releases.

    The core IP stack used in mbed OS for Ethernet and WiFi has been upgraded to LwIP 2.0, bringing support for both IPv4 and IPv6. This complements our mesh networking stack, already optimised for providing 6LoWPAN and Thread networking support for 2.4GHz and Sub-GHz 802.15.4 radios.

    Services

    The mbed Device Connector Client is now delivered as a separate module that will be updated as new mbed device management services are introduced.

    Tools and workflow

    The mbed CLI tool has had numerous updates and improvements. For more details, see the mbed CLI repository.

    The tools now support toolchain profiles, in particular to enable simple debug and release configurations.

    The Online IDE now supports git and GitHub repositories, so you can use both mercurial and GitHub distributed version control systems.

    The export mechanism supporting project generation for different toolchains and IDEs has been redeveloped to be more versatile and scalable, and now uses CMSIS-Packs for target information. When exporting to MDK and IAR, the corresponding target CMSIS-Packs must be available. Known issues include limited target coverage, needing additional configuration steps in IDEs to have projects fully functional, and exporters for Make may have linking errors where archives are used. We will be working with our silicon and tools partners to improve target coverage and project generation in future patch releases.

    mbed Enabled

    The mbed Enabled program continues to provide compliance criteria and technical requirements for boards, on-board interfaces and end products. It is unchanged for mbed OS 5.2, but we expect to introduce stricter requirements for Hardware Entropy support in future releases.

    The following resources are available:

    Targets

    Thanks to our partners’ hard work, mbed OS 5.2 has been extended to support over 60 targets.

    We will continue to add new targets in our bi-weekly releases as partners introduce support. If you are a partner, please see details in the Partner Portal.

    Known Issues

    • UBLOX_EVK_ODIN_W2 - mbed-os-example-client - no connection established when using WiFi.
    • ARM_BEETLE_SOC does not support IAR and uVision export.
    • ARCH_PRO does not flash in uVision (missing flash algorithm).
    • NUCLEO_F401RE export for uVision is not supported.
    • UBLOX_EVK_ODIN_W2 - The WiFi driver on u-blox ODIN-W2 enables a range of weak cryptographic primitives in mbed TLS to support legacy protocols. This can make the TLS connection vulnerable too, and could be subject to a downgrade attack. It is therefore not recommended to use mbed TLS on this platform for production use.

    Getting Started

    To get started with this release, see the Handbook.

  • mbed-os-5.1.5

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.1.5 release is now available.

    This release includes extended IAR support, uVisor on Beetle and fixes to the exporting process.

    Ports for Upcoming Targets

    2669: Added u-blox C029 target

    2707: [EFM32] Add IAR support for remaining Silicon Labs targets

    2819: MultiTech xDot platform support - 09.26.2016

    2827: include MultiTech xDot in mbed 5 releases

    Fixes and Changes

    2648: Disable RTOS tests for STM32 8K targets

    2522: Add CThunk for CM7

    2682: classic mbed: bugfix can loop test

    2518: Enable uvisor on Beetle

    2685: Replace vendor specific register usage in stm32f4_emac.c with basic register

    2688: Avoid type collision by renaming callback variable

    2561: lwip - Add checks for invalid state of network

    2571: STM32F7 - Add asynchronous serial

    2612: Fixed bug on memap (non-default output path)

    2616: STM32F3xx - Add Serial Flow Control pins + enable it

    2619: NUCLEO_L152RE - Add Serial Flow Control

    2620: NUCLEO_F429ZI - Add SERIAL_FC macro

    2659: Fix exported project file group naming

    2665: nsapi - Add equality operators to SocketAddress class

    2666: [EFM32] Microsecond ticker optimization

    2671: tools-exporters! - Globally add a gettingstarted.html

    2672: [EFM32] Fix exporter to pull root path

    2674: tools - Correct adding repo_files

    2675: Revise checking toolchain path

    2681: STM32F0xx - Add support of ADC internal channels

    2687: [NRF5] Add fs_data symbol in data secton for gcc

    2696: Add device_has to all nrf51 devices

    2697: tools-exporters! - disable inclusion of repo-dirs in zips by default

    2703: TARGET_NRF5: Changed ‘serial_baud’ implementation to support special baud rates.

    2704: DISCO_L476VG: add SPI nicknames

    2710: Remove “lib” and “lib64” from the mbed-OS .gitignore file: they do no

    2721: tools - Add documentation about profiles to the toolcahins

    2723: KSDK serial_api.c: Fix assertion error for ParityEven

    2735: Fixing archived library builds for IAR

    2463: [STM32L0] Add asynchronous serial

    2572: Fix STM32F407VG target name and LPC11U6X linker errors

    2698: DELTA_DFBM_NQ620 target

    2722: lwip - Fixed error code on disconnect TCP socket

    2731: [TARGET_STM] IPV4 feature hal files factorisation

    2542: Dev spi asynch stm32f4

    2614: Change default uvision exporter to uvision5

    2640: [NUCLEO_F072RB-NUCLEO_F070RB] RTOS issues

    2650: STM32F3 - Add low power timer

    2662: Update CONTRIBUTING.md

    2744: FEATURE_IPV4/TESTS: result status could be wrong

    2754: New exporter build tests

    2757: Refactor Target and Config away from global variables

    2852: Release - Update custom target handling

    2415: [STM32F0] Add asynchronous serial

    2585: Added support for ADC only pins in LPC43xx

    2622: [STM32F4] Add asynchronous I2C

    2719: Updated ARM linker scripts for Kinetis platforms that use SDK 2.0

    2727: Serial init timeout: increase default value

    2728: Added ethernet and enabled IPV4 feature for the EVK-ODIN-W2/C029 target

    2739: STM32 / IPV4: #2685 has been forgotten with #2731

    2747: [LPC11U68] Fix pin interrupt select offset

    2751: STM32L0xx - Add Serial Flow Control

    2753: [NUCLEO_F767ZI] Add CAN capability

    2759: STM32F0 - Add low power timer

    2763: STM32L1 - Add low power timer

    2764: STM32L4 - Add low power timer

    2771: STM32L4 - Update deepsleep implementation

    2775: Update KSDK SDHC driver for K64F & K66F

    2788: Print percent complete when building

    2792: [NUCLEO_F303ZE] MBED-OS5 capability

    2779: [NUCLEO_F103RB] RTOS tests update

    2712: Fixing constant cleaning when compiling tests

    2762: STM32L0 - Add low power timer

    2761: STM32F7 - Add low power timer

    2800: Removed –no_static_destruction from IAR IDE flags

    Using the release

    You can fetch the mbed OS 5.1.5 release from the mbed-os GitHUb repository,
    using the tag “mbed-os-5.1.5”.
    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.1.4

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.1.4 release is now available.

    This release includes many minor enhancements and fixes, adds some target HAL ports in preparation for upcoming new targets (ST Disco F769NI, Delta DFBM NQ620, MTM mtconnect 04S, ST Nucleo f303ze), and some early additions for runtime heap memory tracking features we’re working on that we’ll share more on soon.

    Changes and fixes

    2442: Malloc heap info

    2487: Runtime dynamic memory tracing

    2607: Fix uvisor memory tracing

    2393: [tools] Prevent trace-backs from incomplete args

    2588: Timing tests drift refactor

    2245: Refactor export subsystem

    2548: Nucleof303ze

    2545: Added define guards for SEQUENTIAL_FLASH_JOURNAL_MAX_LOGGED_BLOBS so

    2575: tools-config! - Allow an empty or mal-formed config to be passed to the config system

    2130: stm32 : reduce number of device.h files

    2419: [STM32F1] Add asynchronous serial

    2521: [NUCLEO_F207ZG] Add MBED5 capability

    2538: STM32F4xx - Add support of ADC internal channels (Temp, VRef, VBat)

    2562: Fix GCC lazy init race condition and add test

    2576: Add smoke test that builds example programs with mbed-cli

    2578: Fix double free in NanostackInterface

    2583: github issue and PR templates

    2587: add PTEx pins as option for SPI on Hexiwear - for SD Card Interface

    2601: Adding ON Semiconductor copyright notice to source and header files.

    2613: Correctly providing directories to build_apis

    2643: Fix thread self termination

    2651: Use lp_timer to count time in the deepsleep tests

    2584: Set size of callback irq array to IrqCnt

    2582: [GCC_CR] fix runtime hang for baremetal build

    2580: lwip - Add check for previously-bound socket

    2579: lwip - Fix handling of max sockets in socket_accept

    2514: Updated FlexCan and SAI SDK drivers

    2504: [Disco_F769NI] adding new target

    2559: [utest]: Allow the linker to remove any part of utest if not used

    2657: [MAX326xx] Removed echoing of characters and carriage return.

    2654: DELTA_DFBM_NQ620 platform porting

    2645: NUCLEO_F446ZE - Enable mbed5 release version

    2634: Updated USBHost for library changes

    2633: Updated USBDevice to use Callback

    2630: Test names not dependent on disk location of root

    2624: CFSTORE Bugfix for realloc() moving KV area and cfstore_file_t data structures not being updated correctly

    2623: DISCO_L476VG - Add Serial Flow Control pins + add SERIAL_FC macro

    2617: STM32F2xx - Enable Serial Flow Control

    2615: [MTM_MTCONNECT04S] Added support for MTM_MTCONNECT04S

    2597: [HAL] Fixed “intrinsic is deprecated” warnings

    2596: [HAL] Improve memory tracer

    2594: Fix TCPServer constructor

    2589: [NUC472] Fix heap configuration error with armcc

    2593: Add app config command line switch for test and make

    2604: Tools - Fix fill section size variation

    2678: Fixing NCS36510 compile on Linux

    Using the release

    You can fetch the mbed OS 5.1.4 release from the mbed-os GitHub repository, using the tag “mbed-os-5.1.4”.

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.1.3

    Downloads: zip tar.gz

    The mbed OS 5.1.3 release is now on GitHub.

    New targets

    • KL27Z_IAR
    • MAX32620HSP_ARM_STD
    • MAX32620HSP_GCC_ARM
    • MAX32620HSP_IAR
    • NCS36510_ARM_STD
    • NCS36510_GCC_ARM
    • NCS36510_IAR

    Changes in the version

    • Added support for NSAPI_REUSEADDR to the lwip interface.
    • STM32F3 family : Add and enable asynchronous serial, plus tests.
    • STM32L4 family : Add and enable asynchronous serial, plus tests.
    • Fixing issue where GCC fails to report compile errors when non-verbose.
    • Add ethernet and IPV4 support for: NUCLEO_F207ZG, NUCLEO_F429ZI, NUCLEO_F767ZI, DISCO_F746NG.
    • RZ_A1H - Enable SPI1 on pins P6_4 to P6_7.
    • KL27Z : SPI driver bug fixes and Improvements, ARM linker file update.
    • STM32F4, STM32F7 families : Add entropy functions, documentation, code improvements, fix build issues.
    • HEXIWEAR: Update I2C pin mapping, Add support to create KDS projects.
    • LWIP - fix recv blocking send on accepted sockets.
    • SingletonPtr bugfixes.
    • Beetle: Implement sleep API.
    • uVisor: Update to v0.20.1-alpha, minor documentation update.
    • STM32F3 : fix RTOS IAR test, RTOS GCC_ARM test.
    • nrf5x : Introduce uart hardware flow control configuration.
    • K64F/K22F: Implement HAL lp_timer API.
    • Ticker: Move ticker initialisation to object creation time.
    • STM32F4 : remove printf from pwmout
    • NXP : Fix multiple definition errors in GCC_CR build, fix linker errors.
    • Add TOOLCHAIN_GCC_CR support.
    • STM32L1 family : Add and enable asynchronous serial, plus tests.
    • mbed-client : Fix Bootstrap and Connector functionality.
    • NUC472 : Fix Ethernet wrong INT status in RX_Action.
    • RTX_CM_lib.h : fix compiler warning.
    • NUCLEO : Use GCC small build for 64K flash STM32.
    • STM32F2 family : Add and enable asynchronous serial, plus tests.
    • uvisor : Move page heap after uVisor private data, update page allocator.
    • K64F: Revert to hardcoded stack pointer in RTX .
    • dns-query : Internal API change , documentation, Added support for multiple results and ipv6.
    • Add support for implementation-provided DNS servers.
    • Adopted netconn_gethostbyname in the lwip interface.
    • Restructured nsapi_dns.h to have clear separation between C/C++ .

    Tool fixes

    • Tests: New ones added and some updates to existing.
    • RTOS:
      • K64F: Revert to hardcoded stack pointer in RTX.
      • Adding NCS36510 support.
      • Add MAX32620 target support.
      • Fix implicit declaration of function ‘atexit’.

  • mbed-os-5.1.2

    Downloads: zip tar.gz

    The mbed OS 5.1.2 release is now on GitHub.

    • RTOS - fix stack for K64F, NRF52 armcc, NRF51:
    • Main thread stack checking enabled.
    • Fix heap limit checking and make memory regions explicit.
    • Deprecate macro - add since argument.
    • Override new and delete operators to trap errors.
    • Maxim - I2C and DAC bugfixes.
    • STM - STM32F4 - serial flow enablement, enable async serial.
    • pwm and analog definition clean-up.
    • Nordic - NRF51 - fix for overflow in the ticket.

  • mbed-os-5.1.1

    Downloads: zip tar.gz

    The mbed OS 5.1.1 release is now on GitHub.

    • RTOS - fix joining a terminated thread.
    • K64F name fix for cmsis and hal.

  • mbed-os-5.1.0

    Downloads: zip tar.gz

    This is the release note for the mbed OS 5.1.0 release. It summarises the major changes in this version of mbed OS, as well as the requirements for partners looking to support this release on development platforms.

    The mbed OS 5.1.0 release is on GitHub.

    About this 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 IoT use cases, and unlocked compatibility with our mbed OS 2 “Classic” ecosystem.

    Version summary

    The headline changes in this release are:

    • RTOS - mbed OS now incorporates an RTOS. 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.
    • Tooling - we have simplified the tooling and introduced native support for building and testing across the ARM Compiler 5, ARM GCC Embedded and IAR compiler toolchains. A command line interface script (mbed CLI) now drives the established mbed OS 2 build system to build the OS and associated developer applications and components. Dependencies are explicitly pinned to provide full reproducibility of builds. The target and toolchain can be selected independently of each other, and we run CI on mbed OS across all these compiler toolchains on every commit. yotta is not used in this release.
    • Compatibility - the introduction of the RTOS and changes to tooling have allowed the possibility of compatibility with the mbed OS 2 (“Classic”) ecosystem. We have taken this opportunity to re-base and merge the two development lines so that we now have just one platform and one set of tools. Existing partners can take advantage of investments made in mbed over the years, and both new and existing partners need to invest in only one project. Developers can benefit from all legacy components and libraries, alongside the existing and new features of mbed OS.

    These architectural changes enable merging the mbed OS 2 and mbed OS 3 codebases, websites and ecosystems, and are marked with a major revision update - mbed OS 5 (2+3=5!).

    Our mbed OS 5.0.1 was an internal version available only to partners, and mbed OS 5.1.0 is the first generally available.

    Based on these changes and the hard work of our partners, mbed OS target support is also accelerated. This release supports multiple target platforms from multiple partners, with more ports regularly made available on a newly introduced minor release tick every two weeks.

    The following sections provide more details of these and other changes in this release.

    Core

    RTOS

    mbed OS now incorporates an RTOS.

    The RTOS core is based on the widely used open-source CMSIS-RTOS RTX, providing an established kernel that can support threads and other RTOS services on very tiny devices. The RTOS primitives are always available, so that drivers and applications can rely on features such as threads, semaphores and mutexes. The RTOS is initialised ahead of entering the main() thread, enabling components to rely on RTOS facilities even if the core application is single threaded.

    The implementation is based on CMSIS-RTOS RTX 4.79.0, and we will be tracking and contributing to the development of CMSIS-RTOS releases, allowing us to pick up support for new versions and architectural features such as TrustZone for Cortex-M.

    The MINAR eventing-only scheduler is not included in this release. An alpha version of a more flexible event scheduler library is available, supporting the same design patterns within RTOS threads and components. This library will be merged and managed as part of the core OS codebase once it reaches release maturity.

    Drivers and support libraries

    There is now driver support for a wide range of standard MCU peripherals across the extended target platforms:

    • DigitalIn, DigitalOut, DigitalInOut
    • InterruptIn
    • PortIn, PortOut, PortInOut
    • BusIn, BusOut, BusInOut
    • AnalogIn, AnalogOut
    • PwmOut
    • I2C, I2CSlave
    • SPI, SPISlave
    • Serial

    Improved API documentation is now available here.

    These drivers have been internally upgraded to integrate thread safety logic, while maintaining compatibility with the mbed OS 2 APIs. This has been done within the generic components of the drivers to avoid changes to the different HAL implementations.

    A new Callback class supersedes FunctionPointer (still supported) to provide a more flexible and neater syntax for capturing and calling static function and class member callbacks. It now uses the same class regardless of the number of arguments on the callback.

    C libraries

    The C libraries provided with each of the supported toolchains have been integrated into mbed OS, including implementation of thread safety support.

    Security

    uVisor

    uVisor has been upgraded to support the RTOS.

    We have made the modifications CMSIS required to allow uVisor to hook interrupts. These will be upstreamed to future CMSIS releases.

    uVisor now includes a disabled mode for ARMv7-M and ARMv6-M architectures that maintains code compatibility even when uVisor is not present or active, enabling a smooth software upgrade path as platforms introduce support for uVisor.

    Crypto

    The crypto libraries now support:

    • An insecure NULL entropy mode to simplify support during development.
    • A HAL API for providing strong entropy sources based on a hardware TRNG.
    • A reasonable strength entropy source based on non-volatile storage.

    mbed TLS

    We have integrated version 2.3.0 of mbed TLS, providing TLS and DTLS support for services.

    See the mbed TLS 2.3.0 release note.

    Please note, applications using mbed TLS on boards that have not yet implemented hardware entropy support must use the NULL ENTROPY configuration to build. However, please be aware that no security will be offered by mbed TLS in those cases.

    Connectivity

    The sockets API has been revised to support:

    • Multiple stacks
    • Multiple interfaces
    • Synchronous and asynchronous APIs

    We have successfully applied this to Ethernet, 6LoWPAN Mesh and WiFi interfaces.

    We’ve introduced an 802.15.4 MAC HAL to enable simplified porting of the 6LoWPAN and Thread stacks to different 802.15.4 radios. This release includes ports for multiple transceivers.

    We have released a 6LoWPAN Border Router reference application and an associated Linux-based Access Point example that demonstrates 6LoWPAN nodes connecting via an Access Points to the mbed Device Connector service. A development Thread Border Router is also available to mbed Partners.

    We’ve extended our Bluetooth Low Energy (BLE) API to support user-defined scheduling policies. This maintains compatibility with mbed OS 2 BLE applications, while allowing developers to take advantage of the RTOS to design more efficient solutions. The Bluetooth API is now supported across multiple vendor silicon, covering both SoC and MCU plus Transceiver chipset arrangements.

    Services

    mbed OS integrates the latest mbed Cloud Client, providing connectivity and management services from mbed Device Connector.

    See the mbed Device Connector site.

    Tools and workflow

    We’ve reworked the tools and workflows to address feedback from previous releases on the use of yotta and the desire for backward compatibility with mbed OS 2 (“Classic”). In this release we build the OS, components and applications using modified versions of the mbed OS 2 build scripts.

    mbed CLI

    You can use a new top level command line interface (mbed CLI) to drive the build, package management and test scripts. It is also a natural integration point for IDEs.

    See the mbed CLI repository.

    Dependencies

    This release does not use yotta; applications depend instead on a single mbed OS repository where all dependencies are pinned, making applications reproducible and simplifying development and management.

    See the mbed OS repository.

    Code compatibility and toolchain support

    Code is compatible with c99/C++03, and doesn’t use any C++11 or C++14 features.

    We now support building and testing across multiple toolchains (ARM Compiler 5, GCC ARM Embedded, IAR). Supporting these three toolchains is a requirement for partner ports.

    The build tools now emit static RAM and FLASH sizes and a top level breakdown on every build.

    Exporting to Third Party IDEs

    We support generation of project files to enable opening mbed OS projects in Keil MDK, IAR Workbench and other environments. This is useful for development and launching debug sessions, and can be achieved from mbed CLI or the mbed Online Compiler.

    mbed Enabled

    We’ve formalised the mbed Enabled program, providing versioned compliance criteria and technical requirements for boards, on-board interfaces and end products.

    The following resources are available:

    Targets

    Thanks to our partners’ hard work, including an onsite workshop, the mbed OS 5.1 release already supports the following targets:

    We will add new targets in our bi-weekly releases as partners introduce support. If you are a partner, please see details in the Partner Portal.

    Getting Started

    To get started with this release, see the Handbook.