Skip to content

Releases: ARMmbed/mbed-os

mbed-os-6.2.1

19 Aug 15:18
890f056
Compare
Choose a tag to compare

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

Summary

In this Mbed OS 6 patch release we have added support for the following new targets:

  • Samsung Bioprocessor S1SBP6A target
  • M252 custom board
  • CYTFM_064B0S2 4343W

Note the original M252 platform has been renamed to NUMAKER_IOT_M252.

We have continued to progress our restructuring of the Mbed OS file hierarchy.

A number of changes have been added for PSOC64. These include:

  • Updating the TF-M release image
  • Updating the TF-M release package
  • Updating BSP startup code to match psoc6pdl-1.6.1

The STM32WB drivers have been updated to CUBE V1.7.0.

We've updated the MTS_DRAGONFLY_F411RE bootloader to work with Mbed OS 6.

And finally, as we continue to develop the new set of tools for Mbed OS 6 we will no longer be accepting PRs with changes to the existing tools.

Known Issues

There are no new known issues with this release.

Contents

Ports for Upcoming Targets

13392
Adding Samsung Bioprocessor S1SBP6A target

13382
M252: Support custom board

13358
Add CYTFM_064B0S2 4343W Target

Fixes and Changes

13447
psoc64: Update TF-M release image

13420
Updating with new links and correct branding

13419
PSOC6: update BSP startup code to match psoc6pdl-1.6.1

13418
Update PSoC64 TFM release package.

13414
Refactor NFC directory structure

13410
Refactoring \lorawan --> moving it inside \connectivity.

13409
Move BlueNRG-MS driver into connectivity/drivers/ble/FEATURE_BLE

13408
Fix memory leak in DNS cache

13404
Restructure cryptocell

13401
Added error checking to can_filter() for Classic CAN

13392
Adding Samsung Bioprocessor S1SBP6A target

13390
Fix cancel connect

13386
PSoC6: update to psoc6pdl-1.6.1

13385
Restructure Mbed TLS

13382
M252: Support custom board

13379
Fix baremetal nightly test build issue

13377
Move nanostack rf driver from features to connectivity

13374
Fixed ThisThread flag_wait_any functions (fix #13360)

13371
Restructure lwipstack directory

13366
Fix IAR assembler errors on except.S

13365
BLE streamlining

13363
Refactoring \nanostack --> moving it inside \connectivity.

13362
TESTS: update tests and fixing time drifting tests in rtos folder

13358
Add CYTFM_064B0S2 4343W Target

13357
Move emac-drivers from features into connectivity directory

13356
Drivers directory restructuring

13351
Fix MTS_DRAGONFLY_F413RH drag and drop failure

13349
travis: Reject changes to tools

13337
Fix Mbed TLS + TF-M integration issues

13335
Restructure netsocket directory

13333
Events directory restructuring

13332
Nuvoton: Update M252 target name

13330
Remove doubly defined symbol from mbed_lib.json

13326
Adding NUCLEO_F429ZI to AWS example

13325
Nuvoton: Revise the pin name of M263A button

13323
Travis: fix scandcode failure

13317
Fixed doxygen for Kernel::Clock::time_point argument

13314
Storage system_storage directory restructure

13307
Restructure storage kvstore directory

13306
Include mbed_assert.h in Queue

13304
STM32WB update drivers version to CUBE V1.7.0

13301
Remove MTS_DRAGONFLY_F411RE post binary hook that adds the bootloader

13300
Restructure storage filesystem directory

13298
Refactoring \platform directory

13294
Update MTS_DRAGONFLY_F411RE bootloader to work with mbed 5 & 6

13293
BLE Fix read and write callbacks for descriptors not firing if characteristic is not readable or writable

13284
Refactor PPP library

13283
BLE: Cordio bugfix fixed size writes under size must be allowed

13279
TESTS: removed mbed OS 6 unsupported target in examples test

13276
MASTER - LICENSE.md - clarify filesystem licensing

13273
Restructure storage blockdevice directory

13264
Moving around a few items within \rtos

13261
Refactor cellular directory structure

13255
Move mbed-coap to connectivity/libraries

13254
Move nanostack-libservice into connectivity/libraries

13253
Allow unit tests defined anywhere in mbed-os

13244
Move storage from features into mbed-os root directory

13234
Move drivers from components to connectivity

13229
STM32 custom target: create MCU_STM32xx for each family

Using this release

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

12 Aug 15:36
Compare
Choose a tag to compare

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

Summary

This is the latest support release from the Mbed OS 5.15 branch.

This release adds non-PSA support to Mbed OS 5.15 via the new target NU_M2354_NPSA_S/NS. The M2354 is Nuvoton's Cortex-M23 based, TrustZone enabled chip and is an upgraded version of the M2351.

The Wi-SUN Interface APIs have been improved by the addition of the following API calls:

  • info_get API for Wi-SUN router to get RPL information.
  • info_get API for Wi-SUN BR to get RPL information.
  • routing_table_get API for Wi-SUN BR.

The release also includes:

  • Renaming of NUMAKER_M252KG to NUMAKER_IOT_M252.
  • Adding QSPI support to the SDP-K1 board support package.
  • Bootloader support for Olimex STM32-E407 board.

plus a number of other bug fixes.

Migration Guide

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

Nuvoton: Update M252 target name (5.15)

13381

Summary of changes

The target name for Nuvoton's M252 board is resolved to NUMAKER_IOT_M252 from NUMAKER_M252KG (ARMmbed/mbed-os-tools#220). This PR is backport of #13332 to mbed-os 5.15 to also synchronize this change.

Cleaning up SDP-K1 board support package.

13338

Summary of changes

Removing unused pins from SDP-K1 board support package.

Nuvoton: Add new target NU_M2354_NPSA_S/NS

13245

Summary of changes

M2354 is Nuvoton's Cortex-M23 based, TrustZone enabled chip and is an upgraded version M2351. This PR tries to add non-PSA support into Mbed OS 5.15.

[mbed-os-5.15] Added Wi-SUN Interface APIs

13151

Summary of changes

Implemented
-info_get API for Wi-SUN router to get RPL information.
-info_get API for Wi-SUN BR to get RPL information.
-routing_table_get API for Wi-SUN BR.
This is upstreaming PR #13084.

Nuvoton: Support EMAC bus reset as while bus err (5.15)

13150

Summary of changes

This PR is backport of #12991 into Mbed OS 5.15 to refine EMAC error handling of bus error on both of M487 and NUC472 platforms.

Ws management API missing lib

13147

Summary of changes

New include to ws_management_api.h file to include fhss_config.h

Known Issues

There are no new known issues with this release.

Contents

Ports for Upcoming Targets

Fixes and Changes

13381
Nuvoton: Update M252 target name (5.15)

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

13342
Support for Olimex STM32-E407 bootloader

13338
Cleaning up SDP-K1 board support package.

13320
Updating targets.json file for SDP-K1 board.

13275
5.15 - LICENSE.md - clarify filesystem licensing

13245
Nuvoton: Add new target NU_M2354_NPSA_S/NS

13184
Nordic NRF52 GPIO API: Fix failure to clear the field 'skip_gpio_setup' in a local

13164
ESP8266: Avoid duplicate data sends (5.15)

13151
[mbed-os-5.15] Added Wi-SUN Interface APIs

13150
Nuvoton: Support EMAC bus reset as while bus err (5.15)

13147
Ws management API missing lib

13114
Fix issue #13023, CAN constructor ignores passed speed.

Using this release

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

16 Jul 17:49
Compare
Choose a tag to compare

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

Summary

This release mainly provides updates for some of the connectivity protocols that Mbed OS supports, specifically BLE and WiSUN.

For BLE, we've updated the Cordio stack to version 20.05, which is the latest 5.2 specification qualified version. We've also made some changes to the BLE Security Manager to better support the handling of identity addresses when privacy is enabled.

For Wi-SUN, we've made API updates to the border router support we offer for Wi-SUN networks. A border router is a network gateway between a wireless 6LoWPAN mesh network and a backhaul network. It controls and relays traffic between the two networks and, in this release, we've added additional APIs to allow developers to access routing table data from border routers.

The other major change is to upgrade the version of the Arm Compiler to the latest 6.14 version as part of our commitment to track the latest stable versions of the compilers we support.

Migration Guide

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

psa: Update TF-M for ARM_MUSCA_B1

13263

Summary of changes

Upgrade the version of TF-M shipped within Mbed OS to version 1.1 (TF-Mv1.1 a6b336c1509f) with patches to support the integration of Mbed OS and TF-M from https://github.com/ARMmbed/trusted-firmware-m/tree/dev/feature-dualcore (52261ca41663).

Impact of changes

Please refer to the TF-M releases notes for information on what's contained in the TF-M release. https://ci.trustedfirmware.org/view/TF-M/job/tf-m-nightly/lastStableBuild/artifact/docs/trusted-firmware-m/build/install/doc/user_guide/html/docs/reference/changelog.html

Migration actions required

None.

Implements iterators for the Span class to be compatible with std::span

13252

Summary of changes

Implements iterators for the Span class to be compatible with std::span.
This makes it possible, among other things, to use range based for loops on a span.

Add Wi-SUN Interface APIs

13152

Summary of changes

Implemented
-info_get API for Wi-SUN router to get RPL information.
-info_get API for Wi-SUN BR to get RPL information.
-routing_table_get API for Wi-SUN BR.
This is upstreaming PR #13084.

BLE: Add KVStore Security DB

13038

Summary of changes

This adds a new Security DB type for BLE Security Manager. This is optional and disabled by default. The presence of filesystem and kvstore DBs is now set in the mbed_lib.json file with the default values retaining the current setup.
Requires preceding PR: #13037
(so ignore the first commit)

Always build both .hex and .bin files

13011

Summary of changes

  • This change will cause build-system to produce both .bin and .hex files.
  • Files are small and their creation is fast, thus there are no negative impact
    on build time and storage requirements.
  • .bin files are required for updating the device
  • .hex files are very handy for post build (external to build system) custom
    scripts (e.g. image signing)
  • Configuration still allows selecting either .bin or .hex files, this settings is still
    relevant as it specifies what file is flashed to a device for tests or by
    --flash argument.

Impact of changes

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: 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.2.0-RC1

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 - SOME FAILS
  • Cloud Client integration Test - ALL PASSED
  • 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
  • Export uvision failing with missing context fault handler IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler
  • NUCLEO_F767ZI failed on storage tests ---- Tracked by defect IOTSTOR-1032 - NUCLEO_F767ZI failed with features-storage-tests-kvstore-general_tests_phase_1&2
  • MBOTRIAGE-2756 - CY8CPROTO_062_4343W failed at cordio-tests-cordio_hci-driver Greentea Test
  • IOTSTOR-960 - K66F failed on mbed-os nightly "filesystem-general" test

Test Numbers

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

Toolchain Coverage

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

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

The following toolchains have been dropped since 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 and remains all mbed OS enabled targets.

Greentea test targets have been changed slightly:

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

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

Coverity

In mbed OS 6.2.0 release,there are 92 coverity issues.

Code Coverage

Test Code Coverage been tracked and information is published on...

Read more

mbed-os-6.1.0

30 Jun 12:29
Compare
Choose a tag to compare

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 #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 #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](htt...

Read more

mbed-os-5.15.4

17 Jun 11:06
e4b81f6
Compare
Choose a tag to compare

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

04 Jun 09:30
165be79
Compare
Choose a tag to compare

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(...
Read more

mbed-os-6.0.0-beta-1

11 May 14:18
1b2a68a
Compare
Choose a tag to compare
mbed-os-6.0.0-beta-1 Pre-release
Pre-release

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

Summary

This is the last pre-release before we make the full 6.0.0 release. It contains the remainder of the breaking changes and any other significant updates.

Migration Guide

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

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.

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 #12775, #12810, #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 #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 #12775, #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 #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 #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 (most)
  • Ublox NINA B1
  • 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

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

None

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 sp...

Read more

mbed-os-5.15.3

30 Apr 16:05
b6370b4
Compare
Choose a tag to compare

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

15 Apr 14:40
565ab14
Compare
Choose a tag to compare

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-6.0.0-alpha-3

18 Mar 15:16
532654e
Compare
Choose a tag to compare
mbed-os-6.0.0-alpha-3 Pre-release
Pre-release

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

Summary

In this pre-release of Mbed OS 6.0 we continue the theme of general cleanup. We also switched the default implementation of the printf family functions to the minimal-printf library. We will publish a blog post with more details on the subject in the coming days as it may have implications on your code. This release intentionally breaks compatibility both with Mbed OS 5 series and previous Mbed OS 6 previews. For details of the breaking changes please have a look at the release notes below.

Migration Guide

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

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.

Cellular: Add ALT1250 PPP cellular target

12597

Summary of changes

Add cellular support for Altair ALT1250 NB-IoT modem. This driver only supports PPP mode.

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.

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 SPIFReduc...

Read more