github ARMmbed/mbed-os mbed-os-6.5.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.5.0 release is now available.

Summary

The Mbed team are delighted to introduce the foundations of our new command line build tools, which use CMake to configure the build artifacts and, we hope, significantly improve the build experience for Mbed developers. These tools are still being refined and developed, but the basics are now available and will co-exist alongside the existing Mbed CLI tools for the time being. We'd really appreciate feedback from Mbed users on these tools as we want to ensure Mbed developers are seeing value in them.

The new tools can be found here .

We've also added some changes to how the Cordio BLE stack is configured to work with Nordic targets.

Migration Guide

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

Update NRF ble configuration options

13910

Summary of changes

This allows for changes to the buffers allocated in NRFCordioHCIDriver.cpp. Since the amount of buffers can be configured using the mbed_app.json it is only natural to also configure the buffer sizes that go with the number of buffers.
I also removed the confusing configuration settings used only by the NRF52840 which overruled other settings made by the cordio-ll config.

Impact of changes

No functionality change, only configuration changes

Migration actions required

All the default settings remained the same and if no custom configuration is used in mbed_app.json the no actions are required.
If you use the NRF52840 and have overruled any of the following settings you may need to change:

  • "cordio-ll-nrf52840.phy-coded-support" into "cordio-ll.phy-coded-support"
  • "cordio-ll-nrf52840.extended-advertising-size" into "cordio-ll.extended-advertising-size"
  • "cordio-ll-nrf52840.max-acl-size" into "cordio-ll.max-acl-size"
  • "cordio-ll-nrf52840.tx-buffers" into "cordio-ll.tx-buffers"

CMake: Add initial support

13566

Summary of changes

Addition of CMake modules and input source files to configure the project and generate the scripts needed by the build systems (tested with Unix Makefiles and Ninja) to build Mbed OS as a library. Mbed OS is built as collection of all libraries supported by a given target.
There are two main targets: mbed-os and mbed-baremetal. The rest of the components in the Mbed OS repository are targets prefixed with mbed-, for example mbed-ble and mbed-netsockets.
Even though this is still under development. This PR was raised as the current state does not affect builds of the OS with the traditional tools (Mbed CLI, Online compiler, Mbed Studio).
For current state of development, supported targets, supported toolchains, known issues, and build steps, see "Documentations" section below.

Impact of changes

Adding/removing source files or subdirectories requires adding or updating CMake input source files as all source files are listed in them.

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.5.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 In Progress)
  • 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 example ARM - ALL PASSED
  • Build CMAKE example GCC_ARM - ALL PASSED
  • Unittest - ALL PASSED
  • Greentea Test - SOME FAILS (Some tests in K66F have failed due to unavailability of properly configured boards in farm.)
  • Example Test - ALL PASSED
  • CMAKE Example Test - ALL PASSED
  • Exporter Test - SOME FAILS (Issue: IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler Open)
  • Cloud Client integration Test - ALL PASSED
  • Memory Usage Test - ALL PASSED

Toolchain Coverage

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

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

Targets Coverage

In mbed OS 6.5.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.5.0 release, we run the greentea tests on the following targets:

  • NRF52840_DK
  • K66F - Please note as highlighted above that this platform is considered unstable at this stage.
  • K64F
  • 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 In Progress
  • IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler Open

Test Numbers

  • Greentea test number 1674 (+179)
  • Unittest number 741 (+0)

Code Coverage

Test Code Coverage been tracked and information is published on COVERALLS

Memory Monitoring

No observed change from mbed-os-6.4.0

Contents

Ports for Upcoming Targets

Fixes and Changes

13910
Update NRF ble configuration options

13905
STM32L4: ADC compilation issue with L422

13904
CMake STM32L475xG: fix linker/startup inclusion

13900
mergify: fix travis rename check

13895
CMake: Fix error that prevented re-build

13894
Fix compilation warnings

13893
MIMXRT1050_EVK return bootloader support

13891
Remove nanostack border router from examples list

13889
Nanostack release v12.6.2

13887
CMake: Specify mbedtools in the build instructions

13886
Don't require too old mbed tools

13885
TEST: update cmake example on ble examples

13882
CMake: Use relative paths to list source files and directories

13880
S1SBP6A fix RTC range

13878
Add missing blockdevice mbed_lib.json

13874
STM32F3 update drivers version to CUBE V1.11.1

13870
CMake: Address review comment from PR#13566

13869
Create a USB drivers library

13867
SysTimer: Prevent unacknowledged tick overflow when halted for a while

13864
Fix bare metal builds on Cypress targets

13862
STM32 SERIAL: free RTS/CTS pins

13861
Ambiq apollo3 fix of an SPI related SD bug

13859
STM32L4: Use HSI for LPUART

13853
Samsung: fix baremetal #13851

13849
Add apollo3 sleep

13848
Q/OSPIFBlockDevice: fix misconception in minimum program size

13847
Add workaround for files with permissive binary licenses

13846
STM32 usb: fixing missing header file

13843
Fix linking issue #13793 when using -O0 compiler optimization in ARMC

13839
cmsis: remove math header file

13833
Add new Gap::EventHandler callbacks to ChainableGapEventHandler class

13832
Fix GCC_ARM non-contiguous FW for K64F and K66F

13828
fix ble example names

13822
BLE fix periodic advertising list function parameter checking

13817
STM32: define RCC_LSE_BYPASS to allow using PC_15 as gpio

13816
STM32: allow HS USB endpoints and increase USB OTG_HS endpoints number

13811
Ble conditional compilation

13810
Remove missing examples from the config

13808
Remove erroneous character from SPDX identifer

13802
STM32F4 FLASH API update

13800
OSPI: enable feature in baremetal test configuration

13797
STM32: add setting for LSE drive load level

13796
Update README.md to remove WEP test case with NULL data

13768
COMPONENT_FPGA_CI_TEST_SHIELD: better debug print

13753
Remove Unneeded nordic-bsp Folder from Cordio

13747
Renesas: fix timing to wait UART completion in deep sleep function

13699
Fix sfdp_find_addr_region algorithm

13698
Fix SPIF read dummy cycles not being reset

13692
Fix I2C slave bugs on Renesas RZ/A series.

13691
Remove unused Nordic TARGET_SDK_11

13671
Add an socket option to set type of service to set specific precedence for QoS

13566
CMake: Add initial support

Using this release

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