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

    Downloads: zip tar.gz

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

    Summary

    The major feature we introduce in this release aims to improve your experience with Arm’s Platform Security Architecture when used in conjunction with Mbed OS. Platform Security Architecture, or PSA, is an Arm- led framework for securing IoT devices. In Mbed OS we support PSA in conjunction with the TF-M (www.trustedfirmware.org) project, and we have made major changes in how we integrate TF-M into Mbed in this release, with the overall goal of simplifying how Mbed users consume it. The main change is that we now support building the Secure side binary directly, using the latest supported TF-M version for the target and linking that into the Mbed build.

    We are working with our silicon partners to assist them in migrating their PSA platforms to support this change,

    Migration Guide

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

    Remove Musca A1 target

    13165

    Summary of changes

    The Musca A1 target hasn’t been Mbed Enabled nor considered supported in 6.0.
    Although support exists in Mbed OS 5.15 and 6.0, it is not officially supported and hence removed.However, it continues to be available in 5.15.

    Impact of changes

    NA - continues to be available in the mbed-os-5.15 branch.

    Migration actions required

    Switch to the mbed-os-5.15 branch.

    Cellular: ALT1250: Store RAT to permament memory

    13149

    Summary of changes

    Save RAT selection to modem’s permanent memory.

    Impact of changes

    This avoid unnecessary changing of RAT on every reboot if it is different than the default saved in modem’s permanent memory.

    M2351: Remove from master

    13148

    Summary of changes

    Since Mbed OS 6.0, secure build is not supported yet. Remove it from master temporarily.
    For non-TF-M support (NU_PFM_M2351_NPSA_S/NS), go to mbed-os-5.15 branch and Mbed OS 5.15 release.
    For TF-M support (NU_PFM_M2351_S/NS), this needs M2351 integrated into TF-M repo first.
    Expect M2351 TF-M support can come back into master after integration with TF-M is finished.

    Impact of changes

    M2351 non-TF-M targets NU_PFM_M2351_NPSA_S/NS are removed from Mbed OS 6.0. Its support is kept on Mbed OS 5.15.

    Fix esp8266 driver compilation warning

    13144

    Summary of changes

    Removed the unused variable and the redundant const return from set_ip_addr() function to fix compilation warnings.

    Impact of changes

    With these changes, no more compilation warning get reported during the build.

    Migration actions required

    None.

    EMAC: Fix Chrono compliation warnings

    13142

    Summary of changes

    Fixed the Chrono compilation warning in EMAC drivers by using Chrono based time argument in EventQueue call_every() API call.

    Impact of changes

    With these changes, no more compilation warning get reported during the build.

    Cypress: us_ticker fixes

    13130

    Summary of changes

    • Explicitly disable the timer used for the us_ticker before attempting to enter DeepSleep.
      A running timer will block DeepSleep, which would normally be good because we don’t want the timer to accidentally lose counts. We don’t care about that for us_ticker (If we’re requesting deepsleep the upper layers already determined that they are okay with that), so explicitly stop the us_ticker timer before we go to sleep and start it back up afterwards.
    • Add optional post-bsp-init hook
      This allows the application to inject its own resource reservations immmediately after the BSP (and therefore HAL) is initialized, ensuring that they can claim require resources before mbed tries to use them for more flexible purposes. For example, the application might want to claim a particular timer to make sure that it doesn’t get picked for us_ticker (which can use any arbitrary timer instance).

    Cypress: Add target CY8CKIT_064B0S2_4343W, update psoc6pdl, psoc6cm0p

    13122

    Summary of changes

    This is final PR to add Cypress new secure boot target CY8CKIT_064B0S2_4343W to mbed-os.
    This PR also includes update of psoc6pdl and psoc6cm0p libraries for Cypress targets.

    Impact of changes

    • Target CY8CKIT_064B0S2_4343W BSP code will be added
    • psoc6pdl will be updated - impacts all Cypress targets
    • CY8CKIT_064S2_4343W, CY8CPROTO_064_SB, CYESKIT_064B0S2_4343W will be removed as obsolete due to production release of PSOC64 chips and thus new Secure Boot flow, represented in this PR
    • Secure Boot post build scripts will be substituted to new implementation for this and all following Secure Boot targets
    • psoc6cm0p will be updated - impacts all Cypress targets
      All existing Cypress targets BSP will switched to new versions assets in next PRs.

    Migration actions required

    Configuration of mbed-os CI need to be updated per new post build hooks. * CY8CKIT_064S2_4343W, CY8CPROTO_064_SB, CYESKIT_064B0S2_4343W will be removed as obsolete due to production release of PSOC64 chips and thus new Secure Boot flow, represented in this PR.
    New release of mbed-os 6.0 will no longer support targets above, updated PSOC64 targets instead will be added to support new tools.

    Fix BOOT_HEADER_SIZE allocation in ARM scatter files (#13058)

    13100

    Summary of changes

    PSoC 64 secure BSP post-build hook (cysecuretools image signing)
    expects the HEX file with start address 0x10000400 (first KB of
    internal FLASH is reserved for MCUboot headers area).
    In order to get the correct HEX file produced by ARM fromELF tool,
    the ELF file should allocate LR_IROM1 starting from address
    0x10000400, not 0x10000000. Otherwise the generated HEX file
    allocates rows at addresses 0x10000000 ~ 010000400 and the
    final application image is not signed correctly.
    Fixes https://github.com/ARMmbed/mbed-os/issues/13058.

    Impact of changes

    Fix TARGET_CY8CPROTO_064_SB and TARGET_CYESKIT_064B0S2_4343W signed HEX image generation with TOOLCHAIN=ARM.

    STM32F1 update drivers version to CUBE V1.8.0

    13086

    Summary of changes

    ST Cube drivers version is updated from V1.6.0 to V1.8.0,
    which is the latest official version from:
    https://www.st.com/en/embedded-software/stm32cubef1.html
    @ARMmbed/team-st-mcd

    Impact of changes

    • TARGET_STM32F1 directory has been reworked to match the same structure as other STM32 families
    • MCU_STM32F103xB created in targets.json. NUCLEO_F103RB now inherits from it like any custom boards.
    • MCU_STM32F103x8 created in targets.json to ease BLUEPILL_F103C8 use.

    STM32H7 update drivers version to CUBE V1.7.0

    13083

    Summary of changes

    ST Cube drivers version is updated from V1.5.0 to V1.7.0,
    which is the latest official version from:
    https://www.st.com/en/embedded-software/stm32cubeh7.html
    @ARMmbed/team-st-mcd

    Impact of changes

    • TARGET_STM32H7 directory has been reworked to match the same structure as other STM32 families
    • MCU_STM32H745I renamed in MCU_STM32H745xI
    • MCU_STM32H747xI created in targets.json. DISCO_H747I now inherits from it like any custom boards.

    Nanostack release v12.3.0 to master

    13082

    Summary of changes

    Nanostack release v12.3.0 to master branch
    Nanostack v12.3.0 contains bug fixes and stability improvements to the Wi-SUN protocol stack.
    802.15.4 RF drivers has been updated to match functionality in Nanostack v12.3.0.
    This is upstream of PR: #13079

    Impact of changes

    Wi-SUN protocol stack is more stable and is scaling to larger number of devices.
    Mesh applications that are using Wi-SUN protocol can define S2LP RF driver PIN configuration in the application configuration file.

    Python reference equality changed to value equality

    13077

    Summary of changes

    In tools/config/__init__.py a reference comparison (is) was used to compare a variable with a string literal, but a value comparison (==) should be used instead.
    This shows up as a python warning during compilation. Python documentation is here for the obsolete Python 2.7, the minimum supported version (by the Python foundation) 3.5, and the latest 3.9.

    Impact of changes

    This will remove the warning emitted during compilation with the cli (and probably elsewhere).
    This should fix any potential issues if cpython and friends decide to change how string caching works.

    Migration actions required

    None.

    Allowed to set Wi-SUN certificates in DISCONNECTED state

    13048

    Summary of changes

    Allow setting of Wi-SUN certificates after disconnect for the reconnection.
    Support changing of certificates when stack is already running.
    Fixes the following bug https://github.com/ARMmbed/mbed-os/issues/12798

    Impact of changes

    This only extends the usability of the API allowing new way to use the interface

    Migration actions required

    No Actions

    ST boards: Fix sleep tracing

    13034

    Summary of changes

    Prevent singleton lock if the RTOS is not yet ready.
    lp_ticker is used during the RTOS initialization process.
    ST lp_ticker implementation calls sleep functions
    which in turn attempts to print to the console when sleep tracing
    is enabled. Console initialization attempts to lock the singleton mutex.
    fixes https://github.com/ARMmbed/mbed-os/issues/11497
    fixes https://github.com/ARMmbed/mbed-os/issues/12593
    To test:
    1. Clone mbed-os-example-blinky.
    1. Build, program, and open a serial terminal with: mbed compile -t <TOOLCHAIN> -m <ST_TARGET> -f --sterm -DMBED_SLEEP_TRACING_ENABLED.
    1. Sleep tracing is enabled (and printing on the console), the board does not reboot.

    Impact of changes

    Sleep tracing can be enabled with ST boards.

    Migration actions required

    N/A

    Deprecate MBED_STATIC_ASSERT and MBED_STRUCT_STATIC_ASSERT for built-in keyword

    13002

    Summary of changes

    Deprecates (in doxygen only) MBED_STATIC_ASSERT and MBED_STRUCT_STATIC_ASSERT macros as these uses are now provided with the built-in static_assert (or for C without <assert.h>: _Static_assert).
    Cuts down the number of MBED_STATIC_ASSERT and MBED_STRUCT_STATIC_ASSERT macro definition #if cases to just C++ or not C++.
    If static_assert is not recognized by the compiler, it implies it is before either C11 or C++11. I do not consider this a breaking change as C11 and C++14 are now the minimum supported language versions.
    These changes also clean up some of the code documentation as well.

    Impact of changes

    This should only go in v6.0.0, so no issues assuming at least C11 or C++14 are used.

    Migration actions required

    Since the MBED_STATIC_ASSERT and MBED_STRUCT_STATIC_ASSERT macros are deprecated, users should use static_assert going forward as these could eventually be removed.

    Fix Mbed TLS adjust-config.sh script

    12998

    Summary of changes

    The Mbed TLS import script is quite fragile, and depends on certain lines to be present in the files it adjusts to be able to do the modifications it needs to to allow Mbed TLS to build within Mbed OS.
    This commit changes the adjust-config.sh script to look for a the end of the config.h file, defined as #endif /* MBEDTLS_CONFIG_H */ rather than the include line for "check_config.h".
    That’s because the inclusion of "check_config.h" is being removed upstream in Mbed TLS to fix another issue, which you can see here.
    I recommend to the maintainers that they put in their backlog to remove or replace these scripts. They were added as a temporary measure some years ago, and were never updated.

    Impact of changes

    This change should work with the current Mbed OS source, but critically, the change is necessary to allow a future version of Mbed TLS to work.

    Migration actions required

    None.

    Cellular: Enable tac info for ALT1250

    12973

    Summary of changes

    ALT1250 supports tac info in registration status, so this commit enables the feature.

    Impact of changes

    CellularNetwork::get_registration_params can now return cell info.

    Replace Mbed PSA with TF-M PSA

    12955

    Summary of changes

    Replace the Mbed implementation of PSA with the implementation from TrustedFirmware-M (TF-M).
    PSA is and continues to be provided as an experimental feature (under FEATURE_EXPERIMENTAL_API). The PSA implementation provided by TF-M is not guaranteed to provide the same functionality or API as the previous Mbed PSA implmementation being replaced.

    Impact of changes

    v8-M NS targets are now the only v8-M targets supported in Mbed OS for PSA platforms, as the TF-M build system outputs the S binary that Mbed OS consumes as-is. As such, targets like ARM_MUSCA_A1_NS have been renamed to ARM_MUSCA_A1 (although old names are temporarily provided for backwards compatibility).

    Migration actions required

    How targets enable PSA has changed. Please refer to features/FEATURE_PSA/supporting_psa_in_mbed-os.md for updated instructions on adding PSA to your target as a new target porting person.

    Modify the operation of setting qspi frequency when calling Octo controller

    12937

    Summary of changes

    Modify the operation of setting qspi frequency when calling Octo controller in qspi_api.c.
    Because the value of hospi->Init.ClockPrescaler has been subtracted 1 in stm32l4xx_hal_ospi.c.

    Impact of changes

    N/A

    Migration actions required

    N/A

    Timer: minor revisions

    12905

    Summary of changes

    • C++11-ify a little.
    • Constify relevant methods. (already done in #12425)
    • Make it copy/move constructible.
    • Remove unneeded lock from destructor. (already done in #12425)

    Impact of changes

    Timer and LowPowerTimer are a little more flexible, and slightly optimised.

    Migration actions required

    n/a

    Added kv store adaptation to nanostack file interface

    12900

    Summary of changes

    This is port of https://github.com/ARMmbed/mbed-os/pull/12878 to Mbed OS master.
    Added NS filesystem API module to mbed-os Nanostack HAL. Module provides kv_store interface for the Nanostack. Feature is disabled by default on .json configuration.

    Impact of changes

    None

    Migration actions required

    None

    Added Wi-SUN statistics interface

    12899

    Summary of changes

    This is port of https://github.com/ARMmbed/mbed-os/pull/12766 to Mbed OS master.
    Added network, physical layer, MAC and FHSS statistics to Wi-SUN interface. There are new functions to enable/disable and read the statistics.

    Impact of changes

    None

    Migration actions required

    None

    Add new configuration parameters to Wi-SUN network interface and Border Router class

    12898

    Summary of changes

    This is port of https://github.com/ARMmbed/mbed-os/pull/12657 to Mbed OS master.
    Added get/validate/set functions for following Wi-SUN mesh interface configuration options:
    - Network name
    - Regulatory domain
    - Network size
    - FHSS channel mask
    - FHSS unicast channel function related parameters
    - FHSS broadcast channel function related parameters
    - Timing parameters
    Moved Wi-SUN .json configuration parsing from wisun tasklet to Wi-SUN mesh interface class.
    Added Wi-SUN Border Router class. Class can be used to start and stop Wi-SUN Border Router.
    Border Router class supports following configuration options:
    - RPL DIO trickle parameters
    - PAN configuration
    Added support of network interface name method to Nanostack Mesh, EMAC and PPP interfaces.

    Impact of changes

    None

    Migration actions required

    None

    Add enum class flag definition to platform

    12772

    Summary of changes

    Add a macro for adding bitwise operators to enum class types.
    This addition is necessary to use bitwise operators on enum class (scoped enums) introduced in C++11.
    Without this macro, either the whole boilerplate would have to be written to take advantage of C++ namespaces and scope, or a C style, visible-to-the-world enum would need to be used.
    This:

    enum class MyEnum {
    HasNose = (1 << 0),
    HasEars = (1 << 1),
    HasFur  = (1 << 2)
    };
    inline constexpr MyEnum operator |( T lhs, T rhs)
    {
    return (MyEnum) ( 
    static_cast<std::underlying_type<MyEnum>::type>(lhs) |
    static_cast<std::underlying_type<MyEnum>::type>(rhs));
    }
    inline constexpr MyEnum operator &( T lhs, T rhs)
    {
    return (MyEnum) ( 
    static_cast<std::underlying_type<MyEnum>::type>(lhs) &
    static_cast<std::underlying_type<MyEnum>::type>(rhs));
    }
    ...
    // Repeat for ~, ^=, |= overloads
    ...
    inline MyEnum& operator &= (T & a, T b) { \
    a = a & b; \
    return a; \
    }
    

    becomes

    MBED_SCOPED_ENUM_FLAGS(MyEnum)  {
    HasNose = (1 << 0),
    HasEars = (1 << 1),
    HasFur  = (1 << 2)
    };
    

    Now, using the enum class allows for scope and bitwise operation:

    MyEnum cat = MyEnum::HasNose | MyEnum::HasEars | MyEnum::HasFur;
    MyEnum neighbor = MyEnum::HasNose | MyEnum::HasEars;
    

    Impact of changes

    The only impact is if the macro is used. If the macro is unused, standard enum class definitions are unaffected by the bitwise operators. If the macro is used, the implementing code becomes more concise (and hopefully readable), and the DRY principle is realized.
    Regarding code size, the operations should be no different than if written out with static_cast calls.
    In the future, standard C enum bit flags could be converted over to enum class for better scoping and collision avoidance.

    Migration actions required

    If a scoped enum bit flag is desired, include the header and use. Otherwise, none.

    Extend AnalogIn API: read_voltage

    12471

    Summary of changes

    For calculating real-world parameters (eg: ohms, amps) from ADC readings, it is often useful to know the actual voltage represented by the ADC’s numerical output. This functionality can indeed be abstracted elsewhere, but I think it makes sense to put this in the ADC API itself.
    As it stands, the AnalogIn API only provides a normalized output and leaves the application up to calculate the actual voltage based on the system’s ADC reference.
    This PR adds the ability for the user to configure a default ADC Vref by overriding target.default-adc-vref. Additionally, an AnalogIn instance’s reference voltage can be set at runtime in case multiple ADC references are possible in the target (in the case of multiple ADC peripherals or internally configurable ADC references such as in the case of Nordic chips).

    Impact of changes

    Since this PR only extends the AnalogIn API, there should be no impacts on existing users.

    Migration actions required

    None

    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

    Crypto: Mbed OS ATECC608A example fails to build with IAR

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

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

    • Description: The error, “pkg_resources.DistributionNotFound: The ‘mbed-ls==1.*,>=1.5.1’ distribution was not found and is required by icetea, mbed-flasher” is observed when running the command “mbed test -m K64F -t ARM –icetea –compile-list -vv”.
    • Workaround: None
    • Reported Issues: https://github.com/ARMmbed/mbed-os/issues/8064
    • Priority: Major

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

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

    Test Report

    Release automated CI test

    In addition to regular Pull Request test and Nightly test, We also ran a branch test on mbed-os 6.1.0-RC1

    Results for the tests we run on CI (PR, Nightly, Branch):

    • Compilation tests: ARMC6 - SOME FAILS
    • Compilation tests: GCC_ARM - SOME FAILS
    • Unittest - ALL PASSED
    • Greentea Test - SOME FAILS
    • Example Test - ALL PASSED
    • Exporter Test - SOME FAILS
    • Cloud Client integration Test - SOME FAILS
    • Memory Usage Test - ALL PASSED
    • Wisun Mesh Test - ALL PASSED

    We have the following issues on the test jobs:

    • LTO failed on ARM compiler compile tests ---- Tracked by defect MBEDOSTEST-1083 - ARMC6 Failed to build mbed OS with LTO options Open
    • Export uvision failing with missing context fault handler IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler Open
    • NUCLEO_F767ZI failed on storage tests ---- Tracked by defect IOTSTOR-1032 - NUCLEO_F767ZI failed with features-storage-tests-kvstore-general_tests_phase_1&2 Open
    • CY8CPROTO_62_4343W failed on sleep/deepSleep tests ---- Tracked by defect IOTHAL-560 - CY8CPROTO_062_4343W target failed at sleep/deep sleep test Open
    • NUCLEO_F303 and NUCLEO_F411 failed on client example compile tests

    Test Numbers

    • Greentea test number 1495 (+9 )
    • Unittest number 735 (+0 )

    Toolchain Coverage

    In mbed OS 6.1.0 release. we are testing following toolchains:

    • ARM compiler 6.13
    • GCC_ARM 9-2019-q4-major

    The following toolchains have been dropped from the mbed OS 5.15.0 release

    • ARM compiler 5.06 update 6
    • IAR 8.42

    Targets Coverage

    In mbed OS 6, the compilation test targets scope has not changed, remains all mbed OS enabled targets.

    Greentea test targets have been changed slightly:

    At the time of the mbed-os 6.1.0 release, we run the greentea tests on the following 9 targets:

    • NRF52840_DK
    • DISCO_L457VG_IOT01A
    • K64F
    • K66F
    • NUCLEO_F303RE
    • NUCLEO_F411RE
    • NUCLEO_F429ZI
    • NUCLEO_F767ZI
    • CY8CPROTO_062_4343W

    Coverity

    In mbed OS 6.1.0 release,there are 94 coverity issues.

    Code Coverage

    Test Code Coverage been tracked and information is published on COVERALLS

    Memory Monitoring

    No change from mbed-os-6.0.0

    Contents

    Ports for Upcoming Targets

    13128
    Add support for Embedded Planet target Atlas

    12482
    NUCLEO_G474RE: Add new platform

    Fixes and Changes

    13175
    psa: Remove not needed TF-M ITS KVStore adapter

    13165
    Remove Musca A1 target

    13158
    WIFI: Add NSAPI_PRESENT macro in the WicedInterface

    13149
    Cellular: ALT1250: Store RAT to permament memory

    13148
    M2351: Remove from master

    13144
    Fix esp8266 driver compilation warning

    13143
    STM32H7: correct Ethernet issue in baremetal

    13142
    EMAC: Fix Chrono compliation warnings

    13135
    Restore MTS_MDOT_F411RE bootloader binary

    13130
    Cypress: us_ticker fixes

    13128
    Add support for Embedded Planet target Atlas

    13122
    Cypress: Add target CY8CKIT_064B0S2_4343W, update psoc6pdl, psoc6cm0p

    13119
    Move target implementations of NanostackRfPhy into nanostack-interface

    13118
    Replaced rtos profile with full profile

    13117
    Fix compliation warnings

    13115
    MIMXRT1050_EVK: Add USB support

    13100
    Fix BOOT_HEADER_SIZE allocation in ARM scatter files (#13058)

    13098
    Cellular: Fix CellularContext destructor memory leak

    13095
    STM32: MCU_STM32 supports rtos and bare-metal profiles

    13093
    UNITTESTS: Fix TestPPPInterface::get_interface_name

    13091
    STM32 baremetal support step3/3 (F2/F4)

    13090
    STM: move us_ticker_defines.h include

    13089
    Add a coverage_patterns kwarg to ARM_MICRO

    13086
    STM32F1 update drivers version to CUBE V1.8.0

    13083
    STM32H7 update drivers version to CUBE V1.7.0

    13082
    Nanostack release v12.3.0 to master

    13081
    Reinstate post build hooks for legacy targets

    13077
    Python reference equality changed to value equality

    13073
    STM32H7: FPGA tests support

    13070
    add mbed-os-example-aws to the example list

    13069
    Cellular: Fix unittest for CellularNetwork

    13066
    mergify: add release type

    13064
    nxp: fix vector redefinition from CMSIS

    13060
    BLE: fix direct advertising on Cordio

    13055
    BLE: RF tester commands (and Cordio unhandled command complete)

    13053
    STM32 more information in README file

    13052
    BLE: fix conn params update

    13048
    Allowed to set Wi-SUN certificates in DISCONNECTED state

    13047
    NRF: Migrate ARM Compiler 5 feature re-locate zero initialized variables

    13046
    Use std::chrono based functions

    13045
    CYESKIT_064B0S2_4343W: Remove parentheses from arduino pins

    13044
    NRF: fix implicit declarations

    13043
    NRF serial: Use nrf_uarte_event_t enum to avoid implicit conversion

    13042
    Ensure all overridden virtual functions are marked with override

    13041
    Cordio: put parentheses to correct order of precedence in ternary expressions

    13040
    BLE: Add tx power control to cordio HCI driver

    13039
    BLE: remove limitation in the Cordio to update adv payload

    13037
    BLE: Fix privacy and signing handling in Security Manager

    13036
    STM32_gen_PeripheralPins.py script v1.12

    13035
    Fix capacity check when service data are added to BLE advertising payload

    13034
    ST boards: Fix sleep tracing

    13030
    Fix ThisThread::get_name definition

    13022
    STM32: add weak TargetBSP_Init function

    13019
    Documentation update - MBRBlockDevice::partition type parameter

    13016
    tests-mbed_hal-rtc patch to match IAR compilation issue

    13015
    Force callback non-trivial for IAR

    13014
    DISCO_H747I_CM4 is supporting now hex format

    13013
    Cellular: Fix packet data registration after CREG

    13009
    Add support for the Telit ME310 module

    13002
    Deprecate MBED_STATIC_ASSERT and MBED_STRUCT_STATIC_ASSERT for built-in keyword

    13001
    STM32 baremetal support step2 (L1/L4/WB)

    12998
    Fix Mbed TLS adjust-config.sh script

    12996
    STM32F412 bypass PLL configuration when already done by bootloader

    12992
    STM32 baremetal support step1 (F0/F1/F3/H7/L0)

    12991
    Nuvoton: Support EMAC bus reset as while bus err

    12988
    OS timer uses LPTICKER by default, then USTICKER

    12985
    Update CYSBSYSKIT_01

    12983
    Mutex::unlock - decrement _count inside lock

    12979
    stack_size_unification test: set expected stack sizes from config

    12973
    Cellular: Enable tac info for ALT1250

    12966
    DRAGONFLY_F413RH: Update power on and power off functionality

    12955
    Replace Mbed PSA with TF-M PSA

    12937
    Modify the operation of setting qspi frequency when calling Octo controller

    12905
    Timer: minor revisions

    12900
    Added kv store adaptation to nanostack file interface

    12899
    Added Wi-SUN statistics interface

    12898
    Add new configuration parameters to Wi-SUN network interface and Border Router class

    12824
    Optimise fault handler assembly

    12772
    Add enum class flag definition to platform

    12751
    STM32WB: enable USB Device

    12747
    STM32 MBEDTLS support with HW crypto

    12615
    FPGA UART test cases addition with 7 and 9 bits data length

    12482
    NUCLEO_G474RE: Add new platform

    12471
    Extend AnalogIn API: read_voltage

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.1.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.15.4

    Downloads: zip tar.gz

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

    Summary

    In this latest partner and customer support release from the 5.15 branch, there are a number of important fixes and updates. The highlights are as follows:

    • Nanostack release v12.3.0
      Bug fixes and stability improvements to the Wi-SUN protocol stack.
      802.15.4 RF drivers have been updated

    • Mbed TLS upgraded from 2.21.0 to 2.22.0.
      ** Stand alone version of Mbed Crypto removed and reintegrated into Mbed TLS.

    • A number of Wi-SUN updates

    For full details of these and other fixes in this release please see the contents list below.

    Migration Guide

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

    None

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    No new target support

    Fixes and Changes

    13080
    [mbed-os-5.15] Nanostack release v12.3.0

    13072
    [mbed-os-5.15] Allowed to set Wi-SUN certificates in DISCONNECTED state

    13033
    [Mbed OS 5.15] Upgrade to Mbed TLS 2.22.0

    13031
    Mbed OS 5.15: Warn on unrecognised error

    12986
    M2351: Enable non-PSA minimal secure build (5.15)

    12972
    Alt1250 enable tac info for registration status (mbed 5.15)

    12970
    Nuvoton: Refine more on watchdog HAL (5.15)

    12969
    Nuvoton: Fix watchdog reset failure on meeting Hard Fault (5.15)

    12934
    [mbed-os-5.15]Add possibility to configure Mesh MAC neighbourtable size.

    12933
    Backport Arm C static RAM fix to Mbed OS 5.15 (#12462) (Mbed OS 5.15)

    12895
    Added kv store adaptation to nanostack file interface (Mbed OS 5.15)

    12894
    Nanostack: Add config for Wi-SUN device type (Mbed OS 5.15)

    12893
    Add Wi-SUN statistics interface (Mbed OS 5.15)

    12892
    Add new configuration parameters to Wi-SUN network interface and Border Router class (Mbed OS 5.15)

    12882
    [Mbed OS 5.15] Add getsockopt option to read network property

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.15.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-6.0.0

    Downloads: zip tar.gz

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

    Summary

    The Arm Mbed team is delighted to announce the release of Mbed OS 6, our first major release in almost four years. We have invested heavily to add the features required for today’s IoT devices, and to back those features up with state of the art tooling to simplify development of IoT and embedded products.

    This release includes:

    • Stable and mature APIs, alongside the introduction of the ‘Experimental’ tag to indicate new APIs that are subject to change.
    • Board support for the most popular boards.
    • The ability to support custom hardware.
    • The option of adding a community supported board.
    • Further enhancements to the Bare Metal Profile.
    • Integration with the AWS SDK, with other major cloud integrations to follow.

    There have also been some significant changes to our BLE offering, as summarised below.

    BLE changes

    12674, #12676, #12742, #12730

    We have removed all deprecated APIs in BLE and adjusted other APIs to resolve dependencies on the deprecated ones. We have also removed target-specific stacks that are incompatible with the latest APIs.

    Item Change Migration
    SoftDevice stack Superseded/Removed * For nRF52 targets, please use the Cordio stack, which is already enabled by default.
    nRF51* targets will be unsupported in future Mbed OS releases.
    Maxim stack Removed BLE feature on Maxim targets is disabled until an updated version becomes available.
    Non-SIG services based on third-party standard:
    DFUService
    UARTService
    EddystoneConfigService
    EddystoneService
    URIBeaconConfigService
    iBeacon
    Removed If needed, you can take services from Mbed OS 5.15 and update the code, or implement your own based on specifications.
    Legacy APIs in BLE.h Superseded See functions marked with MBED_DEPRECATED() in Mbed OS 5.15’s BLE.h for migration advice in comments.
    Legacy APIs in GattCharacteristic.h Superseded See functions marked with MBED_DEPRECATED_SINCE() in Mbed OS 5.15’s GattCharacteristic.h for migration advice in comments.
    Legacy APIs in GattClient.h Superseded See functions marked with MBED_DEPRECATED() in Mbed OS 5.15’s GattClient.h for migration advice in comments.
    Legacy APIs in SecurityManager.h Superseded See functions marked with @deprecated in Mbed OS 5.15’s SecurityManager.h. Applications should implement the SecurityManager::EventHandler interface and register it with SecurityManager::setSecurityManagerEventHandler(...).
    Legacy APIs in Gap.h Superseded See functions marked with MBED_DEPRECATED_SINCE() in Mbed OS 5.15’s Gap.h for migration advice in comments.
    Gap::getMinAdvertisingInterval()
    Gap::getMinNonConnectableAdvertisingInterval()
    Gap::getMaxAdvertisingInterval()
    Removed The values are constant and target-agnostic. Use ble::adv_interval_t::min() and ble::adv_interval_t::max().
    Gap::getDeviceName()
    Gap::getAppearance()
    Removed Device Name and Appearance are set by the application, which should already know the values.
    Gap::setDeviceName()
    Gap::setAppearance()
    Superceded Use AdvertisingDataBuilder to add Device Name and Appearance to the payload, then apply the payload with Gap::setAdvertisingPayload().
    Gap::getPreferredConnectionParams()
    Gap::setPreferredConnectionParams()
    Removed (temporarily) We plan to move them to GattServer in the future.
    BLEProtocol::AddressType_t
    BLEProtocol::AddressBytes_t
    Superseded Replaced by
    ble::peer_address_type_t
    ble::own_address_type_t
    ble::address_t
    To decide which ones to use, see the functions you want to call.
    Gap::Whitelist_t
    BLEProtocol::Address_t
    Changed Replaced by ble::whitelist_t where each item on a whitelist is ble::whitelist_t::entry_t.
    This is used by
    Gap::setWhitelist()
    SecurityManager::generateWhitelistFromBondTable().
    Gap::ConnectionParams_t Superseded The latest GAP API requires full-fleged ble::ConnectionParameters.
    ble::central_privay_configuration_t Typo fixed Renamed to ble::central_privacy_configuration_t.

    Supported compilers

    This release has been tested and is known to fully support the following compilers: * ARMC v6.13 * GCC v9

    Other versions of the compilers may not work as expected.

    Migration Guide

    This section lists specific changes in this release that may need special attention.

    DeviceKey Root of Trust generation refactored

    12385

    Summary of changes

    Removed automatic creation of the Root of Trust when DeviceKey::generate_derived_key(...) API is used.
    You must generate or inject the key before the first use of the DeviceKey API.

    Impact of changes

    DeviceKey is not automatically generated anymore. This might impact test application that expect the key to be present, but do not explicitly generate it.

    Migration actions required

    Application developers must be aware that if their device does not have Root of Trust permanently injected, which is usually true in the development phase, they must generate a key before the first use of the DeviceKey API. Two options exist for key generation:

    • Generate a key using TRNG sources by calling DeviceKey::device_generate_root_of_trust()
    • If the device does not have a TRNG available, inject a secure key by calling DeviceKey::device_inject_root_of_trust(...)

    Cellular: Move string_to_pdp_type method to CellularContext

    12214

    Summary of changes

    string_to_pdp_type is only used in CellularContext classes, and having the conversion method in CellularContext means it can also be used to check the non-standard Non-IP PDP type string.

    Impact of changes

    None, if the application uses existing cellular classes. If you have implemented your own CellularContext class, then see Migration actions required below.

    Migration actions required

    Classes deriving from CellularContext must implement a new function:

    virtual const char *get_nonip_context_type_str() = 0;

    This API has already been implemented in AT_CellularContext though, so the current code does not change.

    Blockdevice config changes to make it possible to run littlefs filesystem tests

    12143

    Summary of changes

    Moves BlockDevice configurations used by SystemStorage as BlockDevice defaults. This makes it possible to use the defaults to execute littlefs filesystem tests.

    Adds SPIF/QSPIF/SPIFReduced- and SDBlockDevice specific app configs for making it possible to run the aforementioned tests.

    Thread: remove constructors deprecated in 5.1

    12141

    Summary of changes

    Remove the immediate-start constructors deprecated in Mbed OS 5.1.

    Impact of changes

    Code using the old constructors will no longer compile.

    Migration actions required

    Code using immediate-start Thread constructors must be changed to use the Thread::start method.

    Remove unsupported folder

    12128

    Summary of changes

    Mbed OS has been carrying the unsupported directory for a long time, to give users a form of USB stack. This is no longer needed, since Mbed OS has its own implementation of USB.

    Impact of changes

    As the name suggest the ‘unsupported’ directory was not supported, but as it was there the community was free to use any of the functionality in it. So in theory it is a breaking change, even if the code was never properly supported.

    Migration actions required

    Removed functionality was never supported and its use was not recommended. If you used USB device mode, please port your code to use the supported version from the Drivers directory. If you need any other features please consider contributing them to Mbed.

    Cellular: Refactor cellular variable visibilities

    12123

    Summary of changes

    Cellular: Refactor cellular variable visibilities:
    - Some variables were public despite being used only internally.
    - Refactored variables to the end of class definitions.
    - Removed duplicate _property_array from CellularDevice
    - Changed _impl methods to protected.

    Impact of changes

    This can potentially be a breaking change, but none of the existing Mbed OS cellular targets required any changes.

    Migration actions required

    If you want to use a cellular variable marked as private, inform @ARMmbed/mbed-os-wan and we can review the case.

    ATHandler refactoring

    12122

    Summary of changes

    • ATHandler is part of Cellular’s public API, so we moved it to the /API folder.
    • Some functions and variables are refactored to be private/protected where applicable.
    • Virtual cmd_start() (and destructor) method(s) devirtualised because it was not needed.
    • Unittests updated to reflect changes.

    Impact of changes

    • ATHandler is part of Cellular’s public API, so we moved it to the /API folder.
    • Some functions and variables are refactored to be private/protected where applicable.
    • Virtual cmd_start() (and destructor) method(s) devirtualised because it was not needed.

    Migration actions required

    Visibility of some methods has been changed in ATHandler. This should not cause any issues if they were not used (as they shouldn’t have been).

    If the include path has been used correctly for ATHandler.h there are no cahnges needed.

    ONME-4433 SocketAddress::operator== should also check port

    12120

    Summary of changes

    SocketAddress::operator== did not check the port number. Adding this check can be considered as a breaking change. All greentests and unitests were checked and fixed.

    Expose target_offset and header_offset parameters in targets.json

    12081

    Summary of changes

    The app_offset and header_offset parameters have always been a part of the target configuration parameters. However, they were intercepted by the tools and never exposed to the application. The new FOTA (update client next generation) functionality requires these parameters in the code as well. So this PR adds them to the targets.json file. The only result of this PR is the addition of these two macros into the code.

    Note that the tools already expose the macros APPLICATION_ADDR and HEADER_ADDR having the same values. However, these macros are only available when the application is built with the bootloader. If it isn’t, these macros aren’t available, hence this PR.

    This change is required for new FOTA client.

    Enabling small C library option and deprecating uARM toolchain

    12068

    Summary of changes

    1. In Mbed OS 2-region memory model, ARM Std and Microlib scatter files are common
      more info on https://github.com/ARMmbed/mbed-os/blob/master/docs/design-documents/platform/memory-model/ram_memory_model.md,
      so replaced ARM Std scatter file 1-region memory model with Microlib scatter file 2 region memory model.
    2. Moved the "__aeabi_assert" function from Microlib boot code file to mbed_retarget file so that it can be available for both RTOS Microlib and bare metal to resolve the undefined symbol linker issue.
    3. Copied ARM Microlib boot code into ARM std boot code and guarded with __MICROLIB. This is required in order to build an RTOS application with Microlib.
    4. Added a new target config “supported_c_libs” in targets.json and build tools to check if the selected “default_lib” is supported for the selected toolchain. If not, the build tool will raise an exception.
    5. Added the new test suite for testing the build tool changes for default_lib and supported_c_libs.
    6. PR changes tested with blinky and blinky bare metal examples and greentea bare metal tests run locally.

    Impact of changes

    These changes deprecate the uARM toolchain.

    Migration actions required

    As uARM toolchain is deprecated, you need to redefine a supported_c_libs configuration with “small” for arm toolchain on the target in targets.json to enable Microlib support, for example:

    "supported_c_libs": {
    "arm": ["std", "small"],
    "gcc_arm": ["std", "small"],
    "iar": ["std"]
    }
    

    You also need to change the scatter file to the 2-region memory model see more info.

    Instead of -t uARM, use default_lib with “small” in mbed_app.json configuration for ARMC6 toolchain.

    cmsis: remove arm math

    12055

    Summary of changes

    This file was not needed; should be part of DSP. The functionality is part of the library provided
    by CMSIS.

    I would like to test this, for all devices. This header file should be removed in 6.0.0 as we do not provide DSP library. Thus I set this as Major update.

    Fixes #12054

    Impact of changes

    Applications should use CMSIS DSP package. As the order of includes is not defined in our tools, this might cause an error - hard to tell which CMSIS math header was actually included. The removed math header we used in this code base was an older version.

    Migration actions required

    Use CMSIS DSP release (not part of Mbed OS at the moment) - the header file CMSIS math is included there.

    SharedPtr: add nullptr constructor

    12048

    Summary of changes

    For consistency with std::shared_ptr, and mbed::Callback, and as a
    potential optimisation aid, give SharedPtr a distinct constructor for
    nullptr.

    Impact of changes

    Optimise clearing by adding nullptr overload.

    Migration actions required

    The added nullptr overload means SharedPtr(NULL) or SharedPtr(0) will no longer work; you must use SharedPtr(nullptr) or SharedPtr().

    Add MBED_FALLTHROUGH attribute

    12032

    Summary of changes

    C++17 standardised [[fallthrough]] for switch statements to suppress compiler warnings. Provide access to it, or compiler-specific alternatives.

    Impact of changes

    MBED_FALLTHROUGH attribute added to mbed_toolchain.h - a portable equivalent for C++17’s [[fallthrough]].

    Migration actions required

    None

    NVStore: already deprecated implementation removed

    12017

    Summary of changes

    NVStore: already deprecated implementation removal.

    Impact of changes

    People are advised to use KVStore.

    Migration actions required

    No migration path available.

    Remove deprecated FunctionPointer class

    11997

    Summary of changes

    • Deprecated class FunctionPointer has been removed.

    Impact of changes

    • Any code using FunctionPointer will no longer compile.

    Migration actions required

    • Any remaining FunctionPointer users should switch to Callback.

    CellularBase/AT_CellularBase removal

    11996

    Summary of changes

    Removed CellularBase and AT_CellularBase from cellular stack and updated both code and unittests accordingly. Cellular drivers in Mbed OS have been updated.

    APN lookup and SMS features are now disabled by default.

    Impact of changes

    Earlier cellular device properties were handled in AT_CellularBase class. After this change, they are correctly handled in the AT_CellularDevice class. The properties are always modem specific and must therefore be handled in the AT_CellularDevice class, which is common for all contexts using it.

    CellularBase has been completely removed so those using it must now switch to use CellularInterface instead.
    Disabling SMS will save ~4,5kB and APN lookup about ~2kB

    Migration actions required

    Cellular modem drivers must be updated (done for targets in Mbed OS) by removing references to CellularBase.

    CellularBase must be changed to CellularInterface if still in use. (It was already typedef’ed so no other changes needed)

    If the application needs SMS or APN lookup, they need to be enabled in mbed_app.json
    (cellular.use-apn-lookup: true or cellular.use-sms: true).

    TDBStore refactoring

    11987

    Summary of changes

    TDBStore no longer requires Flash based block device.

    Storage related test improvements and small fixes

    11986

    Summary of changes

    SlicingBlockDevice does no longer accepts both parameters as zero, or size as zero. SlicingBlockDevice(block, 0,0) used to create a block device that took up the whole block device. There is no sense in doing this, and it has most probably been a programming error if used. Therefore, the constructor now does MBED_ASSERT() if both parameters, start and stop point to the same value. Effectively this prevents creating a slice that has size of zero, or takes the full block device.

    Impact of changes

    You can no longer create a SlicingBlockDevice that has size of zero, or take the full size of the underlying block device.

    Migration actions required

    No migration required for code that uses SlicingBlockDevice as intended.

    UnbufferedSerial: Introduce the class to replace RawSerial

    11961

    Summary of changes

    Add the UnbufferedSerial class to provide unbuffered I/O access.

    Use it instead of RawSerial. See documentation section for more details.

    MbedCRC and CRC HAL revisions (6.0 redo)

    11957

    Summary of changes

    The MbedCRC class has been improved and optimised.

    Impact of changes

    We’ve added a global JSON configuration drivers.crc-table-size controlling table usage, and individual uses can be size-optimised via template parameters. However, some changes are backwards-incompatible.

    Migration actions required

    • The special-case handling of POLY_32BIT_REV_ANSI has been removed - the same result can be obtained via POLY_32BIT_ANSI.
    • CRCs smaller than 8 bits now return results in the standard position at the bottom of the register - previously they were shifted with random bits at the bottom.
    • The previous precomputed table for POLY_16BIT_IBM had errors - this has been corrected, but CRC results will be different from the previous software calculation (but will match any hardware calculation)

    minimal-printf: Enable using a target configuration parameter

    11891

    Summary of changes

    Add ability to enable Minimal printf using configuration parameter.

    A new configuration parameter target.printf_lib has been added to enable it.

    Impact of changes

    Convenient and familiar way to configure Mbed OS.

    Remove deprecated Callback methods

    11880

    Summary of changes

    Deprecated methods in Callback removed.

    Impact of changes

    Some code that was generating deprecation warnings will no longer compile at all.

    Migration actions required

    • Replace construction using Callback(arg, func) with the reversed Callback(func, arg)
    • Replace use of attach with simple assignment, such as callback = func; or callback = { func, arg };

    Add Getaddrinfo interface for multiple DNS adresses

    11653

    Summary of changes

    Added getaddrinfo interface for multiple DNS addresses. It uses the existing nsapi_dns_query_multiple functions.

    Sync and async versions added to the interface, so dependent libraries need to be rebuilt.

    Impact of changes

    New members are added to the network interface:
    -getaddrinfo
    -getaddrinfo_async
    Both of them allocate space for results.

    The function gethostbyname is unchanged, but the gethostbyname_async/getaddrinfo_async callback result parameter now contains the number of DNS records found instead of NSAPI_ERROR_OK =0, so a definition of a new callback for getaddrinfo_async is not needed.

    Test cases for sync/async added added to DNS test folder.

    SYNCHRONOUS_DNS_MULTI_IP
    ASYNCHRONOUS_DNS_MULTI_IP

    Add an exception for ARMC5 toolchain build

    12400

    Summary of changes

    The Arm Compiler 5 is no longer supported, so we removed the deprecate warning and added the exception in the build tool to stop building with ARM compiler 5.

    Impact of changes

    With these changes, Arm compiler 5 build fails.

    Migration actions required

    Upgrade the environment to use Arm Compiler 6 see documentation

    BLE driver set random static address

    12321

    Summary of changes

    This PR adds the function set_random_address to the HCIDriver class. It allows drivers writer to set the Random Static Address of the controller without using the deprecated API Gap:: setAddress .

    This PR supersedes #12235 .

    Cellular: Remove support for multiple ATHandlers

    12305

    Summary of changes

    This commit removes multi ATHandler support from cellular. This has not been used and causes unnecessary complexity and memory consumption.

    Memory statistics of mbed-os-example-cellular with NRF52840_DK + BG96:
    GCC:
    Total Static RAM memory (data + bss): 29360(+296) bytes
    Total Flash memory (text + data): 130660(-832) bytes

    ARM:
    Total Static RAM memory (data + bss): 261554(+8) bytes
    Total Flash memory (text + data): 127573(-1193) bytes

    IAR:
    Total Static RAM memory (data + bss): 25479(+296) bytes
    Total Flash memory (text + data): 102418(-527) bytes

    The RAM increase is because ATHandler is no longer created with a new -operator, and is instead a member of AT_CellularDevice, so the image tool is able to count it. Actual total RAM consumption has decreased thanks to removing the variables.

    Impact of changes

    Major changes:
    - Dependency to FileHandle removed from base classes.
    - AT_CellularDevice owns the default FileHandle and shares it with AT -classes.
    - Controlling hang-up -detection moved as CellularContext::configure_hup(). It can no longer be configured via CellularDevice.

    Migration actions required

    • Enabling hang-up detection is now configured using CellularContext::configure_hup(). CellularDevice::enable_hup() and context creation with BufferedSerial handle removed. Cellular will now automatically enable and disable HUP when switching between AT and PPP mode.
    • CellularDevice::create_context() no longer takes FileHandle as parameter
    • CellularDevice::get_file_handle() removed. ATHandler::get_file_handle() can be used instead.

    Cellular: Remove API’s empty default implemetations

    12293

    Summary of changes

    Cleanup the Cellular API by removing empty default implementations and making them pure virtual.

    Targeted for release-version 6.0.0.

    Impact of changes

    • Classes inheriting CellularDevicewill have to have implementation for the new pure virtual methods:
    • clear()
    • get_context_list()

    • Classes inheriting CellularContextdo not have to have implementation for:
    • get_netmask()
    • get_gateway()


      if they do not differ from the NetworkInterface’s default implemetations:
    nsapi_error_t NetworkInterface::get_netmask(SocketAddress *)
    {
    return NSAPI_ERROR_UNSUPPORTED;
    }
    
    nsapi_error_t NetworkInterface::get_gateway(SocketAddress *)
    {
    return NSAPI_ERROR_UNSUPPORTED;
    }
    

    Migration actions required

    See Impact of changes section.

    Rename “default_lib” to “c_lib”.

    12278

    Summary of changes

    • Rename target.default_lib to target.c_lib as it is more meaningful. These changes are done only for MBED OS 5 targets and in the build tool.

    Impact of changes

    With these changes, target.default_lib attribute is no longer being supported.

    Migration actions required

    • The target.c_lib is the new attribute used for C library selection. The choice remains unchanged("std" or "small")

    unittests: disable coverage report filtering

    12273

    Summary of changes

    Disable coverage report filtering because of poor results.

    e.g. mbed test --unittests -r Socket --coverage htmlg
    This command will run all unittests with names containing Socket and then create coverage report with the same scheme, filtering all source files with names containing Socket.

    The problem is that coverage report will be correct only when filtered test name will be the same as corresponding source file name (to be covered) - the same (-r) pattern is used to filter both test names and source file names used in coverage report

    Due to described problems it was decided to disable coverage report filtering.
    -r will only filter test names and pattern won’t be passed to coverage report generator.

    storage_abstraction: deprecated since Mbed OS 5.5 and now removed

    12253

    Summary of changes

    Removes deprecated API’s under hal/storage_abstraction and the folder itself. Only target which had implemented the functionality was K64F and the implementation gets removed with this PR.

    Impact of changes

    Removes deprecated storage_abstraction API.

    Migration actions required

    Migration not possible. Developers who were relying on this API should study Mbed OS Storage documentation.

    Cellular: Remove friend definitions from cellular state machine

    12251

    Summary of changes

    Instead of defining which classes can access state machine, CellularStateMachine
    class is now “a normal” CPP class with public API.

    Impact of changes

    This is potentially a breaking change but as CellularStateMachine is only used internally there shouldn’t be any impact.

    Migration actions required

    None, internal change

    Cellular: Remove deprecated CellularDevice::stop()

    12249

    Summary of changes

    Cellular: Remove deprecated CellularDevice::stop()

    Impact of changes

    Removed method CellularDevice::stop()

    Migration actions required

    CellularDevice::shutdown() should be used instead.

    ESP8266: Add built-in hostname resolution handling (disabled by default)

    12234

    Summary of changes

    Fixes https://github.com/ARMmbed/mbed-os/issues/11982 (some routers fail to work with the UDPSocket-approach, but are proved to work when ESP uses its embedded hostname resolution AT command).

    The feature is disabled by default and can be enabled in mbed_app.json with "esp8266.built-in-dns": true. When enabled then the synchronous hostname resolution will use the ESP’s CIPDOMAIN AT command, but asynchronous resolution will keep on using the UDPSockets as before (no point rewriting the nsapi_dns). Also caching does not work.

    I tested with the netsocket-dns testsuite. Obviously caching tests often fail, but if lucky I can get 15/16 passes.

    @zhiyong80, please verify if this works with your router.

    Impact of changes

    None, until user enables the esp8266.built-in-dns option.

    Add BufferedSerial class to replace UARTSerial

    12207

    Summary of changes

    Implement the BufferedSerial class to replace UARTSerial. BufferedSerial is UARTSerial renamed to convey the original purpose of the class. Also remove usage of UARTSerial in Mbed OS Core diretories

    Update Mbed TLS and Mbed Crypto to latest as of 2019-12-20

    12150

    Summary of changes

    Upgrade to Mbed TLS 2.20.0d1 and Mbed Crypto 3.0.0d0.

    Impact of changes

    What behavior changes are being made?
    For security and NIST SP 800-90A compliance reasons, CTR DRBG now grabs a nonce from the entropy source if needed to provide the maximum security strength. A previously unused-before-seeding member of the CTR DRBG context, mbedtls_ctr_drbg_context::reseed_counter, is used to hold the number of bytes the user has requested to include from the nonce via mbedtls_ctr_drbg_set_nonce_len(), or -1 to indicate that the entropy nonce length was not set explicitly. This means applications that were depending on a reseed_counter value of 0 to mean “not yet seeded” will need to instead handle errors from calls to mbedtls_ctr_drbg_seed().

    What is being deprecated?
    A few PSA Crypto asymmetric cryptography functions and macros, key usage definitions, and error code definitions have been renamed to better reflect their operation and to improve readability.

    Why is this being deprecated?
    The PSA Crypto API continues to develop as it heads towards its 1.0 release. Mbed Crypto 3.0.0d0 implements more of PSA Crypto 1.0b3 than was implemented in Mbed Crypto 2.x, and this brings along some API deprecations.

    Mbed Crypto includes backwards compatibility macros (by way of psa/crypto_compat.h) to provide source-level backwards compatibility, although it’s recommended to stop using the deprecated APIs as soon as you are able to.

    Migration actions required

    To avoid using deprecated APIs, users of PSA Crypto should update to the new version of API.

    Old New
    psa_asymmetric_sign() psa_sign_hash()
    psa_asymmetric_verify() psa_verify_hash()
    PSA_ASYMMETRIC_SIGNATURE_MAX_SIZE() PSA_SIGNATURE_MAX_SIZE()
    PSA_ASYMMETRIC_SIGN_OUTPUT_SIZE() PSA_SIGN_OUTPUT_SIZE()
    PSA_KEY_USAGE_SIGN PSA_KEY_USAGE_SIGN_HASH
    PSA_KEY_USAGE_VERIFY PSA_KEY_USAGE_VERIFY_HASH
    PSA_ERROR_UNKNOWN_ERROR PSA_ERROR_GENERIC_ERROR
    PSA_ERROR_OCCUPIED_SLOT PSA_ERROR_ALREADY_EXISTS
    PSA_ERROR_EMPTY_SLOT PSA_ERROR_DOES_NOT_EXIST
    PSA_ERROR_INSUFFICIENT_CAPACITY PSA_ERROR_INSUFFICIENT_DATA
    PSA_ERROR_TAMPERING_DETECTED PSA_ERROR_CORRUPTION_DETECTED

    Thread: remove methods deprecated in 5.10

    12142

    Summary of changes

    Remove various Thread methods that were deprecated in Mbed OS 5.10

    Impact of changes

    Code using the old methods will no longer compile

    Migration actions required

    Uses of the following removed Thread methods need to be replaced: * Thread::signal_set -> Thread::flags_set * Thread::signal_clr -> ThisThread::flags_clear * Thread::signal_wait -> ThisThread::flags_wait_xxx * Thread::wait -> ThisThread::sleep_for * Thread::wait_until -> ThisThread::sleep_until * Thread::yield -> ThisThread::yield * Thread::gettid -> Thread::get_id or ThisThread::get_id * Thread::attach_idle_hook -> Kernel::attach_idle_hook * Thread::attach_terminate_hook -> Kernel::attach_thread_terminate_hook

    HAL: Add a get_capabilities() function to ResetReason API

    12139

    Summary of changes

    Add the hal_reset_reason_get_capabilities() function to the ResetReason HAL API to skip the unsupported reason values during HAL & driver tests.

    Fixes #11792.

    Updated tests: * tests-mbed_hal-reset_reason, * tests-mbed_drivers-reset_reason.

    Impact of changes

    Extend the ResetReason HAL API with the hal_reset_reason_get_capabilities() function. Unsupported reason values are skipped during the greentea tests.

    Migration actions required

    A default, weak implementation is provided. Every target has to override this weak implementation to provide the correct reset_reason_capabilities_t.

    GCC: remove -fno-delete-null-pointer-checks

    12023

    Summary of changes

    For GCC we’re being cautious by passing the -fno-delete-null-pointer-checks. This option prevents some optimisation opportunities, so removing it can reduce code size.

    One particular optimisation loss occurs in Callback where a test similar to this occurs:

    extern void myfunc();

    inline void foo(void (*fnptr)())
    {
    if (fnptr) {
    do A;
    } else {
    do B;
    }
    };

    foo(myfunc);

    With -fno-delete-null-pointer-checks, the compiler does not assume that &myfunc is non-null, and inserts the “null check” - seeing if the address is 0. But performing that test of the address is incorrect anyway - if myfunc actually could be at address 0, we’d still want to doA.

    Anyway, we do not have an equivalent option enabled for either Clang or IAR, and we have performed clean-ups avoiding issues with apparently-null vector tables in Clang already, for example #10534.

    Therefore it should(TM) be safe to remove the option for GCC. We do not have general data or code at address 0, only vectors are likely to be there, so it does not make sense to be globally restricting code generation for that.

    Impact of changes

    Will reduce image size. Particularly when Callback is in use. Increased optimisation may require code adjustments, exposing undefined behaviour

    Migration actions required

    If code fails, address undefined behaviour. Eg this null check may now be removed:

    int foo(int *ptr)
    {
    int a = ptr[0];
    if (!ptr) { // may be optimised out - compiler can assume non-null because already accessed
    return -1;
    }
    return bar(a);
    }

    Correct to:

    int foo(int *ptr)
    {
    if (!ptr) {
    return -1;
    }
    int a = ptr[0];
    return bar(a);
    }

    ARMC6: Add a build profile extension with the link-time optimizer enabled

    11874

    Summary of changes

    Added an lto build profile extension for ARMC6 toolchain. * added -flto to common flags, * added --lto & --lto_level=Oz to ld flags.

    Results

    Product: ARM Compiler 6.11 Professional Component: ARM Compiler 6.11 Tool: armclang [5d3b4200]

    mbed-os-example-blinky@mbed-os-5.14.1

    Mbed OS branch commit SHA RAM (data + bss) Flash (text + data) build time details
    mbed-os-5.14.1 679d248 206047 39168 739.53 blinky-679d248.txt
    armc6_build-enable_lto_for_release c6a655f 205848 36601 610.81 blinky-c6a655f.txt

    mbed-cloud-client-example@4.0.0

    Mbed OS branch commit SHA RAM (data + bss) Flash (text + data) build time details
    mbed-os-5.14.1 679d248 252457 361038 828.68 ccexample-679d248.txt
    armc6_build-enable_lto_for_release c6a655f 251580 329505 835.21 ccexample-c6a655f.txt
    Build commands used to produce the above results

    mbed-os-example-blinky

    cd $(mktemp -d)
    git clone git@github.com:ARMmbed/mbed-os-example-blinky.git
    cd mbed-os-example-blinky/
    git checkout mbed-os-5.14.1
    git clean -dxff && git reset --hard
    
    # Define Mbed OS rev
    # 1. mbed-os-5.14.1
    echo 'https://github.com/ARMmbed/mbed-os/#679d24833acf0a0b5b0d528576bb37c70863bc4e' > mbed-os.lib
    # 2. LTO branch on top of mbed-os-5.14.1
    echo 'https://github.com/fkjagodzinski/mbed-os/#d7df3e673144232d3e162de19ec13f0472d725c6' > mbed-os.lib
    
    mbed deploy
    cd mbed-os/ && git log --oneline -1 && cd ..
    time -p mbed compile -t ARM -m K64F --profile mbed-os/tools/profiles/release.json
    
    # More details
    mbed compile -t ARM -m K64F --profile mbed-os/tools/profiles/release.json --stats-depth=100
    

    mbed-cloud-client-example

    cd $(mktemp -d)
    git clone git@github.com:ARMmbed/mbed-cloud-client-example.git
    cd mbed-cloud-client-example/
    git checkout 4.0.0
    git clean -dxff && git reset --hard
    cp ../mbed_cloud_dev_credentials.c .
    
    # Define Mbed OS rev
    # 1. mbed-os-5.14.1
    echo 'https://github.com/ARMmbed/mbed-os/#679d24833acf0a0b5b0d528576bb37c70863bc4e' > mbed-os.lib
    # 2. LTO branch on top of mbed-os-5.14.1
    echo 'https://github.com/fkjagodzinski/mbed-os/#d7df3e673144232d3e162de19ec13f0472d725c6' > mbed-os.lib
    
    mbed deploy
    cd mbed-os/ && git log --oneline -1 && cd ..
    time -p mbed compile -t ARM -m K64F --profile mbed-os/tools/profiles/release.json
    
    # More details
    mbed compile -t ARM -m K64F --profile mbed-os/tools/profiles/release.json --stats-depth=100
    

    Remove RtosTimer deprecated class

    12601

    Summary of changes

    Removed RtosTimer deprecated class.

    Impact of changes

    Breaking change: RtosTimer has been deprecated since Mbed OS 5.2 and it is removed now.

    Migration actions required

    Use EverntQueue as it provides similar functionality with the additional features to handle deferring other events to multiple contexts.

    Change Mutex lock and unlock APIs return value to void

    12598

    Summary of changes

    Modified Mutex lock() and unlock() APIs to returnvoid as return status value deprecated.

    Impact of changes

    Breaking change: Mutex lock() and unlock() methods return status value have been deprecated since Mbed OS 5.9, so changed the return value to void.

    Migration actions required

    Use Mutex void lock(), void unlock() methods.

    Remove Mutex deprecated API

    12596

    Summary of changes

    Removed Mutex deprecated API.

    Impact of changes

    Breaking change: Mutex lock(uint32_t millisec) method have been deprecated since Mbed OS 5.10 and its removed now.

    Migration actions required

    Use Mutex lock, trylock, trylock_for methods.

    crypto: Update to Mbed Crypto 3.0.1

    12560

    Summary of changes

    Update the version of Mbed Crypto provided by Mbed OS to version 3.0.1.

    For details of this update see the documentation here:
    https://github.com/ARMmbed/mbed-crypto/releases/tag/mbedcrypto-3.0.1

    Remove FileSystemLike deprecated APIs

    12554

    Summary of changes

    Removed FileSystemLike deprecated APIs.

    Impact of changes

    Breaking change: FileSystemLike opendir and open methods have been deprecated since Mbed OS 5.5 and they are removed now.

    Migration actions required

    Use open(FileHandle **file, const char *filename, int flags) and open(DirHandle **dir, const char *path) methods.

    Remove DirHandle deprecated APIs

    12553

    Summary of changes

    Removed DirHandle deprecated APIs.

    Impact of changes

    Breaking change: DirHandle closedir, readdir, rewinddir, telldir and seekdir methods have been deprecated since Mbed OS 5.4 and they are removed now.

    Migration actions required

    Use DirHandle close, read, rewind, tell and seek methods.

    Remove mbed power management deprecated API

    12551

    Summary of changes

    Removed mbed power management deprecated API.

    Impact of changes

    Breaking change: deepsleep API has been deprecated since Mbed OS 5.6 and it is removed now.

    Migration actions required

    Use sleep()

    Remove mbed interface deprecated API

    12550

    Summary of changes

    Removed mbed interface deprecated API.

    Impact of changes

    Breaking change: mbed_error_vfprintf API has been deprecated since Mbed OS 5.11 and it is removed now.

    Migration actions required

    Use mbed_error_vprintf().

    Remove FileHandle deprecated APIs

    12549

    Summary of changes

    Removed FileHandle deprecated APIs.

    Impact of changes

    Breaking change: FileHandle lseek, fsync, and flen methods have been deprecated since Mbed OS 5.4 and they are removed now.

    Migration actions required

    Use FileHandle seek(), sync(), and size() methods.

    Remove the deprecated CallChain class and its APIs

    12534

    Summary of changes

    CallChain is never intended for public use and its no longer used in Mbed OS, therefore, it is removed.

    Impact of changes

    Breaking change: CallChain class and its methods have been deprecated since Mbed OS 5.6 and they are removed now.

    Migration actions required

    None

    Remove CriticalSectionLock deprecated APIs

    12533

    Summary of changes

    Removed the CriticalSectionLock deprecated APIs.

    Impact of changes

    Breaking change: CriticalSectionLock lock and unlock methods have been deprecated since Mbed OS 5.8 and they are removed now.

    Migration actions required

    Use the static methods CriticalSectionLock::enable() and CriticalSectionLock::disable().

    Remove the deprecated ATCmdParser APIs.

    12527

    Summary of changes

    Removed ATCmdParser deprecated APIs.

    Impact of changes

    Breaking change: ATCmdParser setTimeout, setDelimiter, and dubugOn methods have been deprecated since Mbed OS 5.5.0 and they are removed now.

    Migration actions required

    Use set_timeout(), set_delimiter(), and debug_on()

    Remove the deprecated Ticker APIs

    12525

    Summary of changes

    • Removed the Ticker deprecated APIs
    • Updated the async greentea test to use attach with callback API

    Impact of changes

    Breaking change: Ticker attach and attach_us methods with cv-qualifiers have been deprecated since Mbed OS 5.1 and they are removed now.

    Migration actions required

    Use attach(callback(obj, method), t) and attach_us(callback(obj, method), t)

    Remove InterruptIn deprecated APIs

    12518

    Summary of changes

    Removed InterruptIn deprecated APIs.

    Impact of changes

    Breaking change: InterruptIn rise and fall methods with cv-qualifiers have been deprecated since Mbed OS 5.1 and they are removed now.

    Migration actions required

    Use rise(callback(obj, method)) and fall(callback(obj, method))

    Remove the deprecated the InterruptManager APIs

    12501

    Summary of changes

    Removed InterruptManager class as it was deprecated since Mbed 5.6.

    Impact of changes

    All users of InterruptManager class will need to modify their application.

    Migration actions required

    The interrupt handlers need to be attached directly using specific drivers, for example, Application handler can use one of the Ticker/Timer/Timeout classes for clock-related interrupts.

    Remove the deprecated ethernet APIs

    12500

    Summary of changes

    The Ethernet is no longer supported, so removed header and cpp files and its dependency.

    Impact of changes

    Breaking change: The Ethernet object is removed as it has been deprecated in the previous feature releases.

    Migration actions required

    Use NetworkInterface instead, for more details have a look at our documentation here

    C++11-ify virtualisation in lwIP classes

    12489

    Summary of changes

    Use override and final where appropriate, and eliminate unnecessary
    virtual.

    Fix up get_ip_address following string-based API removal (#11942).

    Some other C++11 simplifications.

    Marking as breaking change as it fixes up a previous breaking change.

    Impact of changes

    No new impact.

    Migration actions required

    No new migrations

    C++11-ify virtualisation in netsocket

    12487

    Summary of changes

    Use override and final where appropriate, and eliminate unnecessary
    virtual.

    Fixes some mismatches in string-based API removal (#11942)

    Some other C++11 simplifications.

    Reduces code size.

    Marking as breaking change because it fixes up some work in a previous breaking change.

    Impact of changes

    No new implications.

    Migration actions required

    No new actions.

    HAL: Add a get_capabilities() function to GPIO API

    12477

    Summary of changes

    Add the gpio_get_capabilities() function to the GPIO HAL API to skip the unsupported input pull modes when testing with the FPGA-CI-test-shield.

    Updated tests: * tests-mbed_hal_fpga_ci_test_shield-gpio.

    Impact of changes

    Extend the GPIO HAL API with the gpio_get_capabilities() function. Unsupported input pull modes are skipped during the greentea tests.

    Migration actions required

    A default, weak implementation is provided. Every target has to override this weak implementation to provide the correct gpio_capabilities_t.

    Proposal to remove SPIFReducedBlockDevice

    12475

    Summary of changes

    The blockdevice is not needed by the bootloader. Removes SPIFReducedBlockDevice fully.

    Impact of changes

    Applications relying to SPIFReducedBlockDevice are forced to switch to SPIFBlockDevice. This comes at a cost of ROM and RAM usage.

    Migration actions required

    Applications need to switch on SPIFBlockDevice

    Add Eight-Bit-Addressing mode to I2CEEBlockDevice.

    12446

    Summary of changes

    When dealing with EEPROMs without a 16 bit adressing, the current
    implementation does not work, as it writes a 16 bit address to the chip.
    This may cause undefined behaviour.
    This change adds a new constructor argument to enable this new eight-bit
    mode. It defaults to false to not break existing code.
    This constructor argument should actually never be necessary to manually
    set, except when dealing with cheap devices.

    An example for such a device is the Hua Hong NEC K24C02. Datasheet.

    Impact of changes

    Added a new optional argument at the end of all existing constructors.

    Migration actions required

    None, as the new constructor argument is optional and at the end.
    The default value does not change functionality in existing code.

    Remove the deprecated CAN APIs.

    12420

    Summary of changes

    Removed CAN deprecated APIs.

    Impact of changes

    With these changes, CAN attach APIs with cv-qualifiers sources are removed and this is the breaking changes for the user

    Migration actions required

    Use attach(callback(obj, method), type)

    Enable minimal-printf by default for all builds

    12233

    Summary of changes

    This PR enables minimal-printf library for all builds. That means that all calls to printf family (including snprintf) will be handled by the minimal-printf library. Main reason for the change are substantial ROM savings that can reach up to 20k. The below table shows result for simple RTOS blinky example in two variants (explicitly calling printf and without) for two boards and three profiles:

    Screenshot 2020-01-09 at 18 49 11

    Impact of changes

    Minimal-printf library supports most of the basic usecases:

    * %d: signed integer [h, hh, (none), l, ll, z, j, t].
    * %i: signed integer [h, hh, (none), l, ll, z, j, t].
    * %u: unsigned integer [h, hh, (none), l, ll, z, j, t].
    * %x: unsigned integer [h, hh, (none), l, ll, z, j, t], printed as hexadecimal number (e.g., ff).
    * %X: unsigned integer [h, hh, (none), l, ll, z, j, t], printed as hexadecimal number (e.g., FF).
    * %f: floating point (enabled by default).
    * %F: floating point (enabled by default, treated as %f).
    * %g: floating point (enabled by default, treated as %f).
    * %G: floating point (enabled by default, treated as %f).
    * %c: character.
    * %s: string.
    * %p: pointer (e.g. 0x00123456).
    

    If your application requires more advanced functionality you’ll have to revert to using standard library version.

    Migration actions required

    If your application requires advance features of printf family calls, you’ll either simplify it or switch to the standard C library version. To do so modify your application configuration in mbed_app.json file to override the parameter target.printf_lib with the value std as shown below:

    "target_overrides": {
    "*": {
    "target.printf_lib": "std"
    }
    }
    

    IPCore String-based API removal

    11942

    Summary of changes

    Remove the deprecated string-based APIs. This is a breaking change, targeted for mbed-os-6.0.
    The APIs were deperecated in mbed-os-5.15, see https://github.com/ARMmbed/mbed-os/pull/11914. Their internal usage was given up in https://github.com/ARMmbed/mbed-os/pull/11941.

    The following API functions are being removed:

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

    Impact of changes

    Applications using the old APIs will not compile.

    Migration actions required

    Users are expected to use their SocketAddress-based counterparts and explicitly call gethostbyname() if DNS address resolution is needed.

    GCC: Add a build profile extension with the link-time optimizer enabled

    11856

    Summary of changes

    Add a build profile extension with the link-time optimizer enabled for GCC_ARM toolchain.

    Impact of changes

    Migration actions required

    • The minimal required version of the GCC_ARM is now the GNU Arm Embedded Toolchain Version 9-2019-q4-major. Earlier GCC_ARMversions can cause various issues when the -flto flag is used, e.g. a platform specific error during the final link stage on Windows hosts with GCC8.

    • The noinline attribute has to be used for every function that must be placed into a specific section (specified with a section(".section_name") attribute). In general, when a function is considered for inlining, the section attribute is always ignored. However, with the link-time optimizer enabled, the chances for inlining are much higher because the inliner works across multiple translation units. As a result, the output sections’ sizes change compared to a non-lto build. This may lead to a section ".section_name" will not fit in region "region_name" type errors.

    • The common flags defined for the GCC_ARM toolchain are now appended to the ld flags during a mbed-cli build. Previously, the common flags were appended only to asm, c and cxx flags. Having the same flags for the compiler and the linker is required when using the link-time optimizer (which is the case for the lto build profile extension). Any options unrecognized by the linker should be moved from common to asm, c or cxx.

    Correct Timeout rescheduling

    12941

    Summary of changes

    Chrono changes “optimised” Timeout::handler in a way that broke users who rescheduled the timeout during their attached callback.

    Attempted optimisation is less necessary now that platform.callback-nontrivial is set to false by default - that setting reduces overhead of copying the Callback to almost nothing.

    Fixes #12940.

    Impact of changes

    Migration actions required

    Correct core RTOS sleep routine timing

    12938

    Summary of changes

    Chrono conversions inadvertantly changed the core timed sleep routine used by the RTOS idle to use OsTimer::update_and_get_tick() instead of OsTimer::get_tick().

    Correct this, and expand/clarify documentation and naming to try to prevent recurrence.

    Another minor fix observed while inspecting code - OsClock can’t just use milliseconds, it should match the period of OsTimer, which theoretically can be different.

    Fixes #12920.

    Remove unsupported targets

    12935

    Summary of changes

    This is another of a series of PRs (others https://github.com/ARMmbed/mbed-os/pull/12775, https://github.com/ARMmbed/mbed-os/pull/12810, https://github.com/ARMmbed/mbed-os/pull/12864) to remove targets that are not supported or retired as explained in recent blog post.

    There are individual commits to remove targets from targets.json and files/folders for the corresponding targets.

    Impact of changes

    The following targets are being removed:

    • NXP: KL82Z (wasn’t removed correctly here https://github.com/ARMmbed/mbed-os/pull/12864)
    • Advantech ADV_WISE_1510 (renamed)
    • Ublox (all)
    • ARM_IOTSS_BEID

    Migration actions required

    • The targets listed above continue to be available in the 5.15 branch.

    Convert newlines on all terminal (tty) devices by default

    12889

    Summary of changes

    Applications can reduce their ROM usage by replacing
    “\r\n” by “\n”.

    Impact of changes

    Breaks compatibility with applications built with Mbed 2.

    Migration actions required

    Update to the latest version of Mbed OS (possibly using the bare metal profile for ultra-constrained devices).

    Bare metal profile: USB class device support

    12873

    Summary of changes

    USBCDC_ECM class device uses RTOS thread APIs, so added MBED_CONF_RTOS_PRESENT conditional check to disable that class device in bare metal profile.

    Impact of changes

    With these changes, except USBCDC_ECM, all the below list of USB class devices can build and works in bare metal profile.
    - USBAudio
    - USBHID
    - USBKeyboard
    - USBMIDI
    - USBMouse
    - USBMouseKeyboard
    - USBMSD
    - USBSerial

    Migration actions required

    None.

    Remove unsupported targets

    12864

    Summary of changes

    This is the third of a series of PRs (others https://github.com/ARMmbed/mbed-os/pull/12775, https://github.com/ARMmbed/mbed-os/pull/12810) to remove targets that are not supported or retired as explained in recent blog post.

    There are individual commits to remove targets from targets.json and files/folders for the corresponding targets.

    Impact of changes

    The following targets are being removed:

    • Delta: DELTA_DFBM_NQ620, DELTA_DFCM_NNN50, DELTA_DFCM_NNN40
    • NXP: LPC4088, LPC1124, LPC1347, LPC1769, LPC1549, XBED_1768
    • NXP: LPC810, LPC1800, LPC4330, LPC4337, LPC11U37H_401
    • NXP: KL26Z, KW24D, KL20D50, KL82Z, KL05Z
    • Silabs EFM32LG, EFM32WG, EFM32HG, EFM32ZG, EFM32PG, EFM32PG12, EFR32MG1
    • Advantech MTB_ADV_WISE_1570, 1510 (renamed)
    • WALLBOT_BLE, NRF51_DONGLE, NRF51822_Y5_MBUG
    • Maxim: MAXWSNENV, MAX32625NEXPAQ
    • Multitech: MTS_MDOT_F405RG, MTS_GAMBIT
    • Onsemi: NCS36510
    • Switch Science: HRM1017, TY51822R3, SSCI824 (PR https://github.com/ARMmbed/mbed-os/pull/12697)
    • Ublox EVK_NINA_B1, EVA_NINA, HI2110
    • Other: RBLAB, SDT51822, RAPIDIOT, MTM_MTCONNECT04S

    Migration actions required

    • The targets listed above continue to be available in the 5.15 branch.

    ARCH_PRO: Remove uARM tooolchain support

    12853

    Summary of changes

    • Update scatter file for the ARM toolchain to use 2 region memory model.
      The scatter file changes affect the following boards:
    • LPC1768, ARCH_PRO, UBLOX_C027, XBED_LPC1768 (LPC1768.sct)
    • Remove the TOOLCHAIN_ARM_MICRO directory.
    • Remove release_version as not necessary and as the target can also run
      Mbed OS 6.
    • Remove uARM toolchain in the list of supported toolchains for the target.
    • Indicate that the target supports the small ARM toolchain C library.

    Impact of changes

    It is no longer possible to use the uARM toolchain to build binaries for the ARCH_PRO board.

    Migration actions required

    Set the "target.c_lib" configuration option to "small" to build binaries using Microlib with the ARM toolchain.

    Allow Devicekey::generate_root_of_trust() to define key size.

    12823

    Summary of changes

    Allow Devicekey::generate_root_of_trust() to define key size.

    By default, generate 16 byte keys, to be compatible with bootloader.
    But allow user to generate 32 byte keys as well.

    This fixes #12821

    Impact of changes

    Default key, generated by Devicekey::generate_root_of_trust() is now 16 bytes,
    instead of 32 bytes.

    Migration actions required

    If you want to generate 32 byte keys with Devicekey::generate_root_of_trust(),
    you need to explicitly supply key size as a parameter.

    Remove deprecated Platform header files

    12811

    Summary of changes

    Remove the deprecated header files as part of the Mbed 6 cleanup.

    Impact of changes

    Breaking change: Applications that include the removed files will no longer successfully build.

    Migration actions required

    Include the header files recommended in each removed header file:

    platform/critical.h -> platform/mbed_critical.h
    platform/mbed_sleep.h -> platform/platform/mbed_power_mgmt.h
    platform/rtc_time.h -> platform/mbed_rtc_time.h
    platform/semihost_api.h -> platform/mbed_semihost_api.h
    platform/sleep.h -> platform/mbed_power_mgmt.h
    platform/toolchain.h -> platform/mbed_toolchain.h
    platform/wait_api.h -> platform/mbed_wait_api.h

    Remove unsupported targets

    12810

    Summary of changes

    This is the second of a series of PRs (first https://github.com/ARMmbed/mbed-os/pull/12775) to remove targets that are not supported or retired as explained in recent blog post.

    There are individual commits to remove targets from targets.json and files/folders for the corresponding targets.

    Impact of changes

    The following targets are being removed:

    • MTBs (most)
    • nRF51/52
    • Ublox NINA B1
    • LAIRD_BL600, BL652, BL654
    • OSHCHIP
    • ACONNO_ACN52832
    • MURATA_WSM_BL241
    • LPC11u (most)
    • Misc unsupported

    Migration actions required

    • The targets listed above continue to be available in the 5.15 branch.

    Seeed: Removing unsupported Seeed targets for OS 6

    12792

    Summary of changes

    Removing targets: Seeed Arch Link, Seeed Arch-RO359B, Seeed Arch BLE, Seeed Tiny BLE, Seeed Arch GPRS V2,Seeed Xadow M0

    Impact of changes

    These targets will no longer be supported.

    LittleFSv2: Bring in v2.2

    12783

    Summary of changes

    Introduces LittleFSv2.2 developed by @geky. Mbed OS adaption (LittleFSv1 -> LittleFSv2) is based on work done by @pilotak. The only thing the undersigned has done was to create this PR.

    Impact of changes

    No additional impact

    Migration actions required

    Brings in LittleFSv2 which will coexist with LittleFSv1 already found from Mbed OS. If you already a v1 filesystem you might try converting it to v2, but this isn’t guaranteed to succeed. You should preferably create a new v2 filesystem instead.

    Remove unsupported targets

    12775

    Summary of changes

    This is the first of a series of PRs to remove targets that are not supported or retired as explained in recent blog post.

    There are individual commits to remove targets from targets.json and files/folders for the corresponding targets.

    Impact of changes

    The following targets are being removed:

    • Thundersoft (all)
    • Realtek RTL8195A
    • Ublox ODIN and related (OKDO, MTB)
    • RDA (all)
    • Gigadevice GD32_E103VB
    • Atmel (all)
    • TI (all)
    • Etteplan Elmo
    • Wiznet (all)
    • Silica
    • Renesas VK_RZ_A1H
    • Rename MTB_MXCHIP_EMW3166 to WIO_EMW3166
    • VBLUNO51 and VBLUNO52

    Migration actions required

    • The targets listed above continue to be available in the 5.15 branch.

    Callback: Trivial default

    12761

    Summary of changes

    Turn off callback.non-trivial by default to save ROM space.

    Follow-up to #12036. Will need at least one example changed to turn the option back on.

    Impact of changes

    • If application code uses Callback with a non-trivial functor, they will get a compilation error directing them to turn on platform.callback-nontrivial.

    Migration actions required

    • Add "platform.callback-nontrivial": true to your mbed_app.json if a build error indicates that it is required - or change your code to only use trivial functors in Callback.

    BLE: remove deprecated APIs from Gatt and SecurityManager

    12742

    Summary of changes

    • Remove deprecated APIs from Gatt
    • Remove deprecated APIs from SecurityManager

    Impact of changes

    Deprecated APIs from Gatt and SecurityManager do not exist anymore, applications that use them will not compile until updated with current APIs.

    Migration actions required

    Applications that compile without deprecation warnings on mbed-os-5.15 will continue to work. Otherwise, please fix any deprecated API usages, for example by referring to compilation warnings from mbed-os-5.15.

    Add Semtech Lora radio drivers

    12741

    Summary of changes

    Add Semtech Lora radio drivers for SX1272, SX1276 and SX126x radios.
    Added as subtree from original repository: https://github.com/ARMmbed/mbed-semtech-lora-rf-drivers

    Impact of changes

    Enable using Lora with no additional repositories, all of them part of Mbed OS.

    Migration actions required

    None

    Remove Mbed SPM

    12738

    Summary of changes

    Remove FUTURE_SEQUANA and FUTURE_SEQUANA_M0 targets. These are not supported in Mbed 6.

    After the removal of FUTURE_SEQUANA targets, there are no targets remaining that use Mbed SPM. Remove Mbed SPM as well, as it is unused.

    Impact of changes

    The following targets are being removed in Mbed 6:
    - FUTURE_SEQUANA
    - FUTURE_SEQUANA_M0

    Migration actions required

    Please use a version of Mbed OS 5 if you require support for FUTURE_SEQUANA or FUTURE_SEQUANA_M0

    Remove PSA implementation for v8-M and dual CPU targets

    12737

    Summary of changes

    With Mbed 6, TrustedFirmware-M (TF-M) is the source of Mbed’s implementation of PSA. This means Mbed 6 doesn’t need to contain any code or tooling to build the v8-M or dual CPU secure binaries.

    This patch set removes tooling, code, and targets that would have been used to make PSA secure binaries for v8-M or dual CPU platforms.

    Impact of changes

    • NXP LPC55S69 and Numaker M2351 support is temporarily dropped as compared to Mbed 5, as those targets are not supported in TF-M upstream.
    • Exporters for v8-M and dual CPU PSA targets are not supported, due to TF-M limitations.
    • It is no longer possible to use Mbed to build v8-M or dual CPU secure binaries.
    • The following targets are removed compared to Mbed 5:
    • ARM_MUSCA_A1_S
    • ARM_MUSCA_B1_S
    • LPC55S69_NS
    • LPC55S69_S
    • HANI_IOT
    • NU_PFM_M2351_NS
    • NU_PFM_M2351_S

    Migration actions required

    Use Mbed 5.15 if you require PSA targets with exporter support, or one of the removed targets. LPC55S69 and Numaker M2351 will be supported in Mbed 6 at a later date, after the targets are supported by TF-M.

    rtos: Improve CMSIS-RTOSv2 app compatibility

    12736

    Summary of changes

    Some non-Mbed-OS, pre-existing CMSIS-RTOSv2 applications depend on
    CMSIS-RTOSv2 Automatic Dynamic Allocation, also known as Object-specific
    memory pools. Mbed OS doesn’t by default provide any memory to the
    CMSIS-RTOSv2 Automatic Dynamic Allocation pool, as doing so would waste
    memory if the feature is not used; even if the feature is used, as a
    platform, Mbed OS can’t know how many objects of which types will be
    created by an application and therefore will either waste memory or not
    provide enough memory in a hard to debug manner. Portable CMSIS-RTOSv2
    applications depending on CMSIS-RTOSv2 Automatic Dynamic Allocation
    should instead configure the memory pools themselves, as applications
    know best their memory requirements.

    Add Mbed configuration options which can be used by applications to
    control the amounts of memory available to the CMSIS-RTOSv2 Automatic
    Dynamic Allocation subsystem. This enables portable CMSIS-RTOSv2
    applications, which can run on any CMSIS-RTOSv2 OS, to be able to run on
    Mbed OS as well.

    Signed-off-by: Devaraj Ranganna devaraj.ranganna@arm.com
    Signed-off-by: Jaeden Amero jaeden.amero@arm.com

    Impact of changes

    Applications written for CMSIS-RTOSv2 that use CMSIS-RTOSv2 Automatic Dynamic Allocation can now also run on Mbed OS, when the application specifies how much memory to use in their mbed_app.json. CMSIS-RTOSv2 docs claim that Automatic Dynamic Allocation is “fully portable”, and now that’s at least more true than before where Mbed is concerned.

    The TF-M regression tests are a concrete example of an application written making use of CMSIS-RTOSv2 Automatic Dynamic Allocation. We have an incredibly easier time running (and maintaining) those tests with Mbed OS, validating the TF-M integration with Mbed OS does not break TF-M functionality, when Mbed OS supports application-configured CMSIS-RTOSv2 Automatic Dynamic Allocation.

    Migration actions required

    None

    odin targets: remove release version

    12733

    Summary of changes

    This is a preparation for more upcoming changes. The latest master updates removed deprecated functionality and these targets do not compile anymore.

    Impact of changes

    Boards based on the ODIN module won’t compile in Mbed OS 6.0.0.

    Migration actions required

    Staying with Mbed OS version up to 5.15.x.

    BLE Gap deprecation cleanup/rework

    12730

    Summary of changes

    • Remove BLE LegacyGap class and implementations. Map ble::Gap to global Gap.
    • Add non-deprecated APIs (originally found in LegacyGap) to Gap and implementations into GenericGap.
    • Remove/replace legacy BLE event signalling (callback chains) in favour of EventHandler, where possible.
    • Remove BLEProtocol:: and replace AddressType_t with own_address_type_t/peer_address_type_t, AddressByte_t with address_t, etc.
    • Replace BLE::Address_t (for accessing address types + values in whitelists) with the new equivalent whitelist_t::entry_t.
    • Rename ConnectionParams_t -> PreferredConnectionParams_t and use it only for Generic Access Service.
    • Fix misspelt central_privay_configuration_t -> central_privacy_configuration_t
    • Remove legacy type definitions and replace internal usages with new types, e.g. address types, disconnection reason, etc.

    Notes: * setDeviceName(), getDeviceName(), setAppearance(), getAppearance() from LegacyGap are removed, as device name and appearance can be set via AdvertisingDataBuilder and saved by the application. But there were previously no deprecation warnings for them. * get/setPreferredConnectionParams() are dropped from Gap - updated versions will be added to Gatt where they should belong to.

    Impact of changes

    Legacy BLE Gap APIs and related type definitions are no longer available.
    Some APIs have been updated to take parameters of new type definitions of address types + values.

    Migration actions required

    • Applications based on up-to-date BLE APIs should be able to make most BLE function calls as before.
    • However as mentioned above some deprecated types (e.g. address) were not warned previously - their usages need to be replaced with corresponding new types. The best clue is compilation errors which can be manually fixed. The PR to update mbed-os-example-ble is an example of how to do this: https://github.com/ARMmbed/mbed-os-example-ble/pull/289
    • Applications should set device name and appearance using AdvertisingDataBuilder and internally remember their values as needed, since APIs to get/set them are removed as explained above.

    RZ_A1H remove usage of ethernet hal API

    12715

    Summary of changes

    • Removed ethernet_api from targets\TARGET_RENESAS\TARGET_RZ_A1XX.
    • Modified features\netsocket\emac-drivers\TARGET_RZ_A1_EMAC not to use ethernet_api.

    Remove compatibility for Arm Compiler versions prior to 6.01.0050

    12708

    Summary of changes

    Removed the pre-processor directive __ARMCC_VERSION >= 6010050 and the code added for versions before 6.01.0050.

    Impact of changes

    Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.

    Migration actions required

    Use Arm Compiler 6

    Tests: Remove support for ARM Compiler 5

    12706

    Summary of changes

    ARM Compiler 5 is no longer actively supported and was superseded in
    Mbed OS by ARM Compiler 6.

    Impact of changes

    Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.

    Migration actions required

    Use Arm Compiler 6.

    mbed-client-cli: Remove support for ARM Compiler 5

    12705

    Summary of changes

    ARM Compiler 5 is no longer actively supported and was superseded in
    Mbed OS by ARM Compiler 6.

    Impact of changes

    Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.

    Migration actions required

    Use Arm Compiler 6.

    TFM: Remove ARM Compiler 5 considerations

    12702

    Summary of changes

    ARM Compiler 5 is no longer actively supported and was superseded in
    Mbed OS by ARM Compiler 6.

    Impact of changes

    Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.

    Migration actions required

    Use Arm Compiler 6.

    Storage: Remove support for ARM Compiler 5

    12699

    Summary of changes

    ARM Compiler 5 is no longer actively supported and was superseded in
    Mbed OS by ARM Compiler 6.

    Impact of changes

    Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.

    Migration actions required

    Use Arm Compiler 6.

    Drivers: Remove support for ARM Compiler 5

    12698

    Summary of changes

    ARM Compiler 5 is no longer actively supported and was superseded in
    Mbed OS by ARM Compiler 6.

    Impact of changes

    Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.

    Migration actions required

    Use Arm Compiler 6.

    Remove netsocket icetea tests and TCPServer

    12694

    Summary of changes

    Remove deprecated Netsocket Icetea tests and TCPServer class.

    Impact of changes

    • Netsocket Icetea tests are removed
    • TCPServer class removed

    Migration actions required

    • Use Netsocket Greentea tests (TESTS/netsocket)
    • TCPSocket can be used instead of TCPServer

    Remove deprecated netsocket methods

    12685

    Summary of changes

    Remove deprecated methods from netsocket

    Impact of changes

    Deprecated methods in netsocket (since Mbed OS 5.1) are removed.

    Migration actions required

    InternetSocket::attach -> Use Socket::sigio
    TCPSocket(S *stack) -> Use default TCPSocket constructor and call open separately
    UDPSocket(S *stack) -> Use default UDPSocket constructor and call open separately

    SocketAddress rework

    12683

    Summary of changes

    Original work: https://github.com/ARMmbed/mbed-os/pull/12468 . This PR contains also the UT fix.

    • Add optimised constexpr default constructor. Default construction was previously by a heavyweight defaulted nsapi_addr_t parameter.
    • Remove deprecated resolving constructor.
    • Take nsapi_addr_t inputs by constant reference rather than value.
    • Inline the trivial getters and setters.
    • Use unique_ptr to manage the text buffer.
    • Make operator bool explicit.
    • Optimise some methods.
    • Update to C++11 style (default initialisers, nullptr etc)

    Impact of changes

    • Constructor deprecated in Mbed OS 5.1 removed.
    • Code size reductions, particularly on default initialisation.
    • Implicit assignments to bool or int or others no longer possible - any existing code which does not compile is most likely an error. (if (sockaddr) is still fine - such “contextual conversions to bool” can use the explicit operator).

    Migration actions required

    • Code attempting resolution by passing a hostname to SocketAddress‘s constructor must be modified to use NetworkInterface::gethostbyname or NetworkStack::gethostbyname.
    • Code failing due to the now-explicit bool operator should be reviewed to check intent.

    Remove deprecated BLE:: APIs and unsupported services

    12676

    Summary of changes

    • Remove deprecated APIs from BLE namespace.
    • Remove DFUService, UARTService and beacon-related services (iBeacon, EddyStone) whose standards/stacks are externally maintained.

    Impact of changes

    • Legacy APIs in BLE namespace are no longer available.
    • DFUService, UARTService and beacon-related services (iBeacon, EddyStone) are no longer available.

    Migration actions required

    • Applications that use legacy APIs in BLE namespace need to be updated to use up-to-date APIs.
    • Applications based on removed services can copy the service definitions over from previous mbed-os releases (with deprecated API usages manually fixed), or provide their own implementations.

    Remove Maxim and SoftDevice BLE stacks which do not support the latest APIs

    12674

    Summary of changes

    • Remove Nordic SoftDevice stack (used by nRF51 targets). Notes: nRF52 targets are unaffected as they use Cordio stack.
    • Remove the current Maxim BLE stack (until a newer version based on up-to-date Cordio stack becomes available).
    • Disable BLE features of affected targets from targets.json.

    Note: Some references/macros for SoftDevice are still present in the Nordic SDK (targets/TARGET_NORDIC/*) and not cleanly separated with other components.

    Impact of changes

    • BLE feature will be unavailable on nRF51* targets and temporarily unavailable on Maxim targets until the driver gets updated in the future.

    Migration actions required

    • For nRF51* targets, use Mbed OS release 5.15 - future support for those targets are under review.
    • For nRF52* targets, ensure the default BLE configurations that enable Cordio stack is used.
    • For Maxim targets, use Mbed OS release 5.15 until the BLE driver gets updated.

    Remove deprecated ARMC5 reference from mbed compile -S output

    12672

    Summary of changes

    Removed deprecated ARMC5 reference from mbed compile -S command output.

    Impact of changes

    With these changes, mbed compile -S will not produce any ARMC5 reference.

    Migration actions required

    None.

    Netsocket/lwIP Stack: Remove support for ARM Compiler 5

    12671

    Summary of changes

    ARM Compiler 5 is no longer actively supported and was superseded in
    Mbed OS by ARM Compiler 6.

    Impact of changes

    Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.

    Migration actions required

    Use Arm Compiler 6.

    Remove ARMC5 reference from Mbed OS platform

    12655

    Summary of changes

    Removed ARMC5 reference from Mbed OS platform.

    Impact of changes

    Breaking change: The ARMC5 references are removed from platform as they have been deprecated in a previous Mbed OS release.

    Migration actions required

    Use Arm Compiler 6

    Removed all references to __CC_ARM

    12654

    Summary of changes

    Removed ARMC5 reference from FEATURE_BLE.
    ARM Compiler 5 is no longer supported in Mbed OS and is superseded by ARM Compiler 6

    Impact of changes

    Breaking change: The ARMC5 references are removed from platform as they have been deprecated in a previous Mbed OS release.

    Migration actions required

    Use Arm Compiler 6

    Remove minimal-printf extension profile

    12640

    Summary of changes

    Removed minimal-printf extension profile. Usage of minimal-printf library is enabled via the target.printf_lib configuration parameter as described in minimal-printf README, see https://github.com/ARMmbed/mbed-os/tree/master/platform/source/minimal-printf#usage for more details.

    Impact of changes

    Applications can no longer use the obsolete minimal-printf extension profile.

    Migration actions required

    Usage of minimal-printf library is enabled via the target.printf_lib configuration parameter, see https://github.com/ARMmbed/mbed-os/tree/master/platform/source/minimal-printf#usage for more details.

    Remove the deprecated ethernet hal APIs

    12639

    Summary of changes

    Removed ethernet hal deprecated APIs.

    Impact of changes

    Breaking change: The Ethernet hal APIs are removed as they have been deprecated in a previous Mbed OS release.

    Migration actions required

    • EthInterface is now the preferred way to get an Ethernet object.
    • Alternatively, use NetworkInterface to get an instance of an appropriate network interface (WiFi or Ethernet).

    Add “rtos-api” to bare metal

    12629

    Summary of changes

    Added the bare metal form of the RTOS API since it doesn’t add any overhead (except for a little extra compilation time) and has the benefit of minimising differences between RTOS and bare metal modes.

    Impact of changes

    RTOS APIs are available in bare metal mode.

    Migration actions required

    None

    Remove Semaphore deprecated APIs

    12609

    Summary of changes

    Removed Semaphore deprecated APIs.

    Impact of changes

    Breaking change: Semaphore wait and wait_until methods have been deprecated since Mbed OS 5.13 and are removed now.

    Migration actions required

    Use Semaphore acquire, try_acquire, try_acquire_for and try_acquire_until methods.

    Netsocket: Introduce set_ip_address and get_dns_server APIs

    12606

    Summary of changes

    set_ip_address API can be used to set a static IPv4 address or IPv6 link-local address to network stack. This is needed for example in cellular use cases where device gets multiple IP addresses from cellular context.

    With get_dns_server DNS servers can be queried from NetworkInterface object

    Fully enforce NonCopyable

    12581

    Summary of changes

    Make NonCopyable fully operational so it gives compile errors in all build profiles.

    This removes the deprecated copy operators which let code compile with a warning.

    Impact of changes

    Code that copies non-copyable classes will now not compile in any profile - previously a link error would have been generated in debug profile, but other profiles would have only generated a “deprecated” warning at compile time and a debug message at runtime.

    Migration actions required

    Modify code to not copy non-copyable objects. Any code doing so would have likely led to problems such as memory leaks.

    Remove mbed wait deprecated APIs

    12572

    Summary of changes

    Removed mbed wait deprecated APIs.

    Impact of changes

    Breaking change: wait and wait_ms APIs have been deprecated since Mbed OS 5.14 and they are removed now.

    Migration actions required

    If you wish to sleep, use ThisThread::sleep_for (C++) or thread_sleep_for (C). If you wish to wait (without sleeping), call wait_us. wait_us is safe to call from ISR context.

    Replace with weak mbed_error_hook implementation (deprecate the hook function)

    12569

    Summary of changes

    mbed_set_error_hook() can only be called inside the application. Therefore it is not possible in the application to catch errors before calling mbed_set_error_hook().
    I thought it would be simpler to create a mbed_error_hook() function which is weak and the application can catch errors at any time.

    Impact of changes

    Replace mbed_set_error_hook() with an application specific mbed_error_hook() implementation.

    Migration actions required

    Add property API to InternetSocket

    12522

    Summary of changes

    Add new API to network interface.

    Property API allows application to ask network specific properties
    from the InternetSocket . Queried information can be used to avoid
    network congestion by adjusting transmission jitter and retry
    timeouts.

    C++ Chrono support

    12425

    Summary of changes

    Add Chronos versions of time-related APIs to RTOS classes, Ticker-related classes and EventQueue.

    Kernel::Clock, HighResClock, LowPowerClock and RealTimeClock act as the Chrono clocks. (C++ standard clocks system_clock, steady_clock and high_resolution_clock are not supported, due to difficulty in consistent retargetting across toolchains).

    Deprecate old non-Chrono APIs.

    Impact of changes

    Existing timing code will generate deprecation warnings, but there should be no functional change.

    A follow-up PR will clean-up warnings in rest of code base.

    Migration actions required

    Users should migrate to use Chrono-based APIs as directed by the deprecation messages

    Remove the deprecated RawSerial, UARTSerial, Serial

    12410

    Summary of changes

    • Removed RawSerial, Serial, UARTSerial deprecated classes.
    • Removed SerialBase deprecated APIs.

    Impact of changes

    Breaking change: RawSerial, Serial, UARTSerial classes have been deprecated since Mbed OS 6.0.0 and they are all removed now.

    Migration actions required

    Use BufferedSerial and UnbufferedSerial for serial communication.

    Add get_time function to ESP8266

    12300

    Summary of changes

    Fixes https://github.com/ARMmbed/mbed-os/issues/12192.

    get_time() function allows access to (S)NTP functionalities of ESP8266 module.

    I considered using std::chrono instead of ctime’s std::tm, but then - to convert to chrono::time_point we’d have to go through std::tm anyway or write our own parser, which I just managed to avoid.

    Side note: using std:: introduces some warnings due to -D_LIBCPP_EXTERN_TEMPLATE(...)= flag being used in all our compilation profiles. This flag seems obsolete and I hope I will get it removed soon.

    I cannot really add any tests, as they are using WifiInterface::get_instance() to get the interface and there is no RTTI, that would allow casting to ESP8266Interface to call get_time(), but I tested the function locally and it works fine.

    Impact of changes

    None, other than user can check time with ESP8266Interface.

    Migration actions required

    None

    Make cypress psoc64 TFM ready and also add TF-M initialization

    12271

    Summary of changes

    Non-secure core IPC, Mailbox and Interface init for TFM_DUALCPU and TFM_V8M targets

    These changes concentrate on getting mbed-os(Non-secure) working with TF-M(secure)
    Changes reflect towards any Cypress based TFM_DUALCPU targets and TFM_V8M targets at the moment and making it more generic in the near future.

    Key changes: * Init IPC, Mailbox and Non-secure Interface.
    These changes are for TFM_DUALCPU and TFM_V8M platforms.
    The initialization happens after mbed-os kernel is kicked off and
    when the thread is up and running.

    We are initializing the following for TFM_DUALCPU platforms: * IPC Interrupts for syncing multi-core platforms. * NS Mailbox to receive messages. * NS interface.

    We are only initializing a Non-secure interface for TFM_V8M platforms.

    • Cypress: CY8CKIT_064S2_4343W: Reserve timer channels used by TF-M.
    • Make CY8CKIT_064S2_4343W Cypress target TF-M compatible.

    Impact of changes

    This impacts CY8CKIT_064S2_4343W, TFM_V8M and TFM_DUALCPU targets.

    Callback extension and optimisation

    12036

    Summary of changes

    Extend Callback, and optimise it.

    Impact of changes

    • Optimise clearing by adding nullptr overload.
    • Optimise clearing by not clearing storage - increases code size of comparison, but that is extremely rare.
    • Reduce ROM used by trivial functors - share copy/destroy code.
    • Config option to force trivial functors - major ROM saving by eliminating the “operations” table.
    • Config option to eliminate comparison altogether - minor ROM saving by eliminating zero padding.
    • Conform more to std::function API.
    • Force trivial functors by default to get major ROM saving. (now in #12761)

    Migration actions required

    • The added nullptr overload means Callback(NULL) or Callback(0) will no longer work; users must use Callback(nullptr) or Callback().
    • If application code uses Callback with a non-trivial functor, they will get a compilation error directing them to turn on platform.callback-nontrivial.

    Disable mbed 2 and unsupported targets

    12984

    Summary of changes

    Mbed 2 targets are not expected to be supported on master and for the Mbed OS 6 release.
    The following changes are introduced:
    - Remove “2” from release_versions as there is no Mbed 2 and these targets won’t work as such
    - Remove LPC11U68 and KL27Z from targets.json as these are Mbed 2 only. They require migration to Mbed OS 6 Baremetal and can be introduced in the future.
    - Remove MAX32620HSP as there is no release_versions and is considered unsupported - see https://github.com/ARMmbed/mbed-os/issues/11233

    Impact of changes

    These targets continue to be available in the 5.15 branch.
    Mbed OS 6 won’t support these targets unless are re-introduced.

    Migration actions required

    none

    build api: fix release version

    12982

    Summary of changes

    This is non trivial fix as the function is being used outside of this repository.
    Tools rely on it to return list of targets for 2 or 5. As we removed release_version from many targets,
    this broke the logic. To keep the logic as it was, without updating all tools out there now,
    lets just return full set of targets - all are supported.

    In case for Mbed 2, returning all targets does not make sense, but rather raise an exception here. Not supported. This avoids suprised. If you look at build api functions there are many checks for 2 or 5 so more
    clean up needed to actually get release_version out of the tools.

    Remove nRF51 targets

    12961

    Summary of changes

    This is another of a series of PRs (others https://github.com/ARMmbed/mbed-os/pull/12775, https://github.com/ARMmbed/mbed-os/pull/12810, https://github.com/ARMmbed/mbed-os/pull/12864, https://github.com/ARMmbed/mbed-os/pull/12935) to remove targets that are not supported or retired as explained in recent blog post.

    Impact of changes

    The following public nRF51 targets are being removed:

    • NRF51822
    • NRF51_DK
    • NRF51_MICROBIT

    Migration actions required

    • The targets listed above continue to be available in the 5.15 branch.

    STM32 code cleaning for MBED-OS6

    12960

    Summary of changes

    This is following discussions with @MarceloSalazar

    All ST targets are:
    - either keep as full MBED-OS6 target => these targets inherit then from “MCU_STM32”
    - either keep as constrained target => these targets inherit then from “MCU_STM32_BAREMETAL”
    - either removed (board is too constrained, no more available, or was not officially supported)

    @ARMmbed/team-st-mcd

    Impact of changes

    Several targets are no more available in MBED-OS6

    If you are still using it,
    please use mbed-os-5.15 branch

    Clean-up S2LP driver configuration

    12951

    Summary of changes

    This PR adds the ability to configure the pins of the S2LP driver for any target (inside Mbed OS or custom target) using the standard mbed_lib.json and mbed_app.json config files.

    Additionally, the MTB_STM_S2LP and MTB_STM_S2LP_CT targets are removed as are not supported in Mbed OS 6, and thus making the S2LP driver independent of targets.

    Impact of changes

    Note users can continue to use the 5.15 branch.
    For Mbed OS 6, it should be possible to use the default pin config without changes (apart from MTBs).
    Custom pin configuration can be done as shown next.

    Migration actions required

    Developers need to create a mbed_app.json (or other json config) including the pin configuration for their target.

    An example of application configuration for the S2LP driver is shown here:
    https://github.com/MarceloSalazar/mbed-os-example-mesh-minimal/blob/S2LP_cleanup/configs/mesh_wisun_S2LP.json#L34-L50

    "NUCLEO_F429ZI":  {
    "LED": "LED_RED",
    "BUTTON": "USER_BUTTON",
    "BUTTON_MODE": "PullDown",
    "s2lp.SPI_SDI"           : "PA_7",
    "s2lp.SPI_SDO"           : "PA_6",
    "s2lp.SPI_SCLK"          : "PA_5",
    "s2lp.SPI_CS"            : "PC_0",
    "s2lp.SPI_SDN"           : "PF_13",
    "s2lp.SPI_GPIO0"         : "PA_3",
    "s2lp.SPI_GPIO1"         : "PC_3",
    "s2lp.SPI_GPIO2"         : "PF_3",
    "s2lp.SPI_GPIO3"         : "PF_10",
    "s2lp.I2C_SDA"           : "PB_7",
    "s2lp.I2C_SCL"           : "PB_6",
    "s2lp.provide-default"   : true
    }
    

    The driver can be initialized as follow:

    NanostackRfPhys2lp rf_phy(MBED_CONF_S2LP_SPI_SDI
    ,MBED_CONF_S2LP_SPI_SDO
    ,MBED_CONF_S2LP_SPI_SCLK
    ,MBED_CONF_S2LP_SPI_CS
    ,MBED_CONF_S2LP_SPI_SDN
    ,MBED_CONF_S2LP_SPI_GPIO0
    ,MBED_CONF_S2LP_SPI_GPIO1
    ,MBED_CONF_S2LP_SPI_GPIO2
    ,MBED_CONF_S2LP_SPI_GPIO3);
    

    Add Timeout rescheduling test

    12942

    Summary of changes

    The Timeout drift test uses rescheduling inside a callback, but it is currently disabled due to lack of stability. Rescheduling using relative timeouts inside the callback is a bad technique as it leads to drift, so I understand the test being disabled. It is better to use Ticker for a periodic callback or to use Timeout::attach_absolute.

    Add a simpler test that just ensures the callback is called repeatedly - this test would detect issue #12940, and should not have stability problems.

    Convert Timeout test to Chrono

    Now tests only the Chrono attach(duration) method, not the deprecated attach and attach_us calls.

    Cypress: Misc target updates

    12909

    Summary of changes

    • Fix incorrect ADC range (was 0-2.4V, is now 0 - VDDA) (af39f05)
    • Remove CY8CPROTO_063_BLE (96f9915) and CYW943012P6EVB_01 (d058586) targets
    • Disable QSPIF on CY8CPROTO_062S3_4343W. It is incompatible with the XIP mode currently used for storing wifi firmware in external flash; instantiating a QSPIFBlockDevice would break Wifi firmware download. (a63fe7d)

    Impact of changes

    • ADC range is changed for PSoC targets to align with documented API behavior.
    • CY8CPROTO_063_BLE and CYW943012P6EVB_01 targets are no longer available
    • QSPIF component is removed on CY8CPROTO_062S3_4343W

    Migration actions required

    • Applications which utilize the analogin driver should update to handle the new range.
    • Applications which target CY8CPROTO_063_BLE or CYW943012P6EVB_01 should migrate to a new, still supported target, or remain on the mbed-os-5.15 release.
    • Applications on CY8CPROTO_062S3_4343W which need QSPIF and do not use wifi functionality can re-enable the QSPIF component in mbed_app.json.

    Work around C++14 assert problem

    12906

    Summary of changes

    During testing of #12425, a problem in ARM Compiler 6.13’s assert was identified. This adds a general workaround and restores original code from that PR.

    (Problem will ultimately be fixed in ARM Compiler 6.15, but the workaround seems to have no downside)

    SDBlockDevice: Convert to Chrono

    12904

    Summary of changes

    Convert SDBlockDevice to use new APIs from #12425.

    Impact of changes

    Eliminate use of deprecated APIs

    Migration actions required

    n/a

    Nanostack HAL: Convert to Chrono

    12903

    Summary of changes

    Convert Nanostack HAL to use new APIs from #12425.

    Impact of changes

    Eliminate use of deprecated APIs

    Migration actions required

    n/a

    USB: Convert to Chrono

    12902

    Summary of changes

    Convert ESP8266 driver wrapper to use new APIs from #12425.

    Impact of changes

    Eliminate use of deprecated APIs

    Migration actions required

    n/a

    Rationalise Mail/Queue/MemoryPool timing APIs

    12901

    Summary of changes

    Follow-up adjusting #12425 , improving (in my opinion, at least) the timing for Mail, Queue and MemoryPool. I think 12425 was too conservative at cleaning up the unsatisfactory state of their timing.

    alloc APIs were generally inconsistent - take the opportunity to align with other APIs like Semaphore.

    alloc -> try_alloc
    alloc_for -> try_alloc_for
    alloc_until -> try_alloc_until

    In future the name alloc can be used for an untimed blocking allocation.

    To line up with MemoryPool/Mail alloc, rework naming of get/put

    Queue::get -> try_get, try_get_for
    Queue::put -> try_put, try_put_for
    Mail::get -> try_get, try_get_for
    Mail::put (no change, but assert that it works)

    In the future the names get and put can be used for untimed blocking operations. In the interim, you have to use try_get_for(Kernel::wait_for_u32_forever).

    Mail::put differs in that it has always been a non-blocking call, but it can be assumed to always succeed when used correctly, because the Queue has enough room to store a pointer to every block in the MemoryPool. It could in future be made a void return, similar to the change made to Mutex::lock.

    Impact of changes

    Existing timing code will generate deprecation warnings, but there should be no functional change.

    Migration actions required

    Users should migrate to use Chrono-based APIs as directed by the deprecation messages

    ESP8266: static address configuration and dhcp enable/disable added

    12721

    Summary of changes

    Fixes https://github.com/ARMmbed/mbed-os/issues/12552
    I implemented the set_network function, which configures static network address and set_dhcp function.
    This function is optional, so no greentea tests are available. I only tested on RAAS, but had no way of really allowing static IP address setting. @star297 , would you please check if this PR works for you?

    Impact of changes

    New functionalities of ESP8266 are now available.

    Migration actions required

    None.

    ESP8266: Convert to Chrono

    12433

    Summary of changes

    Convert ESP8266 driver wrapper to use new APIs from #12425.

    Impact of changes

    Eliminate use of deprecated APIs

    Migration actions required

    n/a

    NFC: Convert to Chrono

    12432

    Summary of changes

    Convert NFC code to use new APIs from #12425.

    Impact of changes

    Eliminate use of deprecated APIs

    This work originally revealed off-by-1000 error on timing, but that has already been fixed in #12401, so no functional change.

    Migration actions required

    n/a

    Cellular: Convert to Chrono

    12430

    Summary of changes

    Covert cellular code to use new Chrono APIs from #12142

    Note that documentation for random_max_start_delay config setting has
    been changed to indicate that the setting is in seconds, and always has
    been. No functional change.

    Impact of changes

    Eliminate use of deprecated core APIs.

    Some public cellular APIs now have dual Chrono and non-Chrono forms - non-Chrono not yet deprecated.

    DTLSSocketWrapper: Convert to Chrono

    12429

    Summary of changes

    Convert DTLS wrapper to use new APIs from #12425.

    Impact of changes

    Eliminate use of deprecated APIs

    Migration actions required

    n/a

    nsapi_dns: Convert to Chrono

    12428

    Summary of changes

    Convert DNS client code to use new APIs from #12425.

    Impact of changes

    Eliminate use of deprecated APIs

    Migration actions required

    n/a

    Mark PSA as an experimental API

    13003

    Summary of changes

    This PR moves PSA to a FEATURE_EXPERIMENTAL_API folder. No change to feature in this folder will be considered breaking, so they can be changed in any release type.

    Impact of changes

    Migration actions required

    The EXPERIMENTAL_API feature will need to be enabled after this PR to enable PSA.

    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

    Crypto: Mbed OS ATECC608A example fails to build with IAR

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

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

    • Description: The error, “pkg_resources.DistributionNotFound: The ‘mbed-ls==1.*,>=1.5.1’ distribution was not found and is required by icetea, mbed-flasher” is observed when running the command “mbed test -m K64F -t ARM –icetea –compile-list -vv”.
    • Workaround: None
    • Reported Issues: https://github.com/ARMmbed/mbed-os/issues/8064
    • Priority: Major

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

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

    Test Report

    Release automated CI test

    In addition to regular Pull Request test and Nightly test, We also ran a branch test on mbed-os 6.0.0-RC2

    Results for the tests we run on CI (PR, Nightly, Branch):

    • Compilation tests: ARMC6 - SOME FAILS
    • Compilation tests: GCC_ARM - ALL PASSED
    • Unittest - ALL PASSED
    • Greentea Test - SOME FAILS
    • Example Test - ALL PASSED
    • Exporter Test - ALL PASSED
    • Cloud Client integration Test - SOME FAILS
    • Memory Usage Test - ALL PASSED
    • Wisun Mesh Test - ALL PASSED

    We have the following issues on the test jobs:

    • LTO failed on ARM compiler compile tests ---- Tracked by defect MBEDOSTEST-1083 - ARMC6 Failed to build mbed OS with LTO options Open
    • NUCLEO_F767ZI failed on storage tests ---- Tracked by defect IOTSTOR-1032 - NUCLEO_F767ZI failed with features-storage-tests-kvstore-general_tests_phase_1&2 Open
    • CY8CPROTO_62_4343W failed on sleep/deepSleep tests ---- Tracked by defect IOTHAL-560 - CY8CPROTO_062_4343W target failed at sleep/deep sleep test Open
    • NUCLEO_F303 and NUCLEO_F411 failed on client example compile tests

    Test Numbers

    • Greentea test number 1486 (+65 )
    • Unittest number 735 (+27 )

    Toolchain Coverage

    In mbed OS 6.0.0 release. we are testing following toolchains:

    • ARM compiler 6.13
    • GCC_ARM 9-2019-q4-major

    The following toolchains have been dropped from the mbed OS 5.15.0 release

    • ARM compiler 5.06 update 6
    • IAR 8.42

    Targets Coverage

    In mbed OS 6, the compilation test targets scope has not changed, remains all mbed OS enabled targets.

    Greentea test targets have been changed slightly:

    At the time of the mbed-os 6.0.0 release, we run the greentea tests on the following 9 targets:

    • NRF52840_DK
    • DISCO_L457VG_IOT01A
    • K64F
    • K66F
    • NUCLEO_F303RE
    • NUCLEO_F411RE
    • NUCLEO_F429ZI
    • NUCLEO_F767ZI
    • CY8CPROTO_062_4343W

    Compared to mbed-os 5.15.0, the following targets been removed as they are not supported in mbed-os-6

    • LPC55S69
    • UBLOX_C030_U201
    • UBLOX_EVK_ODIN_W2

    Coverity

    In mbed OS 6.0.0 release, coverity issues increased from 49 to 94 .

    Code Coverage

    Test Code Coverage been tracked and information is published on COVERALLS

    Memory Monitoring

    mbed-OS ROM size improved for around 16K and static RAM size improved 1.5K compare to mbed OS 5.15 release. The main reason for the improvements is because we are enabled using minimal-printf by default.

    Contents

    Ports for Upcoming Targets

    12338
    STM32L5 : add DISCO-L562QE board support

    12286
    Add new target: NUCLEO_L452RE-P

    12597
    Cellular: Add ALT1250 PPP cellular target

    12458
    Add Musca B1 target

    12787
    Cypress: Add CYESKIT-064B0S2-4343W

    12603
    Add target CYSBSYSKIT_01

    12576
    M487: Support custom board

    12801
    Add base support for STM32H745

    Fixes and Changes

    12385
    DeviceKey Root of Trust generation refactored.

    12256
    Update psa binaries for 6.0.0-alpha1

    12238
    Minimal-printf: Fix wrapping of printf functions for the ARM compiler

    12236
    Fix baremetal build failures

    12218
    tests tickers: adapt ticker_interrupt_test() test case for high frequency tickers

    12217
    Nuvoton: Add DEVICE_USBDEVICE detection in usbd implementation

    12216
    Fix dl_channel tests

    12215
    Cellular: Implementation of virtual get_ip_address funtion in ublox-api

    12214
    Cellular: Move string_to_pdp_type method to CellularContext

    12202
    Increase MSI clock frequency when exiting deep sleep

    12200
    Minor fixes for peripheral pins on Dragonfly Nano

    12196
    LWIP: don’t pbuf_free(NULL) on socket close

    12195
    Corrected PPP debug trace flagging

    12194
    Nanostack Socket event handler fix

    12193
    Cellular: Move cellular event queue thread ownership to CellularDevice

    12189
    Removed hardcoded CY8CPROTO_062_4343W bt baudrate limit.

    12188
    Greentea test :Added the print in the exception handler

    12186
    STM serial init: Set pin function only if pin is defined (not NC)

    12185
    BLE: fix pointer not set to null on delete

    12182
    Update watchdog tests to run with bare metal profile

    12181
    Add DTLS in Connectivity’s design document

    12179
    TESTS: Update testing of examples in mbed-os

    12178
    Fixes for LPC55S69_NS TLS tests

    12176
    Nuvoton: Support usbd

    12175
    Minimal-printf: Fix documentation as floating point is disabled by default

    12173
    Change size embedded in the temp_ram_page_data

    12170
    Nuvoton: Support dynamic heap configuration on IAR

    12169
    syntax error corrections - rm unnecessary semicolons

    12162
    CMSIS-pack update for STM32WB-family

    12155
    LPC11U24: Fix baremetal build and runtime error

    12151
    NRF5x: Fix baremetal linker error

    12144
    NRF52840: Use 2 region memory model for the ARM toolchain

    12143
    Blockdevice config changes to make it possible to run littlefs filesystem tests

    12141
    Thread: remove constructors deprecated in 5.1

    12138
    TESTS-MBED_HAL-COMMON_TICKERS no more executed

    12133
    Cellular: Suppress long AT traces

    12132
    LWIP: Remove unused MBOX configs

    12131
    Cellular: Fix Gemalto/Cinterion driver

    12128
    Remove unsupported folder

    12123
    Cellular: Refactor cellular variable visibilities

    12122
    ATHandler refactoring

    12121
    Serial: Deprecate the class and promote UnbufferedSerial instead

    12120
    ONME-4433 SocketAddress::operator== should also check port

    12118
    Fixed Serial ambiguity for enable_input and enable_output

    12114
    Cellular: Fix to not use all zero address for DNS

    12113
    Fix for issue #12104 (STM32 can_init_freq() ignores frequency)

    12111
    Microlib: Disable feof function usage in general filesystem test

    12110
    Moved CP Max recv len into mbed_lib.json

    12109
    Replace RawSerial as it has been deprecated

    12108
    Wi-sun network event handler update

    12101
    Bare metal: Retrieve error context after crash

    12099
    Implemented recommended fix from https://github.com/STMicroelectronic

    12098
    Wrong order of code fixed

    12097
    cypress target: fix iar warnings

    12095
    Update MXRT1050 to SDK 6.0

    12092
    Refactored away onboard_modem_api because it is not needed at all

    12089
    Update offloaded TLSSocket to TLSSocket design

    12086
    TARGET_STM: fix flash api 64bit address alignment on L4 and WB

    12085
    PSA setup template changes.

    12083
    Cellular: Add check for network congestion in BC95 driver

    12081
    Expose target_offset and header_offset parameters in targets.json

    12080
    Unittest cleanup made

    12079
    Coverity fixes

    12078
    Cellular: Add PPP/IP config flags in CellularInterface.json

    12073
    Unittests: fix for PRs 12051 and 11996

    12071
    Minimal Console: Use static pin map

    12069
    STM32: astyle update

    12068
    Enabling small C library option and deprecating uARM toolchain

    12067
    STM32 GPIO IRQ : add a critical section in gpio_irq_init

    12065
    Non-IP socket implementation for NIDD over CP

    12064
    Valgrind support added for unittests

    12063
    Move get_ip_address_if() to NetworkStack and include it in multihoming test

    12061
    NANO130: Support dynamic heap configuration on IAR

    12057
    NUC472/M487: Limit EMAC receive frame length as 1518

    12055
    cmsis: remove arm math

    12052
    fpga tests: clear uart fix

    12051
    Unittest configuration mechanism improved

    12050
    Fix TDBStore sizes for SecureStore tests

    12048
    SharedPtr: add nullptr constructor

    12045
    Netsocket test adjusted to Wisun

    12044
    increased qspi size for cypress integration fs tests

    12043
    Modify itm_api.c for EFM32 targets

    12041
    Add QSPI and relevant test support for target EP_AGORA

    12038
    Cypress: Remove qspi_frequency() call.

    12037
    SharedPtr: add move operations

    12034
    SysTimer: Suppress implicit virtual warning

    12032
    Add MBED_FALLTHROUGH attribute

    12029
    STM32F0: create STM32F091xC target

    12027
    Modify nsapi_dns tests to be module tests

    12026
    Update HAL file to Toshiba’s TMPM4G9

    12025
    Platform: Delete an unused astyle output file

    12024
    ONME-4366 - Fix UBLOX_EVK_ODIN_W2 fails in emac tests due to heap mem

    12020
    Fix issues in setting radio access technology

    12019
    Cypress: rework lptimer hal

    12018
    STM32_EMAC cleanup

    12017
    NVStore: already deprecated implementation removed

    12013
    Add UDP ECHOTEST with connect/send/recv calls

    12012
    USB device HID test: remove duplicated define

    12011
    STMOD_CELLULAR: improve debug print

    12008
    Cellular: Fix ATHandler string handling

    11997
    Remove deprecated FunctionPointer class

    11996
    CellularBase/AT_CellularBase removal

    11995
    MCU_NRF52840 target configuration fixes

    11988
    Small fixes for SecureStore

    11987
    TDBStore refactoring

    11986
    Storage related test improvements and small fixes

    11980
    DISCO_L4R9I: update clock configuration for all clock sources

    11976
    LWIP system mailbox overflow fix

    11975
    PPPinterface: remove faulty address getter check for invalid pointer

    11962
    Bug in mbed_alloc_wrappers.cpp

    11961
    UnbufferedSerial: Introduce the class to replace RawSerial

    11957
    MbedCRC and CRC HAL revisions (6.0 redo)

    11952
    Fix for Dragonfly nano and registration for LTE-M plans

    11927
    Speed up unittests by not limitting Make to spawn more processes

    11920
    Simplify pull request template headers and instructions

    11897
    MbedCRC: improve init value handling and tests

    11891
    minimal-printf: Enable using a target configuration parameter

    11880
    Remove deprecated Callback methods

    11878
    Improve API documentation and test coverage

    11866
    Update pycryptodome version

    11817
    ESP8266 “busy s…” fix (ONME-4352)

    11653
    Add Getaddrinfo interface for multiple DNS adresses

    11594
    M2351: Pre-build secure image/lib to favor pelion application

    10959
    M2351: Support TFM level 1

    12457
    Update STM32 EMAC driver - limit RX frame length

    12424
    Nuvoton: Fix GPIO IRQ and RTC

    12422
    Cypress Asset Update

    12419
    Fix #12290: crash_log_parser on py3

    12411
    add FLASHIAP in targets.json for KVStore used in PDMC

    12409
    FIX: LPUART clock source selection should be left to serial driver

    12408
    LPC408X: Delete the ethernet_api.c files

    12407
    Disable restricted uart peripheral for NRF52840

    12405
    EthernetInterface fix detecting change of connection status on ARCH_MAX

    12404
    M2351: Update BSP and bugfix

    12403
    FPGA: Enlarge timeout with mbed_hal_fpga_ci_test_shield-i2c

    12401
    Remove float symbols from apps that use the NFCController class

    12400
    Add an exception for ARMC5 toolchain build

    12399
    Cellular: Delete created context if activation fails

    12398
    Add BlockDevice unittests and fix issues they revealed

    12397
    Testing: Fix buffer overflow in ATHandler_read_bytes UT test

    12396
    PDP Type needs to be IPV4V6

    12395
    I2CEEBlockdevice: fix i2c read return value

    12394
    Fix SDIO communication issue on Cypress 1M boards and other minor fixes

    12393
    Fix Musca-A1 gcc linker

    12392
    Fix psa_key_management_operations

    12391
    mergify: CI only if PR is without conflicts

    12389
    Update InterruptIn.h

    12386
    TEST: fix a bug in ATCmdParser test

    12383
    Fix thread_sleep_for with zero wake_delay

    12382
    Fix BufferedSerial visibility of private base class enum enumerators

    12380
    DISCO_L475VG_IOT01A: Add a list of restricted GPIO pins for testing

    12379
    Add STDIO UART as restricted for FPGA testing for all targets and support for restricting GPIO

    12378
    TEST: Refactor mbedmicro tests to use utest framework

    12369
    LPC1768: Fix ARM toolchain baremetal by defining 2 memory region

    12368
    Fix NRF52840_DK UART driver and adapt FPGA test

    12366
    M2351: Support GCC

    12364
    MIMXRT1050: Update for deep sleep latency

    12363
    Mergify: fix release version label

    12362
    TARGET_STM: L0 CUBE SPI async mode send next byte after previous one is read

    12359
    MXRT1050: Add bootloader support

    12357
    TARGET_STM32F1: don’t set ADC common register when ADC doesn’t support it

    12356
    Fix NRF51, NRF52 gpio_irq_init() function

    12353
    M2351: Support IAR

    12350
    implements i2c_free for STM

    12349
    Nanostack: Update Wi-SUN configuration

    12345
    USBMSD; NFCEEPROM; mbed_compat: Fix compiler warnings

    12344
    Unittests for DNS improvements

    12342
    LPC55S69: Fix UART & GPIO HAL to pass FPGA CI test shield tests

    12341
    STM32L4: Fix the UART RX & TX data reg bitmasks

    12339
    Cellular : add modem version in mbed trace

    12338
    STM32L5 : add DISCO-L562QE board support

    12336
    Disable write buffering on debug builds.

    12335
    Remove CPU usage example from CI build

    12334
    Update cellular drivers/tests for UBLOX_C030_R412M

    12333
    UDP echotests fix in case of no memory or device busy.

    12332
    FIX: Disable Analogin D13(PA_5) on some NUCLEO targets

    12331
    STM32: enable QSPI test with MX25LM51245G octo SPI

    12330
    Fix FAT filesystem ferror greentea test(SD Component)

    12329
    AT_CellularStack: crash during TCP test

    12327
    Doxygen: don’t extract static members

    12326
    Correct SysTimer absolute time calculations

    12324
    Fix inconsistency between mbed crc and psoc6 crc implementations.

    12322
    minimal-printf: README correction

    12321
    Ble driver set random static address

    12320
    ONME-3433 ESP8266 driver support for UDP get - modified ESP8266 drive

    12317
    MXRT1050 Flash support

    12316
    Fix general filesystem greentea test

    12315
    Add check for APPLE & MACH to fix unit tests on macOS

    12312
    Fix to sending IPV6 UPD packet fails IPv6 enabled in SoftAP intf

    12310
    Greentea DNS tests workaround.

    12308
    Tests: add missing mbed_trace.h multihoming header

    12307
    Fix the missing retrieve error context function call.

    12305
    Cellular: Remove support for multiple ATHandlers

    12304
    QSPIF: Enable QPI mode as a second option, if available

    12303
    Fix ARM compiler warning for microlib

    12302
    Remove _LIBCPP_EXTERN_TEMPLATE ARMCC compilation flag

    12299
    MIMXRT1050: Add Watchdog support

    12297
    Corrected minimal-printf README

    12296
    FPGA_CI_TEST_SHIELD : force all peripheral to be tested

    12295
    STM32H7 correct PWMOUT instances

    12293
    Cellular: Remove API’s empty default implemetations

    12292
    Multiple labels need to be in an array of strings

    12291
    Minor optimisation to ATCmdParser unit test code

    12287
    Fix unittests on windows(mingw)

    12286
    Add new target: NUCLEO_L452RE-P

    12283
    STM32WB - Update CubeDriver from v1.0.0 to v1.4.0

    12282
    Fix for issue #12268 (SerialBase.cpp: fix initialization list)

    12281
    Cellular: Refactor socket_stack_init() from generic to modem specific

    12280
    EFM32: add UART and LEUART for EFM32GG11

    12278
    Rename “default_lib” to “c_lib”.

    12275
    Fix call to sorted by providing key to sort on.

    12274
    mergify: enable for any pull request

    12273
    unittests: disable coverage report filtering

    12270
    BUGFIX: SFDP Sector Map Table Parameter ID LSB is 0x81

    12269
    mergify: add fixes to the conditions

    12267
    Fix UDP socket test cases

    12265
    Refactor unnecessary functions from cellular driver

    12263
    unittest: fix coverage filtering

    12262
    Test: Increase the UART flush delay

    12261
    Cellular: Fix compilation fail with APN lookup enabled

    12260
    Add KSZ8041 as a supported PHY for the LPC17xx series

    12258
    Disable the cell AUX UART by default on EP_AGORA

    12257
    psa: Ensure spaces before partition name comment

    12254
    unittest: fix ATCmdParser test segfault

    12253
    storage_abstraction: deprecated since Mbed OS 5.5 and now removed

    12251
    Cellular: Remove friend definitions from cellular state machine

    12249
    Cellular: Remove deprecated CellularDevice::stop()

    12245
    NUCLEO_WB55RG - add device name “STM32WB55RGVx”

    12243
    Add timer shutdown after time stop on deinit

    12241
    M2351: Remove LPTICKER to spare memory for non-PSA minimal secure build

    12240
    Cypress: add SoftAP host tests

    12239
    Fix DNS multiple query hints to perform both IP4 and IP6 tests

    12237
    STM serial free: Set pin function only if pin is defined (not NC)

    12234
    ESP8266: Add built-in hostname resolution handling (disabled by default)

    12231
    Import latest python scripts and MCUBoot image

    12230
    TEST: use K64F replace DISCO_L475VG_IOT01A to run some example test

    12228
    Need RAM and ROM size for compilation

    12227
    Cellular: AT + QICSGP set up APN fix

    12226
    target_test - assert if sectors keyword missing

    12225
    Fix baremetal heap and stack initialisation

    12223
    RZ_A1H and GR_LYCHEE: Enable bootloader support

    12220
    NRF5x targets: Replace UARTSerial references with BufferedSerial

    12213
    ESP8266: Replace UARTSerial references with BufferedSerial

    12211
    Cellular: Replace UARTSerial references with BufferedSerial

    12210
    Fix for issue #10725: disable lp-ticker for STM targets which uses RTC/LSI for lp-ticker

    12209
    NXP target: Replace UARTSerial references with BufferedSerial

    12208
    ST targets: Replace UARTSerial references with BufferedSerial

    12207
    Add BufferedSerial class to replace UARTSerial

    12201
    TARGET_STM: FW driver files refactor proposition

    12199
    Format targets.json

    12198
    uARM: Fix deprecate warning printing wrongly for GCC_ARM/IAR toolchain build

    12166
    NRF52840_DK: Fix baremetal linker error

    12160
    nRF52: Properly configure nRF SDK for nRF52-series targets

    12157
    ESP8266: Avoid duplicate data sends

    12154
    NRF51822: Fix baremetal linker error

    12153
    Hackathon: Increase coverage of the SPI master FPGA test

    12152
    Updated 113 targets with missing detect_codes

    12150
    Update Mbed TLS and Mbed Crypto to latest as of 2019-12-20

    12142
    Thread: remove methods deprecated in 5.10

    12139
    HAL: Add a get_capabilities() function to ResetReason API

    12060
    Improve reliability of KVStore general tests

    12035
    Preparation for Callback changes

    12023
    GCC: remove -fno-delete-null-pointer-checks

    11904
    TOOLS: enable build greentea test coverage for HW

    11874
    ARMC6: Add a build profile extension with the link-time optimizer enabled

    11433
    FPGA CI shield: Add a watchdog timing test

    12611
    STM32F4 UART issue when parity enabled

    12601
    Remove RtosTimer deprecated class

    12599
    Greentea kvstorage tests Cypress targets fix.

    12598
    Change Mutex lock and unlock APIs return value to void

    12597
    Cellular: Add ALT1250 PPP cellular target

    12596
    Remove Mutex deprecated API

    12595
    Fixed typo ‘timout’

    12590
    Importer script: remove apache-2.0.txt

    12583
    STM32F7: baremetal profile support

    12580
    Reverting #12312 as it breaking current WiFI connect()->Disconnect() sequence

    12571
    C++11-ify NonCopyable

    12567
    STM32 EMAC : increase thread size when mbed-trace is enabled

    12560
    crypto: Update to Mbed Crypto 3.0.1

    12559
    DISCO_L4R9I correct LED pins

    12558
    Fix issue when TDBStore has varying erase sizes between areas.

    12557
    M487: Fix crash on WDT reset from power-down

    12554
    Remove FileSystemLike deprecated APIs

    12553
    Remove DirHandle deprecated APIs

    12551
    Remove mbed power management deprecated API

    12550
    Remove mbed interface deprecated API

    12549
    Remove FileHandle deprecated APIs

    12548
    tests-integration-net-single: fix build error

    12545
    threads: fix timeout (set to 25)

    12543
    TLSSocket: Remove deprecated connect

    12540
    fix for suppress ‘unknown object name’ messages from memap.py

    12537
    Minor optimization to improve readability of code

    12536
    Fixed typo ‘thead’ in thread_neighbor_class.h

    12534
    Remove the deprecated CallChain class and its APIs

    12533
    Remove CriticalSectionLock deprecated APIs

    12531
    Add check so that FlashIAP does not allocate memory on flash_init failure

    12530
    Remove reset reason from Future Sequana targets.

    12529
    travis: scancode ret value not cat fix

    12527
    Remove the deprecated ATCmdParser APIs.

    12526
    GCC: Fix the toolchain LTO workaround for Python 3

    12525
    Remove the deprecated Ticker APIs

    12524
    Bugfix: Concurrent SFDP header address init fixed

    12521
    Remove explicit include of mbedtls/config.h

    12520
    Fix initialization order for I2CEEBlockDevice

    12519
    tests-mbed_hal-sleep_manager: fix counter wraparound handling

    12518
    Remove InterruptIn deprecated APIs

    12514
    mergify: add “mergify skip” label

    12511
    allow reconfiguring a running watchdog

    12509
    EFM32: RTCC bugfix for #12374

    12508
    Fix minimal-printf stack overflow

    12507
    Cellular: release _semaphore only once

    12506
    Fix 2 string based IP address removal regressions

    12505
    travis: ignore grep return value for scancode

    12502
    Fixed macro error

    12501
    Remove the deprecated the InterruptManager APIs

    12500
    Remove the deprecated ethernet APIs

    12499
    Cellular: For ublox modem, read ‘@’ char first then send data.

    12498
    TEST: update usb tests and guard them with macro

    12496
    EFM32: fix mbed_hal-pinmap test

    12495
    C++11-ify virtualisation in FileHandle + Serials

    12492
    Update psoc6cm0p asset to version 1.1.1.

    12491
    Fixed error of function ‘mac_fcf_lenght’

    12490
    Fixed error of structure mlme_key_descriptor_t

    12489
    C++11-ify virtualisation in lwIP classes

    12488
    C++11-ify virtualisation in Nanostack classes

    12487
    C++11-ify virtualisation in netsocket

    12484
    TDBStore magic number if endian sensitive fix comment

    12481
    Nanostack release for Mbed OS 6

    12480
    Fix SPDX identifiers and licenses (excluding features and targets)

    12478
    M2351: Fix some minor issues

    12477
    HAL: Add a get_capabilities() function to GPIO API

    12476
    Fix build failure when target’s cmsis doesn’t exist

    12475
    Proposal to remove SPIFReducedBlockDevice

    12473
    Fix Freescale MCUXpresso AnalogOut

    12467
    Inline nsapi_create_stack(NetworkStack)

    12466
    MBED_STACK_STATS_ENABLED : Add stack_name information in greentea metrics

    12464
    STM32 EMAC : add configuration choice and connection check

    12462
    Fix static ram memory statistics for arm compiler

    12460
    Allow MISO/MOSI set to NC during SPI initialisation (fix for issue #12435)

    12458
    Add Musca B1 target

    12454
    Nuvoton: Optimize spi_master_write(…) in case of no SPI MISO pin

    12453
    STM32 TRACE_GROUP update

    12451
    STM32 : enable MBED trace for QSPI

    12450
    SFDP: consolidation of SFDP parsing [3/5]

    12449
    Add missing pins def for ARDUINO_NANO33BLE

    12447
    fix targets device_name with nrf51822 32K SoC

    12446
    Add Eight-Bit-Addressing mode to I2CEEBlockDevice.

    12445
    Fixed typo: ‘lenght’ in ip6string.h

    12444
    Fixed typo: ‘lenght’ in ns_crc.h

    12443
    Fixed typo: ‘lenght’ in coap_service_api.h

    12442
    Fixed typo: ‘lenght’ in minimal-printf

    12441
    CAN: fix length calculation (fixes #12311)

    12440
    Implement reset_reason api for cypress targets

    12438
    Fix CY8CPROTO_062_4343W baremetal build

    12437
    travis: add PR license check for missing/not-valid license files

    12436
    Remove GPIO pin-maps used for FPGA testing

    12431
    Nordic NRF52 GPIO API: Fix non-deterministic failure to configure interrupt handling

    12427
    Minor optimisation to mcr20a-rf-driver code

    12426
    SFDP: consolidation of SFDP parsing [2/5]

    12421
    Cypress Targets Reorganization

    12420
    Remove the deprecated CAN APIs.

    12415
    STM32H7 : add readme file for dual core use

    12384
    STM32WB : update BLE part with better support

    12358
    FIX: add cbor module in the requirement.txt

    12319
    Fix userallocatedevent imp

    12318
    SFDP: Move Sector Map Parameter Table parsing under SFDP module

    12233
    Enable minimal-printf by default for all builds

    12206
    Kvstore tests

    11942
    IPCore String-based API removal

    11856
    GCC: Add a build profile extension with the link-time optimizer enabled

    12941
    Correct Timeout rescheduling

    12938
    Correct core RTOS sleep routine timing

    12935
    Remove unsupported targets

    12924
    STM32F4 bypass PLL configuration when already done by bootloader

    12919
    ExhaustibleBlockDevice: revert commit 10481f2

    12913
    usbcdc: provide doxygen only macro for doxy builder

    12889
    Convert newlines on all terminal (tty) devices by default

    12876
    802.15.4 STM S2LP driver update

    12874
    nRF: use Mbed-default boot-stack-size & fix stack_size_unification test

    12873
    Bare metal profile: USB class device support

    12872
    Add the Doxygen note to non-supported RTOS kernel APIs.

    12866
    Update mbed-coap to version v5.1.5

    12864
    Remove unsupported targets

    12860
    STM32F7 update drivers version to CUBE V1.16.0

    12855
    Bare metal: Enable signals greentea test

    12853
    ARCH_PRO: Remove uARM tooolchain support

    12852
    Update mbed-coap to version 5.1.4

    12850
    Fix intermittent sync fail in tests-filesystem-general_filesystem

    12849
    TEST: Update example test

    12846
    Revert “Remove MTB_STM_S2LP target”

    12844
    Add invalid data case to tdbstore ram init

    12843
    enable storage tests on baremetal

    12841
    Drops prebuild bootloaders not supported in Mbed OS 6

    12840
    Musca-B1: Grant Non-Secure access for MHU0 on EXP0

    12839
    Nuvoton: netsocket correction of judgment errors

    12833
    Override c_lib to small for all targets

    12830
    Cellular: Fix BG96 offloaded DNS query for new API

    12828
    Update CYSBSYSKIT_01

    12827
    enable common tickers & lp_tickers hal tests in baremetal mode

    12825
    Turn on ARM linker –inline

    12823
    Allow Devicekey::generate_root_of_trust() to define key size.

    12819
    Cypress: Fix unitialized memory in spi_master_write

    12818
    Add the Doxygen note to non-supported RTOS and Driver class.

    12817
    Cellular: Disable AT traces when mbed-trace is disabled

    12816
    Baremetal: Enable Semaphore greentea test

    12815
    Cellular: Fix build problem if cellular.debug-at is set as null

    12811
    Remove deprecated Platform header files

    12810
    Remove unsupported targets

    12804
    Cellular: Check if serial is supported

    12802
    Nuvoton: Add ‘sectors’ configuration option into targets.json

    12799
    TDBStore: Handle odd number of sectors in block

    12797
    Add custom board option to STM32 pins generation script

    12792
    Seeed: Removing unsupported Seeed targets for OS 6

    12791
    Fix for IPv6 Dual Stack support

    12787
    Cypress: Add CYESKIT-064B0S2-4343W

    12786
    Baremetal: Enable kernel_tick_count greentea test

    12785
    Cordio: Apply Packetcraft’s fix for possible SweynTooth vulnerabilities

    12783
    LittleFSv2: Bring in v2.2

    12779
    Baremetal: Enable EventFlags greentea test

    12778
    Add I2C api to Musca-B1 target

    12775
    Remove unsupported targets

    12769
    Fix WIFI-GET-RSSI test case failure and remove extra label from CYW9P62S1_43438EVB_01 in target.json

    12768
    ESP8266 Drv support baud-rate switch

    12765
    Update MTS_MDOT_F411RE target and remove bootloader from tools

    12763
    Cellular: Fix ATHandler::read_string to handle delimiter inside string

    12761
    Callback: Trivial default

    12758
    Fix: Return the correct std I/O device handle for Microlib in retarget code

    12757
    Update Mbed OS with Mbed Crypto merged into Mbed TLS

    12755
    Update astyle filtering rules for Nanostack

    12754
    Nanostack release for Mbed OS 6

    12752
    PSoC 62/63: set correct mbed_ram_start and mbed_ram_size

    12748
    Fix build failure due to C lib selected

    12746
    Removed Toshiba targets (AdBun-M066, M3H6 & M3HQ).

    12745
    add config option for phy media interface

    12744
    Change files in TARGET_SDT64B

    12743
    mergify: Add 5.15 rule

    12742
    BLE: remove deprecated APIs from Gatt and SecurityManager

    12741
    Add Semtech Lora radio drivers

    12739
    FIX: update usb device tests for deprecated API

    12738
    Remove Mbed SPM

    12737
    Remove PSA implementation for v8-M and dual CPU targets

    12736
    rtos: Improve CMSIS-RTOSv2 app compatibility

    12735
    Make MUSCA B1 and MUSCA A1 TF-M ready

    12734
    NUCLEO_WB55RG : enable IAR export

    12733
    odin targets: remove release version

    12731
    Testing: Fix multihoming test compilation issues

    12730
    BLE Gap deprecation cleanup/rework

    12729
    Mbedtls fixes

    12728
    STM32 EMAC : increase thread-stacksize

    12719
    FPGA CI TEST SHIELD: add test config json file

    12716
    M487: Update BSP

    12715
    RZ_A1H remove usage of ethernet hal API

    12712
    Fix LTO issue with minimal-printf

    12711
    targets:MIMXRT1050: Add QSPI flash support

    12708
    Remove compatibility for Arm Compiler versions prior to 6.01.0050

    12706
    Tests: Remove support for ARM Compiler 5

    12705
    mbed-client-cli: Remove support for ARM Compiler 5

    12704
    LWIP: propagate the apimsg->err out of netconn_apimsg()

    12702
    TFM: Remove ARM Compiler 5 considerations

    12701
    Add custom BT Firmware image for CYW9P62S1_43012EVB_01

    12699
    Storage: Remove support for ARM Compiler 5

    12698
    Drivers: Remove support for ARM Compiler 5

    12696
    rtos: declare vector table type as in Technical Note 11578

    12694
    Remove netsocket icetea tests and TCPServer

    12693
    USBMSD security updates

    12692
    EFM32G11: Add RGB LEDs to PinNames.h

    12691
    Replace small with std C lib if not supported by a target’s toolchain

    12690
    STM32: solve GCC Unspecified RTOS error

    12686
    STM32 EMAC : remove TIMEOUT issue when cable is not plugged yet

    12685
    Remove deprecated netsocket methods

    12683
    SocketAddress rework

    12682
    MBED TRACE default level is INFO

    12681
    SPIFBlockDevice doesn’t play nice on shared SPI bus #11732.

    12680
    QSPI driver also acquires ownership upon initialization now.

    12679
    PSoC6: enable export to uVision and IAR

    12677
    STM32H7: enable QSPI

    12676
    Remove deprecated BLE:: APIs and unsupported services

    12674
    Remove Maxim and SoftDevice BLE stacks which do not support the latest APIs

    12673
    Mergify update

    12672
    Remove deprecated ARMC5 reference from mbed compile -S output

    12671
    Netsocket/lwIP Stack: Remove support for ARM Compiler 5

    12670
    ESP8266: Fix typo: gateway to netmask

    12668
    tests-integration-fs-threaded: makes tests independent from each other

    12667
    Add check for return code in DeviceKey to avoid injecting invalid ROT

    12666
    Makefile: render compatible with some GNU make versions (revert #12646)

    12663
    Migrate NUCLEO_F303K8 to Mbed OS 5 baremetal

    12662
    Add workaround for STM32F4 hardfault in sleep mode

    12661
    Adjusted SecurityManager Doxygen ASCII art

    12660
    M2351: Support custom board

    12659
    Rebuild WICED libraries after Mbed update

    12658
    tests-integration;tests-filesystem: fix code causing compiler warnings and enable more tests

    12655
    Remove ARMC5 reference from Mbed OS platform

    12654
    Removed all references to __CC_ARM

    12652
    Add moduletests for FileSystemStore

    12651
    Cellular: Make Quectel EC2x modem start up timeout configurable

    12649
    Expose SerialBase IrqType member to UnbufferedSerial class

    12648
    Nanostack: Add config for Wi-SUN device type

    12646
    Makefile: fix for overlong command line

    12645
    Storage: Use internal flash for KVStore always if default config

    12642
    M263: Support custom board

    12640
    Remove minimal-printf extension profile

    12639
    Remove the deprecated ethernet hal APIs

    12638
    Enable storage tests to all targets

    12637
    Cordio: fix for issue #12625

    12636
    Extend unit tests for TDBStore

    12633
    Cellular: Add offload TLSSocket implementation inside feature flag

    12632
    Fix snprintf in minimal-printf library

    12631
    Update psutils to address security issue

    12630
    mbed test with dual core targets

    12629
    Add “rtos-api” to bare metal

    12626
    STM32F4 update drivers version to CUBE V1.25.0

    12624
    Cellular: Support EC2x power control pin support no connect

    12617
    Correct doxygen for Mail::get

    12612
    TEST: add RTOS macro to enable integration test

    12610
    Add UBLOX_onboard_modem_api for power up UBLOX_C027.

    12609
    Remove Semaphore deprecated APIs

    12607
    Use toolchain’s struct stat if available

    12606
    Netsocket: Introduce set_ip_address and get_dns_server APIs

    12603
    Add target CYSBSYSKIT_01

    12589
    Cellular: Add deativation of context associated with profile

    12581
    Fully enforce NonCopyable

    12576
    M487: Support custom board

    12572
    Remove mbed wait deprecated APIs

    12570
    Improve nsapi_create_stack

    12569
    Replace with weak mbed_error_hook implementation (deprecate the hook function)

    12547
    EFM32: update emlib to 5.9.1

    12528
    SFDP: consolidation of SFDP parsing [5/5]

    12522
    Add property API to InternetSocket

    12472
    Add WPA3 support in mbed-os for green tea tests

    12463
    Clean up and optimise socket statistics

    12456
    COMPONENT_BlueNRG_MS creation : ST Bluetooth Low Energy module

    12425
    C++ Chrono support

    12410
    Remove the deprecated RawSerial, UARTSerial, Serial

    12387
    Add Objects Extensions Configuration Parameter to HAL

    12300
    Add get_time function to ESP8266

    12271
    Make cypress psoc64 TFM ready and also add TF-M initialization

    12161
    nRF52 I2CSlave Implementation

    12036
    Callback extension and optimisation

    11726
    Disable C++ static destructors in ARMC6 compiler

    11629
    Refactor TDB internal bounds computation

    12995
    build tools: fix target toolchain

    12984
    Disable mbed 2 and unsupported targets

    12982
    build api: fix release version

    12981
    IOTSTOR-1044 - SPIFBlockDevice is broken in Mbed OS master(6),

    12978
    Update psoc6pdl to v1.5.2

    12977
    STM32: remove uARM toolchain

    12971
    MemoryPool fixes

    12961
    Remove nRF51 targets

    12960
    STM32 code cleaning for MBED-OS6

    12959
    STM32: targets json rework

    12958
    Fix vector table bug when using bootloader on STM32WB55

    12956
    NRFCordioHCIDriver: remove idle_hook (and RTOS dependency)

    12951
    Clean-up S2LP driver configuration

    12949
    CMSIS: update to CMSIS 5.7.0

    12947
    Fix setting the QE bit on ISSI Flash memories

    12945
    Cleaning up PinNames.h for SDP-K1 board.

    12944
    Fix the USB MSD greentea host side pyusb_msd.py script

    12943
    Cypress: Update assets to latest

    12942
    Add Timeout rescheduling test

    12923
    Nuvoton: Refine more on watchdog HAL

    12917
    Bare metal profile: Enable USB serial greentea test

    12916
    USB basic and hid greentea test cleanup and enable to the bare metal profile

    12915
    Optimise HAL_GetTick API

    12914
    Add possibility to configure Mesh MAC neighbourtable size.

    12909
    Cypress: Misc target updates

    12906
    Work around C++14 assert problem

    12904
    SDBlockDevice: Convert to Chrono

    12903
    Nanostack HAL: Convert to Chrono

    12902
    USB: Convert to Chrono

    12901
    Rationalise Mail/Queue/MemoryPool timing APIs

    12896
    Nuvoton: Fix watchdog reset failure on meeting Hard Fault

    12890
    [SX1272 & SX1276 Driver] Fix Fifo Pointer in Continuous Mode

    12888
    Musca-B1: Fix I2C pinmap array

    12875
    KVStore: Fix buffer overrun when device key size doesn’t match

    12865
    Nuvoton: Support bare-metal profile on NANO130 and M453

    12856
    ST Boards: Remove uARM tooolchain support

    12836
    Wi-SUN added regulatory domain Brazil

    12808
    KVStore: Remove incorrect check with non-default configuration of FLASHIAP

    12805
    Tests: USBSerial: Handle minimal printf limitations

    12801
    Add base support for STM32H745

    12721
    ESP8266: static address configuration and dhcp enable/disable added

    12623
    LPC1114: baremetal profile support

    12433
    ESP8266: Convert to Chrono

    12432
    NFC: Convert to Chrono

    12430
    Cellular: Convert to Chrono

    12429
    DTLSSocketWrapper: Convert to Chrono

    12428
    nsapi_dns: Convert to Chrono

    13008
    tools: Warn when ARMC5 is no longer supported

    13007
    tools: Support default_lib and c_lib

    13003
    Mark PSA as an experimental API

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.0.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.15.3

    Downloads: zip tar.gz

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

    Summary

    This latest partner and customer support release on the 5.15 branch brings a number of important fixes and updates.
    Highlights: * mbed-coap versions to 5.1.5 * Updated Nanostack containing an improved version of Wi-SUN protocol stack. * Possible BLE Sweyntooth vulnerabilities fixed in Cordio

    For full details of these and other fixes in this release please see the contents list below.

    Migration Guide

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

    None

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    None

    Fixes and Changes

    12871
    UpdateMbed version and secure binaries

    12869
    LWIP: don’t pbuf_free(NULL) on socket close (5.15-branch)

    12867
    Update mbed-coap to version v5.1.5 for Mbed OS 5.15

    12863
    STM32 GCC Unspecified RTOS error

    12859
    Update mbed-coap to version 5.1.4

    12854
    Implement psa_hash_*() functions

    12845
    Backport SweynTooth fix for Cordio to 5.15

    12842
    Remove ethernet interface logic for SoftAP and STA

    12813
    [mbed-os-5.15] Nanostack release to mbed-os-5.15 branch

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.15.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.15.2

    Downloads: zip tar.gz

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

    Summary

    This latest patch release for the 5.15 branch continues to add support for our partners and customers needs whilst we continue to prepare for the next major version of Mbed OS.
    It contains a branch specific Nanostack release to fix a number of outstanding issues, some important TLS updates and bootloader support for RZ_A1H and GR_LYCHEE. There are also a number of other essential fixes.

    Please note that this release is NOT currently supported by the official Mbed OS examples or the online compiler.

    Migration Guide

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

    Upgrade to Mbed TLS 2.21.0 and Mbed Crypto 3.1.0

    12767

    Summary of changes

    Upgrade to Mbed TLS 2.21.0 and Mbed Crypto 3.1.0

    Impact of changes

    • Security fix for https://nvd.nist.gov/vuln/detail/CVE-2019-18222, without dropping Mbed TLS features by reverting back to an older LTS version of Mbed TLS (2.16.x). This requires bumping the version of Mbed Crypto to 3.1.0, which brings along with it an API break in the experimental PSA APIs

    Migration actions required

    What behavior changes are being made?
    For security and NIST SP 800-90A compliance reasons, CTR DRBG now grabs a nonce from the entropy source if needed to provide the maximum security strength. A previously unused-before-seeding member of the CTR DRBG context, mbedtls_ctr_drbg_context::reseed_counter, is used to hold the number of bytes the user has requested to include from the nonce via mbedtls_ctr_drbg_set_nonce_len(), or -1 to indicate that the entropy nonce length was not set explicitly. This means applications that were depending on a reseed_counter value of 0 to mean “not yet seeded” will need to instead handle errors from calls to mbedtls_ctr_drbg_seed().

    What is being deprecated?
    A few PSA Crypto asymmetric cryptography functions and macros, key usage definitions, and error code definitions have been renamed to better reflect their operation and to improve readability.

    Why is this being deprecated?
    The PSA Crypto API continues to develop as it heads towards its 1.0 release. Mbed Crypto 3.0.0d0 implements more of PSA Crypto 1.0b3 than was implemented in Mbed Crypto 2.x, and this brings along some API deprecations.

    Mbed Crypto includes backwards compatibility macros (by way of psa/crypto_compat.h) to provide source-level backwards compatibility, although it’s recommended to stop using the deprecated APIs as soon as you are able to.

    Migration
    To avoid using deprecated APIs, users of PSA Crypto should update to the new version of API.

    Old New
    psa_asymmetric_sign() psa_sign_hash()
    psa_asymmetric_verify() psa_verify_hash()
    PSA_ASYMMETRIC_SIGNATURE_MAX_SIZE() PSA_SIGNATURE_MAX_SIZE()
    PSA_ASYMMETRIC_SIGN_OUTPUT_SIZE() PSA_SIGN_OUTPUT_SIZE()
    PSA_KEY_USAGE_SIGN PSA_KEY_USAGE_SIGN_HASH
    PSA_KEY_USAGE_VERIFY PSA_KEY_USAGE_VERIFY_HASH
    PSA_ERROR_UNKNOWN_ERROR PSA_ERROR_GENERIC_ERROR
    PSA_ERROR_OCCUPIED_SLOT PSA_ERROR_ALREADY_EXISTS
    PSA_ERROR_EMPTY_SLOT PSA_ERROR_DOES_NOT_EXIST
    PSA_ERROR_INSUFFICIENT_CAPACITY PSA_ERROR_INSUFFICIENT_DATA
    PSA_ERROR_TAMPERING_DETECTED PSA_ERROR_CORRUPTION_DETECTED

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    Fixes and Changes

    12780
    Cypress: Remove CYSBSYSKIT_01 from 5.15

    12776
    Update stm32 emac ethernet driver

    12771
    Cypress: Partial backport of #12769

    12767
    Upgrade to Mbed TLS 2.21.0 and Mbed Crypto 3.1.0

    12753
    Cypress: Backport PRs from 6.0 to 5.15.2

    12727
    USBMSD security updates (bp #12693)

    12724
    RZ_A1H and GR_LYCHEE: Enable bootloader support (Mbed OS 5.15)

    12723
    Mbedtls fixes for 5.15.2

    12717
    Add fix for STM32F4 hardfault in sleep mode

    12653
    Fix issue when TDBStore has varying erase sizes between areas. (Backport)

    12650
    Cellular: ALT1250 PPP cellular driver for mbed-os 5.15

    12485
    Nanostack release for Mbed OS 5.15

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.15.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.15.1

    Downloads: zip tar.gz

    As we prepare for the release of the next major version of Mbed OS, we still need to ensure that the needs of partners and customers are met, so today we are releasing a patch release for Mbed OS 5.15 (Mbed OS 5.15.1) This release includes a mix of defect fixes required to support existing customers and the enablement of a small number of new targets to support marketing activities ahead of Embedded World later this month.

    Our focus on the next major Mbed OS release continues and we’ll do our second alpha release next week.

    Summary

    In this release we have added the following targets: * Samsung Exynos i S111 * NUCLEO_G071RB * HANI_IOT * NUCLEO-L552ZE-Q

    We have fixed the following reported issues:

    12361
    OKDO odin driver - ARM in nightly error hciCmdAlloc not defined

    12087
    Bad AT+COPS command with plmn

    12005
    Build error with NUCLEO_H743ZI2 (Armc5, Mbed os 5.14)

    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

    12355
    HANI_IOT: add new target board support

    12106
    Add Samsung Exynos i S111 target

    12093
    TARGET_STM: add support of board NUCLEO_G071RB

    12306
    STM32L5: NUCLEO-L552ZE-Q new target

    Fixes and Changes

    12377
    Update psoc6cm0p asset to 1.1.0

    12370
    OKDO_ODIN_W2: Reenable lp-ticker and BLE

    12355
    HANI_IOT: add new target board support

    12306
    STM32L5: NUCLEO-L552ZE-Q new target

    12167
    Update Cypress Targets and Assets

    12164
    Pr dev/remove hardcoded timeout in cypress bt code

    12147
    mbed-coap uint16 overflow fix

    12146
    mbed-coap buffer overflow fix

    12140
    STM32 clean mbed_rtx.h file

    12134
    Fix LPC11U35_401 baremetal build

    12126
    Robustify equeue multithread unit test

    12106
    Add Samsung Exynos i S111 target

    12093
    TARGET_STM: add support of board NUCLEO_G071RB

    12088
    Cellular: Fix AT command for COPS manual network selection

    12022
    Make ESP8266 compatible with bare metal profile

    12015
    STM EMAC: compilation issue with ARMC5

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.15.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.15.0

    Downloads: zip tar.gz

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

    Summary

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

    Migration guide

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

    Add support for Wi-SUN RF channel configuration

    11958

    Summary of changes

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

    Impact of changes

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

    Migration actions required

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

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

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

    they need to be removed or checked for validity.

    Remove string-based API usage within mbed-os

    11941

    See https://github.com/ARMmbed/mbed-os/pull/11914 for deprecation information. This PR provides SocketAddress-based APIs if they were missing after previous changes but does not remove the old APIs.

    Summary of changes

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

    Impact of changes

    None.

    Migration actions required

    None.

    Updates to tools for Python 3 compatibility

    11921

    Python 3 is now supported by the tools.

    Summary of changes

    No functional changes, code should be equivalent.

    Impact of changes

    Code should be Python 3 compatible.

    Migration actions required

    None.

    Deprecate string-based APIs in IPCore

    11914

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

    Summary of changes

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

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

    Code gives deprecated warnings whenever old API is used.

    Migration actions required

    Switch to the new SocketAddress based API.

    Bring static pin map extension to master

    11892

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

    Make SMS configurable in Cellular stack

    11873

    Summary of changes

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

    Impact of changes

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

    Migration actions required

    None.

    mbed_retarget: Add a minimal console implementation to provide basic functionalities

    11796

    Summary of changes

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

    Impact of changes

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

    Migration actions required

    None.

    Deprecates NVStore

    11785

    Summary of changes

    NVStore is marked as deprecated.

    Impact of changes

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

    Migration actions required

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

    Update to Mbed TLS 2.20.0d0 and Mbed Crypto 2.1.0d0

    11687

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

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

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

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

    New declaration of psa_drv_se_validate_slot_number_t:

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

    Old declaration of psa_drv_se_validate_slot_number_t:

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

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

    11595

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

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

    11556

    Summary of changes

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

    Impact of changes

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

    Migration actions required

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

    Enable DER coded certificate support to Wi-SUN mesh API

    11539

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

    DNS manual cleanup mechanism added

    11535

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

    ESP8266 unlocks deep sleep when disconnected

    11514

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

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

    UART input is disabled and deep sleep is unlocked:

    • If module is disconnected

    Cellular: Add API to clear CellularDevice

    11414

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

    ESP8266 nonblocking connect/disconnect

    11409

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

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

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

    Offloaded TLSSocket and BG96 support for it

    11357

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

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

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

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

    Add watchdog lower limit timeout test

    11203

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

    Introduce an Mbed config to enable XIP

    11006

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

    This feature is disabled by default on all targets.

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

    LwIP: Add ICMPv4 Socket support

    10978

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

    Free serial resources if not needed anymore

    10924

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

    Tools: check for GCC 9, rather than 6

    10618

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

    Known issues

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

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

    TLS: IP addresses in the X.509 certificate subjectAltNames

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

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

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

    TLS: Self Test Failure with Some Hardware Accelerators

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

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

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

    Crypto: Mbed OS ATECC608A example fails to build with IAR

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

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

    • Description: The error, “pkg_resources.DistributionNotFound: The ‘mbed-ls==1.*,>=1.5.1’ distribution was not found and is required by icetea, mbed-flasher” is observed when running the command mbed test -m K64F -t ARM --icetea --compile-list -vv.
    • Workaround: None.
    • Reported Issues: https://github.com/ARMmbed/mbed-os/issues/8064.
    • Priority: Major.

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

    • Description: This issue only affects users of the Cordio Link Layer. If this ordering is not respected, GAP advertising data will not be set correctly.
    • Workaround: If using the BLE API, apply changes from 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: Bare metal build fails due to Cryptocell dependency

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

    ArmC5 builds may be broken

    • Description: Some boards fail to build with Arm Compiler 5. Mbed OS uses Arm Compiler 6 by default for most of the builds. Arm Compiler 5 is deprecated and will be removed in Mbed OS 6.
    • Workaround: Use ArmC 6, GCC or IAR.
    • Reported issues: Various https://github.com/ARMmbed/mbed-os/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+%28ARMC5%2C+Mbed+OS+5.14%29
    • Priority: Low.

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

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

    Test report

    OOB (out-of-box) testing

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

    Release automated CI testing

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

    CI pipeline tests

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

    The Greentea test failures are:

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

    Test numbers:

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

    Targets coverage:

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

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

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

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

    • NRF52840_DK.

    And removed testing for :

    • NUCLEO_F207ZG.
    • NUCLEO_F746ZG.
    • NUCLEO_F746NG.

    Coverity

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

    Code coverage

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

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

    Memory monitoring

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

    Other contributors to the ROM size increase include:

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

    Contents

    Ports for upcoming targets

    11886
    Add target for CY8CPROTO-062S3-4343W

    11846
    Add support for Makerdiary nRF52840-MDK

    Fixes and changes

    11979
    Bare metal Greentea tests compilation fixes

    11978
    LPC55S69_NS: Fix bare metal compilation error

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

    11967
    Fixed crashing nsapi_dns unittest

    11966
    Fix targets.json syntax errors

    11963
    STM32 USB: Add __HAL_RCC_PWR_CLK_ENABLE

    11959
    Minimal Console: Fix compilation error

    11958
    Add support for Wi-SUN RF channel configuration

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

    11950
    DISCO_H747I: Add support of MBED_TICKLESS

    11949
    Fix for ArmC5 compilation errors for some targets

    11947
    Minimal Console: Fix syntax errors

    11944
    Cypress: Minor fix for mbed astyle

    11943
    Split integration tests in fs/net

    11941
    Remove string-based API usage within mbed-os

    11938
    STM32: Update and align serial_clear implementations

    11937
    Cellular: Replace CellularSocket.rx_avail with pending_bytes

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

    11935
    Cellular: Mark to be deprecated in CellularDevice

    11930
    Add FlashIAP to NUCLEO_L4R5ZI

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

    11926
    Fixed Greentea FileHandle test for microlib

    11925
    Fixed Greentea minimal-printf test for microlib

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

    11921
    Updates to tools for Python 3 compatibility

    11919
    Cypress: FPGA: Improve SPI async calls

    11918
    IOTSTOR-978: Bug fixes to TDBStore and SecureStore

    11915
    TESTS: Fix TCP/TLS send_timeout test to nonblocking

    11914
    Deprecate string-based APIs in IPCore

    11913
    LPC55S69_NS default TDBStore size increased to 32kB

    11911
    Update mbed-coap to version 5.1.2

    11908
    I2C byte read/write transmission improvement

    11901
    Update MPN for CYW9P62S1_43012EVB_01 board

    11899
    Fixes to PR template

    11895
    TESTS: Allow ipv6_link_local_address() as unsupported

    11892
    Bring static pin map extension to master

    11890
    S2-LP: Sync with development repository

    11889
    Nanostack release for Mbed OS 5.15

    11888
    Pelion enable for UNO_91H

    11887
    Add target for CYW9P62S1_43438EVB_01

    11886
    Add target for CY8CPROTO-062S3-4343W

    11885
    Update to WHD 1.60 release

    11884
    Update Cypress targets

    11882
    DISCO_L475VG_IOT01A: Fix bare metal profile Greentea tests

    11881
    UBLOX_EVK_ODIN_W2: Fix bare metal build and Greentea tests

    11877
    Fix for sending IPv6 UDP packet over link local interface

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

    11873
    Make SMS configurable in Cellular stack

    11870
    STM32F7: linker scripts updates

    11868
    Cypress Target update to support Manufacturing Test

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

    11865
    IAR: Enable linker optimizations for develop/release profile

    11851
    Enable FAT ChaN lib configuration with mbed_lib.json

    11846
    Add support for Makerdiary nRF52840-MDK

    11841
    Wi-Fi: Reorder Greentea tests with minor fixes

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

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

    11827
    DISCO STM32H747I ETHERNET support, but disabled

    11825
    Bare metal Greentea test for storage component

    11824
    Skip bare metal Greentea test for Network component

    11821
    Skip bare metal Greentea test for PSA component

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

    11811
    STM32H7 FLASH API issue with M4 core

    11808
    Document Socket API functions return values

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

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

    11785
    Deprecates NVStore

    11783
    Adding set baud rate routine

    11773
    Fix watchdog reset test

    11755
    Unittests for nsapi_dns

    11735
    Dns unittest preparation

    11721
    Bare metal Greentea support

    11720
    ATCmdParser: Merge scanf and recv functions

    11713
    Remove Tickless from STM32F4 targets

    11711
    STM32F7 update drivers version to CUBE V1.15.0

    11701
    Arm toolchain: heap setup micro-optimization

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

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

    11675
    STM32 USB update step 1

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

    11641
    PmwOut: Add method to enable/disable PWM

    11634
    Serial design draft

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

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

    11551
    Coverity updates

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

    11535
    DNS manual cleanup mechanism added

    11514
    ESP8266 unlocks deep sleep when disconnected

    11480
    Enable tickless mode in additional tested targets

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

    11463
    Enable tickless mode in MAX32630FTHR

    11460
    ESP8266 Unified Mbed trace prints.

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

    11444
    QSPI : Define default pins at drivers level

    11430
    Member get_interface_name implemented in ESP8266Interface

    11414
    Cellular: Add API to clear CellularDevice

    11409
    ESP8266 nonblocking connect/disconnect

    11357
    Offloaded TLSSocket and BG96 support for it

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

    11203
    Add watchdog lower limit timeout test

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

    11006
    Introduce an Mbed config to enable XIP

    10978
    LwIP: Add ICMPv4 Socket support

    10940
    Deinitialize the pin definition

    10924
    Free serial resources if not needed anymore

    10618
    Tools: Check for GCC 9, rather than 6

    12059
    Config: Fix bootloader config errors - propagate errors

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

    12047
    NANO130: Fix OOM with packing algorithm at IAR linking

    12039
    Fix build errors for bare metal Greentea tests on NRF52840_DK

    12033
    static pin-map: patch for SerialBase class

    12030
    Updates the Cypress Wi-Fi Host Driver to 1.7.0

    12006
    FIX: Fix a bug introduced by static pin map

    11991
    TESTS: Fix integration tests

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

    11970
    Avoid crashes during fault handler

    12117
    Storage features: fix static pin-map for ArmC5

    12112
    Notify on configuration exception rather than breaking build

    Using this release

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

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

  • mbed-os-5.14.2

    Downloads: zip tar.gz

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

    Summary

    In this release we have added the following targets: * CY8CKIT_064S2_4343W * DISCO_H747I (CM7 core) * DISCO_H747I_CM4 (CM4 core) * CYW9P62S1_43012EVB_01

    As an exception to our normal patch release rules we have added a new API called get_ipv6_link_local_address in NetworkInterface class. This API returns IPv6 link local address.

    The QSPI interface permits the alt (aka mode) bits to be any multiple of the bus width. Previously the values
    in qspi_alt_size_t only supported multiples of bytes. This has been fixed in this release. This is a backwards
    compatible change as compatibility macros are provided for the old qspi_alt_size_t values.

    We have updated LittleFS to v1.7.2. The release notes for this change can be found here: * v1.7.2: https://github.com/ARMmbed/littlefs/releases/tag/v1.7.2 * v1.7: https://github.com/ARMmbed/littlefs/releases/tag/v1.7.0

    The Cypress WiFI Host Driver (WHD) has been updated to version 1.40. This includes the following changes: * Security fix (KRACK all-zero-key) * Fixed Wi-Fi connection issue after receiving DISASSOC_IND messages * Fixed ioctl buffer length overflow * Added API input argument checks

    It should be noted that the base target name for NU_PFM_M2351_CM has been changed to NU_PFM_M2351 in this release.

    We have fixed the following reported issues:

    • 11530 Gaps in QSPIFBlockDevice SFDP Implementation
    • 11413 Board will not enter Deep Sleep after communications with Cell Module
    • 11606 Cellular: Cannot use private _is_connected flag.
    • 11633 QSPIF general_block_device test is failing on EFM32GG11_STK3701
    • 11659 STM32F767ZI - I2C FastModePlus not properly enabled
    • 11674 STM trng_api uses always RCC_RNGCLKSOURCE_PLL
    • 11361 Sleep/deepsleep and Serial class
    • 11565 Profiles contain RTX symbol (bare metal error)
    • 11442 UDPSocket::sendto does not work with ipv6 and local-link interface addresss
    • 11643 Cypress GPIO pull mode tests fail on CY8CKIT_062_WIFI_BT
    • 11545 DISCO-L475VG-IOT01A lp_timeout test fails CI on IAR
    • 11769 Cypress: PWM FPGA test wrong assert
    • 11778 EventQueue: impossible to cancel event with negative unique id
    • 11758 Using rawSerial adds about 600A
    • 11795 Cypress: SPI FPGA test: tester always respond 0 when MODE other then 0
    • 10342 USBMSD not recognised in MacOS
    • 11652 The online compiler fails to build the Xadow-M0 target with MBED2 rev. 142 and later.
    • 11746 AnalogIn test issue
    • 11768 BLE: Security Manager doesn’t restore saved security parameters

    We have also:

    • Added FLASHIAP component support to DISCO_H747 and NRF52840_DK
    • Enabled MBED_TICKLESS for MCU_PSOC_M4
    • Added support for the Watchdog on nRF52 devices
    • Added bootloader support for Seeed Arch-MAX
    • Added iar exporter support for TT_M3HQ and TT_M4G9
    • Enabled RESET_REASON and WATCHDOG for EFM32GG11_STK3701

    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

    11715
    Add CYW9P62S1_43012EVB_01 board

    11605
    DISCO_H747I dualcore support

    11434
    Initial addition of files to support CY8CKIT_064S2_4343W target

    Fixes and Changes

    11902
    Cellular: Enable ePCO IE for BG96 driver

    11872
    Change mbed-os-example-wifi to build only DISCO_L475VG_IOT01A

    11871
    TESTS: Add socket.set_timeout in udpsocket_echotest

    11869
    IOTSTOR-978: Skip a unstable testcase until fixed

    11861
    Replace calls to printf() with mbed-trace in netsocket tests

    11859
    Cellular: Fix queue scheduling for bare metal

    11854
    ATHandler build warning fixed

    11850
    Correct PB_6/PB_7 Serial AF mapping

    11848
    Remove ITM Trace support from Arduino Nano 33 BLE

    11844
    EFM32: Enable RESET_REASON and WATCHDOG for EFM32GG11_STK3701

    11843
    Fix ethernet memory handling issues on CM3DS

    11840
    Update Cypress WifiHostDriver to version 1.50

    11836
    Add sender address and port verification to UDPSOCKET_ECHOTEST

    11834
    Fix flag checks to allow disabling unsecure tests

    11833
    TESTS: turn off blinky log compare test due to example changed

    11831
    BLE: Added call to delete the security database object upon SM reset.

    11830
    Cypress: Add implementation of free() for gpio

    11828
    MCU_LPC11U35_501: fix MCU inheritance

    11823
    IOTBTOOL-333: Fix SimpleQueue build failure on py3

    11822
    TLSSOCKET_HANDSHAKE_INVALID test skip if DNS AAA record not available.

    11818
    Adding baud rate setting to TLS and UDP echo burst tests

    11816
    Fix failure of building non-RTOS for GR-PEACH, GR-LYCHEE and VK-RZ/A1H

    11815
    Updated targets.json file to go along with pr-11770

    11814
    USBMSD: implement MODE SENSE (10) command

    11813
    Fix ARM issue 11795: - Cypress: SPI FPGA test: tester always respond

    11810
    SecureStore: Add member initializers for inc_handle_t

    11800
    Update common Cypress libraries

    11797
    IOTSTOR-953: Fix address calculations from SlicingBlockDevice

    11790
    nrf52: reset UARTE peripheral in serial_free

    11782
    equeue: avoid non-standard bit shifts

    11780
    Nuvoton: Add implementations of HAL API i2c_free and analogin_free

    11777
    IOTBTOOL-377: Fix scatter file include path online

    11776
    Fix for issue #11769 (Cypress: PWM FPGA test wrong assert)

    11775
    LPC55S69: fix serial_set_flow_control

    11772
    Cellular: updated cellular context flags and cid in ublox-api

    11770
    Update CM0P pre-built images to build 1.0.0.35

    11767
    Increase STM32 default deep sleep latency to 4ms

    11765
    Cypress: fix GPIO mode NONE

    11763
    Display full path of generated coverage output from unittests.

    11759
    STM32 QSPI: Use defines for setting address size

    11756
    Add option to use CCMRAM on F303xE.

    11754
    Cellular: Added write_hex_string to AT handler

    11752
    FlashIAP: Get erase value from HAL instead of hardcoding it

    11749
    M2351: Change base target name ‘NU_PFM_M2351_CM’ to ‘NU_PFM_M2351’

    11748
    Fix spurious link up/down when AP IP address range change

    11747
    Update the internal kvstore flash reservation size to from 7k to 65K for Cypress Devices

    11743
    fpga i2c test: limit tested peripherals

    11742
    Fix the reset_reason host test in the CI

    11739
    Nrf52 i2c byte rw fix

    11736
    Nuvoton: Remove TRNG support

    11734
    nxp LPC55S69: fix i2c pin mapping

    11729
    minimal-printf: Fix handling of the two character sequence %%

    11728
    minimal_printf: Fix high level C functions that print to the console

    11725
    DeviceKey: Fix random key doesn’t generate with custom entropy source

    11724
    iar export for TT_M3HQ and TT_M4G9

    11719
    Ensure modem echo is off before sending other AT commands

    11718
    Handle legacy process event first on connection complete

    11717
    Fix Quectel M26 context hang

    11715
    Add CYW9P62S1_43012EVB_01 board

    11714
    LWIP::get_ipv6_addr for link-local only

    11710
    Update examples testing scripts

    11709
    Update CMSIS pack index json for STM32H7xx family

    11708
    TARGET_STM: remove warning and fix typo on SPI

    11706
    MCU_NRF52840: Switches to correct Product Anomaly Notification(PAN) macro

    11700
    Add bootloader support for Seeed Arch-MAX

    11699
    Fix for missing os_cb_section

    11698
    Clean up ARM toolchain heap+stack setup in targets

    11697
    USB-Cypress: Lock sleep when USB is initialized

    11695
    GREENTEA: init trace if trace is enabled in json

    11694
    Fix components setting for GR-PEACH and GR-LYCHEE

    11693
    UDPSOCKET_ECHOTEST change to tolerate duplicate packets

    11692
    NRF52840_DK: enables FLASHIAP for the device

    11691
    QSPI: document use of QSPI_NO_INST

    11690
    Changed mbed gpio-port api to match gpio api

    11688
    Clearing UART TC Flag prevents deep sleep, so do not clear it

    11686
    Corrected nanostack PAE controller

    11685
    Check-in PSA related auto-generated files to support online compiler.

    11684
    Add support for nRF52 Watchdog

    11683
    Baremetal profile fixes

    11679
    STM32L4 TRNG clock configuration

    11677
    Update BT Firmware to version 128.

    11676
    nrf52 - fix i2c/twi driver

    11673
    stm32f4xx_hal_pcd.c@346,22: unused variable ‘ep’

    11672
    STM32F767ZI - I2C FastModePlus not properly enabled

    11671
    nrf5x - add missing gpio_set implementation

    11669
    Fixed issue with integer overflow when converting time units

    11668
    Update Cypress WiFi driver code to version 1.40

    11667
    Fixes IPv6 multicast join issue

    11662
    Allow WhdAccessPoint scan results with extended parameters

    11661
    mbed_rtc_time.h lacks an include guard

    11660
    Fix dropped bytes on spi write

    11657
    Cellular: Fix apn check

    11650
    Nuvoton: Re-implement TRNG HAL with TRNG H/W

    11646
    Fix swapped BT pins on CYW943012P6EVB-01

    11645
    Enable tickless for PSoC6 targets

    11644
    Cypress Cordio BT Driver setting Host MCU active during Host Wake assert

    11642
    STMOD_CELLULAR: remove flow control support for DISCO_L4R9I

    11636
    EFM32GG11_STK3701: add QSPIF component config

    11635
    USBDevice: add documentation on USB suspend/resume to enter deep sleep

    11631
    Qspi frequency test fix

    11630
    Cellular: Change visibility of _is_connected as protected

    11624
    LittleFS: Update to v1.7.2

    11623
    STMOD_CELLULAR: set CTS with PullDown

    11622
    nRF52 SDK 15.0 - Enable more than 1 interrupt

    11620
    Fix enum type to align with psa-arch-tests

    11619
    Add FLASHIAP component to DISCO_H747

    11609
    IOTBTOOL-407 Fix microbit to use Arm C5

    11605
    DISCO_H747I dualcore support

    11604
    Introduce qspi_inst_t type for QSPI instructions

    11603
    Report errors returned by _qspi_configure_format

    11602
    Allow for arbitrary QSPI alt sizes

    11599
    FUTURE_SEQUANA: SPI HAL API fixes

    11586
    Cleaned up Mbed LWIP configurations

    11580
    Remove target dependency in ublox cellular APIs

    11578
    Add synchronization and switching between WhdSoftAPInterface and WhdSTAInterfaces

    11571
    Allow OS_THREAD_LIBSPACE_NUM as a macro

    11563
    Simplify pull request template

    11547
    Fix for UBLOX_EVK_ODIN_W2 fails in emac test.

    11536
    STM32 EMAC configuration update

    11531
    Improve QSPIFBlockDevice conformance to SFDP

    11512
    Fix Failure in Cryptocell tests on Montgomrery curve

    11475
    TEST: add atecc608a example to compilation test

    11457
    tools: add silent option to build

    11434
    Initial addition of files to support CY8CKIT_064S2_4343W target

    11429
    Move script to check for floats and make it Python 2 compatible

    11375
    NSAPI DNS query IP version check for non LWIP stacks.

    11279
    Add API to get ipv6 link local address

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.14.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.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