Skip to content

mbed-os-6.7.0

Compare
Choose a tag to compare
@mbedmain mbedmain released this 28 Jan 14:04
· 2432 commits to master since this release

We are pleased to announce the Mbed OS 6.7.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 existing functionality have changed APIs, so as per semantic versioning, we've incremented the release version.

The full details are below but in summary we've introduced the following changes;

  • Further evolved the Mbed CLI 2 tools by adding support to build greentea tests using CMake
  • Added the Arduino Portenta H7 as a supported target
  • Add support for the ST Microelectronis BlueNRG_2 BLE Component

Migration Guide

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

CMake: Add CMake support for netsocket greentea test

14101

Summary of changes

  • Added CMakeLists.txt file to every test suite under the netsocket test so that it can build via CMake command

CMake: Add CMake support for events greentea test

14095

Summary of changes

  • Added CMakeLists.txt file to every test suite under the events so that it can build via CMake command

CMake: Add CMake support for rtos greentea test

14094

Summary of changes

  • Added CMakeLists.txt file to every test suite under the rtos so that it can build via CMake command

CMake: Add Support for hal greentea test

14093

Summary of changes

  • Added CMakeLists.txt file to every test suite under the hal so that it can build via CMake command

Update events period method to check for invalid values

14087

Summary of changes

The period method currently allows any ms value:
positive, negative and zero.
A negative value means dispatch a non periodic event. ie just once.
0 is unspecified behaviour.
This commit forces the user to use either positive periods or a new constant, non_periodic
and should any other value be provided will default to non_periodic.
A Greentea test case is also provided to check this works as
expected.
I'm classifying this as a feature change rather than major because allowing a zero value was actually a bug.

Impact of changes

If the user provides a 0 value this will now behave differently. Previously it would have run for a period of
time as if this was an indefinite event before eventually (with a timer wrap) have unspecified behaviour.
Now the event period will default instead to non periodic.
To specify a non periodic event a user could previously use any negative value. Whilst this will still work (due a default
being set on invalid values), the user is encouraged to use the new constant, 'non_periodic' to show that this is what was
intended.

Migration actions required

Use periods that are > 0ms or non_periodic constant.

CMake: Add CMake to platform greentea test

14072

Summary of changes

  • Added CMakeLists.txt file to every test suite under the platform so that it can build via CMake command
  • Added the CMake Macro mbed_greentea_cmake_macro with configurable arguments TEST_NAME, TEST_INCLUDE_DIRS, TEST_SOURCES, TEST_REQUIRED_LIBS so that it can be used across all the greentea test suite by passing their includes, sources required libraries.
  • Added CMake macro MBED_BAREMETAL_GREENTEA_TEST which can ON/OFF via CMake command-line argument at the configuration time to select/unselect baremetal greentea test

CMake: Create mbed-greentea library

14061

Summary of changes

The greentea framework provides all the infrastructure for the test suite to execute in the target like greentea-client, unity, utest so created the mbed-greentea interface library which binds all these framework sources, and all the test suite needs to add mbed-greentea lib into their target_link_library

CMake: Add CMake to drivers greentea test

14060

Summary of changes

  • Added CMakeLists.txt file to every test suite under the mbed_drivers so that it can build via CMake command

Add std::span implementation for cxxsupport

13881

Summary of changes

Adds std::span implementation to cxxsupport folder in namespace mstd.
See discussion in #13868.

Add Arduino Portenta H7 as target

13826

Summary of changes

This PR series introduces the support for Arduino Portenta H7 .
The patchset has been split into independent PRs for an easier review.

Impact of changes

Except the standalone TARGET_PORTENTA* content, some other files have been touched (all of them in separate commits).
In particular, COMPONENT_WHD has been made generic (any mbed target implementing SERIAL_FC can now compile it) but this could impact PSOC6 targets which used to configure it via Cypress HAL.

Support to BlueNRG_2 BLE component

13246

Summary of changes

Add support to BlueNRG_2 BLE Component

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 test and Nightly test, we also ran a branch test on mbed-os 6.7.0-RC1

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

  • 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.7.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.7.0, the compilation test targets scope has not changed and remains all mbed OS enabled targets.

Greentea test targets have been changed slightly. At the time of the mbed-os 6.7.0 release, we run the greentea tests on the following targets:

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

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 (+1)
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.6.0

Contents

Ports for Upcoming Targets

13826
Add Arduino Portenta H7 as target

Fixes and Changes

14186
NXP: Fix CMake support and clean up

14185
CMake: Correct ARM toolchain MCU core flags

14180
Cypress: Fix CYTFM_064B0S2_4343W CMake build

14175
Add declaration to expose enable_* functions from SerialBase

14173
Update cert for testing server

14169
Nanostack release v12.8.0

14166
ARDUINO_NANO33BLE: don't define Arduino pins if compiling in Arduino core

14159
CMAKE : correct "Cortex-M7F" link parameter

14155
CMAKE / M33 : DOMAIN_NS issue

14154
STM32: correct cmake compilation issues

14149
STM32G4: enable TRNG and correct dual bank flash detection

14148
Corrected nanostack coverity warnings

14145
STM32H7: disable uSD transceiver

14144
Update for Arduino Pinnames

14143
Travis: Remove make.py test for events and littlefs

14142
STM32L4: Correct heap size formula

14137
Storage: Fix FATFileSystem unmount issue

14135
NXP: Fix heap size formula in scatter files

14134
GigaDevice: Fix heap size formula in scatter files

14133
STM: Fix heap size formula in scatter files

14132
Apollo3: Fix heap size formula and stack start address in scatter file

14131
MUSCA_B1: Fix heap size formula in scatter files

14130
NRF52840: Fix heap size formula in scatter files

14129
EFM32GG: Fix heap size formula in scatter files

14126
tests: Limit PSA crypto tests to Arm-v7M targets

14125
BLE: Fix Security Manager key generation

14120
STM32F439 : correct cmake compilation

14112
ARM linking issue: compile out trace when not available

14111
BLE: fix scanning/advertising when extended features are available but disabled on host

14109
Remove deprecated connectivity examples

14108
travis: set attrs to 19.1.0, fixes python 3.5 issue

14104
CMake: Fix the listing of system_clock.c for STM32F413xH

14103
CMake: Add support for netsocket/network Greentea tests

14101
CMake: Add CMake support for netsocket greentea test

14100
CMake: Fix path to Ambiq BLE source file

14099
CMake: Add support for CORDIO Greentea tests

14098
CMake: Add support for LoRaWAN Greentea tests

14095
CMake: Add CMake support for events greentea test

14094
CMake: Add CMake support for rtos greentea test

14093
CMake: Add Support for hal greentea test

14091
CMake: Add support for NFC Greentea test

14090
CMake: Add support for Blockdevice Greentea tests

14089
CMake: Add support for Filesystem Greentea tests

14088
CMake: Add support for KVstore Greentea tests

14087
Update events period method to check for invalid values

14084
BLE: Fix GattServer callbacks not being copied to GattServer instance of the service

14083
Add SLEEP/DEEPSLEEP support for MAX32630FTHR

14080
Add bare-metal support for MAXIM targets

14079
CMake: Add Blockdevice dependency to KVstore library

14078
CMake: Add support for OSPIF blockdevice

14076
Replace macros in MbedTester to avoid conflicts

14075
Maxim targets; Add USB stack implementation

14074
CMake: Add cmake support for Toshiba targets

14072
CMake: Add CMake to platform greentea test

14071
Add internal subfolder to USBDriver's CMakelists

14068
Enabled USBDevice in targets.json for H743ZI2

14066
STM32F2 update drivers version to CUBE V1.9.2

14065
CMake: streamline kvstore support

14064
examples:create build_data after example application build

14063
Support arbitrary storage alongside WiFi firmware in external storage on Cypress targets

14062
Cypress Asset Update

14061
CMake: Create mbed-greentea library

14060
CMake: Add CMake to drivers greentea test

14055
CMake: Remove TODO note in device_key list input source file

14050
fix QSPI-API for NRF52

14049
DISCO_L072CZ_LRWAN1: enable LORA by default

14048
nanostack: correct Wi-SUN certificate add and remove functions on Wi-SUN interface

14047
Remove unsupported Nordic SoftDevice build support

14045
CMake: add support for Nordic targets

14042
CMake: Add support for all Ambiq Micro Mbed targets

14041
Add SPDX identifier to files in storage

14038
Fix mbed device-management command for Python 3.8

14036
Add SD component and Update SD card SPI interface for Maxim's MAX32630FTHR

14035
Remove unsupported Renesas target include files

14032
STM32: RESET GPIO during init is configurable

14029
STM32H7: FDCAN: use PLL1Q frequency for calculations

14027
CMake: Fix Analog Devices targets support

14023
Adding QSPI support to SDP-K1 board support package.

14021
CMake: Add support for Renesas targets

14020
Add SPI bitwidths to ST targets where supported

14008
Add proper power save mode command format for MTS_DRAGONFLY_L471

14007
Clean-up: TDBStore no longer requires BlockDevice to have flash behaviour

13976
PSoC 6: rework sleep overrides by Cypress's debug macro

13968
CMake: Add support for all ARM SSG Mbed targets

13965
Clarify the time units stated in the delay and period function headers for events

13944
CMake: Add requirements.txt file for required Python modules

13881
Add std::span implementation for cxxsupport

13826
Add Arduino Portenta H7 as target

13809
Remove Cellular dependency in netsocket

13246
Support to BlueNRG_2 BLE component

Using this release

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

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