github ARMmbed/mbed-os mbed-os-6.8.0

latest releases: mbed-os-6.17.0, mbed-os-6.17.0-rc3, mbed-os-6.17.0-rc2...
3 years ago

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

Summary

There is no major new functionality introduced as part of this release, but some of the enhancements we've made to extend BLE functionality have changed APIs, so as per semantic versioning, we've incremented the release version.

This release includes further changes for CMake support in Mbed OS and this now requires the mbed-tools version to be upgraded to 7.1.0 in order to function correctly.

The CMake changes are summarised below;

CMake: all Mbed OS targets contain CMakelists.txt
CMake: Post build hooks implemented (TF-M not yet supported)
CMake: CMake targets refactored to simplify custom targets creation

Migration Guide

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

BLE: Add APIs to get characteristic authorization callbacks.

14257

Summary of changes

This change adds two APIs to query the registered callbacks in a characteristic.

BLE: Add API to test the presence of an event handler in a chain.

14256

Summary of changes

Add a function to test if a handler is present in an event chain.

Update EventQueue API to use chrono times

13975

Summary of changes

Main dispatch function is updated to take a Chrono duration instead of an integer milliseconds parameter.
To allow for the instances of blocking and non wait versions, which previously were actioned by passing either -1 or 0 as the millisecond delay respectively, two other functions are now available.
dispatch_once() - new
dispatch_forever() - internally modified from the original version but no change in functionality
Note without this fix EventQueue dispatch function is actually broken. Events may not be dispatched at all or in the worst case the chip will crash.

Impact of changes

This is an API change, affecting the following areas:

  • The parameter passed to the EventQueue.dispatch() function will now need to be a Chrono duration.
    E.g. '100ms'
  • The dispatch_forever() function has been changed internally but the API itself remains the same.
  • A new function, dispatch_once() has been added.

Migration actions required

The following migrations actions are required:

  • Calls to EventQueue.dispatch(int ms) will now need to be changed to use EventQueue.dispatch(chrono wait). This should be
    as simple as adding 'ms' to any passed literal value. E.g. '100' becomes '100ms'. Variables passed in will need to be explicitly
    converted.
  • Calls to EventQueue.dispatch(-1) should used EventQueue.dispatch_forever()
  • Calls to EventQueue.dispatch(0) should used EventQueue.dispatch_once()

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: MicrochipTech/cryptoauthlib#116
  • Priority: Minor

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

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

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 tests and Nightly test, we also ran a nightly release test on mbed-os 6.8.0-RC1

Results for the tests we run in CI on mbed-os 6.8.0-RC1 (nightly):

  • Build Greentea ARMC6 - SOME FAILS (Issue: MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options)
  • Build Greentea GCC_ARM - ALL PASSED
  • Build Examples ARMC6 - ALL PASSED
  • Build Examples GCC_ARM - ALL PASSED
  • Build Cloud Examples ARMC6 - ALL PASSED
  • Build Cloud Examples GCC_ARM - ALL PASSED
  • Build CMAKE Examples ARMC6 - ALL PASSED
  • Build CMAKE Examples GCC_ARM - ALL PASSED
  • Unittest Test matrix - ALL PASSED
  • GreenTea test matrix - ALL PASSED
  • Examples test matrix - ALL PASSED
  • CMAKE Examples test matrix - ALL PASSED
  • Exporter Test - SOME FAILS (Issue: IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler)
  • Cloud Client integration Test - ALL PASSED
  • Memory Usage Test - ALL PASSED

Toolchain Coverage

In the mbed OS 6.8.0 release. we are testing the following toolchains:

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

Targets Coverage

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

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

  • ARM_MUSCA_S1
  • DISCO_L457VG_IOT01A
  • K64F
  • K66F
  • NRF52840_DK
  • NUCLEO_F429ZI
  • NUCLEO_F767ZI
  • NUCLEO_WB55RG

We have the following issues on the test jobs:

  • MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options
  • IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler

Test Numbers

Greentea test number 1675 (+0)
Unittest number 743 (+0)

Code Coverage

Test Code Coverage been tracked and information is published on COVERALLS

Memory Monitoring

No observed changes from mbed-os-6.7.0

Contents

Ports for Upcoming Targets

14207
Adding NUCLEO_WL55JC support

13979
Support for ST STM32 NUCLEO-G431KB Development Board

Fixes and Changes

14289
CMake: Refactor Cypress targets

14286
CMake: remove workaround for targets prior refactor

14284
CMake Arm SSG: refactor CMake targets

14282
CMake: Refactor Nuvoton targets

14281
CMake: refactor GigaDevice targets

14280
CMake: Refactor WIO_EMW3166 support

14279
CMake: Refactor Silicon Laboratories targets

14277
Apollo3: Fix run time error due to memory mapping

14276
CMake: refactor Samsung targets

14275
Fix ST targets naming and linker script issues

14272
Change CMAKE_BINARY_DIR to CMAKE_CURRENT_BINARY_DIR

14270
CMake Maxim: fix targets naming

14269
CMake: Refactor Toshiba targets

14268
CMake: Refactor NXP targets

14267
CMake: Refactor Nordic targets to be CMake buildsystem targets

14266
Fix up some ST CMake targets

14265
CMake: remove need for APP_TARGET

14264
BLE: fix termination of periodic advertising sync

14261
Add missing const qualifier to mesh ethernet mac addr get

14257
BLE: Add APIs to get characteristic authorization callbacks.

14256
BLE: Add API to test the presence of an event handler in a chain.

14255
CMake: fix naming targets

14253
CMake: refactor Renesas targets

14252
CMake: Refactor Freescale targets

14250
example-psa - add MUSCA_S1 and update baudrate

14249
STM32WL : add LoRa support

14248
MAX32625MBED: Gate ticker (timer0) clock on deepsleep

14247
CMake: Refactor Greentea test CMakeLists.txt

14246
ARM FM: refactor CMake targets

14245
STM32WL: I2C and ADC full support

14244
Analog Devices: refactor CMake targets

14242
Ambiq Micro: refactor CMake targets

14239
BLE: fix passkey for display being returned reversed

14238
Update list of licenses in LICENSE.md

14235
CMake: Add post build operation support

14232
CMake: Fix Cypress MCU_PSOC6_M4 build

14230
nRF52: clean pwm structures on deinit

14228
CMake: rename greentea test macro

14215
STM: Fix Hal_GetTick wrap around errors

14213
Add cortex-m55 to CMake support

14212
Expose the public Stream API

14207
Adding NUCLEO_WL55JC support

14205
CMake: better detection of memap dependencies

14204
Set executable suffix in CMake

14203
Adding USB HS Support to the SDP-K1

14202
BLE: return OK when stopping advertising set that is not active

14201
Update maximum version of intelhex to 2.3.0

14199
Refactor ST Mbed targets to be CMake buildsystem targets

14197
Upgrade gtest to 1.10

14196
CMake cores: fix cpu/fpu flags

14195
LoraRadio test update for baremetal support

14190
CMake cores: fix NS cores

14181
CMake: Add support for Mbed TLS Greentea tests

14179
Fix minimal-printf floating point decimal output error

14092
NFC: Add support for M24SR driver

14031
BlockDevices: specify mbed namespace where needed

14030
STM32H7: Compute I2C timing according current I2C clock source

13979
Support for ST STM32 NUCLEO-G431KB Development Board

13975
Update EventQueue API to use chrono times

Using this release

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

Don't miss a new mbed-os release

NewReleases is sending notifications on new releases.