Releases: ARMmbed/mbed-os
mbed-os-6.2.1
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
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)
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.
Summary of changes
Removing unused pins from SDP-K1 board support package.
Nuvoton: Add new target NU_M2354_NPSA_S/NS
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
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)
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
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
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
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
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
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
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
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 inmbedtls/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...
mbed-os-6.1.0
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
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
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
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
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
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
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
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)
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
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
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
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
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
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...
mbed-os-5.15.4
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
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
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
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
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
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
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
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
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(...
mbed-os-6.0.0-beta-1
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
Summary of changes
Turn off callback.non-trivial
by default to save ROM sp...
mbed-os-5.15.3
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
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
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
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
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
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
Summary of changes
Add cellular support for Altair ALT1250 NB-IoT modem. This driver only supports PPP mode.
Remove Mutex deprecated API
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
Summary of changes
Update the version of Mbed Crypto provided by Mbed OS to version 3.0.1.
Remove FileSystemLike deprecated APIs
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
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
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
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
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
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
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.
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
Summary of changes
- Removed the Ticker deprecated APIs
- Updated the async greentea test to use
attach
withcallback
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
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
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
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
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
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
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
.