Important update: Arm Announces End of Life Timeline for Mbed. This site will be archived in July 2026. Read the full announcement.
Mbed OS Releases
Feature releases of Mbed OS are made available on a roughly quarterly basis. We release patch releases every two weeks. The latest version is always available through our development tools and on GitHub.
Latest stable release:
-
mbed-os-6.17.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 6.17.0 release is now available.
Summary
This release mainly integrates fixes to issues identified over the previous months.
Support for three new targets is also added:
- Maxim Integrated MAX32670EVKIT
- Nuvoton NuMaker-IoT-M467
- Toshiba SBK-M4KN
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.LoRaWAN AS923 Add SUB_REGION AS1..AS4
Summary of changes
This Change add sub regions for AS923 according to the https://resources.lora-alliance.org/technical-specifications/rp2-1-0-3-lorawan-regional-parameters
Impact of changes
Able to use LoRaWAN in countries that moved to AS923-AS2, AS3 and AS4, while defaulting to
AS1
.
Added inconnectivity/lorawan/mbed_lib.json
a setting that defaults to AS1 sub region and thus defaults to the traditional AS923 Region."phy-as923-sub-region" : { "help": "AS923 sub region: AS1, AS2, AS3, AS4", "value": "AS1" }
Migration actions required
none
Known Issues
There are no new known issues with this release.
Test Report
Release automated CI test
In addition to regular Pull Request tests and Nightly test, we also ran a nightly release test on mbed-os 6.17.0-RC
Results for the tests we run in CI on mbed-os 6.17.0-RC (nightly):
- Build Greentea ARMC6 - ALL PASSED
- Build Greentea GCC_ARM - ALL PASSED
- Build Examples ARMC6 - ALL PASSED
- Build Examples GCC_ARM - ALL PASSED
- Build Cloud Examples ARMC6 - ALL PASSED
- Build Cloud Examples GCC_ARM - ALL PASSED
- Unittest Test matrix - ALL PASSED
- GreenTea test matrix - ALL PASSED
- Examples test matrix - ALL PASSED
Toolchain Coverage
In the Mbed OS 6.17.0 release. we are testing the following toolchains:
- ARM compiler 6.16
- GCC_ARM 10.3-2021.07
Targets Coverage
In Mbed OS 6.16.0, the compilation test targets scope has not changed and remains all Mbed OS enabled targets.
At the time of the Mbed OS 6.16.0 release, we run the greentea tests on the following targets:
- ARM_MUSCA_S1
- DISCO_L457VG_IOT01A
- K64F
- K66F
- NRF52840_DK
- NUCLEO_F429ZI
- NUCLEO_F767ZI
- NUCLEO_WB55RG
- NUMAKER_IOT_M487
- FPGAs on K64F, NRF52840_DK, NUCLEO_F429ZI, NUCLEO_F767ZI, NUCLEO_WB55RG, and DISCO_L457VG_IOT01A
Test Numbers
Greentea test number 1716 (+0)
Unittest number 758 (+0)Contents
Ports for Upcoming Targets
15353
Add TMPM4GR Platform15343
Add proper support for NUCLEO-H723ZG.15337
Nuvoton: Support new target NUMAKER_IOT_M46715330
Add TMPM4NR PlatformFixes and Changes
15383
fix STM I2C compiler inline issue15382
Mimxrt1050 lpuart15378
STM32F303xC: correct RAM size15374
CAN: read can do only up to 8 bytes, error if more is reported15373
Check CAN DLC length value15370
Fix socket default interface ID only being used partially15369
test: Disable failing tests due to echo server15368
fix STM32L1 FLASH_SIZE for cat.3 devices with DEV_ID 0x43615367
Fix mesh connect semaphore not releasing causing blockage15366
Add support of NSAPI_ICMP sockets in Nanostack15363
scancode: Fix license index failure15357
scancode: Limit click version to <815356
STM32F1: add MCU_STM32F103xD and MCU_STM32F103xG support15355
Targets: NXP: IMXRT: Fixed GCC_ARM lds syntax.15353
Add TMPM4GR Platform15352
M2354: Support FS-USBD15350
Rethink STM32 I2C v2 HAL15344
Correct MAX32620 boards macro for USB library.15343
Add proper support for NUCLEO-H723ZG.15341
Replace MAX32660, MAX32670 I2C driver with final one in MSDK15337
Nuvoton: Support new target NUMAKER_IOT_M46715333
Nuvoton: I2C: Fix potential role switch failure15330
Add TMPM4NR Platform15329
Add complete support of DHCP relay interface ID option15325
Updated System file and Scatter file15323
Fix missing mbed:: prefix issue15322
STM32WL: fix MBED_CONF_STM32WL_LORA_DRIVER_SLEEP_MODE option15320
LoRaWAN AS923 Add SUB_REGION AS1..AS415317
Fix for calculating CAN timing settings for STM3215313
M487: Fix mbedtls_ecp_point_cmp() call with null argument15312
STM32WL preparation for new chip rak3172sip15311
Fix missing global up callback in CellularContext15306
Add missing unlock() in file_truncate in FATFileSystem15302
rename: PwmOut::read_pulsewitdth_us() to PwmOut::read_pulsewidth_us()15299
Make STM32F412xE targets build15297
cli2 artifact name property support for cmake targets15295
lwiperf: fix double-free of pcb on errorUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.17.0”.
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.16.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 6.16.0 release is now available.
Summary
This release adds some new targets, from Maxim Integrated, ST and Toshiba, and provides fixes for a number of issues raised over the past few months.
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.add the possibility to customize the delimiter of the ATHandler in AT
Summary of changes
Modify the constructor of the ATCellularDevice to permit to customize ATHandler delimiter
Known Issues
There are no new known issues with this release.
Test Report
Release automated CI test
In addition to regular Pull Request tests and Nightly test, we also ran a nightly release test on mbed-os 6.16.0-RC
Results for the tests we run in CI on mbed-os 6.16.0-RC (nightly):
- Build Greentea ARMC6 - ALL PASSED
- Build Greentea GCC_ARM - ALL PASSED
- Build Examples ARMC6 - ALL PASSED
- Build Examples GCC_ARM - ALL PASSED
- Build Cloud Examples ARMC6 - ALL PASSED
- Build Cloud Examples GCC_ARM - ALL PASSED
- Build CMAKE Examples ARMC6 - ALL PASSED
- Build CMAKE Examples GCC_ARM - ALL PASSED
- Build CMAKE Cloud Examples ARMC6 - ALL PASSED
- Build CMAKE Cloud Examples GCC_ARM - ALL PASSED
- Unittest Test matrix - ALL PASSED
- GreenTea test matrix - ALL PASSED
- Examples test matrix - ALL PASSED
- CMAKE Examples test matrix - ALL PASSED
- Cloud Client integration Test - ALL PASSED
- Memory Usage Test - ALL PASSED
Toolchain Coverage
In the Mbed OS 6.16.0 release. we are testing the following toolchains:
- ARM compiler 6.16
- GCC_ARM 10.3-2021.07
Targets Coverage
In Mbed OS 6.16.0, the compilation test targets scope has not changed and remains all Mbed OS enabled targets.
At the time of the Mbed OS 6.16.0 release, we run the greentea tests on the following targets:
- ARM_MUSCA_S1
- DISCO_L457VG_IOT01A
- K64F
- K66F
- NRF52840_DK
- NUCLEO_F429ZI
- NUCLEO_F767ZI
- NUCLEO_WB55RG
- NUMAKER_IOT_M487
- FPGAs on K64F, NRF52840_DK, NUCLEO_F429ZI, NUCLEO_F767ZI, NUCLEO_WB55RG, and DISCO_L457VG_IOT01A
Test Numbers
Greentea test number 1716 (+0)
Unittest number 758 (+2)Code Coverage
Test Code Coverage been tracked and information is published on COVERALLS
Memory Monitoring
Observed no significant changes from Mbed OS 6.15.0
Contents
Ports for Upcoming Targets
15263
Add MAX3267015199
Support for the NUCLEO_G0B1RE board15194
Add Toshiba M4KN PlatformFixes and Changes
15291
Mts 001 mtdot clk fix15289
M487: Fix crypto h/w port15287
Mbed TLS: Fix wrong MPI N in ECP Curve448 curve15286
STM32G4: Fix serial port at low speed baud15284
Fix MPS2 CM3DS ethernet driver15281
Bluetooth: Inform privacy risk of using signed writes.15280
Support ITM tracing for Ambiq Apollo3 targets15279
STM32F334xx wrong RAM size15277
STM32L0: add MCU_STM32L071xB support15274
tcp_out: fix tcp_output_fill_options() arguments15273
add the possibility to customize the delimiter of the ATHandler in AT15271
semihosting: Fix typo in semihost_rename15270
Github actions: use safe.directory for actions invoking git15269
STM32G4 : enable UART ASYNC15268
STM32L0 : I2C2 was missing15263
Add MAX3267015261
Mbed TLS: Fix compile error with ECP alternative15258
STM32F0: Fix target codes for number of UARTs15256
STM32F1: add MCU_STM32F103xC support15251
Correct heap region calculation for Maxim targets15249
STM32G4: Fix I2C timing15240
ESP8266: Fix serial flow control inconsistency on reconnect15239
STM32G4: enable QSPI for custom boards15238
Updated I2C pin names in PinNames.h header15232
STM32H7: add MCU_STM32H753xI support15231
STM32L1: build error with STM32L151xB MCU15230
STM32G4: corrections for STM32G491xE, STM32G4A1xE and STM32G471xE15229
STM32H7 : fix I2C5 build error15227
lorawan: Fix Join Request retransmission timing (Interop test)15225
lorawan: Fix issue in unconfirmed_retransmission behavior15223
CMake: Fix command line too long with Ninja/ARMClang on Windows15222
Fix strrchr() not declared for IAR15221
Add ability to use multiple UARTs on STM32L0, STM32G0 when IRQ is shared15219
Use MBED_FILENAME instead of FILE in MBED_ASSERT15217
Fix STM32 radio driver when bandwidth is 015215
STM32 : add MCU_STM32L4P5xG and MCU_STM32L412xB support15214
Allow unit tests to be compiled with -fno-exception15212
STM32H7: increase i2c slave rx limit.15210
ST: correct LED pins for DISCO_L562QE15207
Add Nuvoton NuMaker-IoT-M263A CAN bus support15206
STM32: fix SPI 16 bit mode15205
Add USBDEVICE to NUCLEO_F722ZE target15204
STM32G0 FLASH : support MCU with dual bank15200
M487: Fix UART 6/7 base address encoding15199
Support for the NUCLEO_G0B1RE board15195
Add option to disable CM0P_SLEEP component for Cypress targets15194
Add Toshiba M4KN Platform15193
STM32 : remove several warnings15192
Add option to disable WHD component for Cypress targets15190
Make gpio irq api portable15189
nRF52: GPIO: Assert that init succeeds15187
Nanostack release v15.1.0 to master15184
Fix initialisation sequence of RTC15183
STM32WL : add robustness15181
Fix LoRa sx1276 Low Power sleep, now 3uA15178
Add netbuf-recvinfo-enabled config to LWIP settings15177
Fix overflow at extremely low RSSI15176
mstd::span rename index_type to size_type according to specUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.16.0”.
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.9
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.15.9 release is now available.
Summary
We anticipate this release to be our final Mbed OS 5.15.x release as we have fulfilled our commitment of a two year support period for Mbed OS 5.15. We continue to focus our support efforts on Mbed 6 and encourage anyone who hasn’t yet migrated from Mbed 5.x.x to Mbed 6 to do so.
The contents of this release are predominantly defect fixes plus documentation changes to address a security vulnerability identified in the Mbed BLE implementation, which can be avoided by using full encryption instead of signed writes.
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.Bluetooth: Inform privacy risk of using signed writes.
Summary of changes
The Cordio stack uses a single CSRK. It can be used by a
malicious device to track the Mbed OS application if signed
writes are used.
This PR documents the issue and explain workaround an application can
adopt.GitHub actions: Update checkout version and use safe.directory
Summary of changes
GitHub actions is failing due to not finding directories. This change fixes this by upgrading the checkout to v3 and using
safe.directory.Add invalid data case to tdbstore ram init
Summary of changes
Fix Ublox C030 SARA-R412M onboard cellular device serial (target default instance).
Summary of changes
Whit the following
mbed_app.json
config example, theONBOARD_UBLOX
target is used and the serial connection to the Ublox module can work properly."target_overrides": { "*": { "platform.stdio-convert-newlines": true, "platform.stdio-baud-rate": 115200, "platform.default-serial-baud-rate": 115200, "mbed-trace.enable": true, "cellular.debug-at": true, "cellular.use-apn-lookup": true, "nsapi.default-cellular-apn": "\"some.provider.com\"", "nsapi.default-cellular-plmn": null, "nsapi.default-cellular-sim-pin": null, "nsapi.default-cellular-username": null, "nsapi.default-cellular-password": null, "lwip.ipv4-enabled": true, "lwip.ipv6-enabled": true, "lwip.tcp-enabled": true, "lwip.ethernet-enabled": false, "lwip.ppp-enabled": false, "ppp.ipv4-enabled": false, "ppp.ipv6-enabled": false }, "UBLOX_C030_R412M": { "target.features_add": ["STORAGE"], "target.components_add": ["SD"], "target.network-default-interface-type": "CELLULAR", "storage.storage_type": "FILESYSTEM", "sd.SPI_MOSI": "SPI_MOSI", "sd.SPI_MISO": "SPI_MISO", "sd.SPI_CLK": "SPI_CLK", "sd.SPI_CS": "SPI_NSS" } }
Bugfix on ONBOARD_UBLOX.cpp#L30 adding line
serial.set_flow_control(SerialBase::RTSCTS, MDMRTS, MDMCTS);
.
With the correct serial flow control, the serial connection is stable and don’t get lost.Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
Fixes and Changes
15282
Bluetooth: Inform privacy risk of using signed writes.15275
GitHub actions: Update checkout version and use safe.directory15155
Add invalid data case to tdbstore ram init15148
Fix Ublox C030 SARA-R412M onboard cellular device serial (target default instance).Using this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.15.9”.
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.15.1
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 6.15.1 release is now available.
Summary
In this latest patch release for Mbed OS we have added new target support for STM32F722ZE and MAX32660EVSYS.
Other highlights include : * Updating STM32WL drivers to CUBE V1.1.0 * Updating STM32G0 drivers to CUBE V1.5.0 * Adding CAN support for STM32L5/STM32U5 * Introducing new wifi driver support for B-U585I-IOT02A (STM32) * Enabling USB_DEVICE support for NUCLEO_F303ZE (STM32F3)
For improved security and functionality we have updated psutil to 5.6.7 and PyElfTools to 0.27.
We’ve also added a new Nanostack release (v15.0.0) .
For a full set of changes please see below.
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
15153
STM32F722ZE port15109
Add MAX32660EVSYSFixes and Changes
15174
M2354: Fix potential issues in TF-M15169
B_U585I_IOT02A supports OSPI15166
Change google test git tag to main15164
STM32L1: add support of MCU_STM32L151xB15161
M2354: Adjust TF-M configuration to fit AWS IoT application15154
STM32WB55 HCI driver: version dependent rom size15153
STM32F722ZE port15152
Fix rounding bug when formatting floats with minimal_printf15151
Update psutil to 5.6.7 and PyElfTools to 0.2715149
InterruptIn: add note about enabling interrupts in rise/fall15147
NetworkStack: Remove stub implementations of socket_x_control15145
QSPIF: Add missing mbed namespace prefix to header file15141
mergify: fix needs work labels if CI fails15140
M2354: Enable post-build for custom board partially with Mbed CLI15139
Fix for PWM resume issue, SWINTEGRATION-5715138
STM32: Remove non-UTF characters15137
STM32WL update drivers version to CUBE V1.1.015136
STM32WL LORA radio: add a critical section15134
STM32WL: UART2 was missing15133
STM32WB/STM32WL: I2C issue15132
STM32: fix USB_reenumerate() for STM32F315130
STM32H743: correct pack manager rom value15128
Fix USB on DISCO_F769NI15127
mergify: fix issue with labels when PR is closed15126
mbed_create_distro() reborn: a function to make adding multiple targets easy15124
pin_names-arduino_uno test : UART test case update15123
STM32: introduce new wifi driver for B-U585I-IOT02A15120
STM32: enable STM32H735xG STM32H7B3xIQ for custom boards15117
CLI2: copy mapfile for diff statistics15116
STM32F3 - enable USB_DEVICE for NUCLEO_F303ZE15114
Fix ARM toolchain #L6803W Relocation warnings15111
DTLSSocket - destruction while handshaking lead to error15109
Add MAX32660EVSYS15107
LWIP: Provide inline replacements for htons() and htonl()15103
Nanostack release v15.0.0 to master15099
STM32H7: enable more custom boards15098
STM32F303xC: cmakelist issue15095
CMake: greentea: Migrate the NFC EEPROM test to CTest15082
STM32F1: add more alternate functions15081
STM32: STM32_gen_PeripheralPins.py v1.20.415080
STM32F4: CAN issue with F407 target15077
CAN: Use uintptr_t for can_irq_ids15075
STM32G0 update drivers version to CUBE V1.5.015074
STM32 : default SPI and I2C for targets with ARDUINO-NANO15068
connectivity tests: avoid HardFault with null pointer15065
STM32L5/STM32U5 : CAN support15062
Lora drivers: explicit lib requirement14610
Power management stat : add verbosity level for MBED_SLEEP_TRACING_ENABLEDUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.15.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.8
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.15.8 release is now available.
Summary
This is the latest support release for Mbed OS 5.15 . The primary focus of this release was to include new versions of Nanostack (versions 13.0.0, 14.0.0 and 15.0.0) and updates to mbed-coap (versions 5.1.10 and 5.1.11).
There are also some API additions: * Added API to reset MAC statistics and Wi-SUN statistics. * Add system time read/write callbacks to mbed-mesh-api. Nanostack will use the callbacks for system time synchronisation in the mesh network. * Added API to get Wi-SUN neighbor table.Migration Guide
This section lists specific changes which are part of this release and may
need special attention.Nanostack release v15.0.0 to mbed-os-5.15
Summary of changes
Nanostack release v15.0.0 to mbed-os-5.15 branch. This PR is a copy of https://github.com/ARMmbed/mbed-os/pull/15101.
[mbed-os-5.15] Nuvoton M480/M451 CAN API support mask feature
Summary of changes
This PR is backport of #15020 into Mbed OS 5.15 to enable M480/M451 CAN mask feature for Mbed CAN filter. In this PR, it will also handle standard ID or extended ID frame as while enable H/W mask feature.
Impact of changes
None
Migration actions required
None
Travis CI migration to GitHub Actions
Summary of changes
Mbed OS is moving GitHub Actions from TravisCI. This PR takes care of the migration of mbed-os-5.15 branch.
Migration actions required
Disable mbed-os-5.15 branch in TravisCI settings.
[mbed-os-5.15] Nanostack release v14.0.0
Summary of changes
This PR provides the following updates to the Wi-SUN software stack (nanostack):
MAX32630FTHR: Port USBSerial from mbed6.x
Summary of changes
USB HW implementation added for MAX32630FTHR board.
[mbed-os-5.15] Add system time read/write callbacks to mbed-mesh-api
Summary of changes
Add system time read/write callbacks to mbed-mesh-api. Nanostack will use the callbacks for system time synchronisation in the mesh network.
This is a copy of https://github.com/ARMmbed/mbed-os/pull/14754connectivity tests: Early test skip
Summary of changes
Adding mbed-os subdirectories that are not required for a specific project to .mbedignore is a good way to reduce compilation time. Sometimes it happens that tests depend on ignored files, which causes the test-build to fail even though the corresponding feature/component is not configured. The reason is that the conditional that skips the test is placed after the includes.
PR for master already merged: #14767Impact of changes
None
Migration actions required
None
mbed-os-5.15: Update mbed-coap to version 5.1.11
Summary of changes
Block-Wise request (block1) error handling improvements: * Removed SN_COAP_BLOCKWISE_MAX_TIME_DATA_STORED usage. Block-Wise requests will now follow normal retranmission rules. * Process block1 responses only once. If response is coming in wrong order just ignore it wait next response to happen.
mbed-os-5.15: remove python 2.7 tests from travis
Summary of changes
This is cherry-picked from master (we should backport this to 5.15 branch). Python 3 is the way to go.
test examples: remove tls socket, it was deprecated some time ago
Summary of changes
The example was deprecated some time ago. We should not test it in CI for 5.15 branch (it was removed from master).
[mbed-os-5.15] Update mbed-coap to version v5.1.10
Summary of changes
- Fix regression from previous release concerning 1024 byte blocksize operations.
- Do not store ACK’s into duplicate list.
- Code size optimizations
mbed-os-5.15: Add API to get Wi-SUN Neighbor Table
Summary of changes
This is upstream of PR#14586
Added API to get Wi-SUN neighbor table.
Added more parameters in Wi-SUN statistics.Impact of changes
None
Migration actions required
None
LPC15xx extended CAN fix (5.15)
Summary of changes
This PR fixes an issue with parsing the identifier of received extended CAN frames on the LPC15xx targets. According to the user manual,
CANIF2_ARB2
contains the high bits whileCANIF2_ARB1
contains the low bits of the extended CAN identifier.mbed-os-5.15: Mesh api: Added PHY mode, channel plan IDs and configuration functions
Summary of changes
Support for Wi-SUN FAN v1.1 PHY mode ID and channel plan ID in Mesh API.
- Enables using OFDM modulation with Wi-SUN stack.
- This change is copied from PR: https://github.com/ARMmbed/mbed-os/pull/14161
Implemented domain configuration functions in mesh API:
- Functions will set, get and validate the parameters using corresponding Nanostack API.
- This change is copied from PR: https://github.com/ARMmbed/mbed-os/pull/14251[mbed-os-5.15] Nanostack release v13.0.0
Summary of changes
Nanostack release v13.0.0 to mbed-os-5.15 branch.
This PR provides mesh stack ready for Wi-SUN PHY and FAN certification tests.
This is a copy of PR: https://github.com/ARMmbed/mbed-os/pull/14549Nuvoton: Fix hal_watchdog_kick() with WDT stopped (5.15)
Summary of changes
This PR is backport of #14555 to
mbed-os-5.15
branch. It tries to fixwatchdog_kick()
which shall do nothing when WDT is stopped according to WDT HAL spec.
Change targets:
- NUMAKER_PFM_NANO130
- NUMAKER_PFM_M453
- NUMAKER_PFM_NUC472
- NUMAKER_PFM_M487/NUMAKER_IOT_M487mbed-os-5.15: Add API to reset MAC statistics and Wi-SUN statistics
Summary of changes
Added API to reset MAC statistics and Wi-SUN statistics.
This is copied from https://github.com/ARMmbed/mbed-os/pull/14439Impact of changes
None
Migration actions required
None
M487: Fix crash on WDT reset from power-down (5.15)
Summary of changes
This PR is backport of #12557 and #14524 to mbed-os 5.15 and tries to fix issue with WDT reset from power-down mode.
UARTSerial writes even if tx is disabled
Summary of changes
Remove shadowing variables.
mbed-os-5.15: Added new start methods to Wi-SUN BR with WisunInterface parameter and deprecated the old ones
Summary of changes
Previously WisunBorderRouter start() used NetworkInterface type for mesh interface, although only WisunInterface type is possible for the call. Added a new overloads of the start with the WisunInterface as mesh interface type and deprecated the old ones. This makes the calls stricter about the interface type and safer. It also allows to remove the reinterpret_cast that causes
compiler warning on ARM compiler.
This is mbed-os-5.15 version of https://github.com/ARMmbed/mbed-os/pull/14462Impact of changes
None
Migration actions required
None
Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
Fixes and Changes
15102
Nanostack release v15.0.0 to mbed-os-5.1515026
[mbed-os-5.15] Nuvoton M480/M451 CAN API support mask feature15011
Travis CI migration to GitHub Actions14833
[mbed-os-5.15] Nanostack release v14.0.014830
MAX32630FTHR: Port USBSerial from mbed6.x14818
[mbed-os-5.15] Add system time read/write callbacks to mbed-mesh-api14771
connectivity tests: Early test skip14770
mbed-os-5.15: Update mbed-coap to version 5.1.1114745
mbed-os-5.15: remove python 2.7 tests from travis14744
test examples: remove tls socket, it was deprecated some time ago14682
[mbed-os-5.15] Update mbed-coap to version v5.1.1014618
mbed-os-5.15: Add API to get Wi-SUN Neighbor Table14597
LPC15xx extended CAN fix (5.15)14566
mbed-os-5.15: Mesh api: Added PHY mode, channel plan IDs and configuration functions14565
[mbed-os-5.15] Nanostack release v13.0.014556
Nuvoton: Fix hal_watchdog_kick() with WDT stopped (5.15)14552
mbed-os-5.15: Add API to reset MAC statistics and Wi-SUN statistics14502
M487: Fix crash on WDT reset from power-down (5.15)14498
UARTSerial writes even if tx is disabled14464
mbed-os-5.15: Added new start methods to Wi-SUN BR with WisunInterface parameter and deprecated the old onesUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.15.8”.
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.15.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 6.15.0 release is now available.
Summary
The main focus with this release is bringing our support up to date for both the GCC and Arm compilers, so GCC10 and Arm 6.15.0 respectively, and now supporting TF-M v1.4. With this, Mbed OS can now support v8.1-M of the Arm Architecture and will support upcoming M55-based MCUs from the Arm ecosystem.
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.New feature: send/recv message implementation added to network stack
Summary of changes
This PR is continuation of another stale PR: https://github.com/ARMmbed/mbed-os/pull/14847. I am opening this one, as I didn’t have access to push to the fork created by other developer.
I have added few changes related to unresolved comments:
- function names were changed from socket_sendmsg/socket_recvmsg to socket_sendto_control/socket_recvfrom_control.
- default implementation of this functions was provided in the NetworkStack class to not break the existing API. This was the issue that caused tests to fail in the previous PR.
- MsgHeaderIterator accesses elements on the aligned addresses
.SFDP: Add support for multiple configurations and sector maps
Summary of changes
Fixes #12574
This PR adds to following changes, to support CYW9P62S1_43012EVB_01’s QSPI flash (S25FS512S): * A Sector Map Parameter Table contains a sequence of the following descriptors: * (Optional) configuration detection command descriptors, one for each command to run to determine the current configuration. This exists only if the flash layout is configurable. * Sector map descriptors, one map for each possible configuration. On a flash device with a non-configurable layout, there is only one such descriptor/map.
Previously we only supported the non-configurable case with a single descriptor. This PR adds support for multiple configurations and provides a positive unit test case. * To be able to run configuration detection commands, a callback provided by each block device and used by the SFDP class needs to take additional parameters: address size, instruction and dummy cycles. Their values come from sector map descriptors in the SFDP table. This PR changes the callback interface, and updates callbacks implemented by SPI, QSPI and OSPI block devices to the extended interface. * A quirk is provided for Cypress S25FS512S flash device’s inconsistent register value: This device’s SFDP table suggests checking CR3NV[1], which needs to be 1 in order for the config detection algorithm to work. But the actual hardware has value 0 instead. This has been discussed before on the Internet (e.g. on a Linux mailing list) - it’s not possible to change a value in hardware that has been in production for years. * Two of the three configurations of S25FS512S have eight 4KB sectors (32KB in total) overlaying a 256KB sector. This type of partial overlay is not current supported by Mbed OS’s BlockDevice and SFDP parser. A quirk is provided to ignore the 4KB sectors and only use the 256KB sectors. * Fixes of a few preexisting issues we found.
More details in commit messages.Known Issues
There are no new known issues with this release.
Test Report
Release automated CI test
In addition to regular Pull Request tests and Nightly test, we also ran a nightly release test on mbed-os 6.15.0-RC
Results for the tests we run in CI on mbed-os 6.15.0-RC (nightly):
- Build Greentea ARMC6 - ALL PASSED
- Build Greentea GCC_ARM - ALL PASSED
- Build Examples ARMC6 - ALL PASSED
- Build Examples GCC_ARM - ALL PASSED
- Build Cloud Examples ARMC6 - ALL PASSED
- Build Cloud Examples GCC_ARM - ALL PASSED
- Build CMAKE Examples ARMC6 - ALL PASSED
- Build CMAKE Examples GCC_ARM - ALL PASSED
- Build CMAKE Cloud Examples ARMC6 - ALL PASSED
- Build CMAKE Cloud Examples GCC_ARM - ALL PASSED
- Unittest Test matrix - ALL PASSED
- GreenTea test matrix - ALL PASSED
- Examples test matrix - ALL PASSED
- CMAKE Examples test matrix - ALL PASSED
- Cloud Client integration Test - ALL PASSED
- Memory Usage Test - ALL PASSED
Toolchain Coverage
In the Mbed OS 6.15.0 release. we are testing the following toolchains:
- ARM compiler 6.16
- GCC_ARM 10.3-2021.07 (Please note the change from Mbed OS 6.14.0)
Targets Coverage
In Mbed OS 6.15.0, the compilation test targets scope has not changed and remains all Mbed OS enabled targets.
At the time of the Mbed OS 6.15.0 release, we run the greentea tests on the following targets:
- ARM_MUSCA_S1
- DISCO_L457VG_IOT01A
- K64F
- K66F
- NRF52840_DK
- NUCLEO_F429ZI
- NUCLEO_F767ZI
- NUCLEO_WB55RG
- NUMAKER_IOT_M487
- FPGAs on K64F, NRF52840_DK, NUCLEO_F429ZI, NUCLEO_F767ZI, NUCLEO_WB55RG, and DISCO_L457VG_IOT01A
Test Numbers
Greentea test number 1716 (+0)
Unittest number 756 (+11)Code Coverage
Test Code Coverage been tracked and information is published on COVERALLS
Memory Monitoring
Observed no significant changes from Mbed OS 6.14.0
Contents
Ports for Upcoming Targets
15022
STM32U5 new family introduction15012
Add platform MTS_DRAGONFLY_L496VGFixes and Changes
15078
M2354: Fix TF-M 1.415073
CMake: QSPIFBlockDevice: Guard unit test directory15067
Greentea: Fix flash overflown issue in callback_big test15066
CMake: Fix platform wait_ns greentea test Cmake15061
Fix replacement of event queue background.15060
set locale in mbed-os-env Docker image15059
Fix Thread::start() and general_block_device test’s thread allocation/deallocation15052
Fix mbed-os-env docker digest retrieval15051
Allow to use all STM32 targets prescaler for LPTIM15050
Update to TF-M v1.4.015045
Workaround for a bug in malloc() from newlib-nano 4.1.0 (in GCC 10.3)15043
FIX: update click version to fix scancode15041
CMake: Set TARGET_NAME macro15040
New feature: send/recv message implementation added to network stack15034
add RTC using HSE to target STM32F115032
CMake: Fix escaping of quotes in response file15031
connectivity-netsocket-tests-tests-network-wifi test suite configuration simplification15030
M2354: Fix LCDCP missing in TF-M CLK pass list15029
M2354: Fix incorrectly resolved peripheral base with security15028
STM32 SPI: Update and improvement15027
M2354: Generate unique MCUboot image version15024
M2354: Enhance TF-M SDH stability15022
STM32U5 new family introduction15020
Nuvoton: M480/M451 CAN API support mask feature15019
Refactor platform greentea cmake15018
hal-tests-tests-mbed_hal-flash compilation warning15017
STM32WL fixed current consumption for mode RBI_CONF_RFO_HP15016
Fix IAR cmsis update breakage15012
Add platform MTS_DRAGONFLY_L496VG15010
Reduce spam on trace because of calling read/write while handshaking15007
docker: Upgrade GCC to 10.3-2021.0714989
SFDP: Add support for multiple configurations and sector maps14981
Fix STM32 SPI 3-wire (synchronous API)14951
CMake: Refactor rtos greentea cmake14926
Eth: STM32: Overriding HAL callbacks in stm32xxUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.15.0”.
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.14.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 6.14.0 release is now available.
Summary
The main changes provided by this release are upgrades of the Fat Filesystem to version R0.14b and CMSIS to 5.8.0, both bringing improved stability and reliability. We’ve also added a SPI NAND block device driver for using SPI NAND Flash, like Macronix Flash MX31LF4GE4BC.
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.FatFs: upgrade to R0.14b
Summary of changes
Current upstream version of FatFs was now R0.14b with a lot of fixed since R0.13a. LINK
So we migrated Mbed-OS modification in R0.13a back to R0.14b and change some that affect in FATFileSystem.cppImpact of changes
FatFs version upgrade that may introduce new regression from upstream.
Migration actions required
FatFs has been upgraded to R0.14b. This comes with the following API changes requiring migration for direct users of FatFs. Users of the Mbed OS C++ class
FATFileSystem
do not need to change their use ofFATFileSystem
.
f_mkfs() now takes a MKFS_PARAM opt instead of a BYTE opt and DWORD au.
f_fdisk() now takes an LBA_t ptbl[] instead of a DWORD szt.CMake: tests: Support skipping unsupported test with reason
Summary of changes
Fixes #14856
Add a new argumentTEST_SKIPPED
tombed_greentea_add_test()
to indicate a test is skipped and give a reason (e.g. the Mbed target and/or configuration does not provide what the test requires).
The skip reason of a test is printed when running tests withctest
, and the test is marked as “Skipped” in the test report.
As a showcase, use this mechanism to skip the PSA Attestation test if baremetal is used or PSA and Experimental API are unavailable. Also update the ticker test (whose CTest support was added in #14892) to skip if microsecond ticker is unavailable.Update CMSIS to 5.8.0
Summary of changes
Update CMSIS to 5.8.0. It brings lot of fixes, see https://github.com/ARM-software/CMSIS_5/releases/tag/5.8.0
We again had some breakages, mainly it was arm compat (workaround implemented).Dont require icetea
Summary of changes
Remove icetea requirement.
Impact of changes
icetea is no longer listed as a default dependency.
Migration actions required
If you require icetea, you must install it separately as it is no longer listed as a default dependency of mbed-os in requirements.txt.
Add config macros for device-variant, freq-support and xtal config
Summary of changes
Fixes #14726 by adding config macros for device-variant, freq-support and xtal config.
Settings these macros to -1, the selection pins are used.add SPI NAND Block device driver
Summary of changes
Add SPI NAND block device driver for using SPI NAND Flash like Macronix Flash MX31LF4GE4BC.
Known Issues
There are no new known issues with this release.
Test Report
Release automated CI test
In addition to regular Pull Request tests and Nightly test, we also ran a nightly release test on mbed-os 6.14.0-RC1
Results for the tests we run in CI on mbed-os 6.14.0-RC1 (nightly):
- Build Greentea ARMC6 - ALL PASSED
- Build Greentea GCC_ARM - ALL PASSED
- Build Examples ARMC6 - ALL PASSED
- Build Examples GCC_ARM - ALL PASSED
- Build Cloud Examples ARMC6 - ALL PASSED
- Build Cloud Examples GCC_ARM - ALL PASSED
- Build CMAKE Examples ARMC6 - ALL PASSED
- Build CMAKE Examples GCC_ARM - ALL PASSED
- Build CMAKE Cloud Examples ARMC6 - ALL PASSED
- Build CMAKE Cloud Examples GCC_ARM - ALL PASSED
- Unittest Test matrix - ALL PASSED
- GreenTea test matrix - ALL PASSED
- Examples test matrix - ALL PASSED
- CMAKE Examples test matrix - ALL PASSED
- Exporter Test - SOME FAILS (Issue: IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler)
- Cloud Client integration Test - ALL PASSED
- Memory Usage Test - ALL PASSED
Toolchain Coverage
In the Mbed OS 6.14.0 release. we are testing the following toolchains:
- ARM compiler 6.16.0 (Please note the change from Mbed OS 6.13.0)
- GCC_ARM 9-2019-q4-major
Targets Coverage
In Mbed OS 6.14.0, the compilation test targets scope has not changed and remains all Mbed OS enabled targets.
At the time of the Mbed OS 6.14.0 release, we run the greentea tests on the following targets:
- ARM_MUSCA_S1
- DISCO_L457VG_IOT01A
- K64F
- K66F
- NRF52840_DK
- NUCLEO_F429ZI
- NUCLEO_F767ZI
- NUCLEO_WB55RG
- NUMAKER_IOT_M487
- FPGAs on K64F, NRF52840_DK, NUCLEO_F429ZI, NUCLEO_F767ZI, NUCLEO_WB55RG, and DISCO_L457VG_IOT01A
We have the following issue on the test jobs:
- IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler
Test Numbers
Greentea test number 1716 (-7)
Unittest number 745 (+4)Code Coverage
Test Code Coverage been tracked and information is published on COVERALLS
Memory Monitoring
Observed no significant changes from Mbed OS 6.13.0
Contents
Ports for Upcoming Targets
Fixes and Changes
15008
TESTS: Reduce allocate memory size15006
Disabled interrupts on smt32f7 and stm32h7 before calling disable data cache15003
Add bluetooth support files to Cypress BSPs.15002
Add missing include for PinNames.h15000
Fix Extended Message Filter count in STM CAN API14997
python: Upgrade pywin3214995
travis ci migration to github action14993
Add boilerplate unit test code to currently untested modules14988
CYW43XXX Cordio HCI driver: update BT power up sequences to remove redundant delay (500ms) during HCIDrive initialization14983
SFDP: Add unit tests for Sector Map Parameter Table parsing14982
CYW43XXX Cordio HCI driver: fixed MCU deep-sleep locking flow14980
github action fix for uppercase repository owner14979
requirements.txt - remove manifest-tool 1.5.2 and mbed-cloud-sdk14978
DOCKER: fix a bug in docker building GHA14976
Add more uarts for STM32F103xG14972
M2354: Support PSA Firmware Update14970
USB connect problem in non blocking mode14956
STM32_gen_PeripheralPins script update14953
Rework post-build to support multiple executables14952
github actions for mbed-os-env docker management14948
Fix lorawantimer unit test14945
TFM: Add missing IPC file for PSA Firmware Update14944
CMake: unittests: Show all tests in CTest report14941
Update references to time values to use chrono14940
python: Allow newer prettytable with newer python14939
Standard Pin Names validation script update14935
mbed_retarget: enable IAR build14932
Remove host_tests from mbed-os/tools14929
Unit tests: Move target_h/ stubs into libraries’ test doubles14927
add workflow for checking ble feature selection compilation14924
Refactor cellular unittest CMake14922
Cellular: AT command fix - hex string shouldn’t be quoted on bc9514921
BLE: suppress error when no path is passed in for ble security db14920
Refactor connectivity netsocket unittests14919
BLE: fix missing define guards for feature selection14914
Deprecate the Greentea metrics API14912
Move ble stubs to FEATURE_BLE lib14911
FatFs: upgrade to R0.14b14910
Allow LoRaWAN STM32WL driver debug led to be inverted14909
SPIF: fixed _address_size to always initialize as 3_BYTES in ::init()14902
CMake: tests: Support skipping unsupported test with reason14900
Update CMSIS to 5.8.014894
Unit tests: Connectivity: Make lorawan test header dependencies explicit14892
Add CTest support formbed-drivers-ticker
greentea test14880
Dont require icetea14831
DISCO_WB5MMG: add RGB LED14821
RTOS: Add configuration to enable RTX events14805
i2c: fix issue #14735 with multiple buses14730
Add config macros for device-variant, freq-support and xtal config14575
CMake: Enable improved armclang support in CMake 3.2114397
add SPI NAND Block device driver14288
BG96: Add segmentation to TCP socket sendUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.14.0”.
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.13.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 6.13.0 release is now available.
Summary
The main changes in this release are updates to existing functionality and APIs; so the addition of a RawCan class, Cortex-A5 support, changes to the BLE manual security manager functionality and greentea CMake tests refactored for supporting PSA.
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.CMake: Add CMake to mbed-psa greentea tests
Summary of changes
- Changed
mbed_greentea_add_test
macro to require TEST_SOURCES for all files, removing assumption of main.cpp - Refactored all pre-existing greentea tests to add main.cpp using TEST_SOURCES
- Added a CMakeLists.txt for each test suite in Mbed OS PSA.
- Moved /pal and /val directories into a separate /test_abstraction_layer directory and combined them into one CMake target, which is linked to by the test suites that require them.
Fixes #14680
Impact of changes
None.
Migration actions required
None.
BLE: Manual BLE security manager db synchronisation
Summary of changes
Adds new BLE API call to manually attempt to synchronise the security manager DB.
Feature: Make changes for Cortex-A5 support
Summary of changes
It’s a PR that add Cortex-A5 support for mbed-os custom targets.
Unify some __CORTEX_A macros.
__MBED_CMSIS_RTOS_CM
and__MBED_CMSIS_RTOS_CA9
have been removed from CMake as they’re not used anymore.drivers: Add RawCan object
Summary of changes
RawCAN
class (unlocked apis) is added, which can be used in case if CAN object is accessed by a single thread.Specific for ST CAN HAL implementation:
can_read is deferred to thread context when rx interrupt is enabled.
As can_read is protected by mutex(mutex is not allowed in ISRs in Mbed) and read is only possible way to clear interrupts in bxCAN in STM controllers, reads are to be deferred to thread context.CYW43XXX: Add generic transport layer
Summary of changes
Aim of this pr is to add a generic transport layer to
COMPONENT_CYW43XXX
using unbuffered uart.CYW43XXX_UNBUFFERED_UART
directive has been added to keep Cypress hal support available.
https://github.com/ARMmbed/mbed-os/commit/40fd126915e592ed53143ecbdbcbe5a55184c9f1 Adds thenCYW43XXX
support toPORTENTA_H7
target.Impact of changes
COMPONENT_CYW43XXX
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: https://github.com/MicrochipTech/cryptoauthlib/issues/116
- Priority: Minor
Wi-SUN Hardfaults with IAR compiled image with Mbed OS 5.15.0
- Description: Mesh Wi-SUN FAN may HardFault in rare occasions with IAR8 compiled binaries during initial network connection.
- Workaround: The workaround is to use other compilers.
- Reported Issue: IOTTHD-3898
- Priority: Major
Test Report
Release automated CI test
In addition to regular Pull Request tests and Nightly test, we also ran a nightly release test on mbed-os 6.13.0-RC1
Results for the tests we run in CI on mbed-os 6.13.0-RC1 (nightly):
- Build Greentea ARMC6 - SOME FAILS (Issue: MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options)
- Build Greentea GCC_ARM - ALL PASSED
- Build Examples ARMC6 - ALL PASSED
- Build Examples GCC_ARM - ALL PASSED
- Build Cloud Examples ARMC6 - ALL PASSED
- Build Cloud Examples GCC_ARM - ALL PASSED
- Build CMAKE Examples ARMC6 - ALL PASSED
- Build CMAKE Examples GCC_ARM - ALL PASSED
- Build CMAKE Cloud Examples ARMC6 - ALL PASSED
- Build CMAKE Cloud Examples GCC_ARM - ALL PASSED
- Unittest Test matrix - ALL PASSED
- GreenTea test matrix - ALL PASSED
- Examples test matrix - ALL PASSED
- CMAKE Examples test matrix - ALL PASSED
- Exporter Test - SOME FAILS (Issue: IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler)
- Cloud Client integration Test - ALL PASSED
- Memory Usage Test - ALL PASSED
Toolchain Coverage
In the mbed OS 6.13.0 release. we are testing the following toolchains:
- ARM compiler 6.15.0
- GCC_ARM 9-2019-q4-major
Targets Coverage
In mbed-os 6.13.0, the compilation test targets scope has not changed and remains all mbed OS enabled targets.
At the time of the mbed-os 6.13.0 release, we run the greentea tests on the following targets:
- ARM_MUSCA_S1
- DISCO_L457VG_IOT01A
- K64F
- K66F
- NRF52840_DK
- NUCLEO_F429ZI
- NUCLEO_F767ZI
- NUCLEO_WB55RG
- NUMAKER_IOT_M487
- FPGAs on K64F, NRF52840_DK, NUCLEO_F429ZI, NUCLEO_F767ZI, NUCLEO_WB55RG, and DISCO_L457VG_IOT01A
We have the following issues on the test jobs:
- MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options
- IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler
Test Numbers
Greentea test number 1723 (+0)
Unittest number 741 (+0)Code Coverage
Test Code Coverage been tracked and information is published on COVERALLS
Memory Monitoring
Observed no significant changes from mbed-os-6.12.0
Contents
Ports for Upcoming Targets
Fixes and Changes
14915
STM32 Fix i2c_compute_timing() API14913
802.15.4 stm-s2lp-rf-driver update to v1.0.1014905
STM32 : README updates about custom boards14899
STM32WL: correct CMakeLists.txt for STM32WLE5xC14898
Fix gcc_arm linker script for stm32f407xg targets14897
ST BLUENRG BLE: STWIN SensorTile board introduction14896
Move connectivity nanostack libservice stub14895
ADC: STM32H7: Skip Negative input analog channels (INN)14890
Move connectivity mbedtls stubs14888
Portenta: Add BLE support using CYW43XXX generic transport layer14887
Updated can bit timing parameters as per the ISO11898-214884
Remove theUNITTEST
macro from production code14882
Unit tests: storage: Only use headers, sources and definitions needed by each test14881
Standard Pin Name: LED1 issue for targets without LED14876
CMake: greentea: Remove dependency on global MBED_PATH14875
enable google and azure example application tests in ci14874
CMake: ReplaceMBED_TEST_LINK_LIBRARIES
withMBED_TEST_BAREMETAL
14873
Move connectivity netsocket stubs14872
Add STM32WLE5 for custom targets LORA_E5 and RAK317214870
CMake: Remove mbed-stubs-rtos-headers library14864
analogout: STM32: modified analogout_free api14862
Unit tests: Move storage stubs into the storage directory14850
PSA: Fix compile error with NV seed14849
SPIFBlockDevice: Add mbed namespace to BD_ERROR_DEVICE_ERROR14844
Analogout free implementation for F4/F7/H7 boards14843
InterruptIn : STM32: Implemented error catching for multiple gpio on the same irq line14842
Move connectivity lora stubs14838
Eth: STM32: Updating documentation on mbed_otp_mac_address()14837
K64F: Fix pin names and migrate to Arduino Uno form factor14835
Move stubs cellular headers14834
Move connectivity cellular stubs14828
CMake: Add CMake to mbed-psa greentea tests14827
Move hal stubs to hal directory14826
CMake: unit-tests: Make events UNITTESTS only depend on headers it uses14824
BLE: Manual BLE security manager db synchronisation14823
Move events stubs to events dir14822
STM32H7: correction for FLASH API for CM414820
BLE: Clarify ble event docs with crossreferences14819
Move rtos stubs to the rtos directory14817
Add system time read/write callbacks to mbed-mesh-api14816
Nanostack release v14.0.014815
Enable PSA tests on K64F/K66F and fix missing PSA Crypto init in TLSSocketWrapper14814
BG96: Add correct get_ip_address implementation14813
CMake: unit-tests: Make drivers unittests only depend on headers it uses14808
driver/i2c: STM32: I2C performance issue solved.14807
M2354: inherit PSA_V8_M devices14803
Use standalone greentea-client14787
Cypress Asset Update14786
Move mbed-stubs-drivers to the drivers directory14783
tfm-post-build: Don’t capture subprocess stdout14780
Update python requirements14778
CAN TxIRq callback never called -STM32G47414776
driver/i2c: STM32: I2C memory usage and time delay in read-write solved.14773
Move mbed-stubs-platform to the platform directory14751
Fix for fcntl() flags definition14718
Feature: Make changes for Cortex-A5 support14716
Cellular: Add AT handler buffer size to configuration14688
Solution for mutex problem in CAN read ISR14677
Changes required in STM CAN read API14663
Portenta: Add support to generic COMPONENT_WHD14227
CYW43XXX: Add generic transport layerUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.13.0”.
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
- Changed
-
mbed-os-6.12.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 6.12.0 release is now available.
Summary
The main changes in this release are further enhancements to connectivity with changes to socket APIs and to the Mesh support for Wi-SUN.
Support for one new target is added too:
- Nuvoton M2354 - https://os.mbed.com/platforms/NUMAKER-M2354/
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.LWIP Broadcast socket option added
Summary of changes
This PR adds Broadcast socket option
Impact of changes
No impact
Migration actions required
Not needed
Fix ‘netsocket: several dynamic allocation results not checked’ (#14210)
Summary of changes
This changes adds
std::nowthrow
and the checks for allocation failure to all places in thenetsocket
portion that lacked it. This change addresses #14210.Impact of changes
add_event_listener
inNetworkInterface
now returns an error if the method fails. Previous attempts to add the event listener would attempt to use an unchecked standard dynamically allocatedns_list_*
item.
In other cases, the dynamically allocated items will now be checked, and if unsuccessful, will return after cleaning up any outstanding issues.
TCPSocket::accept
will now check that its own internally allocatednew TCPSocket
call will succeed, and if not, will clean up the stack resources. This should help when memory is low but an incoming connection requests a connection when theTCPSocket
is listening.Migration actions required
As
new
calls are now handled, code that did not check against this failure may now check for failure and handle it at the application layer.
add_event_listener
now returnsnsapi_error_t
instead ofvoid
. The two return values possible areNSAPI_ERROR_OK
andNSAPI_ERROR_NO_MEMORY
in the case of memory allocation failure.Mesh api: Added PHY mode, channel plan IDs and configuration functions
Summary of changes
Support for Wi-SUN FAN v1.1 PHY mode ID and channel plan ID in Mesh API.
- Enables using OFDM modulation with Wi-SUN stack.
- This change is copied from PR: https://github.com/ARMmbed/mbed-os/pull/14161
Implemented domain configuration functions in mesh API:
- Functions will set, get and validate the parameters using corresponding Nanostack API.
- This change is copied from PR: https://github.com/ARMmbed/mbed-os/pull/14251Enable the RWW function of Macronix Flash MX25LW51245G in OSPI block device driver
Summary of changes
Update PR #12644.
Add source code about RWW(read while write) in OSPI block device driver for using the RWW function Macronix octaflash MX25LW51245G to improve performance.Impact of changes
Enable the RWW function of MX25LW51245G.
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: https://github.com/MicrochipTech/cryptoauthlib/issues/116
- Priority: Minor
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
Contents
Ports for Upcoming Targets
14746
STM32WB: introduce STM32WB15CC NUCLEO14441
M2354: Support Nuvoton’s new targetFixes and Changes
14801
BKE: fix statements outside correct feature guard blocks14797
run example-tls on faster K64F board (than K66F)14772
Improve implementation of Mbed TLS timing14768
Update mbed-coap to version v5.1.1114767
connectivity tests: early skip fix14765
Fix unittest check14760
mbedtls: Rename Mbed timing implementation14756
mbedtls: Add an alt implementation of timing14753
Add mbed prefix into atomic14752
LWIP Broadcast socket option added14750
Increase SPI stack size to 2048 for BlueNrg driver14749
Fcntl setting improvement,14748
Correct ufsi timing calculation14747
BLE: fix advertising set termination event14746
STM32WB: introduce STM32WB15CC NUCLEO14743
Nuvoton: Support watchdog on M251/M261 series14741
MbedTLS: Add definition checks for TRNG14740
Fix ‘netsocket: several dynamic allocation results not checked’ (#14210)14739
M2354: Substitute HIRC for HXT to clock PLL14738
Gate ticker (timer0) clock on deepsleep for MAX32620FTHR14737
BLE: Add cmake unittest fakes for BLE and events14736
STM32 USB: update init14734
STM32WL LORA: HW specific out of STM32WL_LoRaRadio class14733
STM32H7 ADC : dual pad feature update14729
tools/STM32 Modified Python script generates Peripheral Pins14724
STM32G0: correct voltage scaling control14722
STM32 TRNG: update init to match all configs14721
Nuvoton: Enable no HXT/LXT configurability14720
STM32L5: corrected voltage scaling when using MSI14713
lgtm: Add initial LGTM configuration file14710
BLE: support non-low power devices14709
CMake: Remove forgotten debug message14708
test: Fix function does not return a value warnings14705
Fix frozen tools check never failing14704
Pin name tests update14702
Silence expansion-to-defined for nrfx14701
Add Travis test to make sure text files are UTF-8 encoded14699
STM32 astyle format14698
STM32: Fixed I2C Bug14697
TESTS: rename variable interface to fix broken tests14693
Fix compilation errors with kvstore - TDB_INTERNAL option to store BLE bonding info14692
STM32WB: improve FLASH size14691
Add GitHub action for issue triaging script14689
Information on Asynchronous SPI limitation on High Speeds14687
STM32L5 update drivers version to CUBE V1.4.014686
STM32: correct __cplusplus brackets14684
Fix missingas_entry
method in KVStoreSecurityDb14683
Baremetal tests: enable BLE tests with NUCLEO_WB55RG14678
Serial: remove shadowing member variables14675
i2c:start()
should aquire the bus14674
Update mbed-coap to version v5.1.1014672
BLE: Fix advertising start and stop14671
enable aws example test in CI14670
STM32: add information in README for SLEEP feature14669
STM32L152: Added ADC Bank_B functionality14668
Driver: I2C: STM32F2/STM32F4/STM32L1: Fix alternate i2c read.14667
Update GCC except.S to support ARMC6 and use GCC assembly with ARM toolchain in CMake14665
Travis: Move frozen tools check to the end14664
Enable FlashIAP for MCU_NRF5283214662
Add CANMessage deep comparison operators14659
STM32: make i2c_salve_read return the number of bytes read14652
tls: Upgrade to Mbed TLS v2.25.014629
Mesh api: Added PHY mode, channel plan IDs and configuration functions14617
Add legacy I2C/SPI pin aliases14608
STM32H7 update drivers version to CUBE V1.9.014593
STM32F7 update drivers version to CUBE V1.16.114592
STM32G4 update drivers version to CUBE V1.4.014574
Fix string buffer length in UUID trace helper14547
CMake: Remove all unittest.cmake script from test suite14536
STM32: Add LP_TICKER and US_TICKER optimisation macro14471
COMPONENT_WHD: make reusable code available for other targets14441
M2354: Support Nuvoton’s new target14221
Enable the RWW function of Macronix Flash MX25LW51245G in OSPI block device driverTest Report
Release automated CI test
In addition to regular Pull Request tests and Nightly test, we also ran a nightly release test on mbed-os 6.12.0-RC1
Results for the tests we run in CI on mbed-os 6.12.0-RC1 (nightly):
- Build Greentea ARMC6 - SOME FAILS (Issue: MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options)
- Build Greentea GCC_ARM - ALL PASSED
- Build Examples ARMC6 - ALL PASSED
- Build Examples GCC_ARM - ALL PASSED
- Build Cloud Examples ARMC6 - ALL PASSED
- Build Cloud Examples GCC_ARM - ALL PASSED
- Build CMAKE Examples ARMC6 - ALL PASSED
- Build CMAKE Examples GCC_ARM - ALL PASSED
- Build CMAKE Cloud Examples ARMC6 - ALL PASSED
- Build CMAKE Cloud Examples GCC_ARM - ALL PASSED
- Unittest Test matrix - ALL PASSED
- GreenTea test matrix - ALL PASSED
- Examples test matrix - ALL PASSED
- CMAKE Examples test matrix - ALL PASSED
- Exporter Test - SOME FAILS (Issue: IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler)
- Cloud Client integration Test - ALL PASSED
- Memory Usage Test - ALL PASSED
Toolchain Coverage
In the mbed OS 6.12.0 release. we are testing the following toolchains:
- ARM compiler 6.15.0
- GCC_ARM 9-2019-q4-major
Targets Coverage
In mbed-os 6.12.0, the compilation test targets scope has not changed and remains all mbed OS enabled targets.
At the time of the mbed-os 6.12.0 release, we run the greentea tests on the following targets:
- ARM_MUSCA_S1
- DISCO_L457VG_IOT01A
- K64F
- K66F
- NRF52840_DK
- NUCLEO_F429ZI
- NUCLEO_F767ZI
- NUCLEO_WB55RG
- FPGAs on K64F, NRF52840_DK, NUCLEO_F429ZI, NUCLEO_F767ZI, NUCLEO_WB55RG, and DISCO_L457VG_IOT01A
We have the following issues on the test jobs:
- MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options
- IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler
Test Numbers
Greentea test number 1723 (+2)
Unittest number 741 (-1)Code Coverage
Test Code Coverage been tracked and information is published on COVERALLS
Memory Monitoring
Observed no significant changes from mbed-os-6.11.0
Using this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.12.0”.
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.11.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 6.11.0 release is now available.
Summary
This release doesn’t contain any major new features, but we’ve made some changes to APIs to extend existing functionality, added an experimental API to our CAN APIs, and marked some APIs as deprecated, hence minor release increment.
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.Deprecate broken TDB_EXTERNAL_NO_RBP and FILESYSTEM_NO_RBP in kv_config
Summary of changes
Replaces #14490: changed from removal to deprecation due to the Mbed OS release model.
NO_RBP (no rollback protection) is intended to not require an internal TDB, however, DeviceKey, which we use to derive SecureStore’s encryption key, still does. Currently, no internal TDB is created with these two configurations, meaning there’s no way to store the DeviceKey and SecureStore doesn’t work. The configurationsTDB_EXTERNAL_NO_RBP
andFILESYSTEM_NO_RBP
are broken due to this design flaw.
This PR deprecates the non-working configurations, with their documentations removed but code and configurations kept with deprecation warnings. They will be completely removed from the next major release.Impact of changes
Existing applications that use
TDB_EXTERNAL_NO_RBP
andFILESYSTEM_NO_RBP
will still be able to compile for now, until we fully remove the two configurations in the future. But they have never been functional, so no application should have ever been able to use them.Migration actions required
Applications that have
storage.storage_type
set toTDB_EXTERNAL_NO_RBP
orFILESYSTEM_NO_RBP
should switch to useTDB_INTERNAL
,TDB_EXTERNAL
,FILESYSTEM
ordefault
depending on their use cases.Add API to get Wi-SUN Neighbor Table
Summary of changes
Added
nbr_info_get
API to get Wi-SUN neighbor table information in mbed-mesh-api.
mesh_nw_statistics_t
structure in mbed-mesh-api has been updated with more statistics of the Wi-SUN interface.
This is upstream of PR#14586Added API to reset MAC statistics and Wi-SUN statistics
Summary of changes
Added API to reset MAC statistics and Wi-SUN statistics.
This is copied from https://github.com/ARMmbed/mbed-os/pull/14439Implement polymorphism for CAN driver
Summary of changes
This PR introduces experimental polymorphism for the
CAN
C++ API. This allows alternate implementations (eg: external CAN interfaces) that are compatible with the internal implementation.
See #13209 for the surrounding discussion.Impact of changes
None, it only affects the user if they have the
EXPERIMENTAL_API
feature enabled.Migration actions required
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: https://github.com/MicrochipTech/cryptoauthlib/issues/116
- Priority: Minor
Wi-SUN Hardfaults with IAR compiled image with Mbed OS 5.15.0
- Description: Mesh Wi-SUN FAN may HardFault in rare occasions with IAR8 compiled binaries during initial network connection.
- Workaround: The workaround is to use other compilers.
- Reported Issue: IOTTHD-3898
- Priority: Major
Test Report
Release automated CI test
In addition to regular Pull Request tests and Nightly test, we also ran a nightly release test on mbed-os 6.11.0-RC1
Results for the tests we run in CI on mbed-os 6.11.0-RC1 (nightly):
- Build Greentea ARMC6 - SOME FAILS (Issue: MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options)
- Build Greentea GCC_ARM - ALL PASSED
- Build Examples ARMC6 - ALL PASSED
- Build Examples GCC_ARM - ALL PASSED
- Build Cloud Examples ARMC6 - ALL PASSED
- Build Cloud Examples GCC_ARM - ALL PASSED
- Build CMAKE Examples ARMC6 - ALL PASSED
- Build CMAKE Examples GCC_ARM - ALL PASSED
- Build CMAKE Cloud Examples ARMC6 - ALL PASSED
- Build CMAKE Cloud Examples GCC_ARM - ALL PASSED
- Unittest Test matrix - ALL PASSED
- GreenTea test matrix - ALL PASSED
- Examples test matrix - ALL PASSED
- CMAKE Examples test matrix - ALL PASSED
- Exporter Test - SOME FAILS (Issue: IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler)
- Cloud Client integration Test - ALL PASSED
- Memory Usage Test - ALL PASSED
Toolchain Coverage
In the mbed OS 6.11.0 release. we are testing the following toolchains:
- ARM compiler 6.15.0
- GCC_ARM 9-2019-q4-major
Targets Coverage
In mbed OS 6.11.0, the compilation test targets scope has not changed and remains all mbed OS enabled targets.
At the time of the mbed-os 6.11.0 release, we run the greentea tests on the following targets:
- ARM_MUSCA_S1
- DISCO_L457VG_IOT01A
- K64F
- K66F
- NRF52840_DK
- NUCLEO_F429ZI
- NUCLEO_F767ZI
- NUCLEO_WB55RG
- FPGAs on K64F, NRF52840_DK, NUCLEO_F429ZI, NUCLEO_F767ZI, NUCLEO_WB55RG, and DISCO_L457VG_IOT01A
We have the following issues on the test jobs:
- MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options
- IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler
Test Numbers
Greentea test number 1721 (+0)
Unittest number 742 (+0)Code Coverage
Test Code Coverage been tracked and information is published on COVERALLS
Memory Monitoring
Observed no significant changes from mbed-os-6.10.0
Contents
Ports for Upcoming Targets
14578
STM32 : new DISCO_WB5MMG target14505
Adding NXP TARGET- MIMXRT1170_EVKFixes and Changes
14661
Delete STM32F401XE.ld14657
Deprecate broken TDB_EXTERNAL_NO_RBP and FILESYSTEM_NO_RBP in kv_config14656
CMake: Only force Ninja response files on Windows14655
mbedtls_stub: Add missing include14653
requirements: Relax Click version requirement14651
STM32L4 update drivers version to CUBE V1.17.014631
driver/I2C: STm32: Updated HAL_I2C_ErrorCallback function to store information about error reason in obj_s->event14628
ARDUINO_UNO form factor and new PinNames for MIMXRT1050 target14627
Dispatch Gap::stopPeriodicAdvertising to the right function.14626
STM32WB update drivers version to CUBE V1.11.114625
BLE: Fix overwriting attribute data from read auth callback14624
error: use __INITIAL_SP from cmsis instead of RTX one14623
Updated SDK 2.9.1 and added Flash Support for MIMXRT1170_EVK14619
Add API to get Wi-SUN Neighbor Table14612
CAN: fix slave CAN start filter bank setup14609
STM32L0 update drivers version to CUBE V1.12.014605
BLE: Fix traces14603
Avoid init class definition for compatibility14602
Deprecate indications event onConfirmationReceived14599
STM32WL: enable lora with baremetal14594
STM32_gen_PeripheralPins.py : TargetName correction14589
fix(docs): corrects various typos in project documentation14588
Add v8.1-M architecture awareness14587
create symlink for all sub examples which has mbed-os.lib14585
add #include “wsf_os.h” into hci_drv_apollo3.h14583
musca: Add detect_code for MUSCA B114582
Update TF-M to v1.3.014581
STM32G4 : serial issue with LP_UART114578
STM32 : new DISCO_WB5MMG target14576
Trace: Change tr_debug color from gray to bright blue14573
Nanostack release v13.0.014571
CMake: STM32: Add missing emac init files14569
remove cmake specific example list14567
M487: Resolve WDT reset H/W limit14561
Add bare metal support to Renesas targets14555
Nuvoton: Fix hal_watchdog_kick() with WDT stopped14554
HAL ticker tests update14553
Added API to reset MAC statistics and Wi-SUN statistics14551
Travis: update to focal dist14550
Fix DeviceKey documentation regarding RoT14548
STM32F4 update drivers version to CUBE V1.26.114542
STM32F3 update drivers version to CUBE V1.11.214540
Improve condition for declaringstruct timeval
14539
STM32G0 update drivers version to CUBE V1.4.114538
Cmake: Add MBED_TEST_MODE macro14537
Better document MemoryPool behaviour14505
Adding NXP TARGET- MIMXRT1170_EVK14497
Check for duplicate status callbacks before adding to the list14451
STM32 : enable PinMap_GPIO table14336
Implement polymorphism for CAN driver13791
mbedtls: Don’t attempt to use default_random_seedUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.11.0”.
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
- Description: Parsing IP addresses in the X.509 certificate subjectAltNames is not supported yet. In certificate chains relying on IP addresses in subjectAltNames a
-
mbed-os-6.10.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 6.10.0 release is now available.
Summary
The main feature we are releasing is to introduce a new standard for the definition and usage of pin-names, with the goal of simplifying this for Mbed developers looking to port their code between development boards. We’ll publish a blog providing more details shortly, and would like to publicly thank both Analog Devices and ST Microelectronics for their contributions and collaboration on these changes.
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.Remove ownership/acquire in QSPI/OSPI driver
Summary of changes
This PR removes the concept of peripheral acquisition and ownership in the QSPI driver. Its implementation is currently incomplete and undocumented, and has caused problems in some cases (see 11230 12678 12680).
Impact of changes
In cases where multiple instances of QSPI/OSPI are used with the same underlying peripheral, the QSPI/OSPI driver will no longer re-initialize the underlying peripheral to the appropriate configuration when switching instances. The application must call init when switching instances.
BLE: replace obsolete services with the new services repo
Summary of changes
We are removing the old and broken ble services in favour of the external services repository.
Standard Pin Names
Summary of changes
This PR introduces standard pin names for Mbed and migrates a number of ST targets to this standard. It also includes compliance testing tools based on static analysis and Greentea tests, and adds target markers to PinNames.h files so that they can be reliably matched to their corresponding target.
Implement polymorphism for DigitalIn/Out/InOut
Summary of changes
In some IO-constrained applications, it is necessary to use a GPIO expander like the I2C-based MCP23008. To maintain compatibility with existing libraries that require a
DigitalIn/Out/InOut
handle, it would be beneficial to be able to subclass one of these classes and retarget theread/write, etc
calls. This would enable an MCP23008 driver to provideDigitalOut
-like objects that abstract away the intermediate I2C transfers. These objects can then be passed to older APIs usingDigitalOut
pointers.
For this to work properly, some of theDigitalIn/Out/InOut
class methods must be made virtual. This PR accomplishes this.
I would encourage Mbed to consider “virtualizing” many of the other hardware drivers for similar use cases.
See #12387 for a similar discussion concerning retargetting Mbed’sCAN
API to an external SPI-based CAN controller/transceiver.Impact of changes
None. This should not affect current users of these APIs in any functional way. Code size may be slightly increased due to the addition of virtual tables and new functions.
Migration actions required
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: https://github.com/MicrochipTech/cryptoauthlib/issues/116
- Priority: Minor
Wi-SUN Hardfaults with IAR compiled image with Mbed OS 5.15.0
- Description: Mesh Wi-SUN FAN may HardFault in rare occasions with IAR8 compiled binaries during initial network connection.
- Workaround: The workaround is to use other compilers.
- Reported Issue: IOTTHD-3898
- Priority: Major
Test Report
Release automated CI test
In addition to regular Pull Request tests and Nightly test, we also ran a nightly release test on mbed-os 6.10.0-RC1
Results for the tests we run in CI on mbed-os 6.10.0-RC1 (nightly):
- Build Greentea ARMC6 - SOME FAILS (Issue: MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options)
- Build Greentea GCC_ARM - ALL PASSED
- Build Examples ARMC6 - ALL PASSED
- Build Examples GCC_ARM - ALL PASSED
- Build Cloud Examples ARMC6 - ALL PASSED
- Build Cloud Examples GCC_ARM - ALL PASSED
- Build CMAKE Examples ARMC6 - ALL PASSED
- Build CMAKE Examples GCC_ARM - ALL PASSED
- Build CMAKE Cloud Examples ARMC6 - ALL PASSED
- Build CMAKE Cloud Examples GCC_ARM - ALL PASSED
- Unittest Test matrix - ALL PASSED
- GreenTea test matrix - ALL PASSED
- Examples test matrix - ALL PASSED
- CMAKE Examples test matrix - ALL PASSED
- Exporter Test - SOME FAILS (Issue: IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler)
- Cloud Client integration Test - ALL PASSED
- Memory Usage Test - ALL PASSED
Toolchain Coverage
In the mbed OS 6.10.0 release. we are testing the following toolchains:
- ARM compiler 6.15.0
- GCC_ARM 9-2019-q4-major
Targets Coverage
In mbed OS 6.10.0, the compilation test targets scope has not changed and remains all mbed OS enabled targets.
At the time of the mbed-os 6.10.0 release, we run the greentea tests on the following targets:
- ARM_MUSCA_S1
- DISCO_L457VG_IOT01A
- K64F
- K66F
- NRF52840_DK
- NUCLEO_F429ZI
- NUCLEO_F767ZI
- NUCLEO_WB55RG
- FPGAs on K64F, NRF52840_DK, NUCLEO_F429ZI, NUCLEO_F767ZI, NUCLEO_WB55RG, and DISCO_L457VG_IOT01A
We have the following issues on the test jobs:
- MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options
- IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler
Test Numbers
Greentea test number 1721 (+0)
Unittest number 742 (-1)Code Coverage
Test Code Coverage been tracked and information is published on COVERALLS
Memory Monitoring
Observed no significant changes from mbed-os-6.9.0
Contents
Ports for Upcoming Targets
14259
Support STM Nucleo-G431RBFixes and Changes
14546
CMake: Fix mbed-802.15.4-rf driver14545
examples: Deprecate mbed-os-example-bootloader14543
Fix Unbuffered serial enable/disable issue on Cypress kits14541
Increase baud rate of mbed-os-example-crash-reporting to 11520014532
Make ticker computation use shift-by-014529
CMake: Fix Mbed TLS compilation on Cortex-M0/0+/1/M2314527
Tests: use only NUCLEO_F401RE for the NFC examples14524
M487: Adjust placement of SYS_UnlockReg in WDT reset code14521
Updated TARGET_STM32 board pinMap_PWM table with GPIO_NOPULL14516
CMake: remove MBED_PATH and use_SOURCE_DIR/MODULE_PATH instead 14511
BLE: Fix start scan command not returning error if parameters haven’t been set14507
make target list for applications in examples_cmake.json consistent with examples.json14506
Add GattUpdatesEnabledCallbackParams struct14499
STM32F1 update drivers version to CUBE V1.8.314496
STM32: cleanup around devicename information from CMSIS pack14491
Update FPGA documentation14486
CMake COMPONENT_BlueNRG_MS: fix mbed-ble14485
STM32: RTC HSE support review changes14483
Improve HeapBlockDevice, TDBStore and tests14482
STM32L4: align all system_clock files14481
STM32WL: update “lora.max-sys-rx-error”14480
STM32: Standard Pin Names14479
STM32L1: enable USBDEVICE14478
STM32L1 : enable ADC after deepsleep14477
STM32: Add STM32L5 in arm_pack_manager index file14473
Update cmake supported example list14472
CMake: supportOUTPUT_EXT
fromtargets.json
14469
STM32: remove critical sections in flash_program_page14467
Musca targets: align and clean up configurations14466
GigaDevice: Add bare metal support for targets14465
Maxim: Add bare metal support to targets14463
Wisun: Add new start methods to Wi-SUN BR with WisunInterface parameter and deprecated the old ones14460
Ambiq: Fix baremetal build profile when using CLI 114457
Update UART pin names & add MBED_CONF_TARGET_STDIO_UART overrides14455
Fix RTOS & OS wrapper header conflicts for Mbed CLI 114450
FPGA SPI : decrease test frequency for ASYNC test cases14447
Remove paths to fetched TF-M repos from .gitignore14445
STM32WB/STM32WL: watchdog LSI frequency14444
STM32: reset GPIO value is analog mode14442
Improve WisunInterface set_network_size docs14438
Update Event Queue Documentation14437
Remove ownership/acquire in QSPI/OSPI driver14436
BLE: replace obsolete services with the new services repo14435
Fix missing linkage of mbed-mbedtls-cryptocell310 to mbed-mbedtls14429
CMake: Fix STM target build failures14428
CMake targets: remove labels usage, not required anymore14424
WIO_BG96: fix macro exclusion - use cellular14421
SDP-K1: enable IAR compilation14396
TF-M: Switch to vanilla TF-M’s OS wrapper14381
Standard Pin Names14359
Add bare metal support to NXP targets14259
Support STM Nucleo-G431RB14243
STM32: Add HSE support to RTC14198
Feature bluetooth traces13209
Implement polymorphism for DigitalIn/Out/InOutUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.10.0”.
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
- Description: Parsing IP addresses in the X.509 certificate subjectAltNames is not supported yet. In certificate chains relying on IP addresses in subjectAltNames a
-
mbed-os-5.15.7
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.15.7 release is now available.
Summary
This is the latest support release from the Mbed OS 5.15 branch. This brings a number of important updates which include:
- Adding support for MIMXRT1050_EVK enabling use with Pelion device management
- Nanostack has been updated to version 12.8.0 (primarily containing bug fixes and stability improvements to the Wi-SUN protocol)
- The Mesh API has been updated to replace new calls with a nothrow version
- A new method ‘set_mac_address’ has been added that allows the application to set the MAC address on the interface
Please see below for the full list of changes.
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.[mbed-os-5.15] Improve WisunInterface set_network_size docs
Summary of changes
Clarify set_network_size usage and possible parameter values.
Clarify wisun-network-size help text in mbed-mesh-api/mbed_lib.json
This change is copied from: https://github.com/ARMmbed/mbed-os/pull/14431Add integer overflow check to the malloc wrappers
Summary of changes
Backport of #14407
Add a check that the combined size of the buffer to allocate andalloc_info_t
does not exceed the maximum integer value representable bysize_t
.[mbed-os-5.15] Bring in MIMXRT1050_EVK changes from feature-wisun branch
Summary of changes
Bring in MIMXRT1050_EVK related changes from the following pull requests made to feature-wisun branch:
PR #12562 (25 commits)
PR #12774 (6 commits)
PR #13063 (2 commits)
PR #13391 (2 commits)
PR #13526
PR #13569
PR #13927
These same changes are available in the Mbed OS master via PR: https://github.com/ARMmbed/mbed-os/pull/14323
This PR ensures that target MIMXRT1050_EVK can be used with Pelion device management. Verified manually that pelion_border-router application (MIMXRT1050_EVK) connects to Pelion DM and other Wi-SUN nodes can connect to the Wi-SUN network.[mbed-os-5.15] Added missing const qualifier to mesh ethernet mac addr get
Summary of changes
Added missing const qualifier to mesh ethernet mac addr get. This corrects coverity warning.
This is mbed-os-5.15 version of: https://github.com/ARMmbed/mbed-os/pull/14261Impact of changes
None
Migration actions required
None
[mbed-os-5.15] Nanostack release v12.8.0
Summary of changes
Nanostack release v12.8.0 to mbed-os-5.15 branch
This release contains bug fixes and stability improvements to the Wi-SUN protocol:[mbed-os-5.15] travis: fix 3.5 test bug in attrs
Summary of changes
pytest fetched newer attrs that caused an issue for python 3.5. We found few references with an error and they suggested to use 1.19 version.
This is copy of : #14108 to mbed-os-5.15 branch[mbed-os-5.15] Corrected nanostack coverity warnings
Summary of changes
Corrected nanostack coverity warnings.
This is mbed-os-5.15 version of:
https://github.com/ARMmbed/mbed-os/pull/14146Impact of changes
None
Migration actions required
None
[mbed-os-5.15] Fix
mbed device-management
command for Python 3.8Summary of changes
Bump the
future
module version to 0.18.0 to fix anImportError
present for Python 3.8:ImportError: cannot import name 'splitattr' from 'urllib.request' (/usr/lib/python3.8/urllib/request.py)
The upstream issue for the
future
module – https://github.com/PythonCharmers/python-future/issues/447. Fixed inv0.18.0
.
Fixes #14037.
Copied from master PR #14038[mbed-os-5.15] Corrected Wi-SUN certificate add and remove functions on Wi-SUN interface
Summary of changes
Corrected Wi-SUN certificate add and remove functions to work properly with .json certificates. .json certificates are used only if certificates added by add functions are not set. Corrected certificate add and remove functions to work properly and improved function descriptions.
This is mbed-os-5.15 version of: https://github.com/ARMmbed/mbed-os/pull/14018Impact of changes
None
Migration actions required
None
FIX: update cryptography version to 2.5 or later
Summary of changes
Some cryptography dependency libraries not available anymore.
Update cryptography to version 1.5 or later for TravisCI installation to be passed[mbed-os-5.15] Replaced new calls with nothrow version of the call on mesh api
Summary of changes
Replaced new calls with nothrow version of the call.
This is mbed os 5.15 version of https://github.com/ARMmbed/mbed-os/pull/13937Impact of changes
None
Migration actions required
None
[mbed-os-5.15] Network interface MAC address set/get
Summary of changes
Add method set_mac_address that Application can use to set MAC address to the interface.
Update get_mac_address to return MAC address correctly from EMAC.
This PR is copied from: https://github.com/ARMmbed/mbed-os/pull/13902Remove nanostack-border-router example from list of supported examples
Summary of changes
Nanostack border router example is now owned by Pelion and has been moved out of the ARMmbed organisation. Thus this example needs to be removed from the supported examples on the 5.15 branch.
Impact of changes
This example will not be automatically updated when we make a 5.15 release and will not be tested in the Mbed OS CI.
Migration actions required
None
mbed-os-5.15: Add FLASH, FLASHIAP & bootloader support for VK_RZ_A1H board
Summary of changes
Add
FLASH
,FLASHIAP
,bootloader_supported
support.
This is the 2-nd and last part of the planned target UPDATE mentioned here #13616 (The 1-st one is here #13639)Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
Fixes and Changes
14443
[mbed-os-5.15] Improve WisunInterface set_network_size docs14408
Add integer overflow check to the malloc wrappers14326
[mbed-os-5.15] Bring in MIMXRT1050_EVK changes from feature-wisun branch14263
[mbed-os-5.15] Added missing const qualifier to mesh ethernet mac addr get14170
[mbed-os-5.15] Nanostack release v12.8.014168
[mbed-os-5.15] travis: fix 3.5 test bug in attrs14147
[mbed-os-5.15] Corrected nanostack coverity warnings14057
[mbed-os-5.15] Fixmbed device-management
command for Python 3.814046
[mbed-os-5.15] Corrected Wi-SUN certificate add and remove functions on Wi-SUN interface14034
FIX: update cryptography version to 2.5 or later13954
[mbed-os-5.15] Replaced new calls with nothrow version of the call on mesh api13920
[mbed-os-5.15] Network interface MAC address set/get13897
Remove nanostack-border-router example from list of supported examples13879
mbed-os-5.15: Add FLASH, FLASHIAP & bootloader support for VK_RZ_A1H boardUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.15.7”.
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.9.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 6.9.0 release is now available.
Summary
The main new functionality delivered as part of this release is support for the current 1.2 version of the TF-M reference software provided by the Trusted Firmware project. TF-M is our recommended secure side software for a Platform Security Architecture-compatible MCU platform. You can find out more on the 1.2 features here: https://www.trustedfirmware.org/blog/tfm-v1-2-blog/
Both the Arm provided PSA platforms, the Musca B1 and Musca B2 have been updated to support this new version of TF-M.
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.Fix Lora timer cancellation
Summary of changes
Fix abusive use of
LoRaWANTimer::stop
. Events were cancelled even when they were being executed or after their execution.
This change reset the event ID to 0 before calling the callback.
A new API has been added to achieve this task:LoRaWANTimer::clear
CMake: support signing TF-M targets with post binary hooks
Summary of changes
Changes: * Add a post binary hook to sign TF-M targets:
mbed_post_build_tfm_sign_image()
(should work for any TF-M v1.2+ targets with secure and non-secure images in separate MCUboot slots). This was refactored from the existingtools/targets/ARM_MUSCA.py
. * Apply the signing hook to ARM_MUSCA_B1 and ARM_MUSCA_S1 targets. * Copy the signing keys to each target’s own directory, as per the new tools’ convention (the old key paths are kept for compatibility of CLI 1 - to be deleted eventually).Impact of changes
Images built for Musca B1 and S1 with Mbed CLI 2 are now signed and able to run on the targets.
Migration actions required
None.
Update TF-M support to v1.2
Summary of changes
This PR brings in all the changes to update trusted-firmware-m support from v1.1 to v1.2: * Mbed TLS 2.24.0 as required by TF-M v1.2 * TF-M v1.2 targets: PSA APIs from TF-M * Support for ARM_MUSCA_B1 and ARM_MUSCA_S1 (configurations, bootloader binaries, secure binaries and signing scripts, etc.) * Continued availability of
psa_set_key_enrollment_algorithm()
- deprecated, included for backward-compatibility only, to be removed from future TF-M updates * Miscellaneous fixes to make sure all supported PSA targets work, see the commit history for details * Changes in the trusted-firmware-m (link) and tf-m-tests (link) repositories to enable Mbed OS integration. Note that some of the changes have been upstreamed.
Just as before this update * CYTFM_064B0S2_4343W remains on TF-M v1.0, supporting mbed-os-example-psa but not mbed-os-tf-m-regression-tests. Any updates to this target are maintained by Cypress. * Mbed PSA (non-TF-M) targets (e.g. K64F) continue to support mbed-os-example-psa. Note that Mbed PSA’s APIs currently lag behind these of TF-M.
The following have been removed: * ARM_MUSCA_A as an Mbed target * Integration of TF-M v1.1 (replaced by v1.2) *<TARGET>_NS
aliases for ARM_MUSCA_B1 and ARM_MUSCA_S1
Not yet included in this PR, to be added in the very near future: * Image signing for ARM_MUSCA_B1 and ARM_MUSCA_S1 with Mbed CLI 2. Until we add this, please use Mbed CLI 1 for now.Impact of changes
See the PR description for targets that are impacted.
Migration actions required
From the perspective of Mbed OS support, applications for ARM_MUSCA_B1 and ARM_MUSCA_S1 should continue to work as before.
A board running the TF-M v1.1 firmware should be able to update to the v1.2 firmware without resetting data (verified on Musca targets), though downgrading is not possible.
Any references toARM_MUSCA_B1_NS
andARM_MUSCA_S1_NS
as target names should be changed to have_NS
removed from the names.Add lw ip opttion for rdnss
Summary of changes
Added Options to turn on RDNSS using from ICMPv6 Router Advertisements (RFC5006)
and output packet queueing.
Default setting in mbed_lib is the same as before and leaving features to be turned off.Impact of changes
RDNSS option takes about 256 bytes of flash and each DNS entry needs 128 bytes of RAM.
Outgoing packet caching avoids dropping packets during MAC address resolution. Requires increased RAM size for lwIP.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: https://github.com/MicrochipTech/cryptoauthlib/issues/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: https://github.com/ARMmbed/mbed-os/issues/8064
- Priority: Major
Wi-SUN Hardfaults with IAR compiled image with Mbed OS 5.15.0
- Description: Mesh Wi-SUN FAN may HardFault in rare occasions with IAR8 compiled binaries during initial network connection.
- Workaround: The workaround is to use other compilers.
- Reported Issue: IOTTHD-3898
- Priority: Major
Test Report
Release automated CI test
In addition to regular Pull Request tests and Nightly test, we also ran a nightly release test on mbed-os 6.9.0-RC1
Results for the tests we run in CI on mbed-os 6.9.0-RC1 (nightly):
- Build Greentea ARMC6 - SOME FAILS (Issue: MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options)
- Build Greentea GCC_ARM - ALL PASSED
- Build Examples ARMC6 - ALL PASSED
- Build Examples GCC_ARM - ALL PASSED
- Build Cloud Examples ARMC6 - ALL PASSED
- Build Cloud Examples GCC_ARM - ALL PASSED
- Build CMAKE Examples ARMC6 - ALL PASSED
- Build CMAKE Examples GCC_ARM - ALL PASSED
- Unittest Test matrix - ALL PASSED
- GreenTea test matrix - ALL PASSED
- Sporadic failure for connectivity-netsocket-tests-tests-network-interface test suite is observed on hardware boards such as K64, K66F, NUCLEO_F429ZI, and NUCLEO_F767ZI. These are observed only for test performed againt our hardare lab. Tests are passing consistently on local boards. This is strongly believed to be an infrastructure issue in our hardware lab and being addressed.
- Examples test matrix - ALL PASSED
- CMAKE Examples test matrix - ALL PASSED
- Exporter Test - SOME FAILS (Issue: IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler)
- Cloud Client integration Test - ALL PASSED
- Memory Usage Test - ALL PASSED
Toolchain Coverage
In the mbed OS 6.9.0 release. we are testing the following toolchains:
- ARM compiler 6.15.0
- GCC_ARM 9-2019-q4-major
Targets Coverage
In mbed OS 6.9.0, the compilation test targets scope has not changed and remains all mbed OS enabled targets.
At the time of the mbed-os 6.9.0 release, we run the greentea tests on the following targets:
- ARM_MUSCA_S1
- DISCO_L457VG_IOT01A
- K64F
- K66F
- NRF52840_DK
- NUCLEO_F429ZI
- NUCLEO_F767ZI
- NUCLEO_WB55RG
We have the following issues on the test jobs:
- MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options
- IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler
Test Numbers
Greentea test number 1675 (+0)
Unittest number 743 (+0)Code Coverage
Test Code Coverage been tracked and information is published on COVERALLS
Memory Monitoring
Observed no significant changes from mbed-os-6.8.0
Contents
Ports for Upcoming Targets
Fixes and Changes
14423
STM32: AnalogOut: do not call HAL_DAC_Start in dac_write14422
Fix Lora timer cancellation14419
STM32: remove mbed.h include in connectivity14418
EP_ATLAS: Fix mbedtools build errors14416
CMake: Fix FF1705_L151CC build14411
CMake: Fix Cortex-A9 flags for GCC_ARM toolchain14410
CMake: Fix Renesas build error on Linux14407
Add integer overflow check to the malloc wrappers14403
update baud rate of CY8CKIT064B0S2_4343W to 11520014402
Fix sys/stat.h issue for unit tests on macOS14401
Workaround for Cortex-M33 Arm toochain linking14393
Doc update: post build now supported on TF-M targets14392
STM32WB: enable QSPI for custom boards14391
Update secure binaries with platform init fix for ARM_MUSCA_S114390
Add extern “C” around am_hal_secure_ota.h functions14387
Update serial_api.c - Issue #14353 - Setting BufferedSerial pin to NC throws runtime assertion14386
Freescale: Remove IAR from list of supported toolchains14380
CMake: Refactor target MCU_STM32F103xE library name14379
Nuvoton: Enlarge NuMaker PWM duty cycle range14378
CMake: Pass application/test name to post build operation14376
CMake: Add mbed-cmsis-cortex-m into Nuvoton target14375
CMake: Update readme for greentea test build procedure14374
targets: Remove target. prefix from ARM-CM3DS-MPS2 override14373
Add bare metal support to Nuvoton targets14372
S1SBP6A: Add bare metal support14368
Fix CMake include path for the minimal-printf test14367
fix typo: replace underscore by hyphen in lwipstack/mbed_lib.json14363
Add bare metal support to Silicon Labs targets14362
Fix imgtool import for CYTFM_064B0S2_4343W signing14361
CMake: support signing TF-M targets with post binary hooks14355
CMake - Configure memory map per target to allow multiple add_executable14354
Update TF-M support to v1.214351
STM32 - Add if !defined check for USE_HAL_XXX_REGISTER_CALLBACKS14350
ARM_MPS2_Target: Fix conflicts in IAR configuration14349
Add bare metal support to Nordic targets14348
Add bare metal support to ARM FM targets14347
Add bare metal support to Ambiq targets14346
Add bare metal support to Analog Device targets14345
Add bare metal support to Toshiba targets14344
CMake: Fix PSOC6 post build script14343
Add lw ip opttion for rdnss14342
use calloc for new_interface_server14341
Update stm32xx_emac driver traces14340
STM32L5: enable USBDEVICE14339
STM32F4 update drivers version to CUBE V1.26.014338
STM32: update readme with clock information14337
STM32L1 update drivers version to CUBE V1.10.214334
CMake: Remove references of APP_TARGET14328
CMake: Fix Greentea tests14325
EP Atlas Target Updates14323
Bring in MIMXRT1050_EVK changes from feature-wisun branch14321
Mergify: remove stale label when PR is merged14318
CMake: Fix path to STM32F0 GCC linker scripts14316
MAX32625: Fix CMake build14315
NUVOTON: Remove CMake listing of M261 include directory that do not exist14314
CMake: Fix ARM MUSCA NS targets build14313
CMake: Fix Cortex-M33 GCC build14311
CMake: Fix Cortex-A9 builds with GCC_ARM14306
CMake: Create CMSIS library targets to remove dependency on MBED_TARGET_LABELS14305
BLE: fix indexing of array in Cordio host stack14304
CMake: Refactor post-build hook to remove APP_TARGET references14303
Add STM32F103xE SOC support14301
Add bare metal support to Renesas targets14300
Add bare metal support to ARM_MPS2_Target family of targets14299
CMake: Refactor mapfile generation14298
CMake: remove debug print14295
CMake remove IAR references in the tree14293
STM32L4 : align CMakeLists.txt with all STM3214291
Add bare metal support to freescale targets14271
Add .editorconfig fileUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.9.0”.
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
- Description: Parsing IP addresses in the X.509 certificate subjectAltNames is not supported yet. In certificate chains relying on IP addresses in subjectAltNames a
-
mbed-os-6.8.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 6.8.0 release is now available.
Summary
There is no major new functionality introduced as part of this release, but some of the enhancements we’ve made to extend BLE functionality have changed APIs, so as per semantic versioning, we’ve incremented the release version.
This release includes further changes for CMake support in Mbed OS and this now requires the mbed-tools version to be upgraded to 7.1.0 in order to function correctly.
The CMake changes are summarised below;
CMake: all Mbed OS targets contain CMakelists.txt
CMake: Post build hooks implemented (TF-M not yet supported)
CMake: CMake targets refactored to simplify custom targets creationMigration Guide
This section lists specific changes which are part of this release and may
need special attention.BLE: Add APIs to get characteristic authorization callbacks.
Summary of changes
This change adds two APIs to query the registered callbacks in a characteristic.
BLE: Add API to test the presence of an event handler in a chain.
Summary of changes
Add a function to test if a handler is present in an event chain.
Update EventQueue API to use chrono times
Summary of changes
Main dispatch function is updated to take a Chrono duration instead of an integer milliseconds parameter.
To allow for the instances of blocking and non wait versions, which previously were actioned by passing either -1 or 0 as the millisecond delay respectively, two other functions are now available.
dispatch_once() - new
dispatch_forever() - internally modified from the original version but no change in functionality
Note without this fix EventQueue dispatch function is actually broken. Events may not be dispatched at all or in the worst case the chip will crash.Impact of changes
This is an API change, affecting the following areas: * The parameter passed to the EventQueue.dispatch() function will now need to be a Chrono duration.
E.g. ‘100ms’ * The dispatch_forever() function has been changed internally but the API itself remains the same. * A new function, dispatch_once() has been added.Migration actions required
The following migrations actions are required: * Calls to EventQueue.dispatch(int ms) will now need to be changed to use EventQueue.dispatch(chrono wait). This should be
as simple as adding ‘ms’ to any passed literal value. E.g. ‘100’ becomes ‘100ms’. Variables passed in will need to be explicitly
converted. * Calls to EventQueue.dispatch(-1) should used EventQueue.dispatch_forever() * Calls to EventQueue.dispatch(0) should used EventQueue.dispatch_once()Known Issues
We publish Mbed OS as a collection of modules on GitHub. Issues are raised in the specific repositories and then tracked internally. The purpose of this section is to provide a single view of the outstanding key issues that have not been addressed for this release. As such, it is a filtered and reviewed list based on priority and potential effect. Each item summarizes the problem and includes any known workarounds, along with a link to the GitHub issue (if applicable). We welcome any comments or proposed solutions.
For more information about an issue, contact us on the forum.
TLS: IP addresses in the X.509 certificate subjectAltNames
- Description: Parsing IP addresses in the X.509 certificate subjectAltNames is not supported yet. In certificate chains relying on IP addresses in subjectAltNames a
BADCERT_CN_MISMATCH
error is returned. - Workaround: merge branch https://github.com/ARMmbed/mbedtls/tree/iotssl-602-san-ip into your copy of Mbed TLS before building the application. It is still in EXPERIMENTAL stage, use it on your own responsibility!
- Reported Issue: Issue reported by a customer in email.
- Priority: MAJOR
TLS: Mismatch of root CA and issuer of CRL not caught
- Description: The
x509_crt_verifycrl()
function ignores the CRL, when the CRL has an issuer different from the subject of root CA certificate. - Workaround: Make sure that the issuer of the CRL and the root CA certificate’s subject are the same before passing them to
x509_crt_verifycrl()
. - Reported Issue: Reported by a partner.
- Priority: MAJOR
TLS: Self Test Failure with Some Hardware Accelerators
- Description: Most HW acceleration engines (if not all) require the parameters to be from contiguous memory.
All the self tests use test vectors that are defined in the .bss section, which means these are not contiguous. This causes the self test to possibly fail, when implementing HW accelerated engines. - Workaround: There are no known workarounds.
- Reported Issue: Reported by the development team.
- Priority: MAJOR
TLS: Hardware-accelerated hash creates CBC padding oracle in TLS
- Description: The current countermeasures against CBC padding oracle attacks in Mbed TLS call a low level internal API. The implementation of this API might not be possible with the hardware accelerator API and even if it is, the timing might still have detectable differences. The lower level API is called out of sequence and accelerators that are not aware of this might crash.
- Workaround: Keep
MBEDTLS_SSL_ENCRYPT_THEN_MAC
enabled 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: https://github.com/MicrochipTech/cryptoauthlib/issues/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: https://github.com/ARMmbed/mbed-os/issues/8064
- Priority: Major
Wi-SUN Hardfaults with IAR compiled image with Mbed OS 5.15.0
- Description: Mesh Wi-SUN FAN may HardFault in rare occasions with IAR8 compiled binaries during initial network connection.
- Workaround: The workaround is to use other compilers.
- Reported Issue: IOTTHD-3898
- Priority: Major
Test Report
Release automated CI test
In addition to regular Pull Request tests and Nightly test, we also ran a nightly release test on mbed-os 6.8.0-RC1
Results for the tests we run in CI on mbed-os 6.8.0-RC1 (nightly):
- Build Greentea ARMC6 - SOME FAILS (Issue: MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options)
- Build Greentea GCC_ARM - ALL PASSED
- Build Examples ARMC6 - ALL PASSED
- Build Examples GCC_ARM - ALL PASSED
- Build Cloud Examples ARMC6 - ALL PASSED
- Build Cloud Examples GCC_ARM - ALL PASSED
- Build CMAKE Examples ARMC6 - ALL PASSED
- Build CMAKE Examples GCC_ARM - ALL PASSED
- Unittest Test matrix - ALL PASSED
- GreenTea test matrix - ALL PASSED
- Examples test matrix - ALL PASSED
- CMAKE Examples test matrix - ALL PASSED
- Exporter Test - SOME FAILS (Issue: IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler)
- Cloud Client integration Test - ALL PASSED
- Memory Usage Test - ALL PASSED
Toolchain Coverage
In the mbed OS 6.8.0 release. we are testing the following toolchains:
- ARM compiler 6.15.0
- GCC_ARM 9-2019-q4-major
Targets Coverage
In mbed OS 6.8.0, the compilation test targets scope has not changed and remains all mbed OS enabled targets.
At the time of the mbed-os 6.8.0 release, we run the greentea tests on the following targets:
- ARM_MUSCA_S1
- DISCO_L457VG_IOT01A
- K64F
- K66F
- NRF52840_DK
- NUCLEO_F429ZI
- NUCLEO_F767ZI
- NUCLEO_WB55RG
We have the following issues on the test jobs:
- MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options
- IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler
Test Numbers
Greentea test number 1675 (+0)
Unittest number 743 (+0)Code Coverage
Test Code Coverage been tracked and information is published on COVERALLS
Memory Monitoring
No observed changes from mbed-os-6.7.0
Contents
Ports for Upcoming Targets
14207
Adding NUCLEO_WL55JC support13979
Support for ST STM32 NUCLEO-G431KB Development BoardFixes and Changes
14289
CMake: Refactor Cypress targets14286
CMake: remove workaround for targets prior refactor14284
CMake Arm SSG: refactor CMake targets14282
CMake: Refactor Nuvoton targets14281
CMake: refactor GigaDevice targets14280
CMake: Refactor WIO_EMW3166 support14279
CMake: Refactor Silicon Laboratories targets14277
Apollo3: Fix run time error due to memory mapping14276
CMake: refactor Samsung targets14275
Fix ST targets naming and linker script issues14272
Change CMAKE_BINARY_DIR to CMAKE_CURRENT_BINARY_DIR14270
CMake Maxim: fix targets naming14269
CMake: Refactor Toshiba targets14268
CMake: Refactor NXP targets14267
CMake: Refactor Nordic targets to be CMake buildsystem targets14266
Fix up some ST CMake targets14265
CMake: remove need for APP_TARGET14264
BLE: fix termination of periodic advertising sync14261
Add missing const qualifier to mesh ethernet mac addr get14257
BLE: Add APIs to get characteristic authorization callbacks.14256
BLE: Add API to test the presence of an event handler in a chain.14255
CMake: fix naming targets14253
CMake: refactor Renesas targets14252
CMake: Refactor Freescale targets14250
example-psa - add MUSCA_S1 and update baudrate14249
STM32WL : add LoRa support14248
MAX32625MBED: Gate ticker (timer0) clock on deepsleep14247
CMake: Refactor Greentea test CMakeLists.txt14246
ARM FM: refactor CMake targets14245
STM32WL: I2C and ADC full support14244
Analog Devices: refactor CMake targets14242
Ambiq Micro: refactor CMake targets14239
BLE: fix passkey for display being returned reversed14238
Update list of licenses in LICENSE.md14235
CMake: Add post build operation support14232
CMake: Fix Cypress MCU_PSOC6_M4 build14230
nRF52: clean pwm structures on deinit14228
CMake: rename greentea test macro14215
STM: Fix Hal_GetTick wrap around errors14213
Add cortex-m55 to CMake support14212
Expose the public Stream API14207
Adding NUCLEO_WL55JC support14205
CMake: better detection of memap dependencies14204
Set executable suffix in CMake14203
Adding USB HS Support to the SDP-K114202
BLE: return OK when stopping advertising set that is not active14201
Update maximum version of intelhex to 2.3.014199
Refactor ST Mbed targets to be CMake buildsystem targets14197
Upgrade gtest to 1.1014196
CMake cores: fix cpu/fpu flags14195
LoraRadio test update for baremetal support14190
CMake cores: fix NS cores14181
CMake: Add support for Mbed TLS Greentea tests14179
Fix minimal-printf floating point decimal output error14092
NFC: Add support for M24SR driver14031
BlockDevices: specify mbed namespace where needed14030
STM32H7: Compute I2C timing according current I2C clock source13979
Support for ST STM32 NUCLEO-G431KB Development Board13975
Update EventQueue API to use chrono timesUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.8.0”.
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
- Description: Parsing IP addresses in the X.509 certificate subjectAltNames is not supported yet. In certificate chains relying on IP addresses in subjectAltNames a
-
mbed-os-6.7.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 6.7.0 release is now available.
Summary
There is no major new functionality introduced as part of this release, but some of the enhancements we’ve made to existing functionality have changed APIs, so as per semantic versioning, we’ve incremented the release version.
The full details are below but in summary we’ve introduced the following changes;
- Further evolved the Mbed CLI 2 tools by adding support to build greentea tests using CMake
- Added the Arduino Portenta H7 as a supported target
- Add support for the ST Microelectronis BlueNRG_2 BLE Component
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.CMake: Add CMake support for netsocket greentea test
Summary of changes
- Added CMakeLists.txt file to every test suite under the
netsocket
test so that it can build via CMake command
CMake: Add CMake support for events greentea test
Summary of changes
- Added CMakeLists.txt file to every test suite under the
events
so that it can build via CMake command
CMake: Add CMake support for rtos greentea test
Summary of changes
- Added CMakeLists.txt file to every test suite under the
rtos
so that it can build via CMake command
CMake: Add Support for hal greentea test
Summary of changes
- Added CMakeLists.txt file to every test suite under the
hal
so that it can build via CMake command
Update events period method to check for invalid values
Summary of changes
The period method currently allows any ms value:
positive, negative and zero.
A negative value means dispatch a non periodic event. ie just once.
0 is unspecified behaviour.
This commit forces the user to use either positive periods or a new constant, non_periodic
and should any other value be provided will default to non_periodic.
A Greentea test case is also provided to check this works as
expected.
I’m classifying this as a feature change rather than major because allowing a zero value was actually a bug.Impact of changes
If the user provides a 0 value this will now behave differently. Previously it would have run for a period of
time as if this was an indefinite event before eventually (with a timer wrap) have unspecified behaviour.
Now the event period will default instead to non periodic.
To specify a non periodic event a user could previously use any negative value. Whilst this will still work (due a default
being set on invalid values), the user is encouraged to use the new constant, ‘non_periodic’ to show that this is what was
intended.Migration actions required
Use periods that are > 0ms or non_periodic constant.
CMake: Add CMake to platform greentea test
Summary of changes
- Added CMakeLists.txt file to every test suite under the platform so that it can build via CMake command
- Added the CMake Macro
mbed_greentea_cmake_macro
with configurable argumentsTEST_NAME
,TEST_INCLUDE_DIRS
,TEST_SOURCES
,TEST_REQUIRED_LIBS
so that it can be used across all the greentea test suite by passing their includes, sources required libraries. - Added CMake macro
MBED_BAREMETAL_GREENTEA_TEST
which canON/OFF
via CMake command-line argument at the configuration time to select/unselect baremetal greentea test
CMake: Create mbed-greentea library
Summary of changes
The greentea framework provides all the infrastructure for the test suite to execute in the target like greentea-client, unity, utest so created the mbed-greentea interface library which binds all these framework sources, and all the test suite needs to add mbed-greentea lib into their target_link_library
CMake: Add CMake to drivers greentea test
Summary of changes
- Added CMakeLists.txt file to every test suite under the mbed_drivers so that it can build via CMake command
Add std::span implementation for cxxsupport
Summary of changes
Adds std::span implementation to cxxsupport folder in namespace mstd.
See discussion in https://github.com/ARMmbed/mbed-os/pull/13868.Add Arduino Portenta H7 as target
Summary of changes
This PR series introduces the support for Arduino Portenta H7 .
The patchset has been split into independent PRs for an easier review.Impact of changes
Except the standalone
TARGET_PORTENTA*
content, some other files have been touched (all of them in separate commits).
In particular,COMPONENT_WHD
has been made generic (any mbed target implementingSERIAL_FC
can now compile it) but this could impact PSOC6 targets which used to configure it via Cypress HAL.Support to BlueNRG_2 BLE component
Summary of changes
Add support to BlueNRG_2 BLE Component
Known Issues
We publish Mbed OS as a collection of modules on GitHub. Issues are raised in the specific repositories and then tracked internally. The purpose of this section is to provide a single view of the outstanding key issues that have not been addressed for this release. As such, it is a filtered and reviewed list based on priority and potential effect. Each item summarizes the problem and includes any known workarounds, along with a link to the GitHub issue (if applicable). We welcome any comments or proposed solutions.
For more information about an issue, contact us on the forum.
TLS: IP addresses in the X.509 certificate subjectAltNames
- Description: Parsing IP addresses in the X.509 certificate subjectAltNames is not supported yet. In certificate chains relying on IP addresses in subjectAltNames a
BADCERT_CN_MISMATCH
error is returned. - Workaround: merge branch https://github.com/ARMmbed/mbedtls/tree/iotssl-602-san-ip into your copy of Mbed TLS before building the application. It is still in EXPERIMENTAL stage, use it on your own responsibility!
- Reported Issue: Issue reported by a customer in email.
- Priority: MAJOR
TLS: Mismatch of root CA and issuer of CRL not caught
- Description: The
x509_crt_verifycrl()
function ignores the CRL, when the CRL has an issuer different from the subject of root CA certificate. - Workaround: Make sure that the issuer of the CRL and the root CA certificate’s subject are the same before passing them to
x509_crt_verifycrl()
. - Reported Issue: Reported by a partner.
- Priority: MAJOR
TLS: Self Test Failure with Some Hardware Accelerators
- Description: Most HW acceleration engines (if not all) require the parameters to be from contiguous memory.
All the self tests use test vectors that are defined in the .bss section, which means these are not contiguous. This causes the self test to possibly fail, when implementing HW accelerated engines. - Workaround: There are no known workarounds.
- Reported Issue: Reported by the development team.
- Priority: MAJOR
TLS: Hardware-accelerated hash creates CBC padding oracle in TLS
- Description: The current countermeasures against CBC padding oracle attacks in Mbed TLS call a low level internal API. The implementation of this API might not be possible with the hardware accelerator API and even if it is, the timing might still have detectable differences. The lower level API is called out of sequence and accelerators that are not aware of this might crash.
- Workaround: Keep
MBEDTLS_SSL_ENCRYPT_THEN_MAC
enabled 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: https://github.com/MicrochipTech/cryptoauthlib/issues/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: https://github.com/ARMmbed/mbed-os/issues/8064
- Priority: Major
Wi-SUN Hardfaults with IAR compiled image with Mbed OS 5.15.0
- Description: Mesh Wi-SUN FAN may HardFault in rare occasions with IAR8 compiled binaries during initial network connection.
- Workaround: The workaround is to use other compilers.
- Reported Issue: IOTTHD-3898
- Priority: Major
Test Report
Release automated CI test
In addition to regular Pull Request test and Nightly test, we also ran a branch test on mbed-os 6.7.0-RC1
Results for the tests we run on CI (PR, Nightly, Branch):
- Build Greentea ARMC6 - SOME FAILS (Issue: MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options)
- Build Greentea GCC_ARM - ALL PASSED
- Build Examples ARMC6 - ALL PASSED
- Build Examples GCC_ARM - ALL PASSED
- Build Cloud Examples ARMC6 - ALL PASSED
- Build Cloud Examples GCC_ARM - ALL PASSED
- Build CMAKE Examples ARMC6 - ALL PASSED
- Build CMAKE Examples GCC_ARM - ALL PASSED
- Unittest Test matrix - ALL PASSED
- GreenTea test matrix - ALL PASSED
- Examples test matrix - ALL PASSED
- CMAKE Examples test matrix - ALL PASSED
- Exporter Test - SOME FAILS (Issue: IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler)
- Cloud Client integration Test - ALL PASSED
- Memory Usage Test - ALL PASSED
Toolchain Coverage
In the mbed OS 6.7.0 release. we are testing the following toolchains:
- ARM compiler 6.15.0
- GCC_ARM 9-2019-q4-major
Targets Coverage
In mbed OS 6.7.0, the compilation test targets scope has not changed and remains all mbed OS enabled targets.
Greentea test targets have been changed slightly. At the time of the mbed-os 6.7.0 release, we run the greentea tests on the following targets:
- NRF52840_DK
- DISCO_L457VG_IOT01A
- K64F
- K66F
- NUCLEO_F429ZI
- NUCLEO_F767ZI
- NUCLEO_WB55RG
- ARM_MUSCA_S1
We have the following issues on the test jobs:
- MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options
- IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler
Test Numbers
Greentea test number 1675 (+1)
Unittest number 743 (+0)Code Coverage
Test Code Coverage been tracked and information is published on COVERALLS
Memory Monitoring
No observed changes from mbed-os-6.6.0
Contents
Ports for Upcoming Targets
13826
Add Arduino Portenta H7 as targetFixes and Changes
14186
NXP: Fix CMake support and clean up14185
CMake: Correct ARM toolchain MCU core flags14180
Cypress: Fix CYTFM_064B0S2_4343W CMake build14175
Add declaration to expose enable_* functions from SerialBase14173
Update cert for testing server14169
Nanostack release v12.8.014166
ARDUINO_NANO33BLE: don’t define Arduino pins if compiling in Arduino core14159
CMAKE : correct “Cortex-M7F” link parameter14155
CMAKE / M33 : DOMAIN_NS issue14154
STM32: correct cmake compilation issues14149
STM32G4: enable TRNG and correct dual bank flash detection14148
Corrected nanostack coverity warnings14145
STM32H7: disable uSD transceiver14144
Update for Arduino Pinnames14143
Travis: Remove make.py test for events and littlefs14142
STM32L4: Correct heap size formula14137
Storage: Fix FATFileSystem unmount issue14135
NXP: Fix heap size formula in scatter files14134
GigaDevice: Fix heap size formula in scatter files14133
STM: Fix heap size formula in scatter files14132
Apollo3: Fix heap size formula and stack start address in scatter file14131
MUSCA_B1: Fix heap size formula in scatter files14130
NRF52840: Fix heap size formula in scatter files14129
EFM32GG: Fix heap size formula in scatter files14126
tests: Limit PSA crypto tests to Arm-v7M targets14125
BLE: Fix Security Manager key generation14120
STM32F439 : correct cmake compilation14112
ARM linking issue: compile out trace when not available14111
BLE: fix scanning/advertising when extended features are available but disabled on host14109
Remove deprecated connectivity examples14108
travis: set attrs to 19.1.0, fixes python 3.5 issue14104
CMake: Fix the listing of system_clock.c for STM32F413xH14103
CMake: Add support for netsocket/network Greentea tests14101
CMake: Add CMake support for netsocket greentea test14100
CMake: Fix path to Ambiq BLE source file14099
CMake: Add support for CORDIO Greentea tests14098
CMake: Add support for LoRaWAN Greentea tests14095
CMake: Add CMake support for events greentea test14094
CMake: Add CMake support for rtos greentea test14093
CMake: Add Support for hal greentea test14091
CMake: Add support for NFC Greentea test14090
CMake: Add support for Blockdevice Greentea tests14089
CMake: Add support for Filesystem Greentea tests14088
CMake: Add support for KVstore Greentea tests14087
Update events period method to check for invalid values14084
BLE: Fix GattServer callbacks not being copied to GattServer instance of the service14083
Add SLEEP/DEEPSLEEP support for MAX32630FTHR14080
Add bare-metal support for MAXIM targets14079
CMake: Add Blockdevice dependency to KVstore library14078
CMake: Add support for OSPIF blockdevice14076
Replace macros in MbedTester to avoid conflicts14075
Maxim targets; Add USB stack implementation14074
CMake: Add cmake support for Toshiba targets14072
CMake: Add CMake to platform greentea test14071
Addinternal
subfolder to USBDriver’s CMakelists14068
Enabled USBDevice in targets.json for H743ZI214066
STM32F2 update drivers version to CUBE V1.9.214065
CMake: streamline kvstore support14064
examples:create build_data after example application build14063
Support arbitrary storage alongside WiFi firmware in external storage on Cypress targets14062
Cypress Asset Update14061
CMake: Create mbed-greentea library14060
CMake: Add CMake to drivers greentea test14055
CMake: Remove TODO note in device_key list input source file14050
fix QSPI-API for NRF5214049
DISCO_L072CZ_LRWAN1: enable LORA by default14048
nanostack: correct Wi-SUN certificate add and remove functions on Wi-SUN interface14047
Remove unsupported Nordic SoftDevice build support14045
CMake: add support for Nordic targets14042
CMake: Add support for all Ambiq Micro Mbed targets14041
Add SPDX identifier to files in storage14038
Fixmbed device-management
command for Python 3.814036
Add SD component and Update SD card SPI interface for Maxim’s MAX32630FTHR14035
Remove unsupported Renesas target include files14032
STM32: RESET GPIO during init is configurable14029
STM32H7: FDCAN: use PLL1Q frequency for calculations14027
CMake: Fix Analog Devices targets support14023
Adding QSPI support to SDP-K1 board support package.14021
CMake: Add support for Renesas targets14020
Add SPI bitwidths to ST targets where supported14008
Add proper power save mode command format for MTS_DRAGONFLY_L47114007
Clean-up: TDBStore no longer requires BlockDevice to have flash behaviour13976
PSoC 6: rework sleep overrides by Cypress’s debug macro13968
CMake: Add support for all ARM SSG Mbed targets13965
Clarify the time units stated in the delay and period function headers for events13944
CMake: Add requirements.txt file for required Python modules13881
Add std::span implementation for cxxsupport13826
Add Arduino Portenta H7 as target13809
Remove Cellular dependency in netsocket13246
Support to BlueNRG_2 BLE componentUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.7.0”.
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
-
mbed-os-6.6.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 6.6.0 release is now available.
Summary
There is no major new functionality introduced as part of this release, but some of the enhancements we’ve made to existing functionality have changed APIs, so as per semantic versioning, we’ve incremented the release version.
The full details are below but in summary we’ve introduced the following changes;
- BLE update to the GATT API to better reflect what the specification define
- Add a method to allow an application to set or get the MAC address for Wi-SUN
- Restructuring of KVStore to better support the bare metal profile
- Enhancements to printing floating point values
- Improved memory and performance for ticker support
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.Update GattAuthCallbackReply_t enumeration.
Summary of changes
Add missing values that are present in pal::AttErrorResponse.
This allows applications to use correct ATT error codes.
The values have been changed to reflect what is actually defined in the specification. The0x01
was a leftover from softdevice’s days.Network interface MAC address set/get
Summary of changes
Add method set_mac_address that Application can use to set MAC address to the interface.
Update get_mac_address to return MAC address correctly from EMAC.
This PR is copied from: #13902Restructure KVStore to one library per store type
Summary of changes
Fixes: #13657
Mutually depends on: https://github.com/ARMmbed/mbed-os-example-kvstore/pull/60
In #13307 we combined multipleKVStore
types (TDBStore
,FileSystemStore
) and the global API into one library,kv-global-api
. This is inconvenient for users of bare metal: if they only want one store type, they need to add dependencies for other unused types and the global API to"requires"
. This becomes cumbersome asFileSystem
has many dependencies.
This PR restructures KVStore to follow the same logic of BlockDevice: declare the interface at the top level, and treat each type/implementation as a “sub-” library. Users only need to enable the interface + the type they need. So each of the following is a library (containingmbed_lib.json
): * storage/kvstore:KVStore
interface * storage/kvstore/tdbstore:TDBStore : KVStore
class * storage/kvstore/filesystemstore:FileSystemStore : KVStore
class * storage/kvstore/securestore:SecureStore : KVStore
class * storage/kvstore/kvstore_global_api: optional API to globally manage instances of KVStore, containingkvstore_global_api
functions andKVMap
which is a helper class for the global API * storage/kvstore/kvconfig: configurations
Greentea and unit tests have also been moved into subdirectories of corresponding KVStore types.
~Note: The CMake support for KVStore has not been componentised yet - compilation with CMake still brings in all the unused types and dependencies, because everything is under onembed-storage-kvstore
target. Hopefully the CMake team will later componentise each type of KVStore intombed-storage-kvstore-<type>
. similar to what they’ve already done forBlockDevice
s. @0xc0170~ (Update: required CMake changed included in this PR)Impact of changes
Users can enable one type of
KVStore
(e.g.TDBStore
) without having to bring in dependencies for unused types of KVStore.Migration actions required
For a bare metal application, add
"kvstore"
and the type of KVStore to use (e.g."tdbstore"
) to"requires"
inmbed_app.json
. Note that theKVStore
interface library is"kvstore"
, not"kv-global-api"
which now contains only the global API.
To use CMake (full profile and bare metal profile): Add the TDBStore sub-component you need (e.g.mbed-storage-tdbstore
) and dependencies (e.g. TDBStore requiresmbed-storage-blockdevice
) to your app’sCMakeLists.txt
.Add width modifier and prepending zeros for hexadecimal output and decimal precision for floating point
Summary of changes
Added width modifier and prepend zeros if the width modifier is given feature to printing integer, hexadecimal and floating point values. So e.g.
printf("%04X", i);
works now the same as the std version.
Added precision specifier for printing floating point values, as it already existed for strings. If no precision specifier is givenMBED_CONF_PLATFORM_MINIMAL_PRINTF_SET_FLOATING_POINT_MAX_DECIMALS
will be used.
This PR also fixes #13783.Impact of changes
Prepending zeros and width modifier work with integer, hexadecimal and floating point values when using minimal_printf.
Also the precision modifier works for floating point variables. If no precision specifier is givenMBED_CONF_PLATFORM_MINIMAL_PRINTF_SET_FLOATING_POINT_MAX_DECIMALS
is used.Optimise mbed_ticker_api.c
Summary of changes
The generic code in mbed_ticker_api.c uses run-time polymorphism to handle different tickers, and has generic run-time calculations for different ticker widths and frequencies, with a single special-case for 1MHz.
Extend the run-time special casing to handle any conversion cases where either the multiply or divide can be done as a shift. This is a speed optimisation for certain platforms.
Add a new optiontarget.custom-tickers
. If turned off, it promises that only USTICKER and LPTICKER devices will be used. This then permits elimination and/or simplification of runtime calculations, saving size and speed. If either both USTICKER and LPTICKER have the same width, or the same period numerator or denominator, or only one of them exists, then operations can be hard-coded. This is a significant ROM space saving, and a minor speed and RAM saving.
We get to optimise all the calculations, but the run-time polymorphism is retained even if there is only one ticker, as it doesn’t significantly affect code size versus direct calls, and the existence of
lp_ticker_wrapper and various us_ticker optimisations requires it, even if only LPTICKER is available.Impact of changes
- Targets should make an effort to define the new
LP_TICKER_XXX
defines to help the optimisation kick in.
Migration actions required
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: https://github.com/MicrochipTech/cryptoauthlib/issues/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: https://github.com/ARMmbed/mbed-os/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.6.0-RC1
Results for the tests we run on CI (PR, Nightly, Branch):
- Build Greentea ARMC6 - SOME FAILS (Issue: MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options)
- Build Greentea GCC_ARM - ALL PASSED
- Build Examples ARMC6 - ALL PASSED
- Build Examples GCC_ARM - ALL PASSED
- Build Cloud Examples ARMC6 - ALL PASSED
- Build Cloud Examples GCC_ARM - ALL PASSED
- Build CMAKE Examples ARMC6 - ALL PASSED
- Build CMAKE Examples GCC_ARM - ALL PASSED
- Unittest Test matrix - ALL PASSED
- GreenTea test matrix - ALL PASSED
- Examples test matrix - ALL PASSED
- CMAKE Examples test matrix - ALL PASSED
- Exporter Test - SOME FAILS (Issue: IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler)
- Cloud Client integration Test - ALL PASSED
- Memory Usage Test - ALL PASSED
Toolchain Coverage
In the mbed OS 6.6.0 release. we are testing the following toolchains:
- ARM compiler 6.15.0
- GCC_ARM 9-2019-q4-major
Targets Coverage
In mbed OS 6.6.0, the compilation test targets scope has not changed and remains all mbed OS enabled targets.
Greentea test targets have been changed slightly. At the time of the mbed-os 6.6.0 release, we run the greentea tests on the following targets:
- NRF52840_DK
- DISCO_L457VG_IOT01A
- K64F
- K66F
- NUCLEO_F429ZI
- NUCLEO_F767ZI
- NUCLEO_WB55RG
We have the following issues on the test jobs:
- MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options
- IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler
Test Numbers
Greentea test number 1674 (+0)
Unittest number 743 (+2)Code Coverage
Test Code Coverage been tracked and information is published on COVERALLS
Memory Monitoring
No observed changes from mbed-os-6.5.0
Contents
Ports for Upcoming Targets
Fixes and Changes
14024
CMake: add Samsungs, Analog devices and WICED targets14019
Port analog devices to CMake14017
Nuvoton: Remove DISABLE/ENABLE macro definitions in BSP14014
Update GattAuthCallbackReply_t enumeration.14009
ble cyw43xxx: dev/hci driver terminate14005
Correct/clarify TimerEvent::insert documentation14003
STM32H7: system power supply configuration14002
STM32F0 update drivers version to CUBE V1.11.214001
Add missing retry to atomic exchange14000
Add octa RAM calibration feature to GR-MANGO.13998
Add crash reporting and autoreboot capability to MTS_DRAGONFLY_L471QG13996
TDBStore: pad program units when writing record_header_t; ensure work buffer is large enough13995
CMake: Add support for GigaDevice targets13992
STM32_gen_PeripheralPins.py v1.1913988
BLE: Fix periodic advertrising sync based on advertiser list13987
CMake: Set required toolchain and processor flags globally, instead of per-target13985
CMake: fix memory map generation13978
S5JS100: remove idle hook in favour of Mbed-default idle hook13977
CMake: Add support for all Samsung Mbed targets13973
stm32: delete objects.h13972
CMake: Add support for WICED target13970
CMake: Add support for all Maxim Mbed targets13969
Maxim: Remove support for some Maxim targets13964
CMake: Add support for all ARM FM Mbed targets13963
Fix ThisThread warnings13962
STM: fix ARMClang sct files, using proper -E command13961
Silabs: Remove EFR32_1 rail files13960
Add const keyword to get_erase_size declaration13959
CMake: Add support for all Silicon Labs Mbed targets13958
Fix a typo in STM32F3’s CMakeList.txt13957
Replaced new calls with nothrow version of the call on mesh api13953
Add nanostack dependency lib13952
CMake: Add support for all Freescale Mbed targets13951
MCU_NRF52832 (NRF52_DK, SDT52832B): use two-region memory model to support MicroLib13950
Freescale: Remove KL27Z files13949
Fix mbed::Dir type handling in fat_filesystem13948
CMake: Simplify BLE library inclusion13947
Fix erase type determination for [Q/O/]BlockDevice::erase()13946
Update to reflect Mbed CLI 2 changes13945
Freescale: Remove K20XX files13942
ble: Fix persistence in SecurityDB13939
STM32: LSE DRIVE feature update13936
Network interface MAC address set/get13935
Dragonfly Nano(MTQN): power on/off so soft_power_on() fix13934
CMake: Add support for Cypress targets13932
Reduce ST QSPI/OSPI trace verbosity to debug13931
STM32 I2C: use correct HAL API13930
CMake: pass macros to ARM toolchain linker13929
STM32: LPUART clock source selection up to a serial driver13928
Clean remnant of experiment with ARM toolchain13925
Cypress: Remove CY8CKIT_064S2_4343W files13924
CMake: Add support for all NXP Mbed targets13922
CMake: add nuvoton targets13921
TARGET_NXP: Remove support for LPC55S6913918
TARGET_NXP: Remove support for LPC11U6X13917
Move SFDP to blockdevice13915
CMake: add all TARGET_STM targets13914
STM32 FLASH API : add critical sections13908
Restructure KVStore to one library per store type13907
Workaround to fix RTC-reset issue on the EFM32GG11_STK370113906
STM32G070: generic target creation13898
Adding CAN function to GR-MANGO13896
STM32 OSPI support13780
STM32 H7: fix USB in sleep mode13777
STM32 : full GPIO reset during mbed init13755
Fix MBED_ERROR call in init_os_timer13548
Add width modifier and prepending zeros for hexadecimal output and decimal precision for floating point13085
Change MBED_STATIC_ASSERTs version for built-in12897
Optimise mbed_ticker_api.cUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.6.0”.
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.5.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 6.5.0 release is now available.
Summary
The Mbed team are delighted to introduce the foundations of our new command line build tools, which use CMake to configure the build artifacts and, we hope, significantly improve the build experience for Mbed developers. These tools are still being refined and developed, but the basics are now available and will co-exist alongside the existing Mbed CLI tools for the time being. We’d really appreciate feedback from Mbed users on these tools as we want to ensure Mbed developers are seeing value in them.
The new tools can be found here .
We’ve also added some changes to how the Cordio BLE stack is configured to work with Nordic targets.
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.Update NRF ble configuration options
Summary of changes
This allows for changes to the buffers allocated in
NRFCordioHCIDriver.cpp
. Since the amount of buffers can be configured using the mbed_app.json it is only natural to also configure the buffer sizes that go with the number of buffers.
I also removed the confusing configuration settings used only by the NRF52840 which overruled other settings made by the cordio-ll config.Impact of changes
No functionality change, only configuration changes
Migration actions required
All the default settings remained the same and if no custom configuration is used in mbed_app.json the no actions are required.
If you use the NRF52840 and have overruled any of the following settings you may need to change:
-"cordio-ll-nrf52840.phy-coded-support"
into"cordio-ll.phy-coded-support"
-"cordio-ll-nrf52840.extended-advertising-size"
into"cordio-ll.extended-advertising-size"
-"cordio-ll-nrf52840.max-acl-size"
into"cordio-ll.max-acl-size"
-"cordio-ll-nrf52840.tx-buffers"
into"cordio-ll.tx-buffers"
CMake: Add initial support
Summary of changes
Addition of CMake modules and input source files to configure the project and generate the scripts needed by the build systems (tested with Unix Makefiles and Ninja) to build Mbed OS as a library. Mbed OS is built as collection of all libraries supported by a given target.
There are two main targets:mbed-os
andmbed-baremetal
. The rest of the components in the Mbed OS repository are targets prefixed withmbed-
, for examplembed-ble
andmbed-netsockets
.
Even though this is still under development. This PR was raised as the current state does not affect builds of the OS with the traditional tools (Mbed CLI, Online compiler, Mbed Studio).
For current state of development, supported targets, supported toolchains, known issues, and build steps, see “Documentations” section below.Impact of changes
Adding/removing source files or subdirectories requires adding or updating CMake input source files as all source files are listed in them.
Known Issues
We publish Mbed OS as a collection of modules on GitHub. Issues are raised in the specific repositories and then tracked internally. The purpose of this section is to provide a single view of the outstanding key issues that have not been addressed for this release. As such, it is a filtered and reviewed list based on priority and potential effect. Each item summarizes the problem and includes any known workarounds, along with a link to the GitHub issue (if applicable). We welcome any comments or proposed solutions.
For more information about an issue, contact us on the forum.
TLS: IP addresses in the X.509 certificate subjectAltNames
- Description: Parsing IP addresses in the X.509 certificate subjectAltNames is not supported yet. In certificate chains relying on IP addresses in subjectAltNames a
BADCERT_CN_MISMATCH
error is returned. - Workaround: merge branch https://github.com/ARMmbed/mbedtls/tree/iotssl-602-san-ip into your copy of Mbed TLS before building the application. It is still in EXPERIMENTAL stage, use it on your own responsibility!
- Reported Issue: Issue reported by a customer in email.
- Priority: MAJOR
TLS: Mismatch of root CA and issuer of CRL not caught
- Description: The
x509_crt_verifycrl()
function ignores the CRL, when the CRL has an issuer different from the subject of root CA certificate. - Workaround: Make sure that the issuer of the CRL and the root CA certificate’s subject are the same before passing them to
x509_crt_verifycrl()
. - Reported Issue: Reported by a partner.
- Priority: MAJOR
TLS: Self Test Failure with Some Hardware Accelerators
- Description: Most HW acceleration engines (if not all) require the parameters to be from contiguous memory.
All the self tests use test vectors that are defined in the .bss section, which means these are not contiguous. This causes the self test to possibly fail, when implementing HW accelerated engines. - Workaround: There are no known workarounds.
- Reported Issue: Reported by the development team.
- Priority: MAJOR
TLS: Hardware-accelerated hash creates CBC padding oracle in TLS
- Description: The current countermeasures against CBC padding oracle attacks in Mbed TLS call a low level internal API. The implementation of this API might not be possible with the hardware accelerator API and even if it is, the timing might still have detectable differences. The lower level API is called out of sequence and accelerators that are not aware of this might crash.
- Workaround: Keep
MBEDTLS_SSL_ENCRYPT_THEN_MAC
enabled 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: https://github.com/MicrochipTech/cryptoauthlib/issues/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: https://github.com/ARMmbed/mbed-os/issues/8064
- Priority: Major
Wi-SUN Hardfaults with IAR compiled image with Mbed OS 5.15.0
- Description: Mesh Wi-SUN FAN may HardFault in rare occasions with IAR8 compiled binaries during initial network connection.
- Workaround: The workaround is to use other compilers.
- Reported Issue: IOTTHD-3898
- Priority: Major
Test Report
Release automated CI test
In addition to regular Pull Request test and Nightly test, we also ran a branch test on mbed-os 6.5.0-RC1
Results for the tests we run on CI (PR, Nightly, Branch):
- Build Greentea ARMC6 - SOME FAILS (Issue: MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options In Progress)
- Build Greentea GCC_ARM - ALL PASSED
- Build Examples ARMC6 - ALL PASSED
- Build Examples GCC_ARM - ALL PASSED
- Build Cloud Examples ARMC6 - ALL PASSED
- Build Cloud Examples GCC_ARM - ALL PASSED
- Build CMAKE example ARM - ALL PASSED
- Build CMAKE example GCC_ARM - ALL PASSED
- Unittest - ALL PASSED
- Greentea Test - SOME FAILS (Some tests in K66F have failed due to unavailability of properly configured boards in farm.)
- Example Test - ALL PASSED
- CMAKE Example Test - ALL PASSED
- Exporter Test - SOME FAILS (Issue: IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler Open)
- Cloud Client integration Test - ALL PASSED
- Memory Usage Test - ALL PASSED
Toolchain Coverage
In the mbed OS 6.5.0 release. we are testing the following toolchains:
- ARM compiler 6.14.0
- GCC_ARM 9-2019-q4-major
Targets Coverage
In mbed OS 6.5.0, the compilation test targets scope has not changed and remains all mbed OS enabled targets.
Greentea test targets have been changed slightly:
At the time of the mbed-os 6.5.0 release, we run the greentea tests on the following targets:
- NRF52840_DK
- K66F - Please note as highlighted above that this platform is considered unstable at this stage.
- K64F
- NUCLEO_F429ZI
- NUCLEO_F767ZI
- NUCLEO_WB55RG
We have the following issues on the test jobs:
- MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options In Progress
- IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler Open
Test Numbers
- Greentea test number 1674 (+179)
- Unittest number 741 (+0)
Code Coverage
Test Code Coverage been tracked and information is published on COVERALLS
Memory Monitoring
No observed change from mbed-os-6.4.0
Contents
Ports for Upcoming Targets
Fixes and Changes
13910
Update NRF ble configuration options13905
STM32L4: ADC compilation issue with L42213904
CMake STM32L475xG: fix linker/startup inclusion13900
mergify: fix travis rename check13895
CMake: Fix error that prevented re-build13894
Fix compilation warnings13893
MIMXRT1050_EVK return bootloader support13891
Remove nanostack border router from examples list13889
Nanostack release v12.6.213887
CMake: Specify mbedtools in the build instructions13886
Don’t require too old mbed tools13885
TEST: update cmake example on ble examples13882
CMake: Use relative paths to list source files and directories13880
S1SBP6A fix RTC range13878
Add missing blockdevice mbed_lib.json13874
STM32F3 update drivers version to CUBE V1.11.113870
CMake: Address review comment from PR#1356613869
Create a USB drivers library13867
SysTimer: Prevent unacknowledged tick overflow when halted for a while13864
Fix bare metal builds on Cypress targets13862
STM32 SERIAL: free RTS/CTS pins13861
Ambiq apollo3 fix of an SPI related SD bug13859
STM32L4: Use HSI for LPUART13853
Samsung: fix baremetal #1385113849
Add apollo3 sleep13848
Q/OSPIFBlockDevice: fix misconception in minimum program size13847
Add workaround for files with permissive binary licenses13846
STM32 usb: fixing missing header file13843
Fix linking issue #13793 when using -O0 compiler optimization in ARMC13839
cmsis: remove math header file13833
Add new Gap::EventHandler callbacks to ChainableGapEventHandler class13832
Fix GCC_ARM non-contiguous FW forK64F
andK66F
13828
fix ble example names13822
BLE fix periodic advertising list function parameter checking13817
STM32: define RCC_LSE_BYPASS to allow using PC_15 as gpio13816
STM32: allow HS USB endpoints and increase USB OTG_HS endpoints number13811
Ble conditional compilation13810
Remove missing examples from the config13808
Remove erroneous character from SPDX identifer13802
STM32F4 FLASH API update13800
OSPI: enable feature in baremetal test configuration13797
STM32: add setting for LSE drive load level13796
Update README.md to remove WEP test case with NULL data13768
COMPONENT_FPGA_CI_TEST_SHIELD: better debug print13753
Remove Unneeded nordic-bsp Folder from Cordio13747
Renesas: fix timing to wait UART completion in deep sleep function13699
Fix sfdp_find_addr_region algorithm13698
Fix SPIF read dummy cycles not being reset13692
Fix I2C slave bugs on Renesas RZ/A series.13691
Remove unused Nordic TARGET_SDK_1113671
Add an socket option to set type of service to set specific precedence for QoS13566
CMake: Add initial supportUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.5.0”.
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
- Description: Parsing IP addresses in the X.509 certificate subjectAltNames is not supported yet. In certificate chains relying on IP addresses in subjectAltNames a
-
mbed-os-5.15.6
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.15.6 release is now available.
Summary
This is the latest support release for the Mbed OS 5.15 branch. It contains a number of important fixes including: * Nanostack release v12.6.0 * Improvements to WiSUN functionality * Mbed CoAP updated to v5.1.8
The full list of changes can be viewed below.
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.mbed-os-5.15: Add initialization to radius retry values
Summary of changes
This corrects uninitialized scalar field coverity warning.
This is Mbed OS 5.15 version of https://github.com/ARMmbed/mbed-os/pull/13740mbed-os-5.15: Add initialization check to RADIUS ipv6 address
Summary of changes
Added initialization check to RADIUS ipv6 address that prevents the border router from printing unnecessary error trace
when RADIUS is not enabled.
This is Mbed OS 5.15 version of:
https://github.com/ARMmbed/mbed-os/pull/13588M2354: Upgrade to BSP v3.00.001 (5.15)
Summary of changes
This PR upgrades BSP to v3.00.001 to support MP chip.
Impact of changes
NuMaker-M2354 Ver 1.0 (test chip) gets unsupported. This doesn’t do big impact because it is internal only. NuMaker-M2354 Ver 1.1 (MP chip) will be the official one with this upgrade.
mbed-os-5.15: Add APIs for Device min sense and CCA threshold table
Summary of changes
-Added get, set and validate API for device min sens.
-Added get API for CCA threshold table.
Bring in changes from feature-wisun https://github.com/ARMmbed/mbed-os/pull/13521 to mbed-os-5.15 branch.Nuvoton: Enable fault handler dump message on CM23 targets (5.15)
Summary of changes
This PR is backport of #13738 to mbed-os-5.15 branch. It enables fault handler dump message on Nuvoton’s CM23 targets:
- NU_PFM_M2351
- NUMAKER_IOT_M263A
- NUMAKER_IOT_M252mbed-os-5.15: Add certificate remove before add to wisun tasklet
Summary of changes
This prevents tasklet from adding own certificates multiple times to Nanostack in case bootstrap is made again.
This is mbed-os-5.15 version of https://github.com/ARMmbed/mbed-os/pull/13608mbed-os-5.15: Enable Nanostack DNS cache usage
Summary of changes
Enable usage of Nanostack DNS cache. The cache may contain DNS server address and DNS query results.
Inherit methods gethostbyname, gethostbyname_async and get_dns_server to Nanostack class.
Methods will try to find DNS server address or DNS query results from Nanostack DNS cache.
These same changes are available in:
- feature-wisun in #13507
- master in https://github.com/ARMmbed/mbed-os/pull/13733mbed-os-5.15: Nanostack release v12.6.0
Summary of changes
Nanostack release v12.6.0 to feature-wisun branch.
This release contains improvements to the Wi-SUN protocol functionality.
These same changes are also available in feature-wisun branch: #13716, and in master: #13718mbed-os-5.15: Mesh interface global up is indicated always on bootstrap ready
Summary of changes
This indicates e.g. to client that IP address has changed or connection
to network has been established.
This is mbed-os 5.15 version of https://github.com/ARMmbed/mbed-os/pull/13666mbed-os-5.15: Nuvoton: Fix NuMaker I2C timeout
Summary of changes
This PR is to fix I2C timeout measurement for NuMaker platforms instead of hardcode max timer count on OS-5.15 branch.
The same commit got approval in PR #13679 on OS-6.x master branch.adapting to new s3 bucket location in travis.yml
Summary of changes
Travis CI uses compilers and other binaries like astyle. These are stored in S3 bucket currently owned by ISG and mbed-os-ci is switching to OSS. This PR adapts the S3 location changes from ISG to OSS for travis CI builds.
TEST: Extend the kvstore test time out to 120s
Summary of changes
Extend the kvstore test time out to 120s, due to this test might take longer time to run on larger size SD card
K82F, KL82Z: Fix the I2C SDK driver slave transfer
Summary of changes
If multiple bytes are send from slave to master, slave is wrongly performing stop signal what brakes communication for 11ms because bus is still active. Slave shouldn’t do any Start or Stop signal
Fix STM32H747 Arduino pinout
Summary of changes
Changing Pin Names for Arduino header on STM32H747
M2351: Support GCC and IAR
Summary of changes
This PR is backport of #12353 and #12366 to
mbed-os-5.15
branch. It has the following modifications on M2351:
1. Enable GCC support on non-PSA non-secure target
2. Enable IAR support on non-PSA non-secure target
3. Refactor for above toolchain support
4. Other minor fix
NOTE1: Disable GCC support on secure targets because of GCC bug (as of 9-2019-q4-major): In non-secure entry function, callee-saved registers must be restored, but they are incorrectly cleared at optimization level Os.
NOTE2: Disable IAR on secure targets because of IAR toolchain bug (as of IAR 8.32):cmse_nonsecure_caller()
is not always inlined.Add SD, USBDEVICE & LPTICKER support for VK_RZ_A1H board.
Summary of changes
Add
SD
,USBDEVICE
,LPTICKER
support.
Some of the files are synced with the other Renesas boards.VK_RZ_A1H
ones are a bit old, especially the linker script files!Impact of changes
SD
feature requires an external lib !Migration actions required
Projects using the
SD
feature, should includeSDHI
.Update Mbed CoAP to v5.1.7
Summary of changes
Update Mbed CoAP to v5.1.7.
- Removed comparison of IP addresses when validating message resending. This avoids unnessary network errors due to load balancers causing frequent IP address changes.
- Multiple fixes for out-ouf-bounds memory accesses, a memory leak and an infinite loop condition in packet parser.
- MappedMBED_CONF_MBED_CLIENT_RECONNECTION_COUNT
Pelion Device Management Client configuration option toSN_COAP_RESENDING_MAX_COUNT
in mbed-coap.
- Fix the token from blockwise ACK message to be empty if the received message doesn’t have one.Fix for linker issue in AdBun-M066
Summary of changes
Linker issue:
The hardcoded__initial_sp
from the startup file of AdBun-M066 (startup_TMPM066.S) has been removed.
The initial stack pointer valueARM_LIB_STACK
has been imported from the scatter file of AdBun-M066 (tmpm066fwug.sct).
As per scatter file of AdBun-M066,
initial stack pointer = 0x200000C0 + 0x4000 : 0x200040C0 (which is beyond the RAM of AdBun-M066)
So, Stack pointer must be initialized to =
RAM starting address + Size of RAM = 0x20000000 + 0x4000 (16KB)
mbed-os-5.15: Add external RADIUS server configuration to Wi-SUN Border Router
Summary of changes
Added configuration functions and .json configuration options for:
- external RADIUS server IPv6 address
- RADIUS shared secret.
- RADIUS client retry trickle timer configuration. This can be used to set how fast
the RADIUS client retries Access-Request messages to RADIUS server in case reply
from server is not received.
This combines following RADIUS configuration pull requests from feature-wisun:
https://github.com/ARMmbed/mbed-os/pull/13412
https://github.com/ARMmbed/mbed-os/pull/13517
https://github.com/ARMmbed/mbed-os/pull/13530[mbed-os-5.15] Nanostack release v12.5.0
Summary of changes
Nanostack v12.5.0 contains bug fixes and stability improvements to the Wi-SUN protocol stack.
Also 802.15.4.RF RF drivers have been updated to match functionality in Nanostack:
- Atmel RF driver to v3.3.2
- STM S2LP driver to v1.0.7
These same changes are available in feature-wisun branch in PR: #13550Nuvoton: Fix degrading QSPI to SPI (5.15)
Summary of changes
Same as #13536 but backport to mbed-os 5.15, this PR tries to fix logic with degrading QSPI to SPI. In most cases, we can control degraded QSPI H/W to standard through BSP SPI driver directly as if it is just SPI H/W. However, BSP SPI driver distinguishes among SPI H/W instances in functions:
- SPI_Open
- SPI_Close
- SPI_SetBusClock
- SPI_GetBusClock
In these cases, we must change to QSPI version instead for QSPI H/W.device_management.py supports application access keys 5.15
Summary of changes
The Mbed CLI tool fails to initialize with application access keys. This PR changes the
device_management.py
so that it works with the new access keys as the legacy API key feature is now deprecated in Pelion Device Management.Impact of changes
The init script still works with legacy API keys.
mbed-os-5.15: Nuvoton: Fixed NUC472 SD buffer alignment
Summary of changes
This PR is to correct NUC472 SD buffer alignment as 4 bytes instead of original 4K, it could resolve the issue
of mbed-os-example-pelion NUC472 GCC build failed in Pelion PR #147[mbedos-5.15] Updating mbed-mesh-api
Summary of changes
Adding new parameters for Wi-SUN and Border router interface information.
This is upstream of PR https://github.com/ARMmbed/mbed-os/pull/13453[mbed-os-5.15] Add WiSun network size configs in JSON
Summary of changes
Add json config items for WiSun network size.
So user could easily config the default WiSun network size via Json file.
This PR is upstreaming changes from #13134ci: Update
arm-none-eabi-
versionSummary of changes
The
arm-none-eabi-
version is updated from version 6 to version 9.
Signed-off-by: Devaraj Ranganna devaraj.ranganna@arm.com[mbed-os-5.15] Nanostack release v12.4.0
Summary of changes
Nanostack release v12.4.0 to mbed-os-5.15 branch.
Nanostack v12.4.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.4.0.
This is upstream of PR: #13444[mbed-os-5.15] ODIN-W2 release v3.7.2 and bug fixes.
Summary of changes
This PR included following features:
- ODIN binaries compiled with latest toolchains
- Fixes ARMmbed#12582
- Fixes ARMmbed#12573Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
Fixes and Changes
13788
Update Mbed CoAP to v5.1.813775
mbed-os-5.15: Add initialization to radius retry values13774
mbed-os-5.15: Add initialization check to RADIUS ipv6 address13770
M2354: Upgrade to BSP v3.00.001 (5.15)13758
mbed-os-5.15: Add APIs for Device min sense and CCA threshold table13739
Nuvoton: Enable fault handler dump message on CM23 targets (5.15)13736
mbed-os-5.15: Add certificate remove before add to wisun tasklet13735
mbed-os-5.15: Enable Nanostack DNS cache usage13719
mbed-os-5.15: Nanostack release v12.6.013715
mbed-os-5.15: Mesh interface global up is indicated always on bootstrap ready13709
mbed-os-5.15: Nuvoton: Fix NuMaker I2C timeout13696
adapting to new s3 bucket location in travis.yml13693
TEST: Extend the kvstore test time out to 120s13661
K82F, KL82Z: Fix the I2C SDK driver slave transfer13652
Fix STM32H747 Arduino pinout13643
M2351: Support GCC and IAR13639
Add SD, USBDEVICE & LPTICKER support for VK_RZ_A1H board.13606
Update Mbed CoAP to v5.1.713578
Fix for linker issue in AdBun-M06613576
mbed-os-5.15: Add external RADIUS server configuration to Wi-SUN Border Router13559
[mbed-os-5.15] Nanostack release v12.5.013537
Nuvoton: Fix degrading QSPI to SPI (5.15)13525
device_management.py supports application access keys 5.1513512
mbed-os-5.15: Nuvoton: Fixed NUC472 SD buffer alignment13496
[mbedos-5.15] Updating mbed-mesh-api13495
[mbed-os-5.15] Add WiSun network size configs in JSON13487
ci: Updatearm-none-eabi-
version13451
[mbed-os-5.15] Nanostack release v12.4.013450
[mbed-os-5.15] ODIN-W2 release v3.7.2 and bug fixes.Using this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.15.6”.
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.4.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 6.4.0 release is now available.
Summary
This release contains significant changes to how Mbed supports BLE privacy, addressing issues some users may have seen when pairing a device running Mbed with either Android or iOS.
We’ve also updated the Mbed COAP implementation to v5.1.8.
Finally, we’ve made some further improvements to the WiSUN stack to address issues raised by both internal and external testing.
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.BLE: Introduce ChainableEventHandler and subclasses
Summary of changes
~Requires #13727 to be merged first~
Merged #13727 since this PR is closely tied to it.
Introduces aChainableEventHandler
base class that is essentially a singly-linked-list of EventHandlers along with two subclasses:
-ChainableGattServerEventHandler
that enables chaining togetherGattServer::EventHandler
s
-ChainableGapEventHandler
that enables chaining togetherGap::EventHandlers
s
The ChainableGattServerEventHandler class allows an application toregister
separate event handlers (eg: for different services that need to handleGattServer
events) and then set the globalGattServer::setEventHandler
to the instance ofChainableGattServerEventHandler
with all registeredGattServer::EventHandler
s.
The ChainableGapEventHandler accomplishes that same as above forGap:EventHandler
implementations.
Common functionality has been split off intoChainableEventHandler
.
See #13728 for discussion around this implementation.Impact of changes
None
Migration actions required
None
Feature ble host privacy
Summary of changes
This PR reimplements Bluetooth privacy for all type of Bluetooth controllers (4.0 to 5.2).
As soon as privacy is enabled, a private address is used to advertise, scan or initiate connection and peers resolvable addresses are resolved if a bond with matching IRK is found in the security database.
This should solve most of the pairing issues observed on Android and iOS where the local device is not able to retrieve a previous bond.
Internally there is two implementations of the address resolution:
- Host based where the software compute if the address is known or not
- Controller based where the Bluetooth controller resolves automatically addresses received during advertising or scan.
New configurations flags have been added to select at compile time the implementation to use:
-ble-gap-host-based-private-address-resolution
Forces the system to use host based resolution
-ble-gap-host-privacy-resolved-cache-size
Indicate how many entries must be booked for the host based resolution cache.
This PR is the result of the following PRs merged on the feature branch
- Privacy feature configuration: https://github.com/ARMmbed/mbed-os/pull/13662
- Force device mode for LL resolution: https://github.com/ARMmbed/mbed-os/pull/13689
- Privacy enable event emission : https://github.com/ARMmbed/mbed-os/pull/13680
- Improvement of Secure DB entry retrieval: https://github.com/ARMmbed/mbed-os/pull/13660 and https://github.com/ARMmbed/mbed-os/pull/13658
- Force identity address to be static: https://github.com/ARMmbed/mbed-os/pull/13622
- Local private address management: https://github.com/ARMmbed/mbed-os/pull/13582 and https://github.com/ARMmbed/mbed-os/pull/13560
- Peer private address management: https://github.com/ARMmbed/mbed-os/pull/13630 and https://github.com/ARMmbed/mbed-os/pull/13685:
- Fixes: https://github.com/ARMmbed/mbed-os/pull/13656 and https://github.com/ARMmbed/mbed-os/pull/13670
- Notification when advertising start or stop: https://github.com/ARMmbed/mbed-os/pull/13706Impact of changes
Existing applications should not have anything to change regards to calls to privacy APIs as this PR enables it for all type of controllers and not just resolution when supported by the hardware.
The advertising state was showing up as enabled as soon as the functionstartAdvertising
was called. This is was not correct as it wasn’t reflecting the reality of operations. The state is now modified when advertising is actually active. Two new events have been added toGap::EventHandler
to catch the change of advertising state.Add mutiple push and pop for circular buffer
Summary of changes
Add functions to circular buffer to allow pushing and popping multiple items at a time.
Add OSPI driver to support the Octa mode of Macronix octaflash MX25LM51245G
Summary of changes
Update PR #12619.
Add OSPI HAL driver and OSPIF block device driver for using Macronix octaflash MX25LM51245G.
ST Octo-SPI was ported on QSPI MBED API, but we can only use in SPI mode and the Octo mode is not supported. So, we add OSPI driver to enable Octo mode to improve read and write performance.Impact of changes
Enable the octa mode of MX25LM51245G.
Migration actions required
N/A
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: https://github.com/MicrochipTech/cryptoauthlib/issues/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: https://github.com/ARMmbed/mbed-os/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.4.0-RC1
Results for the tests we run on CI (PR, Nightly, Branch):
- Build Greentea ARMC6 - SOME FAILS
- Build Greentea GCC_ARM - ALL PASSED
- Build Examples ARMC6 - ALL PASSED
- Build Examples GCC_ARM - ALL PASSED
- Build Cloud Examples ARMC6 - ALL PASSED
- Build Cloud Examples GCC_ARM - ALL PASSED
- Unittest Test matrix - ALL PASSED
- GreenTea test matrix - ALL PASSED
- Examples test matrix - ALL PASSED
- Exporter Test - SOME FAILS
- Cloud Client integration Test - ALL PASSED
- Memory Usage Test - ALL PASSED
Toolchain Coverage
In the mbed OS 6.4.0 release. we are testing the following toolchains:
- ARM compiler 6.14.0
- GCC_ARM 9-2019-q4-major
Targets Coverage
In mbed OS 6.4.0, the compilation test targets scope has not changed and remains all mbed OS enabled targets.
Greentea test targets have been changed slightly:
At the time of the mbed-os 6.4.0 release, we run the greentea tests on the following targets:
- NRF52840_DK
- DISCO_L457VG_IOT01A
- K64F
- NUCLEO_F429ZI
- NUCLEO_F767ZI
- NUCLEO_WB55RG
We have the following issues on the test jobs:
- MBEDOSTEST-1163 - ARMC6 Failed to build mbed OS with LTO options In Progress
- IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler Open
Test Numbers
- Greentea test number 1674 (+179)
- Unittest number 741 (+6)
Code Coverage
Test Code Coverage been tracked and information is published on COVERALLS
Memory Monitoring
No observed change from mbed-os-6.3.0
Contents
Ports for Upcoming Targets
13713
STM32H7: add NUCLEO_H7A3ZI_Q new targetFixes and Changes
13787
Update Mbed CoAP to v5.1.813785
BLE: Fix access to attcCb.onDeck and attsCb.prepWriteQueue access13782
scancode: fix SPDX check - only warning13779
BLE: Fix scan state and host resolution of RPAs13778
STM32G4 update drivers version to CUBE V1.3.013771
Separate cloud example configurations to another file13757
wisun: Add APIs for Device min sense and CCA threshold table.13749
Add missing args to weakly defined PalRtc functions13745
Scancode: Fix false positive reported by scancode output analyser script13744
Use NUCLEO_F429ZI for Azure IoT Hub and Google IoT Core examples testing13743
Define SD and STORAGE for the MAX32630FTHR and prevent warnings during compilation on Mbed 5.12 and above13742
nanostack: Add initialization to radius retry values13741
STM32L4 update drivers version to CUBE V1.16.013738
Nuvoton: Enable fault handler dump message on CM23 targets13737
Add certificate remove before add to wisun tasklet13734
BLE: Introduce ChainableEventHandler and subclasses13733
Enable Nanostack DNS cache usage13729
BLE: Enable getting an implicitly-created CCCD throughGattCharacteristic::getDescriptor
13725
STM32: update SetSysClock for NUCLEO_L476RG13724
Add license notice to Arm copyrighted source files plus SDPX to already licensed files13723
Add crash RAM to STM32F412xG13718
Nanostack release v12.6.013717
Feature ble host privacy13714
nanostack: mesh interface global up is indicated always on bootstrap13713
STM32H7: add NUCLEO_H7A3ZI_Q new target13707
Fix ESP826613704
ble: reset transport last and reset the default chars in gatt server13697
STM32L5 update drivers version to CUBE V1.3.113694
adapting to new s3 bucket location in travis.yml13690
STM32H7 update drivers version to CUBE V1.8.013684
nanostack: fix inclusion of kvstore13683
USB STM32: fix header inclusion, removing mbed.h13681
Nrf52840 spim3 updates13679
Nuvoton: Fix NuMaker I2C timeout13677
psoc64: Update flash layout of CYTFM_064B0S2_4343W13674
Samsung: uart fixes13669
STM32L0 update drivers version to CUBE V1.11.313659
STM32WB update drivers version to CUBE V1.8.013655
STM32_gen_PeripheralPins.py v1.1713654
Remove WEP security Green Tea Test case as the WEP security Key are sequence of Hex Values13653
Use impl namespace in GattServer att_cb registration, not ble13649
Make mbed-trace available to bare metal13646
Make STM32F412xG system_clock.c functions weak13645
Patch STM32F4 HAL to fix F412CG USART3 issue13640
STM32: Fix system clock setup for XTAL and/or internal source on STM32H74313634
STM32L4: link issue with IAR13633
STM32WB: FLASH compilation issue with baremetal13632
fix DAPLINK error for S1SBP6A Target using GNU Toolchain.13623
Refactor mbed-os design docs13621
Refactor remaining TESTS related to hal, rtos, and platform dir13619
Travis: remove status functionality13611
Edit on Toolchain linker files for stm32L071xx target13610
Fix #13490 Cellular disconnect does not deactivate context13607
Update Mbed CoAP to v5.1.713602
WEP Security fix for Cypress Target Kits13601
Fix AnalogIn implementation on STM32G4 series13600
Refactor COMPONENT_FPGA_CI_TEST_SHIELD directory structure13595
Nordic: Support 31250 baud rate13593
STM32F: skip LittleFileSystem default instance and TDBStore tests13586
travis: license check for new files13565
Feature stm32g4 can support13563
Add mutiple push and pop for circular buffer13549
Make readdir reentrant13545
Fix enabling/disabling BLE-Features13432
Enable PDP type IPV6 and IPV4V6 to support more cellular service prov13406
STM32F1 USBDevice12644
Add OSPI driver to support the Octa mode of Macronix octaflash MX25LM51245GUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.4.0”.
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
- Description: Parsing IP addresses in the X.509 certificate subjectAltNames is not supported yet. In certificate chains relying on IP addresses in subjectAltNames a
-
mbed-os-6.3.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 6.3.0 release is now available.
Summary
This release contains additional cloud connectivity integrations with examples of how to use Microsoft Azure IoT and Google Cloud IoT with Mbed OS.
We also release a new BLE integration test suite that allows both hardware vendors and developers the ability to run BLE tests as part of their development efforts.
Further changes are made to the Mbed directory structure as we prepare the code base for the new build tools we are developing.
Support is added for the Arm Musca-S1 platform, a collaboration between Arm and Samsung Foundry to create the industry’s 1st PSA Certified Arm-based Smart IoT Device demonstrator enabling secure eMRAM-enabled Root of Trust (RoT) and secure Root of Execution (RoE) IoT Device services.
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.Add RADIUS configuration options to Wi-SUN
Summary of changes
Added support for external RADIUS server configuration to Wi-SUN Border Router.
Added configuration functions and .json configuration options for:
- external RADIUS server IPv6 address
- RADIUS shared secret.
- RADIUS client retry trickle timer configuration. This can be used to set how fast
the RADIUS client retries Access-Request messages to RADIUS server in case reply
from server is not received.
This combines following RADIUS configuration pull requests from feature-wisun:
https://github.com/ARMmbed/mbed-os/pull/13412
https://github.com/ARMmbed/mbed-os/pull/13517
https://github.com/ARMmbed/mbed-os/pull/13530Impact of changes
None
Migration actions required
None
Fix pwm out resets after suspend
Summary of changes
Fixed a Problem where PwmOut resets settings after suspend.
The problem is described here: https://github.com/ARMmbed/mbed-os/issues/13480Impact of changes
Fixes: https://github.com/ARMmbed/mbed-os/issues/13480
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: https://github.com/MicrochipTech/cryptoauthlib/issues/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: https://github.com/ARMmbed/mbed-os/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.3.0-RC2
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:
- IOTCORE-1717 - ARMC6 Failed to build mbed OS with LTO options
- IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler
- 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
- IOTPAN-662 - NUCLEO_F303RE targets failed in nightly test with WIFI-SCAN 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.0
- 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.3.0, the compilation test targets scope has not changed and remains all mbed OS enabled targets.
Greentea test targets have been changed slightly:
At the time of the mbed-os 6.3.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
The number of total issues increased from 92 to 108, and high impact issues increased from 35 to 49.
This is thought to be mainly caused by the restructuring of the mbed-os folders.Code Coverage
Test Code Coverage been tracked and information is published on COVERALLS
Memory Monitoring
No change from mbed-os-6.2.0
Contents
Ports for Upcoming Targets
13538
Ambiq AMA3B1KK and SparkFun Artemis Boards Target Update13509
Adding STM32L071xx target13196
Add ARM_MUSCA_S1 as a new target platform13006
NUCLEO_G031K8: Add new targetFixes and Changes
13594
PSA - Generate root of trust before accessing kvstore13592
Add test examples.json config for Azure and Google Cloud13587
MCU_STM32G031xx : decrease boot-stack-size13584
Revert “Always build both .hex and .bin files”13583
STM32: correct few Arduino pins value13580
TEST: Update example scripts for cmake feature13579
double negation fixed and ifs normalised13574
Fix a typo in PeripheralPins.c for EFM32GG1113573
Add RADIUS configuration options to Wi-SUN13572
STM32H7 ADC: clock selection lost after deepsleep13564
STM32Gx: LSI clock selection when LSE is not available13562
Nanostack release v12.5.013558
STM32L4+ : SRAM3 is powered off in deepsleep13552
general_block_device test: support non-uniform erase sizes13547
Nuvoton: Fixed NUC472 SD buffer alignment13546
Remove duplicate mbed-os/TESTS/host_tests scripts13544
TEST: remove MUSCA_B1 from attestation example test13542
B_L4S5I_IOT01A: new ST target13538
Ambiq AMA3B1KK and SparkFun Artemis Boards Target Update13536
Nuvoton: Fix degrading QSPI to SPI13533
Update test examples.json AWS config13531
Nuvoton: Set M252 Flash internal size for kv store test13524
device_management.py supports application access keys13523
STM32H7 ADC: No MultiMode configuration needed for ADC213522
STM32 USB connect procedure update13518
add option for a custom cert in connectivity-netsocket-netsocket-tls13516
Cypress: Rename CY8CKIT_064B0S2_4343W to CY8CKIT064B0S2_4343W13514
STM32 USB: use SNG_BUF13513
STM32 readme update13509
Adding STM32L071xx target13502
Targets: Add default “supported_form_factors” for all targets13501
USB-DEVICE tests: move host scripts13497
Updating mbed-mesh-api13494
Add WiSun network size configs in JSON13493
Fix SSID bug on Cypress Targets13492
Fix pwm out resets after suspend13489
Refactor hal directory13486
Fix heap stats overhead_size calculation13484
KVSTORE tests: move directories13481
STM32G0 compilation warning13476
Fix trivial compiler Warnings13475
Ble remove user facing abstraction13473
Nanostack release v12.4.013472
Fix for targets where DEVICE_SPI or DEVICE_INTERRUPTIN are defined but not both13470
Update dragonfly linkers13469
Support ignore list for spell checks13468
Add ccache to travis13467
Cypress: Update psoc6cm0p library to 1.2.1.67613464
adr: Recommend CMSIS component source structure13462
BLE remove address from API to cancel connect13460
Move PSA FEATURE_EXPERIMENTAL_API directory to platform13459
platform: fix internal platform headers13456
USBPhyHw: remove mbed.h inclusion13452
Use boot stack size from config system13449
BLE: Fix writing attributes larger than MTU size13445
Refactor storage COMPONENT_xx directory13443
Update mbed-client-cli from v0.5.013435
ci: Updatearm-none-eabi-
version13434
Move Callback tests to platform, USB tests to drivers13433
Refactor device_key13430
Relocated libraries in features/frameworks13425
Fix bare metal support on Cypress targets13416
Update CYSBSYSKIT_0113400
Call mbed_tfm_init before mbed_toolchain_init13399
QSPIF: options to preset reset sequence for legacy SFDP13397
Provide enablement of nrf52840 SPIM13375
Add GR_MANGO as a new target13196
Add ARM_MUSCA_S1 as a new target platform13006
NUCLEO_G031K8: Add new targetUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.3.0”.
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
- Description: Parsing IP addresses in the X.509 certificate subjectAltNames is not supported yet. In certificate chains relying on IP addresses in subjectAltNames a
-
mbed-os-6.2.1
Downloads: zip tar.gz
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 target13382
M252: Support custom board13358
Add CYTFM_064B0S2 4343W TargetFixes and Changes
13447
psoc64: Update TF-M release image13420
Updating with new links and correct branding13419
PSOC6: update BSP startup code to match psoc6pdl-1.6.113418
Update PSoC64 TFM release package.13414
Refactor NFC directory structure13410
Refactoring \lorawan –> moving it inside \connectivity.13409
Move BlueNRG-MS driver into connectivity/drivers/ble/FEATURE_BLE13408
Fix memory leak in DNS cache13404
Restructure cryptocell13401
Added error checking to can_filter() for Classic CAN13392
Adding Samsung Bioprocessor S1SBP6A target13390
Fix cancel connect13386
PSoC6: update to psoc6pdl-1.6.113385
Restructure Mbed TLS13382
M252: Support custom board13379
Fix baremetal nightly test build issue13377
Move nanostack rf driver from features to connectivity13374
Fixed ThisThread flag_wait_any functions (fix #13360)13371
Restructure lwipstack directory13366
Fix IAR assembler errors on except.S13365
BLE streamlining13363
Refactoring \nanostack –> moving it inside \connectivity.13362
TESTS: update tests and fixing time drifting tests in rtos folder13358
Add CYTFM_064B0S2 4343W Target13357
Move emac-drivers from features into connectivity directory13356
Drivers directory restructuring13351
Fix MTS_DRAGONFLY_F413RH drag and drop failure13349
travis: Reject changes to tools13337
Fix Mbed TLS + TF-M integration issues13335
Restructure netsocket directory13333
Events directory restructuring13332
Nuvoton: Update M252 target name13330
Remove doubly defined symbol from mbed_lib.json13326
Adding NUCLEO_F429ZI to AWS example13325
Nuvoton: Revise the pin name of M263A button13323
Travis: fix scandcode failure13317
Fixed doxygen for Kernel::Clock::time_point argument13314
Storagesystem_storage
directory restructure13307
Restructure storage kvstore directory13306
Include mbed_assert.h in Queue13304
STM32WB update drivers version to CUBE V1.7.013301
Remove MTS_DRAGONFLY_F411RE post binary hook that adds the bootloader13300
Restructure storage filesystem directory13298
Refactoring \platform directory13294
Update MTS_DRAGONFLY_F411RE bootloader to work with mbed 5 & 613293
BLE Fix read and write callbacks for descriptors not firing if characteristic is not readable or writable13284
Refactor PPP library13283
BLE: Cordio bugfix fixed size writes under size must be allowed13279
TESTS: removed mbed OS 6 unsupported target in examples test13276
MASTER - LICENSE.md - clarify filesystem licensing13273
Restructure storage blockdevice directory13264
Moving around a few items within \rtos13261
Refactor cellular directory structure13255
Move mbed-coap to connectivity/libraries13254
Move nanostack-libservice into connectivity/libraries13253
Allow unit tests defined anywhere in mbed-os13244
Move storage from features into mbed-os root directory13234
Move drivers from components to connectivity13229
STM32 custom target: create MCU_STM32xx for each familyUsing 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
Downloads: zip tar.gz
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 (https://github.com/ARMmbed/mbed-os-tools/pull/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 https://github.com/ARMmbed/mbed-os/pull/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 bootloader13338
Cleaning up SDP-K1 board support package.13320
Updating targets.json file for SDP-K1 board.13275
5.15 - LICENSE.md - clarify filesystem licensing13245
Nuvoton: Add new target NU_M2354_NPSA_S/NS13184
Nordic NRF52 GPIO API: Fix failure to clear the field ‘skip_gpio_setup’ in a local13164
ESP8266: Avoid duplicate data sends (5.15)13151
[mbed-os-5.15] Added Wi-SUN Interface APIs13150
Nuvoton: Support EMAC bus reset as while bus err (5.15)13147
Ws management API missing lib13114
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
Downloads: zip tar.gz
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 https://github.com/ARMmbed/mbed-os/pull/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: https://github.com/ARMmbed/mbed-os/pull/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: https://github.com/MicrochipTech/cryptoauthlib/issues/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: https://github.com/ARMmbed/mbed-os/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 COVERALLS
Memory Monitoring
No change from mbed-os-6.1.0
Contents
Ports for Upcoming Targets
Fixes and Changes
13291
Update TF-M for ARM_MUSCA_B113285
Use a different key to sign Non-secure image for ARM_MUSCA_B1 target13263
psa: Update TF-M for ARM_MUSCA_B113258
Fix deprecated warning messages in Cypress code13257
Remove invalid unicode characters from mesh-api/mbed_lib.json13252
Implements iterators for the Span class to be compatible with std::span13247
GreenTea: Fix inconsistency of Greentea KV message13237
STM32 custom target: Add missing information in arm pack manager for bootloader13230
Fix duplication of KW41Z Nanostack driver13227
Revert “Fix kv parsing bug in greentea client.”13225
BLE remove unused CYW4343X file13224
ADV_WISE TLS config duplication13223
PSoC Targets: Increase greentea sync timeout13222
STM32 PWM : avoid glitch after duty cycle change13221
STM32 ANALOGOUT and DEEPSLEEP13219
STM32WB RNG: enable use from both M4 and M0+ cores13217
Feature cordio update 20 0513213
Reduce LED use in automatic CI tests13210
Fix hal-sleep/sleep_manager Tests on Cypress Targets13207
TEST: update NRF52840_DK with correct FPAG configuration13206
Usb device init: wait_us fix13205
LWIPStack: set sockets non-blocking13199
TEST: Update kvstore tests with shorter timeout13198
Cypress: Update WHD to version 1.91.213191
Fix ordering in adjust config.sh13188
TEST: Add spif-driver support for baremetal test build13180
Update mbed-coap to version 5.1.613174
tests-mbed_timing_fpga_ci_test_shield-watchdog update with clock accuracy13173
STM32L4: I2C init parameters for L4+ MCU13172
Cypress: Fix internal JIRA. Add check if cybsp_init() is successful13171
Re-enable AWS example, limit targets13152
Add Wi-SUN Interface APIs13038
BLE: Add KVStore Security DB13011
Always build both .hex and .bin filesUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.2.0”.
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.1.0
Downloads: zip tar.gz
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 fromset_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 https://github.com/ARMmbed/mbed-os/issues/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-mcdImpact 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-mcdImpact 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: #13079Impact 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 https://github.com/ARMmbed/mbed-os/issues/12798Impact 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
Summary of changes
Prevent singleton lock if the RTOS is not yet ready.
lp_ticker is used during the RTOS initialization process.
ST lp_ticker implementation calls sleep functions
which in turn attempts to print to the console when sleep tracing
is enabled. Console initialization attempts to lock the singleton mutex.
fixes https://github.com/ARMmbed/mbed-os/issues/11497
fixes https://github.com/ARMmbed/mbed-os/issues/12593
To test:
1. Clonembed-os-example-blinky
.
1. Build, program, and open a serial terminal with:mbed compile -t <TOOLCHAIN> -m <ST_TARGET> -f --sterm -DMBED_SLEEP_TRACING_ENABLED
.
1. Sleep tracing is enabled (and printing on the console), the board does not reboot.Impact of changes
Sleep tracing can be enabled with ST boards.
Migration actions required
N/A
Deprecate MBED_STATIC_ASSERT and MBED_STRUCT_STATIC_ASSERT for built-in keyword
Summary of changes
Deprecates (in doxygen only)
MBED_STATIC_ASSERT
andMBED_STRUCT_STATIC_ASSERT
macros as these uses are now provided with the built-instatic_assert
(or for C without<assert.h>
:_Static_assert
).
Cuts down the number ofMBED_STATIC_ASSERT
andMBED_STRUCT_STATIC_ASSERT
macro definition#if
cases to just C++ or not C++.
Ifstatic_assert
is not recognized by the compiler, it implies it is before either C11 or C++11. I do not consider this a breaking change as C11 and C++14 are now the minimum supported language versions.
These changes also clean up some of the code documentation as well.Impact of changes
This should only go in v6.0.0, so no issues assuming at least C11 or C++14 are used.
Migration actions required
Since the
MBED_STATIC_ASSERT
andMBED_STRUCT_STATIC_ASSERT
macros are deprecated, users should usestatic_assert
going forward as these could eventually be removed.Fix Mbed TLS
adjust-config.sh
scriptSummary of changes
The Mbed TLS import script is quite fragile, and depends on certain lines to be present in the files it adjusts to be able to do the modifications it needs to to allow Mbed TLS to build within Mbed OS.
This commit changes theadjust-config.sh
script to look for a the end of theconfig.h
file, defined as#endif /* MBEDTLS_CONFIG_H */
rather than the include line for"check_config.h"
.
That’s because the inclusion of"check_config.h"
is being removed upstream in Mbed TLS to fix another issue, which you can see here.
I recommend to the maintainers that they put in their backlog to remove or replace these scripts. They were added as a temporary measure some years ago, and were never updated.Impact of changes
This change should work with the current Mbed OS source, but critically, the change is necessary to allow a future version of Mbed TLS to work.
Migration actions required
None.
Cellular: Enable tac info for ALT1250
Summary of changes
ALT1250 supports tac info in registration status, so this commit enables the feature.
Impact of changes
CellularNetwork::get_registration_params
can now return cell info.Replace Mbed PSA with TF-M PSA
Summary of changes
Replace the Mbed implementation of PSA with the implementation from TrustedFirmware-M (TF-M).
PSA is and continues to be provided as an experimental feature (under FEATURE_EXPERIMENTAL_API). The PSA implementation provided by TF-M is not guaranteed to provide the same functionality or API as the previous Mbed PSA implmementation being replaced.Impact of changes
v8-M NS targets are now the only v8-M targets supported in Mbed OS for PSA platforms, as the TF-M build system outputs the S binary that Mbed OS consumes as-is. As such, targets like
ARM_MUSCA_A1_NS
have been renamed toARM_MUSCA_A1
(although old names are temporarily provided for backwards compatibility).Migration actions required
How targets enable PSA has changed. Please refer to features/FEATURE_PSA/supporting_psa_in_mbed-os.md for updated instructions on adding PSA to your target as a new target porting person.
Modify the operation of setting qspi frequency when calling Octo controller
Summary of changes
Modify the operation of setting qspi frequency when calling Octo controller in qspi_api.c.
Because the value of hospi->Init.ClockPrescaler has been subtracted 1 in stm32l4xx_hal_ospi.c.Impact of changes
N/A
Migration actions required
N/A
Timer: minor revisions
Summary of changes
- C++11-ify a little.
Constify relevant methods.(already done in #12425)- Make it copy/move constructible.
Remove unneeded lock from destructor.(already done in #12425)
Impact of changes
Timer
andLowPowerTimer
are a little more flexible, and slightly optimised.Migration actions required
n/a
Added kv store adaptation to nanostack file interface
Summary of changes
This is port of https://github.com/ARMmbed/mbed-os/pull/12878 to Mbed OS master.
Added NS filesystem API module to mbed-os Nanostack HAL. Module provides kv_store interface for the Nanostack. Feature is disabled by default on .json configuration.Impact of changes
None
Migration actions required
None
Added Wi-SUN statistics interface
Summary of changes
This is port of https://github.com/ARMmbed/mbed-os/pull/12766 to Mbed OS master.
Added network, physical layer, MAC and FHSS statistics to Wi-SUN interface. There are new functions to enable/disable and read the statistics.Impact of changes
None
Migration actions required
None
Add new configuration parameters to Wi-SUN network interface and Border Router class
Summary of changes
This is port of https://github.com/ARMmbed/mbed-os/pull/12657 to Mbed OS master.
Added get/validate/set functions for following Wi-SUN mesh interface configuration options:
- Network name
- Regulatory domain
- Network size
- FHSS channel mask
- FHSS unicast channel function related parameters
- FHSS broadcast channel function related parameters
- Timing parameters
Moved Wi-SUN .json configuration parsing from wisun tasklet to Wi-SUN mesh interface class.
Added Wi-SUN Border Router class. Class can be used to start and stop Wi-SUN Border Router.
Border Router class supports following configuration options:
- RPL DIO trickle parameters
- PAN configuration
Added support of network interface name method to Nanostack Mesh, EMAC and PPP interfaces.Impact of changes
None
Migration actions required
None
Add enum class flag definition to platform
Summary of changes
Add a macro for adding bitwise operators to
enum class
types.
This addition is necessary to use bitwise operators onenum class
(scoped enums) introduced in C++11.
Without this macro, either the whole boilerplate would have to be written to take advantage of C++ namespaces and scope, or a C style, visible-to-the-world enum would need to be used.
This:enum class MyEnum { HasNose = (1 << 0), HasEars = (1 << 1), HasFur = (1 << 2) }; inline constexpr MyEnum operator |( T lhs, T rhs) { return (MyEnum) ( static_cast<std::underlying_type<MyEnum>::type>(lhs) | static_cast<std::underlying_type<MyEnum>::type>(rhs)); } inline constexpr MyEnum operator &( T lhs, T rhs) { return (MyEnum) ( static_cast<std::underlying_type<MyEnum>::type>(lhs) & static_cast<std::underlying_type<MyEnum>::type>(rhs)); } ... // Repeat for ~, ^=, |= overloads ... inline MyEnum& operator &= (T & a, T b) { \ a = a & b; \ return a; \ }
becomes
MBED_SCOPED_ENUM_FLAGS(MyEnum) { HasNose = (1 << 0), HasEars = (1 << 1), HasFur = (1 << 2) };
Now, using the
enum class
allows for scope and bitwise operation:MyEnum cat = MyEnum::HasNose | MyEnum::HasEars | MyEnum::HasFur; MyEnum neighbor = MyEnum::HasNose | MyEnum::HasEars;
Impact of changes
The only impact is if the macro is used. If the macro is unused, standard
enum class
definitions are unaffected by the bitwise operators. If the macro is used, the implementing code becomes more concise (and hopefully readable), and the DRY principle is realized.
Regarding code size, the operations should be no different than if written out withstatic_cast
calls.
In the future, standard Cenum
bit flags could be converted over toenum class
for better scoping and collision avoidance.Migration actions required
If a scoped enum bit flag is desired, include the header and use. Otherwise, none.
Extend AnalogIn API: read_voltage
Summary of changes
For calculating real-world parameters (eg: ohms, amps) from ADC readings, it is often useful to know the actual voltage represented by the ADC’s numerical output. This functionality can indeed be abstracted elsewhere, but I think it makes sense to put this in the ADC API itself.
As it stands, theAnalogIn
API only provides a normalized output and leaves the application up to calculate the actual voltage based on the system’s ADC reference.
This PR adds the ability for the user to configure a default ADC Vref by overridingtarget.default-adc-vref
. Additionally, anAnalogIn
instance’s reference voltage can be set at runtime in case multiple ADC references are possible in the target (in the case of multiple ADC peripherals or internally configurable ADC references such as in the case of Nordic chips).Impact of changes
Since this PR only extends the AnalogIn API, there should be no impacts on existing users.
Migration actions required
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: https://github.com/MicrochipTech/cryptoauthlib/issues/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: https://github.com/ARMmbed/mbed-os/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.1.0-RC1
Results for the tests we run on CI (PR, Nightly, Branch):
- Compilation tests: ARMC6 - SOME FAILS
- Compilation tests: GCC_ARM - SOME FAILS
- Unittest - ALL PASSED
- Greentea Test - SOME FAILS
- Example Test - ALL PASSED
- Exporter Test - SOME FAILS
- Cloud Client integration Test - SOME FAILS
- 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 Open
- Export uvision failing with missing context fault handler IOTCORE-1663 - Nightly: Export uvision failing with missing context fault handler Open
- NUCLEO_F767ZI failed on storage tests ---- Tracked by defect IOTSTOR-1032 - NUCLEO_F767ZI failed with features-storage-tests-kvstore-general_tests_phase_1&2 Open
- CY8CPROTO_62_4343W failed on sleep/deepSleep tests ---- Tracked by defect IOTHAL-560 - CY8CPROTO_062_4343W target failed at sleep/deep sleep test Open
- NUCLEO_F303 and NUCLEO_F411 failed on client example compile tests
Test Numbers
- Greentea test number 1495 (+9 )
- Unittest number 735 (+0 )
Toolchain Coverage
In mbed OS 6.1.0 release. we are testing following toolchains:
- ARM compiler 6.13
- GCC_ARM 9-2019-q4-major
The following toolchains have been dropped from 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, remains all mbed OS enabled targets.
Greentea test targets have been changed slightly:
At the time of the mbed-os 6.1.0 release, we run the greentea tests on the following 9 targets:
- NRF52840_DK
- DISCO_L457VG_IOT01A
- K64F
- K66F
- NUCLEO_F303RE
- NUCLEO_F411RE
- NUCLEO_F429ZI
- NUCLEO_F767ZI
- CY8CPROTO_062_4343W
Coverity
In mbed OS 6.1.0 release,there are 94 coverity issues.
Code Coverage
Test Code Coverage been tracked and information is published on COVERALLS
Memory Monitoring
No change from mbed-os-6.0.0
Contents
Ports for Upcoming Targets
13128
Add support for Embedded Planet target Atlas12482
NUCLEO_G474RE: Add new platformFixes and Changes
13175
psa: Remove not needed TF-M ITS KVStore adapter13165
Remove Musca A1 target13158
WIFI: Add NSAPI_PRESENT macro in the WicedInterface13149
Cellular: ALT1250: Store RAT to permament memory13148
M2351: Remove from master13144
Fix esp8266 driver compilation warning13143
STM32H7: correct Ethernet issue in baremetal13142
EMAC: Fix Chrono compliation warnings13135
Restore MTS_MDOT_F411RE bootloader binary13130
Cypress: us_ticker fixes13128
Add support for Embedded Planet target Atlas13122
Cypress: Add target CY8CKIT_064B0S2_4343W, update psoc6pdl, psoc6cm0p13119
Move target implementations of NanostackRfPhy into nanostack-interface13118
Replaced rtos profile with full profile13117
Fix compliation warnings13115
MIMXRT1050_EVK: Add USB support13100
Fix BOOT_HEADER_SIZE allocation in ARM scatter files (#13058)13098
Cellular: Fix CellularContext destructor memory leak13095
STM32: MCU_STM32 supports rtos and bare-metal profiles13093
UNITTESTS: Fix TestPPPInterface::get_interface_name13091
STM32 baremetal support step3/3 (F2/F4)13090
STM: move us_ticker_defines.h include13089
Add a coverage_patterns kwarg to ARM_MICRO13086
STM32F1 update drivers version to CUBE V1.8.013083
STM32H7 update drivers version to CUBE V1.7.013082
Nanostack release v12.3.0 to master13081
Reinstate post build hooks for legacy targets13077
Python reference equality changed to value equality13073
STM32H7: FPGA tests support13070
add mbed-os-example-aws to the example list13069
Cellular: Fix unittest for CellularNetwork13066
mergify: add release type13064
nxp: fix vector redefinition from CMSIS13060
BLE: fix direct advertising on Cordio13055
BLE: RF tester commands (and Cordio unhandled command complete)13053
STM32 more information in README file13052
BLE: fix conn params update13048
Allowed to set Wi-SUN certificates in DISCONNECTED state13047
NRF: Migrate ARM Compiler 5 feature re-locate zero initialized variables13046
Use std::chrono based functions13045
CYESKIT_064B0S2_4343W: Remove parentheses from arduino pins13044
NRF: fix implicit declarations13043
NRF serial: Use nrf_uarte_event_t enum to avoid implicit conversion13042
Ensure all overridden virtual functions are marked withoverride
13041
Cordio: put parentheses to correct order of precedence in ternary expressions13040
BLE: Add tx power control to cordio HCI driver13039
BLE: remove limitation in the Cordio to update adv payload13037
BLE: Fix privacy and signing handling in Security Manager13036
STM32_gen_PeripheralPins.py script v1.1213035
Fix capacity check when service data are added to BLE advertising payload13034
ST boards: Fix sleep tracing13030
Fix ThisThread::get_name definition13022
STM32: add weak TargetBSP_Init function13019
Documentation update - MBRBlockDevice::partition type parameter13016
tests-mbed_hal-rtc patch to match IAR compilation issue13015
Force callback non-trivial for IAR13014
DISCO_H747I_CM4 is supporting now hex format13013
Cellular: Fix packet data registration after CREG13009
Add support for the Telit ME310 module13002
Deprecate MBED_STATIC_ASSERT and MBED_STRUCT_STATIC_ASSERT for built-in keyword13001
STM32 baremetal support step2 (L1/L4/WB)12998
Fix Mbed TLSadjust-config.sh
script12996
STM32F412 bypass PLL configuration when already done by bootloader12992
STM32 baremetal support step1 (F0/F1/F3/H7/L0)12991
Nuvoton: Support EMAC bus reset as while bus err12988
OS timer uses LPTICKER by default, then USTICKER12985
Update CYSBSYSKIT_0112983
Mutex::unlock - decrement _count inside lock12979
stack_size_unification test: set expected stack sizes from config12973
Cellular: Enable tac info for ALT125012966
DRAGONFLY_F413RH: Update power on and power off functionality12955
Replace Mbed PSA with TF-M PSA12937
Modify the operation of setting qspi frequency when calling Octo controller12905
Timer: minor revisions12900
Added kv store adaptation to nanostack file interface12899
Added Wi-SUN statistics interface12898
Add new configuration parameters to Wi-SUN network interface and Border Router class12824
Optimise fault handler assembly12772
Add enum class flag definition to platform12751
STM32WB: enable USB Device12747
STM32 MBEDTLS support with HW crypto12615
FPGA UART test cases addition with 7 and 9 bits data length12482
NUCLEO_G474RE: Add new platform12471
Extend AnalogIn API: read_voltageUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.1.0”.
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
- Explicitly disable the timer used for the us_ticker before attempting to enter DeepSleep.
-
mbed-os-5.15.4
Downloads: zip tar.gz
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.013072
[mbed-os-5.15] Allowed to set Wi-SUN certificates in DISCONNECTED state13033
[Mbed OS 5.15] Upgrade to Mbed TLS 2.22.013031
Mbed OS 5.15: Warn on unrecognised error12986
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 propertyUsing 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
Downloads: zip tar.gz
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 theSecurityManager::EventHandler
interface and register it withSecurityManager::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()
andble::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 withGap::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 isble::whitelist_t::entry_t
.
This is used byGap::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 theDeviceKey
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 inCellularContext
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 theThread::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()
(and destructor) method(s) devirtualised because it was not needed.
Migration actions required
Visibility of some methods has been changed in ATHandler. This should not cause any issues if they were not used (as they shouldn’t have been).
If the include path has been used correctly for ATHandler.h there are no cahnges needed.
ONME-4433 SocketAddress::operator== should also check port
Summary of changes
SocketAddress::operator== did not check the port number. Adding this check can be considered as a breaking change. All greentests and unitests were checked and fixed.
Expose target_offset and header_offset parameters in targets.json
Summary of changes
The app_offset and header_offset parameters have always been a part of the target configuration parameters. However, they were intercepted by the tools and never exposed to the application. The new FOTA (update client next generation) functionality requires these parameters in the code as well. So this PR adds them to the targets.json file. The only result of this PR is the addition of these two macros into the code.
Note that the tools already expose the macros APPLICATION_ADDR and HEADER_ADDR having the same values. However, these macros are only available when the application is built with the bootloader. If it isn’t, these macros aren’t available, hence this PR.
This change is required for new FOTA client.
Enabling small C library option and deprecating uARM toolchain
Summary of changes
- In Mbed OS 2-region memory model, ARM Std and Microlib scatter files are common
more info on https://github.com/ARMmbed/mbed-os/blob/master/docs/design-documents/platform/memory-model/ram_memory_model.md,
so replaced ARM Std scatter file 1-region memory model with Microlib scatter file 2 region memory model. - Moved the
"__aeabi_assert"
function from Microlib boot code file to mbed_retarget file so that it can be available for both RTOS Microlib and bare metal to resolve the undefined symbol linker issue. - Copied ARM Microlib boot code into ARM std boot code and guarded with
__MICROLIB
. This is required in order to build an RTOS application with Microlib. - Added a new target config “supported_c_libs” in targets.json and build tools to check if the selected “default_lib” is supported for the selected toolchain. If not, the build tool will raise an exception.
- Added the new test suite for testing the build tool changes for default_lib and supported_c_libs.
- PR changes tested with blinky and blinky bare metal examples and greentea bare metal tests run locally.
Impact of changes
These changes deprecate the uARM toolchain.
Migration actions required
As uARM toolchain is deprecated, you need to redefine a supported_c_libs configuration with “small” for arm toolchain on the target in targets.json to enable Microlib support, for example:
"supported_c_libs": { "arm": ["std", "small"], "gcc_arm": ["std", "small"], "iar": ["std"] }
You also need to change the scatter file to the 2-region memory model see more info.
Instead of -t uARM, use default_lib with “small” in mbed_app.json configuration for ARMC6 toolchain.
cmsis: remove arm math
Summary of changes
This file was not needed; should be part of DSP. The functionality is part of the library provided
by CMSIS.I would like to test this, for all devices. This header file should be removed in 6.0.0 as we do not provide DSP library. Thus I set this as Major update.
Fixes #12054
Impact of changes
Applications should use CMSIS DSP package. As the order of includes is not defined in our tools, this might cause an error - hard to tell which CMSIS math header was actually included. The removed math header we used in this code base was an older version.
Migration actions required
Use CMSIS DSP release (not part of Mbed OS at the moment) - the header file CMSIS math is included there.
SharedPtr: add nullptr constructor
Summary of changes
For consistency with
std::shared_ptr
, andmbed::Callback
, and as a
potential optimisation aid, giveSharedPtr
a distinct constructor for
nullptr
.Impact of changes
Optimise clearing by adding
nullptr
overload.Migration actions required
The added
nullptr
overload meansSharedPtr(NULL)
orSharedPtr(0)
will no longer work; you must useSharedPtr(nullptr)
orSharedPtr()
.Add MBED_FALLTHROUGH attribute
Summary of changes
C++17 standardised
[[fallthrough]]
forswitch
statements to suppress compiler warnings. Provide access to it, or compiler-specific alternatives.Impact of changes
MBED_FALLTHROUGH
attribute added tombed_toolchain.h
- a portable equivalent for C++17’s[[fallthrough]]
.Migration actions required
None
NVStore: already deprecated implementation removed
Summary of changes
NVStore: already deprecated implementation removal.
Impact of changes
People are advised to use KVStore.
Migration actions required
No migration path available.
Remove deprecated FunctionPointer class
Summary of changes
- Deprecated class
FunctionPointer
has been removed.
Impact of changes
- Any code using
FunctionPointer
will no longer compile.
Migration actions required
- Any remaining
FunctionPointer
users should switch toCallback
.
CellularBase/AT_CellularBase removal
Summary of changes
Removed CellularBase and AT_CellularBase from cellular stack and updated both code and unittests accordingly. Cellular drivers in Mbed OS have been updated.
APN lookup and SMS features are now disabled by default.
Impact of changes
Earlier cellular device properties were handled in AT_CellularBase class. After this change, they are correctly handled in the AT_CellularDevice class. The properties are always modem specific and must therefore be handled in the AT_CellularDevice class, which is common for all contexts using it.
CellularBase has been completely removed so those using it must now switch to use CellularInterface instead.
Disabling SMS will save ~4,5kB and APN lookup about ~2kBMigration actions required
Cellular modem drivers must be updated (done for targets in Mbed OS) by removing references to CellularBase.
CellularBase must be changed to CellularInterface if still in use. (It was already typedef’ed so no other changes needed)
If the application needs SMS or APN lookup, they need to be enabled in mbed_app.json
(cellular.use-apn-lookup: true or cellular.use-sms: true).TDBStore refactoring
Summary of changes
TDBStore
no longer requires Flash based block device.Storage related test improvements and small fixes
Summary of changes
SlicingBlockDevice
does no longer accepts both parameters as zero, or size as zero.SlicingBlockDevice(block, 0,0)
used to create a block device that took up the whole block device. There is no sense in doing this, and it has most probably been a programming error if used. Therefore, the constructor now doesMBED_ASSERT()
if both parameters,start
andstop
point to the same value. Effectively this prevents creating a slice that has size of zero, or takes the full block device.Impact of changes
You can no longer create a SlicingBlockDevice that has size of zero, or take the full size of the underlying block device.
Migration actions required
No migration required for code that uses SlicingBlockDevice as intended.
UnbufferedSerial: Introduce the class to replace RawSerial
Summary of changes
Add the UnbufferedSerial class to provide unbuffered I/O access.
Use it instead of RawSerial. See documentation section for more details.
MbedCRC and CRC HAL revisions (6.0 redo)
Summary of changes
The
MbedCRC
class has been improved and optimised.Impact of changes
We’ve added a global JSON configuration
drivers.crc-table-size
controlling table usage, and individual uses can be size-optimised via template parameters. However, some changes are backwards-incompatible.Migration actions required
- The special-case handling of
POLY_32BIT_REV_ANSI
has been removed - the same result can be obtained viaPOLY_32BIT_ANSI
. - CRCs smaller than 8 bits now return results in the standard position at the bottom of the register - previously they were shifted with random bits at the bottom.
- The previous precomputed table for
POLY_16BIT_IBM
had errors - this has been corrected, but CRC results will be different from the previous software calculation (but will match any hardware calculation)
minimal-printf: Enable using a target configuration parameter
Summary of changes
Add ability to enable Minimal printf using configuration parameter.
A new configuration parameter
target.printf_lib
has been added to enable it.Impact of changes
Convenient and familiar way to configure Mbed OS.
Remove deprecated Callback methods
Summary of changes
Deprecated methods in
Callback
removed.Impact of changes
Some code that was generating deprecation warnings will no longer compile at all.
Migration actions required
- Replace construction using
Callback(arg, func)
with the reversedCallback(func, arg)
- Replace use of
attach
with simple assignment, such ascallback = func;
orcallback = { func, arg };
Add Getaddrinfo interface for multiple DNS adresses
Summary of changes
Added getaddrinfo interface for multiple DNS addresses. It uses the existing nsapi_dns_query_multiple functions.
Sync and async versions added to the interface, so dependent libraries need to be rebuilt.
Impact of changes
New members are added to the network interface:
-getaddrinfo
-getaddrinfo_async
Both of them allocate space for results.The function gethostbyname is unchanged, but the gethostbyname_async/getaddrinfo_async callback result parameter now contains the number of DNS records found instead of NSAPI_ERROR_OK =0, so a definition of a new callback for getaddrinfo_async is not needed.
Test cases for sync/async added added to DNS test folder.
SYNCHRONOUS_DNS_MULTI_IP
ASYNCHRONOUS_DNS_MULTI_IPAdd an exception for ARMC5 toolchain build
Summary of changes
The Arm Compiler 5 is no longer supported, so we removed the deprecate warning and added the exception in the build tool to stop building with ARM compiler 5.
Impact of changes
With these changes, Arm compiler 5 build fails.
Migration actions required
Upgrade the environment to use Arm Compiler 6 see documentation
BLE driver set random static address
Summary of changes
This PR adds the function
set_random_address
to theHCIDriver
class. It allows drivers writer to set the Random Static Address of the controller without using the deprecated API Gap:: setAddress .This PR supersedes #12235 .
Cellular: Remove support for multiple ATHandlers
Summary of changes
This commit removes multi
ATHandler
support from cellular. This has not been used and causes unnecessary complexity and memory consumption.Memory statistics of mbed-os-example-cellular with NRF52840_DK + BG96:
GCC:
Total Static RAM memory (data + bss): 29360(+296) bytes
Total Flash memory (text + data): 130660(-832) bytesARM:
Total Static RAM memory (data + bss): 261554(+8) bytes
Total Flash memory (text + data): 127573(-1193) bytesIAR:
Total Static RAM memory (data + bss): 25479(+296) bytes
Total Flash memory (text + data): 102418(-527) bytesThe RAM increase is because
ATHandler
is no longer created with a new -operator, and is instead a member ofAT_CellularDevice
, so the image tool is able to count it. Actual total RAM consumption has decreased thanks to removing the variables.Impact of changes
Major changes:
- Dependency to FileHandle removed from base classes.
-AT_CellularDevice
owns the defaultFileHandle
and shares it with AT -classes.
- Controlling hang-up -detection moved asCellularContext::configure_hup()
. It can no longer be configured viaCellularDevice
.Migration actions required
- Enabling hang-up detection is now configured using
CellularContext::configure_hup()
. CellularDevice::enable_hup() and context creation with BufferedSerial handle removed. Cellular will now automatically enable and disable HUP when switching between AT and PPP mode. CellularDevice::create_context()
no longer takesFileHandle
as parameterCellularDevice::get_file_handle()
removed.ATHandler::get_file_handle(
) can be used instead.
Cellular: Remove API’s empty default implemetations
Summary of changes
Cleanup the Cellular API by removing empty default implementations and making them pure virtual.
Targeted for release-version 6.0.0.
Impact of changes
- Classes inheriting
CellularDevice
will have to have implementation for the new pure virtual methods: clear()
get_context_list()
- Classes inheriting
CellularContext
do not have to have implementation for: get_netmask()
get_gateway()
if they do not differ from the NetworkInterface’s default implemetations:
nsapi_error_t NetworkInterface::get_netmask(SocketAddress *) { return NSAPI_ERROR_UNSUPPORTED; } nsapi_error_t NetworkInterface::get_gateway(SocketAddress *) { return NSAPI_ERROR_UNSUPPORTED; }
Migration actions required
See Impact of changes section.
Rename “default_lib” to “c_lib”.
Summary of changes
- Rename
target.default_lib
totarget.c_lib
as it is more meaningful. These changes are done only for MBED OS 5 targets and in the build tool.
Impact of changes
With these changes,
target.default_lib
attribute is no longer being supported.Migration actions required
- The
target.c_lib
is the new attribute used for C library selection. The choice remains unchanged("std" or "small"
)
unittests: disable coverage report filtering
Summary of changes
Disable coverage report filtering because of poor results.
e.g.
mbed test --unittests -r Socket --coverage html
g
This command will run all unittests with names containingSocket
and then create coverage report with the same scheme, filtering all source files with names containingSocket
.The problem is that coverage report will be correct only when filtered test name will be the same as corresponding source file name (to be covered) - the same (-r) pattern is used to filter both test names and source file names used in coverage report
Due to described problems it was decided to disable coverage report filtering.
-r
will only filter test names and pattern won’t be passed to coverage report generator.storage_abstraction: deprecated since Mbed OS 5.5 and now removed
Summary of changes
Removes deprecated API’s under
hal/storage_abstraction
and the folder itself. Only target which had implemented the functionality was K64F and the implementation gets removed with this PR.Impact of changes
Removes deprecated storage_abstraction API.
Migration actions required
Migration not possible. Developers who were relying on this API should study Mbed OS Storage documentation.
Cellular: Remove friend definitions from cellular state machine
Summary of changes
Instead of defining which classes can access state machine,
CellularStateMachine
class is now “a normal” CPP class with public API.Impact of changes
This is potentially a breaking change but as
CellularStateMachine
is only used internally there shouldn’t be any impact.Migration actions required
None, internal change
Cellular: Remove deprecated CellularDevice::stop()
Summary of changes
Cellular: Remove deprecated
CellularDevice::stop()
Impact of changes
Removed method
CellularDevice::stop()
Migration actions required
CellularDevice::shutdown()
should be used instead.ESP8266: Add built-in hostname resolution handling (disabled by default)
Summary of changes
Fixes https://github.com/ARMmbed/mbed-os/issues/11982 (some routers fail to work with the UDPSocket-approach, but are proved to work when ESP uses its embedded hostname resolution AT command).
The feature is disabled by default and can be enabled in mbed_app.json with
"esp8266.built-in-dns": true
. When enabled then the synchronous hostname resolution will use the ESP’sCIPDOMAIN
AT command, but asynchronous resolution will keep on using the UDPSockets as before (no point rewriting the nsapi_dns). Also caching does not work.I tested with the netsocket-dns testsuite. Obviously caching tests often fail, but if lucky I can get 15/16 passes.
@zhiyong80, please verify if this works with your router.
Impact of changes
None, until user enables the
esp8266.built-in-dns
option.Add BufferedSerial class to replace UARTSerial
Summary of changes
Implement the
BufferedSerial
class to replaceUARTSerial
.BufferedSerial
isUARTSerial
renamed to convey the original purpose of the class. Also remove usage ofUARTSerial
in Mbed OS Core diretoriesUpdate Mbed TLS and Mbed Crypto to latest as of 2019-12-20
Summary of changes
Upgrade to Mbed TLS 2.20.0d1 and Mbed Crypto 3.0.0d0.
Impact of changes
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 viambedtls_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 areseed_counter
value of0
to mean “not yet seeded” will need to instead handle errors from calls tombedtls_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 actions required
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
Thread: remove methods deprecated in 5.10
Summary of changes
Remove various
Thread
methods that were deprecated in Mbed OS 5.10Impact of changes
Code using the old methods will no longer compile
Migration actions required
Uses of the following removed
Thread
methods need to be replaced: *Thread::signal_set
->Thread::flags_set
*Thread::signal_clr
->ThisThread::flags_clear
*Thread::signal_wait
->ThisThread::flags_wait_xxx
*Thread::wait
->ThisThread::sleep_for
*Thread::wait_until
->ThisThread::sleep_until
*Thread::yield
->ThisThread::yield
*Thread::gettid
->Thread::get_id
orThisThread::get_id
*Thread::attach_idle_hook
->Kernel::attach_idle_hook
*Thread::attach_terminate_hook
->Kernel::attach_thread_terminate_hook
HAL: Add a get_capabilities() function to ResetReason API
Summary of changes
Add the
hal_reset_reason_get_capabilities()
function to the ResetReason HAL API to skip the unsupported reason values during HAL & driver tests.Fixes #11792.
Updated tests: *
tests-mbed_hal-reset_reason
, *tests-mbed_drivers-reset_reason
.Impact of changes
Extend the ResetReason HAL API with the
hal_reset_reason_get_capabilities()
function. Unsupported reason values 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
reset_reason_capabilities_t
.GCC: remove -fno-delete-null-pointer-checks
Summary of changes
For GCC we’re being cautious by passing the
-fno-delete-null-pointer-checks
. This option prevents some optimisation opportunities, so removing it can reduce code size.One particular optimisation loss occurs in
Callback
where a test similar to this occurs:extern void myfunc();
inline void foo(void (*fnptr)())
{
if (fnptr) {
do A;
} else {
do B;
}
};foo(myfunc);
With
-fno-delete-null-pointer-checks
, the compiler does not assume that&myfunc
is non-null, and inserts the “null check” - seeing if the address is 0. But performing that test of the address is incorrect anyway - if myfunc actually could be at address 0, we’d still want to doA.Anyway, we do not have an equivalent option enabled for either Clang or IAR, and we have performed clean-ups avoiding issues with apparently-null vector tables in Clang already, for example #10534.
Therefore it should(TM) be safe to remove the option for GCC. We do not have general data or code at address 0, only vectors are likely to be there, so it does not make sense to be globally restricting code generation for that.
Impact of changes
Will reduce image size. Particularly when
Callback
is in use. Increased optimisation may require code adjustments, exposing undefined behaviourMigration actions required
If code fails, address undefined behaviour. Eg this null check may now be removed:
int foo(int *ptr)
{
int a = ptr[0];
if (!ptr) { // may be optimised out - compiler can assume non-null because already accessed
return -1;
}
return bar(a);
}Correct to:
int foo(int *ptr)
{
if (!ptr) {
return -1;
}
int a = ptr[0];
return bar(a);
}ARMC6: Add a build profile extension with the link-time optimizer enabled
Summary of changes
Added an
lto
build profile extension forARMC6
toolchain. * added-flto
tocommon
flags, * added--lto
&--lto_level=Oz
told
flags.Results
Product: ARM Compiler 6.11 Professional Component: ARM Compiler 6.11 Tool: armclang [5d3b4200]
mbed-os-example-blinky@mbed-os-5.14.1
Mbed OS branch commit SHA RAM (data + bss) Flash (text + data) build time details mbed-os-5.14.1 679d248
206047 39168 739.53 blinky-679d248.txt armc6_build-enable_lto_for_release c6a655f
205848 36601 610.81 blinky-c6a655f.txt mbed-cloud-client-example@4.0.0
Mbed OS branch commit SHA RAM (data + bss) Flash (text + data) build time details mbed-os-5.14.1 679d248
252457 361038 828.68 ccexample-679d248.txt armc6_build-enable_lto_for_release c6a655f
251580 329505 835.21 ccexample-c6a655f.txt Build commands used to produce the above results
mbed-os-example-blinky
cd $(mktemp -d) git clone git@github.com:ARMmbed/mbed-os-example-blinky.git cd mbed-os-example-blinky/ git checkout mbed-os-5.14.1 git clean -dxff && git reset --hard # Define Mbed OS rev # 1. mbed-os-5.14.1 echo 'https://github.com/ARMmbed/mbed-os/#679d24833acf0a0b5b0d528576bb37c70863bc4e' > mbed-os.lib # 2. LTO branch on top of mbed-os-5.14.1 echo 'https://github.com/fkjagodzinski/mbed-os/#d7df3e673144232d3e162de19ec13f0472d725c6' > mbed-os.lib mbed deploy cd mbed-os/ && git log --oneline -1 && cd .. time -p mbed compile -t ARM -m K64F --profile mbed-os/tools/profiles/release.json # More details mbed compile -t ARM -m K64F --profile mbed-os/tools/profiles/release.json --stats-depth=100
mbed-cloud-client-example
cd $(mktemp -d) git clone git@github.com:ARMmbed/mbed-cloud-client-example.git cd mbed-cloud-client-example/ git checkout 4.0.0 git clean -dxff && git reset --hard cp ../mbed_cloud_dev_credentials.c . # Define Mbed OS rev # 1. mbed-os-5.14.1 echo 'https://github.com/ARMmbed/mbed-os/#679d24833acf0a0b5b0d528576bb37c70863bc4e' > mbed-os.lib # 2. LTO branch on top of mbed-os-5.14.1 echo 'https://github.com/fkjagodzinski/mbed-os/#d7df3e673144232d3e162de19ec13f0472d725c6' > mbed-os.lib mbed deploy cd mbed-os/ && git log --oneline -1 && cd .. time -p mbed compile -t ARM -m K64F --profile mbed-os/tools/profiles/release.json # More details mbed compile -t ARM -m K64F --profile mbed-os/tools/profiles/release.json --stats-depth=100
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 return
void
as return status value deprecated.Impact of changes
Breaking change: Mutex
lock()
andunlock()
methods return status value have been deprecated since Mbed OS 5.9, so changed the return value tovoid
.Migration actions required
Use Mutex
void lock()
,void unlock()
methods.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.
For details of this update see the documentation here:
https://github.com/ARMmbed/mbed-crypto/releases/tag/mbedcrypto-3.0.1Remove FileSystemLike deprecated APIs
Summary of changes
Removed FileSystemLike deprecated APIs.
Impact of changes
Breaking change: FileSystemLike
opendir
andopen
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)
andopen(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
andseekdir
methods have been deprecated since Mbed OS 5.4 and they are removed now.Migration actions required
Use DirHandle
close
,read
,rewind
,tell
andseek
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
, andflen
methods have been deprecated since Mbed OS 5.4 and they are removed now.Migration actions required
Use FileHandle
seek()
,sync()
, andsize()
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
andunlock
methods have been deprecated since Mbed OS 5.8 and they are removed now.Migration actions required
Use the static methods
CriticalSectionLock::enable()
andCriticalSectionLock::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()
, anddebug_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)
andattach_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))
andfall(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
andfinal
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
andfinal
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
.Proposal to remove SPIFReducedBlockDevice
Summary of changes
The blockdevice is not needed by the bootloader. Removes SPIFReducedBlockDevice fully.
Impact of changes
Applications relying to SPIFReducedBlockDevice are forced to switch to SPIFBlockDevice. This comes at a cost of ROM and RAM usage.
Migration actions required
Applications need to switch on SPIFBlockDevice
Add Eight-Bit-Addressing mode to I2CEEBlockDevice.
Summary of changes
When dealing with EEPROMs without a 16 bit adressing, the current
implementation does not work, as it writes a 16 bit address to the chip.
This may cause undefined behaviour.
This change adds a new constructor argument to enable this new eight-bit
mode. It defaults to false to not break existing code.
This constructor argument should actually never be necessary to manually
set, except when dealing with cheap devices.An example for such a device is the Hua Hong NEC K24C02. Datasheet.
Impact of changes
Added a new optional argument at the end of all existing constructors.
Migration actions required
None, as the new constructor argument is optional and at the end.
The default value does not change functionality in existing code.Remove the deprecated CAN APIs.
Summary of changes
Removed CAN deprecated APIs.
Impact of changes
With these changes, CAN
attach
APIs with cv-qualifiers sources are removed and this is the breaking changes for the userMigration actions required
Use
attach(callback(obj, method), type)
Enable minimal-printf by default for all builds
Summary of changes
This PR enables minimal-printf library for all builds. That means that all calls to printf family (including snprintf) will be handled by the minimal-printf library. Main reason for the change are substantial ROM savings that can reach up to 20k. The below table shows result for simple RTOS blinky example in two variants (explicitly calling printf and without) for two boards and three profiles:
Impact of changes
Minimal-printf library supports most of the basic usecases:
* %d: signed integer [h, hh, (none), l, ll, z, j, t]. * %i: signed integer [h, hh, (none), l, ll, z, j, t]. * %u: unsigned integer [h, hh, (none), l, ll, z, j, t]. * %x: unsigned integer [h, hh, (none), l, ll, z, j, t], printed as hexadecimal number (e.g., ff). * %X: unsigned integer [h, hh, (none), l, ll, z, j, t], printed as hexadecimal number (e.g., FF). * %f: floating point (enabled by default). * %F: floating point (enabled by default, treated as %f). * %g: floating point (enabled by default, treated as %f). * %G: floating point (enabled by default, treated as %f). * %c: character. * %s: string. * %p: pointer (e.g. 0x00123456).
If your application requires more advanced functionality you’ll have to revert to using standard library version.
Migration actions required
If your application requires advance features of printf family calls, you’ll either simplify it or switch to the standard C library version. To do so modify your application configuration in
mbed_app.json
file to override the parametertarget.printf_lib
with the valuestd
as shown below:"target_overrides": { "*": { "target.printf_lib": "std" } }
IPCore String-based API removal
Summary of changes
Remove the deprecated string-based APIs. This is a breaking change, targeted for
mbed-os-6.0
.
The APIs were deperecated in mbed-os-5.15, see https://github.com/ARMmbed/mbed-os/pull/11914. Their internal usage was given up in https://github.com/ARMmbed/mbed-os/pull/11941.The following API functions are being removed:
TCPServer (whole class is deprecated already) TCPSocket::connect(const char *host, uint16_t port); TLSSocket::connect(const char *host, uint16_t port); DTLSSocket::connect(const char *host, uint16_t port) InternetDatagramSocket::sendto(const char *host, uint16_t port, data, size); InternetSocket::bind(const char *address, uint16_t port); L3IP:add_ipv4_multicast_group(const char *address); L3IP:add_ipv6_multicast_group(const char *address) L3IP:remove_ipv4_multicast_group(const char *address); L3IP:remove_ipv6_multicast_group(const char *address) NetworkInterface::get_ip_address() NetworkInterface::get_netmask() NetworkInterface::get_gateway() NetworkInterface::set_network(const char *ip_address, const char *netmask, const char *gateway) NetworkStack::get_ip_address() NetworkStack::get_ip_address_if()
Impact of changes
Applications using the old APIs will not compile.
Migration actions required
Users are expected to use their
SocketAddress
-based counterparts and explicitly callgethostbyname()
if DNS address resolution is needed.GCC: Add a build profile extension with the link-time optimizer enabled
Summary of changes
Add a build profile extension with the link-time optimizer enabled for GCC_ARM toolchain.
Impact of changes
Migration actions required
-
The minimal required version of the
GCC_ARM
is now the GNU Arm Embedded Toolchain Version 9-2019-q4-major. EarlierGCC_ARM
versions can cause various issues when the-flto
flag is used, e.g. a platform specific error during the final link stage on Windows hosts with GCC8. -
The
noinline
attribute has to be used for every function that must be placed into a specific section (specified with asection(".section_name")
attribute). In general, when a function is considered for inlining, thesection
attribute is always ignored. However, with the link-time optimizer enabled, the chances for inlining are much higher because the inliner works across multiple translation units. As a result, the output sections’ sizes change compared to a non-lto build. This may lead to asection ".section_name" will not fit in region "region_name"
type errors. -
The
common
flags defined for theGCC_ARM
toolchain are now appended to theld
flags during a mbed-cli build. Previously, thecommon
flags were appended only toasm
,c
andcxx
flags. Having the same flags for the compiler and the linker is required when using the link-time optimizer (which is the case for thelto
build profile extension). Any options unrecognized by the linker should be moved fromcommon
toasm
,c
orcxx
.
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 theCallback
to almost nothing.Fixes #12940.
Impact of changes
Migration actions required
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 ofOsTimer::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 usemilliseconds
, it should match the period ofOsTimer
, which theoretically can be different.Fixes #12920.
Remove unsupported targets
Summary of changes
This is another of a series of PRs (others https://github.com/ARMmbed/mbed-os/pull/12775, https://github.com/ARMmbed/mbed-os/pull/12810, https://github.com/ARMmbed/mbed-os/pull/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 https://github.com/ARMmbed/mbed-os/pull/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
- USBSerialMigration actions required
None.
Remove unsupported targets
Summary of changes
This is the third of a series of PRs (others https://github.com/ARMmbed/mbed-os/pull/12775, https://github.com/ARMmbed/mbed-os/pull/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 https://github.com/ARMmbed/mbed-os/pull/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.hRemove unsupported targets
Summary of changes
This is the second of a series of PRs (first https://github.com/ARMmbed/mbed-os/pull/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
- Ublox NINA B1
- LAIRD_BL600, BL652, BL654
- OSHCHIP
- ACONNO_ACN52832
- MURATA_WSM_BL241
- 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
Impact of changes
These targets will no longer be supported.
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
No additional impact
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 space.Follow-up to #12036. Will need at least one example changed to turn the option back on.
Impact of changes
- If application code uses
Callback
with a non-trivial functor, they will get a compilation error directing them to turn onplatform.callback-nontrivial
.
Migration actions required
- Add
"platform.callback-nontrivial": true
to yourmbed_app.json
if a build error indicates that it is required - or change your code to only use trivial functors inCallback
.
BLE: remove deprecated APIs from Gatt and SecurityManager
Summary of changes
- Remove deprecated APIs from Gatt
- Remove deprecated APIs from SecurityManager
Impact of changes
Deprecated APIs from Gatt and SecurityManager do not exist anymore, applications that use them will not compile until updated with current APIs.
Migration actions required
Applications that compile without deprecation warnings on mbed-os-5.15 will continue to work. Otherwise, please fix any deprecated API usages, for example by referring to compilation warnings from mbed-os-5.15.
Add Semtech Lora radio drivers
Summary of changes
Add Semtech Lora radio drivers for SX1272, SX1276 and SX126x radios.
Added as subtree from original repository: https://github.com/ARMmbed/mbed-semtech-lora-rf-driversImpact of changes
Enable using Lora with no additional repositories, all of them part of Mbed OS.
Migration actions required
None
Remove Mbed SPM
Summary of changes
Remove
FUTURE_SEQUANA
andFUTURE_SEQUANA_M0
targets. These are not supported in Mbed 6.After the removal of FUTURE_SEQUANA targets, there are no targets remaining that use Mbed SPM. Remove Mbed SPM as well, as it is unused.
Impact of changes
The following targets are being removed in Mbed 6:
-FUTURE_SEQUANA
-FUTURE_SEQUANA_M0
Migration actions required
Please use a version of Mbed OS 5 if you require support for
FUTURE_SEQUANA
orFUTURE_SEQUANA_M0
Remove PSA implementation for v8-M and dual CPU targets
Summary of changes
With Mbed 6, TrustedFirmware-M (TF-M) is the source of Mbed’s implementation of PSA. This means Mbed 6 doesn’t need to contain any code or tooling to build the v8-M or dual CPU secure binaries.
This patch set removes tooling, code, and targets that would have been used to make PSA secure binaries for v8-M or dual CPU platforms.
Impact of changes
- NXP LPC55S69 and Numaker M2351 support is temporarily dropped as compared to Mbed 5, as those targets are not supported in TF-M upstream.
- Exporters for v8-M and dual CPU PSA targets are not supported, due to TF-M limitations.
- It is no longer possible to use Mbed to build v8-M or dual CPU secure binaries.
- The following targets are removed compared to Mbed 5:
ARM_MUSCA_A1_S
ARM_MUSCA_B1_S
LPC55S69_NS
LPC55S69_S
HANI_IOT
NU_PFM_M2351_NS
NU_PFM_M2351_S
Migration actions required
Use Mbed 5.15 if you require PSA targets with exporter support, or one of the removed targets. LPC55S69 and Numaker M2351 will be supported in Mbed 6 at a later date, after the targets are supported by TF-M.
rtos: Improve CMSIS-RTOSv2 app compatibility
Summary of changes
Some non-Mbed-OS, pre-existing CMSIS-RTOSv2 applications depend on
CMSIS-RTOSv2 Automatic Dynamic Allocation, also known as Object-specific
memory pools. Mbed OS doesn’t by default provide any memory to the
CMSIS-RTOSv2 Automatic Dynamic Allocation pool, as doing so would waste
memory if the feature is not used; even if the feature is used, as a
platform, Mbed OS can’t know how many objects of which types will be
created by an application and therefore will either waste memory or not
provide enough memory in a hard to debug manner. Portable CMSIS-RTOSv2
applications depending on CMSIS-RTOSv2 Automatic Dynamic Allocation
should instead configure the memory pools themselves, as applications
know best their memory requirements.Add Mbed configuration options which can be used by applications to
control the amounts of memory available to the CMSIS-RTOSv2 Automatic
Dynamic Allocation subsystem. This enables portable CMSIS-RTOSv2
applications, which can run on any CMSIS-RTOSv2 OS, to be able to run on
Mbed OS as well.Signed-off-by: Devaraj Ranganna devaraj.ranganna@arm.com
Signed-off-by: Jaeden Amero jaeden.amero@arm.comImpact of changes
Applications written for CMSIS-RTOSv2 that use CMSIS-RTOSv2 Automatic Dynamic Allocation can now also run on Mbed OS, when the application specifies how much memory to use in their
mbed_app.json
. CMSIS-RTOSv2 docs claim that Automatic Dynamic Allocation is “fully portable”, and now that’s at least more true than before where Mbed is concerned.The TF-M regression tests are a concrete example of an application written making use of CMSIS-RTOSv2 Automatic Dynamic Allocation. We have an incredibly easier time running (and maintaining) those tests with Mbed OS, validating the TF-M integration with Mbed OS does not break TF-M functionality, when Mbed OS supports application-configured CMSIS-RTOSv2 Automatic Dynamic Allocation.
Migration actions required
None
odin targets: remove release version
Summary of changes
This is a preparation for more upcoming changes. The latest master updates removed deprecated functionality and these targets do not compile anymore.
Impact of changes
Boards based on the ODIN module won’t compile in Mbed OS 6.0.0.
Migration actions required
Staying with Mbed OS version up to 5.15.x.
BLE Gap deprecation cleanup/rework
Summary of changes
- Remove BLE
LegacyGap
class and implementations. Mapble::Gap
to globalGap
. - Add non-deprecated APIs (originally found in
LegacyGap
) toGap
and implementations intoGenericGap
. - Remove/replace legacy BLE event signalling (callback chains) in favour of EventHandler, where possible.
- Remove
BLEProtocol::
and replaceAddressType_t
withown_address_type_t
/peer_address_type_t
,AddressByte_t
withaddress_t
, etc. - Replace
BLE::Address_t
(for accessing address types + values in whitelists) with the new equivalentwhitelist_t::entry_t
. - Rename
ConnectionParams_t
->PreferredConnectionParams_t
and use it only for Generic Access Service. - Fix misspelt
central_privay_configuration_t
->central_privacy_configuration_t
- Remove legacy type definitions and replace internal usages with new types, e.g. address types, disconnection reason, etc.
Notes: *
setDeviceName()
,getDeviceName()
,setAppearance()
,getAppearance()
fromLegacyGap
are removed, as device name and appearance can be set viaAdvertisingDataBuilder
and saved by the application. But there were previously no deprecation warnings for them. *get/setPreferredConnectionParams()
are dropped fromGap
- updated versions will be added to Gatt where they should belong to.Impact of changes
Legacy BLE Gap APIs and related type definitions are no longer available.
Some APIs have been updated to take parameters of new type definitions of address types + values.Migration actions required
- Applications based on up-to-date BLE APIs should be able to make most BLE function calls as before.
- However as mentioned above some deprecated types (e.g. address) were not warned previously - their usages need to be replaced with corresponding new types. The best clue is compilation errors which can be manually fixed. The PR to update mbed-os-example-ble is an example of how to do this: https://github.com/ARMmbed/mbed-os-example-ble/pull/289
- Applications should set device name and appearance using
AdvertisingDataBuilder
and internally remember their values as needed, since APIs to get/set them are removed as explained above.
RZ_A1H remove usage of ethernet hal API
Summary of changes
- Removed ethernet_api from targets\TARGET_RENESAS\TARGET_RZ_A1XX.
- Modified features\netsocket\emac-drivers\TARGET_RZ_A1_EMAC not to use ethernet_api.
Remove compatibility for Arm Compiler versions prior to 6.01.0050
Summary of changes
Removed the pre-processor directive __ARMCC_VERSION >= 6010050 and the code added for versions before 6.01.0050.
Impact of changes
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Migration actions required
Use Arm Compiler 6
Tests: Remove support for ARM Compiler 5
Summary of changes
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.Impact of changes
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Migration actions required
Use Arm Compiler 6.
mbed-client-cli: Remove support for ARM Compiler 5
Summary of changes
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.Impact of changes
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Migration actions required
Use Arm Compiler 6.
TFM: Remove ARM Compiler 5 considerations
Summary of changes
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.Impact of changes
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Migration actions required
Use Arm Compiler 6.
Storage: Remove support for ARM Compiler 5
Summary of changes
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.Impact of changes
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Migration actions required
Use Arm Compiler 6.
Drivers: Remove support for ARM Compiler 5
Summary of changes
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.Impact of changes
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Migration actions required
Use Arm Compiler 6.
Remove netsocket icetea tests and TCPServer
Summary of changes
Remove deprecated Netsocket Icetea tests and
TCPServer
class.Impact of changes
- Netsocket Icetea tests are removed
TCPServer
class removed
Migration actions required
- Use Netsocket Greentea tests (TESTS/netsocket)
TCPSocket
can be used instead ofTCPServer
Remove deprecated netsocket methods
Summary of changes
Remove deprecated methods from netsocket
Impact of changes
Deprecated methods in netsocket (since Mbed OS 5.1) are removed.
Migration actions required
InternetSocket::attach
-> UseSocket::sigio
TCPSocket(S *stack)
-> Use defaultTCPSocket
constructor and callopen
separately
UDPSocket(S *stack)
-> Use defaultUDPSocket
constructor and callopen
separatelySocketAddress rework
Summary of changes
Original work: https://github.com/ARMmbed/mbed-os/pull/12468 . This PR contains also the UT fix.
- Add optimised constexpr default constructor. Default construction was previously by a heavyweight defaulted
nsapi_addr_t
parameter. - Remove deprecated resolving constructor.
- Take
nsapi_addr_t
inputs by constant reference rather than value. - Inline the trivial getters and setters.
- Use
unique_ptr
to manage the text buffer. - Make
operator bool
explicit. - Optimise some methods.
- Update to C++11 style (default initialisers, nullptr etc)
Impact of changes
- Constructor deprecated in Mbed OS 5.1 removed.
- Code size reductions, particularly on default initialisation.
- Implicit assignments to
bool
orint
or others no longer possible - any existing code which does not compile is most likely an error. (if (sockaddr)
is still fine - such “contextual conversions to bool” can use the explicit operator).
Migration actions required
- Code attempting resolution by passing a hostname to
SocketAddress
‘s constructor must be modified to useNetworkInterface::gethostbyname
orNetworkStack::gethostbyname
. - Code failing due to the now-explicit bool operator should be reviewed to check intent.
Remove deprecated BLE:: APIs and unsupported services
Summary of changes
- Remove deprecated APIs from
BLE
namespace. - Remove
DFUService
,UARTService
and beacon-related services (iBeacon, EddyStone) whose standards/stacks are externally maintained.
Impact of changes
- Legacy APIs in
BLE
namespace are no longer available. DFUService
,UARTService
and beacon-related services (iBeacon, EddyStone) are no longer available.
Migration actions required
- Applications that use legacy APIs in
BLE
namespace need to be updated to use up-to-date APIs. - Applications based on removed services can copy the service definitions over from previous mbed-os releases (with deprecated API usages manually fixed), or provide their own implementations.
Remove Maxim and SoftDevice BLE stacks which do not support the latest APIs
Summary of changes
- Remove Nordic SoftDevice stack (used by nRF51 targets). Notes: nRF52 targets are unaffected as they use Cordio stack.
- Remove the current Maxim BLE stack (until a newer version based on up-to-date Cordio stack becomes available).
- Disable BLE features of affected targets from
targets.json
.
Note: Some references/macros for SoftDevice are still present in the Nordic SDK (
targets/TARGET_NORDIC/*
) and not cleanly separated with other components.Impact of changes
- BLE feature will be unavailable on nRF51* targets and temporarily unavailable on Maxim targets until the driver gets updated in the future.
Migration actions required
- For nRF51* targets, use Mbed OS release 5.15 - future support for those targets are under review.
- For nRF52* targets, ensure the default BLE configurations that enable Cordio stack is used.
- For Maxim targets, use Mbed OS release 5.15 until the BLE driver gets updated.
Remove deprecated ARMC5 reference from
mbed compile -S
outputSummary of changes
Removed deprecated ARMC5 reference from
mbed compile -S
command output.Impact of changes
With these changes,
mbed compile -S
will not produce any ARMC5 reference.Migration actions required
None.
Netsocket/lwIP Stack: Remove support for ARM Compiler 5
Summary of changes
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.Impact of changes
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Migration actions required
Use Arm Compiler 6.
Remove ARMC5 reference from Mbed OS platform
Summary of changes
Removed ARMC5 reference from Mbed OS platform.
Impact of changes
Breaking change: The ARMC5 references are removed from platform as they have been deprecated in a previous Mbed OS release.
Migration actions required
Use Arm Compiler 6
Removed all references to __CC_ARM
Summary of changes
Removed ARMC5 reference from FEATURE_BLE.
ARM Compiler 5 is no longer supported in Mbed OS and is superseded by ARM Compiler 6Impact of changes
Breaking change: The ARMC5 references are removed from platform as they have been deprecated in a previous Mbed OS release.
Migration actions required
Use Arm Compiler 6
Remove minimal-printf extension profile
Summary of changes
Removed minimal-printf extension profile. Usage of minimal-printf library is enabled via the
target.printf_lib
configuration parameter as described in minimal-printf README, see https://github.com/ARMmbed/mbed-os/tree/master/platform/source/minimal-printf#usage for more details.Impact of changes
Applications can no longer use the obsolete minimal-printf extension profile.
Migration actions required
Usage of minimal-printf library is enabled via the
target.printf_lib
configuration parameter, see https://github.com/ARMmbed/mbed-os/tree/master/platform/source/minimal-printf#usage for more details.Remove the deprecated ethernet hal APIs
Summary of changes
Removed ethernet hal deprecated APIs.
Impact of changes
Breaking change: The Ethernet hal APIs are removed as they have been deprecated in a previous Mbed OS release.
Migration actions required
- EthInterface is now the preferred way to get an Ethernet object.
- Alternatively, use NetworkInterface to get an instance of an appropriate network interface (WiFi or Ethernet).
Add “rtos-api” to bare metal
Summary of changes
Added the bare metal form of the RTOS API since it doesn’t add any overhead (except for a little extra compilation time) and has the benefit of minimising differences between RTOS and bare metal modes.
Impact of changes
RTOS APIs are available in bare metal mode.
Migration actions required
None
Remove Semaphore deprecated APIs
Summary of changes
Removed Semaphore deprecated APIs.
Impact of changes
Breaking change: Semaphore
wait
andwait_until
methods have been deprecated since Mbed OS 5.13 and are removed now.Migration actions required
Use Semaphore
acquire
,try_acquire
,try_acquire_for
andtry_acquire_until
methods.Netsocket: Introduce set_ip_address and get_dns_server APIs
Summary of changes
set_ip_address
API can be used to set a static IPv4 address or IPv6 link-local address to network stack. This is needed for example in cellular use cases where device gets multiple IP addresses from cellular context.With
get_dns_server
DNS servers can be queried from NetworkInterface objectFully enforce NonCopyable
Summary of changes
Make
NonCopyable
fully operational so it gives compile errors in all build profiles.This removes the deprecated copy operators which let code compile with a warning.
Impact of changes
Code that copies non-copyable classes will now not compile in any profile - previously a link error would have been generated in debug profile, but other profiles would have only generated a “deprecated” warning at compile time and a debug message at runtime.
Migration actions required
Modify code to not copy non-copyable objects. Any code doing so would have likely led to problems such as memory leaks.
Remove mbed wait deprecated APIs
Summary of changes
Removed mbed wait deprecated APIs.
Impact of changes
Breaking change:
wait
andwait_ms
APIs have been deprecated since Mbed OS 5.14 and they are removed now.Migration actions required
If you wish to sleep, use
ThisThread::sleep_for
(C++) orthread_sleep_for
(C). If you wish to wait (without sleeping), callwait_us
.wait_us
is safe to call from ISR context.Replace with weak mbed_error_hook implementation (deprecate the hook function)
Summary of changes
mbed_set_error_hook()
can only be called inside the application. Therefore it is not possible in the application to catch errors before callingmbed_set_error_hook()
.
I thought it would be simpler to create ambed_error_hook()
function which is weak and the application can catch errors at any time.Impact of changes
Replace
mbed_set_error_hook()
with an application specificmbed_error_hook()
implementation.Migration actions required
Add property API to InternetSocket
Summary of changes
Add new API to network interface.
Property API allows application to ask network specific properties
from the InternetSocket . Queried information can be used to avoid
network congestion by adjusting transmission jitter and retry
timeouts.C++ Chrono support
Summary of changes
Add Chronos versions of time-related APIs to RTOS classes, Ticker-related classes and EventQueue.
Kernel::Clock
,HighResClock
,LowPowerClock
andRealTimeClock
act as the Chrono clocks. (C++ standard clockssystem_clock
,steady_clock
andhigh_resolution_clock
are not supported, due to difficulty in consistent retargetting across toolchains).Deprecate old non-Chrono APIs.
Impact of changes
Existing timing code will generate deprecation warnings, but there should be no functional change.
A follow-up PR will clean-up warnings in rest of code base.
Migration actions required
Users should migrate to use Chrono-based APIs as directed by the deprecation messages
Remove the deprecated RawSerial, UARTSerial, Serial
Summary of changes
- Removed
RawSerial
,Serial
,UARTSerial
deprecated classes. - Removed SerialBase deprecated APIs.
Impact of changes
Breaking change:
RawSerial
,Serial
,UARTSerial
classes have been deprecated since Mbed OS 6.0.0 and they are all removed now.Migration actions required
Use BufferedSerial and UnbufferedSerial for serial communication.
Add get_time function to ESP8266
Summary of changes
Fixes https://github.com/ARMmbed/mbed-os/issues/12192.
get_time()
function allows access to (S)NTP functionalities of ESP8266 module.I considered using
std::chrono
instead of ctime’sstd::tm
, but then - to convert tochrono::time_point
we’d have to go throughstd::tm
anyway or write our own parser, which I just managed to avoid.Side note: using
std::
introduces some warnings due to-D_LIBCPP_EXTERN_TEMPLATE(...)=
flag being used in all our compilation profiles. This flag seems obsolete and I hope I will get it removed soon.I cannot really add any tests, as they are using
WifiInterface::get_instance()
to get the interface and there is no RTTI, that would allow casting toESP8266Interface
to callget_time()
, but I tested the function locally and it works fine.Impact of changes
None, other than user can check time with ESP8266Interface.
Migration actions required
None
Make cypress psoc64 TFM ready and also add TF-M initialization
Summary of changes
Non-secure core IPC, Mailbox and Interface init for TFM_DUALCPU and TFM_V8M targets
These changes concentrate on getting mbed-os(Non-secure) working with TF-M(secure)
Changes reflect towards any Cypress based TFM_DUALCPU targets and TFM_V8M targets at the moment and making it more generic in the near future.Key changes: * Init IPC, Mailbox and Non-secure Interface.
These changes are for TFM_DUALCPU and TFM_V8M platforms.
The initialization happens after mbed-os kernel is kicked off and
when the thread is up and running.We are initializing the following for TFM_DUALCPU platforms: * IPC Interrupts for syncing multi-core platforms. * NS Mailbox to receive messages. * NS interface.
We are only initializing a Non-secure interface for TFM_V8M platforms.
- Cypress: CY8CKIT_064S2_4343W: Reserve timer channels used by TF-M.
- Make CY8CKIT_064S2_4343W Cypress target TF-M compatible.
Impact of changes
This impacts CY8CKIT_064S2_4343W, TFM_V8M and TFM_DUALCPU targets.
Callback extension and optimisation
Summary of changes
Extend
Callback
, and optimise it.Impact of changes
- Optimise clearing by adding
nullptr
overload. - Optimise clearing by not clearing storage - increases code size of comparison, but that is extremely rare.
- Reduce ROM used by trivial functors - share copy/destroy code.
- Config option to force trivial functors - major ROM saving by eliminating the “operations” table.
- Config option to eliminate comparison altogether - minor ROM saving by eliminating zero padding.
- Conform more to
std::function
API. Force trivial functors by default to get major ROM saving.(now in #12761)
Migration actions required
- The added
nullptr
overload meansCallback(NULL)
orCallback(0)
will no longer work; users must useCallback(nullptr)
orCallback()
. If application code usesCallback
with a non-trivial functor, they will get a compilation error directing them to turn onplatform.callback-nontrivial
.
Disable mbed 2 and unsupported targets
Summary of changes
Mbed 2 targets are not expected to be supported on master and for the Mbed OS 6 release.
The following changes are introduced:
- Remove “2” from release_versions as there is no Mbed 2 and these targets won’t work as such
- Remove LPC11U68 and KL27Z from targets.json as these are Mbed 2 only. They require migration to Mbed OS 6 Baremetal and can be introduced in the future.
- Remove MAX32620HSP as there is no release_versions and is considered unsupported - see https://github.com/ARMmbed/mbed-os/issues/11233Impact of changes
These targets continue to be available in the 5.15 branch.
Mbed OS 6 won’t support these targets unless are re-introduced.Migration actions required
none
build api: fix release version
Summary of changes
This is non trivial fix as the function is being used outside of this repository.
Tools rely on it to return list of targets for 2 or 5. As we removed release_version from many targets,
this broke the logic. To keep the logic as it was, without updating all tools out there now,
lets just return full set of targets - all are supported.In case for Mbed 2, returning all targets does not make sense, but rather raise an exception here. Not supported. This avoids suprised. If you look at build api functions there are many checks for 2 or 5 so more
clean up needed to actually get release_version out of the tools.Remove nRF51 targets
Summary of changes
This is another of a series of PRs (others https://github.com/ARMmbed/mbed-os/pull/12775, https://github.com/ARMmbed/mbed-os/pull/12810, https://github.com/ARMmbed/mbed-os/pull/12864, https://github.com/ARMmbed/mbed-os/pull/12935) to remove targets that are not supported or retired as explained in recent blog post.
Impact of changes
The following public nRF51 targets are being removed:
- NRF51822
- NRF51_DK
- NRF51_MICROBIT
Migration actions required
- The targets listed above continue to be available in the 5.15 branch.
STM32 code cleaning for MBED-OS6
Summary of changes
This is following discussions with @MarceloSalazar
All ST targets are:
- either keep as full MBED-OS6 target => these targets inherit then from “MCU_STM32”
- either keep as constrained target => these targets inherit then from “MCU_STM32_BAREMETAL”
- either removed (board is too constrained, no more available, or was not officially supported)@ARMmbed/team-st-mcd
Impact of changes
Several targets are no more available in MBED-OS6
If you are still using it,
please use mbed-os-5.15 branchClean-up S2LP driver configuration
Summary of changes
This PR adds the ability to configure the pins of the S2LP driver for any target (inside Mbed OS or custom target) using the standard
mbed_lib.json
andmbed_app.json
config files.Additionally, the MTB_STM_S2LP and MTB_STM_S2LP_CT targets are removed as are not supported in Mbed OS 6, and thus making the S2LP driver independent of targets.
Impact of changes
Note users can continue to use the 5.15 branch.
For Mbed OS 6, it should be possible to use the default pin config without changes (apart from MTBs).
Custom pin configuration can be done as shown next.Migration actions required
Developers need to create a
mbed_app.json
(or other json config) including the pin configuration for their target.An example of application configuration for the S2LP driver is shown here:
https://github.com/MarceloSalazar/mbed-os-example-mesh-minimal/blob/S2LP_cleanup/configs/mesh_wisun_S2LP.json#L34-L50"NUCLEO_F429ZI": { "LED": "LED_RED", "BUTTON": "USER_BUTTON", "BUTTON_MODE": "PullDown", "s2lp.SPI_SDI" : "PA_7", "s2lp.SPI_SDO" : "PA_6", "s2lp.SPI_SCLK" : "PA_5", "s2lp.SPI_CS" : "PC_0", "s2lp.SPI_SDN" : "PF_13", "s2lp.SPI_GPIO0" : "PA_3", "s2lp.SPI_GPIO1" : "PC_3", "s2lp.SPI_GPIO2" : "PF_3", "s2lp.SPI_GPIO3" : "PF_10", "s2lp.I2C_SDA" : "PB_7", "s2lp.I2C_SCL" : "PB_6", "s2lp.provide-default" : true }
The driver can be initialized as follow:
NanostackRfPhys2lp rf_phy(MBED_CONF_S2LP_SPI_SDI ,MBED_CONF_S2LP_SPI_SDO ,MBED_CONF_S2LP_SPI_SCLK ,MBED_CONF_S2LP_SPI_CS ,MBED_CONF_S2LP_SPI_SDN ,MBED_CONF_S2LP_SPI_GPIO0 ,MBED_CONF_S2LP_SPI_GPIO1 ,MBED_CONF_S2LP_SPI_GPIO2 ,MBED_CONF_S2LP_SPI_GPIO3);
Add Timeout rescheduling test
Summary of changes
The
Timeout
drift test uses rescheduling inside a callback, but it is currently disabled due to lack of stability. Rescheduling using relative timeouts inside the callback is a bad technique as it leads to drift, so I understand the test being disabled. It is better to useTicker
for a periodic callback or to useTimeout::attach_absolute
.Add a simpler test that just ensures the callback is called repeatedly - this test would detect issue #12940, and should not have stability problems.
Convert Timeout test to Chrono
Now tests only the Chrono
attach(duration)
method, not the deprecatedattach
andattach_us
calls.Cypress: Misc target updates
Summary of changes
- Fix incorrect ADC range (was 0-2.4V, is now 0 - VDDA) (af39f05)
- Remove CY8CPROTO_063_BLE (96f9915) and CYW943012P6EVB_01 (d058586) targets
- Disable QSPIF on CY8CPROTO_062S3_4343W. It is incompatible with the XIP mode currently used for storing wifi firmware in external flash; instantiating a QSPIFBlockDevice would break Wifi firmware download. (a63fe7d)
Impact of changes
- ADC range is changed for PSoC targets to align with documented API behavior.
- CY8CPROTO_063_BLE and CYW943012P6EVB_01 targets are no longer available
- QSPIF component is removed on CY8CPROTO_062S3_4343W
Migration actions required
- Applications which utilize the analogin driver should update to handle the new range.
- Applications which target CY8CPROTO_063_BLE or CYW943012P6EVB_01 should migrate to a new, still supported target, or remain on the mbed-os-5.15 release.
- Applications on CY8CPROTO_062S3_4343W which need QSPIF and do not use wifi functionality can re-enable the QSPIF component in mbed_app.json.
Work around C++14 assert problem
Summary of changes
During testing of #12425, a problem in ARM Compiler 6.13’s
assert
was identified. This adds a general workaround and restores original code from that PR.(Problem will ultimately be fixed in ARM Compiler 6.15, but the workaround seems to have no downside)
SDBlockDevice: Convert to Chrono
Summary of changes
Convert
SDBlockDevice
to use new APIs from #12425.Impact of changes
Eliminate use of deprecated APIs
Migration actions required
n/a
Nanostack HAL: Convert to Chrono
Summary of changes
Convert Nanostack HAL to use new APIs from #12425.
Impact of changes
Eliminate use of deprecated APIs
Migration actions required
n/a
USB: Convert to Chrono
Summary of changes
Convert ESP8266 driver wrapper to use new APIs from #12425.
Impact of changes
Eliminate use of deprecated APIs
Migration actions required
n/a
Rationalise Mail/Queue/MemoryPool timing APIs
Summary of changes
Follow-up adjusting #12425 , improving (in my opinion, at least) the timing for
Mail
,Queue
andMemoryPool
. I think 12425 was too conservative at cleaning up the unsatisfactory state of their timing.alloc APIs were generally inconsistent - take the opportunity to align with other APIs like Semaphore.
alloc -> try_alloc
alloc_for -> try_alloc_for
alloc_until -> try_alloc_untilIn future the name
alloc
can be used for an untimed blocking allocation.To line up with MemoryPool/Mail alloc, rework naming of get/put
Queue::get -> try_get, try_get_for
Queue::put -> try_put, try_put_for
Mail::get -> try_get, try_get_for
Mail::put (no change, but assert that it works)In the future the names
get
andput
can be used for untimed blocking operations. In the interim, you have to usetry_get_for(Kernel::wait_for_u32_forever)
.Mail::put
differs in that it has always been a non-blocking call, but it can be assumed to always succeed when used correctly, because the Queue has enough room to store a pointer to every block in the MemoryPool. It could in future be made avoid
return, similar to the change made toMutex::lock
.Impact of changes
Existing timing code will generate deprecation warnings, but there should be no functional change.
Migration actions required
Users should migrate to use Chrono-based APIs as directed by the deprecation messages
ESP8266: static address configuration and dhcp enable/disable added
Summary of changes
Fixes https://github.com/ARMmbed/mbed-os/issues/12552
I implemented theset_network
function, which configures static network address andset_dhcp
function.
This function is optional, so no greentea tests are available. I only tested on RAAS, but had no way of really allowing static IP address setting. @star297 , would you please check if this PR works for you?Impact of changes
New functionalities of ESP8266 are now available.
Migration actions required
None.
ESP8266: Convert to Chrono
Summary of changes
Convert ESP8266 driver wrapper to use new APIs from #12425.
Impact of changes
Eliminate use of deprecated APIs
Migration actions required
n/a
NFC: Convert to Chrono
Summary of changes
Convert NFC code to use new APIs from #12425.
Impact of changes
Eliminate use of deprecated APIs
This work originally revealed off-by-1000 error on timing, but that has already been fixed in #12401, so no functional change.
Migration actions required
n/a
Cellular: Convert to Chrono
Summary of changes
Covert cellular code to use new Chrono APIs from #12142
Note that documentation for random_max_start_delay config setting has
been changed to indicate that the setting is in seconds, and always has
been. No functional change.Impact of changes
Eliminate use of deprecated core APIs.
Some public cellular APIs now have dual Chrono and non-Chrono forms - non-Chrono not yet deprecated.
DTLSSocketWrapper: Convert to Chrono
Summary of changes
Convert DTLS wrapper to use new APIs from #12425.
Impact of changes
Eliminate use of deprecated APIs
Migration actions required
n/a
nsapi_dns: Convert to Chrono
Summary of changes
Convert DNS client code to use new APIs from #12425.
Impact of changes
Eliminate use of deprecated APIs
Migration actions required
n/a
Mark PSA as an experimental API
Summary of changes
This PR moves PSA to a FEATURE_EXPERIMENTAL_API folder. No change to feature in this folder will be considered breaking, so they can be changed in any release type.
Impact of changes
Migration actions required
The EXPERIMENTAL_API feature will need to be enabled after this PR to enable PSA.
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: https://github.com/MicrochipTech/cryptoauthlib/issues/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: https://github.com/ARMmbed/mbed-os/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.0.0-RC2
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 - ALL PASSED
- Cloud Client integration Test - SOME FAILS
- 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 Open
- NUCLEO_F767ZI failed on storage tests ---- Tracked by defect IOTSTOR-1032 - NUCLEO_F767ZI failed with features-storage-tests-kvstore-general_tests_phase_1&2 Open
- CY8CPROTO_62_4343W failed on sleep/deepSleep tests ---- Tracked by defect IOTHAL-560 - CY8CPROTO_062_4343W target failed at sleep/deep sleep test Open
- NUCLEO_F303 and NUCLEO_F411 failed on client example compile tests
Test Numbers
- Greentea test number 1486 (+65 )
- Unittest number 735 (+27 )
Toolchain Coverage
In mbed OS 6.0.0 release. we are testing following toolchains:
- ARM compiler 6.13
- GCC_ARM 9-2019-q4-major
The following toolchains have been dropped from 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, remains all mbed OS enabled targets.
Greentea test targets have been changed slightly:
At the time of the mbed-os 6.0.0 release, we run the greentea tests on the following 9 targets:
- NRF52840_DK
- DISCO_L457VG_IOT01A
- K64F
- K66F
- NUCLEO_F303RE
- NUCLEO_F411RE
- NUCLEO_F429ZI
- NUCLEO_F767ZI
- CY8CPROTO_062_4343W
Compared to mbed-os 5.15.0, the following targets been removed as they are not supported in mbed-os-6
- LPC55S69
- UBLOX_C030_U201
- UBLOX_EVK_ODIN_W2
Coverity
In mbed OS 6.0.0 release, coverity issues increased from 49 to 94 .
Code Coverage
Test Code Coverage been tracked and information is published on COVERALLS
Memory Monitoring
mbed-OS ROM size improved for around 16K and static RAM size improved 1.5K compare to mbed OS 5.15 release. The main reason for the improvements is because we are enabled using minimal-printf by default.
Contents
Ports for Upcoming Targets
12338
STM32L5 : add DISCO-L562QE board support12286
Add new target: NUCLEO_L452RE-P12597
Cellular: Add ALT1250 PPP cellular target12458
Add Musca B1 target12787
Cypress: Add CYESKIT-064B0S2-4343W12603
Add target CYSBSYSKIT_0112576
M487: Support custom board12801
Add base support for STM32H745Fixes and Changes
12385
DeviceKey Root of Trust generation refactored.12256
Update psa binaries for 6.0.0-alpha112238
Minimal-printf: Fix wrapping of printf functions for the ARM compiler12236
Fix baremetal build failures12218
tests tickers: adapt ticker_interrupt_test() test case for high frequency tickers12217
Nuvoton: Add DEVICE_USBDEVICE detection in usbd implementation12216
Fix dl_channel tests12215
Cellular: Implementation of virtual get_ip_address funtion in ublox-api12214
Cellular: Move string_to_pdp_type method to CellularContext12202
Increase MSI clock frequency when exiting deep sleep12200
Minor fixes for peripheral pins on Dragonfly Nano12196
LWIP: don’t pbuf_free(NULL) on socket close12195
Corrected PPP debug trace flagging12194
Nanostack Socket event handler fix12193
Cellular: Move cellular event queue thread ownership to CellularDevice12189
Removed hardcoded CY8CPROTO_062_4343W bt baudrate limit.12188
Greentea test :Added the print in the exception handler12186
STM serial init: Set pin function only if pin is defined (not NC)12185
BLE: fix pointer not set to null on delete12182
Update watchdog tests to run with bare metal profile12181
Add DTLS in Connectivity’s design document12179
TESTS: Update testing of examples in mbed-os12178
Fixes for LPC55S69_NS TLS tests12176
Nuvoton: Support usbd12175
Minimal-printf: Fix documentation as floating point is disabled by default12173
Change size embedded in the temp_ram_page_data12170
Nuvoton: Support dynamic heap configuration on IAR12169
syntax error corrections - rm unnecessary semicolons12162
CMSIS-pack update for STM32WB-family12155
LPC11U24: Fix baremetal build and runtime error12151
NRF5x: Fix baremetal linker error12144
NRF52840: Use 2 region memory model for the ARM toolchain12143
Blockdevice config changes to make it possible to run littlefs filesystem tests12141
Thread: remove constructors deprecated in 5.112138
TESTS-MBED_HAL-COMMON_TICKERS no more executed12133
Cellular: Suppress long AT traces12132
LWIP: Remove unused MBOX configs12131
Cellular: Fix Gemalto/Cinterion driver12128
Remove unsupported folder12123
Cellular: Refactor cellular variable visibilities12122
ATHandler refactoring12121
Serial: Deprecate the class and promote UnbufferedSerial instead12120
ONME-4433 SocketAddress::operator== should also check port12118
Fixed Serial ambiguity for enable_input and enable_output12114
Cellular: Fix to not use all zero address for DNS12113
Fix for issue #12104 (STM32 can_init_freq() ignores frequency)12111
Microlib: Disable feof function usage in general filesystem test12110
Moved CP Max recv len into mbed_lib.json12109
Replace RawSerial as it has been deprecated12108
Wi-sun network event handler update12101
Bare metal: Retrieve error context after crash12099
Implemented recommended fix from https://github.com/STMicroelectronic12098
Wrong order of code fixed12097
cypress target: fix iar warnings12095
Update MXRT1050 to SDK 6.012092
Refactored away onboard_modem_api because it is not needed at all12089
Update offloaded TLSSocket to TLSSocket design12086
TARGET_STM: fix flash api 64bit address alignment on L4 and WB12085
PSA setup template changes.12083
Cellular: Add check for network congestion in BC95 driver12081
Expose target_offset and header_offset parameters in targets.json12080
Unittest cleanup made12079
Coverity fixes12078
Cellular: Add PPP/IP config flags in CellularInterface.json12073
Unittests: fix for PRs 12051 and 1199612071
Minimal Console: Use static pin map12069
STM32: astyle update12068
Enabling small C library option and deprecating uARM toolchain12067
STM32 GPIO IRQ : add a critical section in gpio_irq_init12065
Non-IP socket implementation for NIDD over CP12064
Valgrind support added for unittests12063
Move get_ip_address_if() to NetworkStack and include it in multihoming test12061
NANO130: Support dynamic heap configuration on IAR12057
NUC472/M487: Limit EMAC receive frame length as 151812055
cmsis: remove arm math12052
fpga tests: clear uart fix12051
Unittest configuration mechanism improved12050
Fix TDBStore sizes for SecureStore tests12048
SharedPtr: add nullptr constructor12045
Netsocket test adjusted to Wisun12044
increased qspi size for cypress integration fs tests12043
Modify itm_api.c for EFM32 targets12041
Add QSPI and relevant test support for target EP_AGORA12038
Cypress: Remove qspi_frequency() call.12037
SharedPtr: add move operations12034
SysTimer: Suppress implicit virtual warning12032
Add MBED_FALLTHROUGH attribute12029
STM32F0: create STM32F091xC target12027
Modify nsapi_dns tests to be module tests12026
Update HAL file to Toshiba’s TMPM4G912025
Platform: Delete an unused astyle output file12024
ONME-4366 - Fix UBLOX_EVK_ODIN_W2 fails in emac tests due to heap mem12020
Fix issues in setting radio access technology12019
Cypress: rework lptimer hal12018
STM32_EMAC cleanup12017
NVStore: already deprecated implementation removed12013
Add UDP ECHOTEST with connect/send/recv calls12012
USB device HID test: remove duplicated define12011
STMOD_CELLULAR: improve debug print12008
Cellular: Fix ATHandler string handling11997
Remove deprecated FunctionPointer class11996
CellularBase/AT_CellularBase removal11995
MCU_NRF52840 target configuration fixes11988
Small fixes for SecureStore11987
TDBStore refactoring11986
Storage related test improvements and small fixes11980
DISCO_L4R9I: update clock configuration for all clock sources11976
LWIP system mailbox overflow fix11975
PPPinterface: remove faulty address getter check for invalid pointer11962
Bug in mbed_alloc_wrappers.cpp11961
UnbufferedSerial: Introduce the class to replace RawSerial11957
MbedCRC and CRC HAL revisions (6.0 redo)11952
Fix for Dragonfly nano and registration for LTE-M plans11927
Speed up unittests by not limitting Make to spawn more processes11920
Simplify pull request template headers and instructions11897
MbedCRC: improve init value handling and tests11891
minimal-printf: Enable using a target configuration parameter11880
Remove deprecated Callback methods11878
Improve API documentation and test coverage11866
Update pycryptodome version11817
ESP8266 “busy s…” fix (ONME-4352)11653
Add Getaddrinfo interface for multiple DNS adresses11594
M2351: Pre-build secure image/lib to favor pelion application10959
M2351: Support TFM level 112457
Update STM32 EMAC driver - limit RX frame length12424
Nuvoton: Fix GPIO IRQ and RTC12422
Cypress Asset Update12419
Fix #12290: crash_log_parser on py312411
add FLASHIAP in targets.json for KVStore used in PDMC12409
FIX: LPUART clock source selection should be left to serial driver12408
LPC408X: Delete the ethernet_api.c files12407
Disable restricted uart peripheral for NRF5284012405
EthernetInterface fix detecting change of connection status on ARCH_MAX12404
M2351: Update BSP and bugfix12403
FPGA: Enlarge timeout with mbed_hal_fpga_ci_test_shield-i2c12401
Remove float symbols from apps that use the NFCController class12400
Add an exception for ARMC5 toolchain build12399
Cellular: Delete created context if activation fails12398
Add BlockDevice unittests and fix issues they revealed12397
Testing: Fix buffer overflow in ATHandler_read_bytes UT test12396
PDP Type needs to be IPV4V612395
I2CEEBlockdevice: fix i2c read return value12394
Fix SDIO communication issue on Cypress 1M boards and other minor fixes12393
Fix Musca-A1 gcc linker12392
Fix psa_key_management_operations12391
mergify: CI only if PR is without conflicts12389
Update InterruptIn.h12386
TEST: fix a bug in ATCmdParser test12383
Fix thread_sleep_for with zero wake_delay12382
Fix BufferedSerial visibility of private base class enum enumerators12380
DISCO_L475VG_IOT01A: Add a list of restricted GPIO pins for testing12379
Add STDIO UART as restricted for FPGA testing for all targets and support for restricting GPIO12378
TEST: Refactor mbedmicro tests to use utest framework12369
LPC1768: Fix ARM toolchain baremetal by defining 2 memory region12368
Fix NRF52840_DK UART driver and adapt FPGA test12366
M2351: Support GCC12364
MIMXRT1050: Update for deep sleep latency12363
Mergify: fix release version label12362
TARGET_STM: L0 CUBE SPI async mode send next byte after previous one is read12359
MXRT1050: Add bootloader support12357
TARGET_STM32F1: don’t set ADC common register when ADC doesn’t support it12356
Fix NRF51, NRF52 gpio_irq_init() function12353
M2351: Support IAR12350
implements i2c_free for STM12349
Nanostack: Update Wi-SUN configuration12345
USBMSD; NFCEEPROM; mbed_compat: Fix compiler warnings12344
Unittests for DNS improvements12342
LPC55S69: Fix UART & GPIO HAL to pass FPGA CI test shield tests12341
STM32L4: Fix the UART RX & TX data reg bitmasks12339
Cellular : add modem version in mbed trace12338
STM32L5 : add DISCO-L562QE board support12336
Disable write buffering on debug builds.12335
Remove CPU usage example from CI build12334
Update cellular drivers/tests for UBLOX_C030_R412M12333
UDP echotests fix in case of no memory or device busy.12332
FIX: Disable Analogin D13(PA_5) on some NUCLEO targets12331
STM32: enable QSPI test with MX25LM51245G octo SPI12330
Fix FAT filesystemferror
greentea test(SD Component)12329
AT_CellularStack: crash during TCP test12327
Doxygen: don’t extract static members12326
Correct SysTimer absolute time calculations12324
Fix inconsistency between mbed crc and psoc6 crc implementations.12322
minimal-printf: README correction12321
Ble driver set random static address12320
ONME-3433 ESP8266 driver support for UDP get - modified ESP8266 drive12317
MXRT1050 Flash support12316
Fix general filesystem greentea test12315
Add check for APPLE & MACH to fix unit tests on macOS12312
Fix to sending IPV6 UPD packet fails IPv6 enabled in SoftAP intf12310
Greentea DNS tests workaround.12308
Tests: add missing mbed_trace.h multihoming header12307
Fix the missing retrieve error context function call.12305
Cellular: Remove support for multiple ATHandlers12304
QSPIF: Enable QPI mode as a second option, if available12303
Fix ARM compiler warning for microlib12302
Remove _LIBCPP_EXTERN_TEMPLATE ARMCC compilation flag12299
MIMXRT1050: Add Watchdog support12297
Corrected minimal-printf README12296
FPGA_CI_TEST_SHIELD : force all peripheral to be tested12295
STM32H7 correct PWMOUT instances12293
Cellular: Remove API’s empty default implemetations12292
Multiple labels need to be in an array of strings12291
Minor optimisation to ATCmdParser unit test code12287
Fix unittests on windows(mingw)12286
Add new target: NUCLEO_L452RE-P12283
STM32WB - Update CubeDriver from v1.0.0 to v1.4.012282
Fix for issue #12268 (SerialBase.cpp: fix initialization list)12281
Cellular: Refactor socket_stack_init() from generic to modem specific12280
EFM32: add UART and LEUART for EFM32GG1112278
Rename “default_lib” to “c_lib”.12275
Fix call to sorted by providing key to sort on.12274
mergify: enable for any pull request12273
unittests: disable coverage report filtering12270
BUGFIX: SFDP Sector Map Table Parameter ID LSB is 0x8112269
mergify: add fixes to the conditions12267
Fix UDP socket test cases12265
Refactor unnecessary functions from cellular driver12263
unittest: fix coverage filtering12262
Test: Increase the UART flush delay12261
Cellular: Fix compilation fail with APN lookup enabled12260
Add KSZ8041 as a supported PHY for the LPC17xx series12258
Disable the cell AUX UART by default on EP_AGORA12257
psa: Ensure spaces before partition name comment12254
unittest: fix ATCmdParser test segfault12253
storage_abstraction: deprecated since Mbed OS 5.5 and now removed12251
Cellular: Remove friend definitions from cellular state machine12249
Cellular: Remove deprecated CellularDevice::stop()12245
NUCLEO_WB55RG - add device name “STM32WB55RGVx”12243
Add timer shutdown after time stop on deinit12241
M2351: Remove LPTICKER to spare memory for non-PSA minimal secure build12240
Cypress: add SoftAP host tests12239
Fix DNS multiple query hints to perform both IP4 and IP6 tests12237
STM serial free: Set pin function only if pin is defined (not NC)12234
ESP8266: Add built-in hostname resolution handling (disabled by default)12231
Import latest python scripts and MCUBoot image12230
TEST: use K64F replace DISCO_L475VG_IOT01A to run some example test12228
Need RAM and ROM size for compilation12227
Cellular: AT + QICSGP set up APN fix12226
target_test - assert if sectors keyword missing12225
Fix baremetal heap and stack initialisation12223
RZ_A1H and GR_LYCHEE: Enable bootloader support12220
NRF5x targets: Replace UARTSerial references with BufferedSerial12213
ESP8266: Replace UARTSerial references with BufferedSerial12211
Cellular: Replace UARTSerial references with BufferedSerial12210
Fix for issue #10725: disable lp-ticker for STM targets which uses RTC/LSI for lp-ticker12209
NXP target: Replace UARTSerial references with BufferedSerial12208
ST targets: Replace UARTSerial references with BufferedSerial12207
Add BufferedSerial class to replace UARTSerial12201
TARGET_STM: FW driver files refactor proposition12199
Format targets.json12198
uARM: Fix deprecate warning printing wrongly for GCC_ARM/IAR toolchain build12166
NRF52840_DK: Fix baremetal linker error12160
nRF52: Properly configure nRF SDK for nRF52-series targets12157
ESP8266: Avoid duplicate data sends12154
NRF51822: Fix baremetal linker error12153
Hackathon: Increase coverage of the SPI master FPGA test12152
Updated 113 targets with missing detect_codes12150
Update Mbed TLS and Mbed Crypto to latest as of 2019-12-2012142
Thread: remove methods deprecated in 5.1012139
HAL: Add a get_capabilities() function to ResetReason API12060
Improve reliability of KVStore general tests12035
Preparation for Callback changes12023
GCC: remove -fno-delete-null-pointer-checks11904
TOOLS: enable build greentea test coverage for HW11874
ARMC6: Add a build profile extension with the link-time optimizer enabled11433
FPGA CI shield: Add a watchdog timing test12611
STM32F4 UART issue when parity enabled12601
Remove RtosTimer deprecated class12599
Greentea kvstorage tests Cypress targets fix.12598
Change Mutex lock and unlock APIs return value to void12597
Cellular: Add ALT1250 PPP cellular target12596
Remove Mutex deprecated API12595
Fixed typo ‘timout’12590
Importer script: remove apache-2.0.txt12583
STM32F7: baremetal profile support12580
Reverting #12312 as it breaking current WiFI connect()->Disconnect() sequence12571
C++11-ify NonCopyable12567
STM32 EMAC : increase thread size when mbed-trace is enabled12560
crypto: Update to Mbed Crypto 3.0.112559
DISCO_L4R9I correct LED pins12558
Fix issue when TDBStore has varying erase sizes between areas.12557
M487: Fix crash on WDT reset from power-down12554
Remove FileSystemLike deprecated APIs12553
Remove DirHandle deprecated APIs12551
Remove mbed power management deprecated API12550
Remove mbed interface deprecated API12549
Remove FileHandle deprecated APIs12548
tests-integration-net-single: fix build error12545
threads: fix timeout (set to 25)12543
TLSSocket: Remove deprecated connect12540
fix for suppress ‘unknown object name’ messages from memap.py12537
Minor optimization to improve readability of code12536
Fixed typo ‘thead’ in thread_neighbor_class.h12534
Remove the deprecated CallChain class and its APIs12533
Remove CriticalSectionLock deprecated APIs12531
Add check so that FlashIAP does not allocate memory on flash_init failure12530
Remove reset reason from Future Sequana targets.12529
travis: scancode ret value not cat fix12527
Remove the deprecated ATCmdParser APIs.12526
GCC: Fix the toolchain LTO workaround for Python 312525
Remove the deprecated Ticker APIs12524
Bugfix: Concurrent SFDP header address init fixed12521
Remove explicit include of mbedtls/config.h12520
Fix initialization order for I2CEEBlockDevice12519
tests-mbed_hal-sleep_manager: fix counter wraparound handling12518
Remove InterruptIn deprecated APIs12514
mergify: add “mergify skip” label12511
allow reconfiguring a running watchdog12509
EFM32: RTCC bugfix for #1237412508
Fix minimal-printf stack overflow12507
Cellular: release _semaphore only once12506
Fix 2 string based IP address removal regressions12505
travis: ignore grep return value for scancode12502
Fixed macro error12501
Remove the deprecated the InterruptManager APIs12500
Remove the deprecated ethernet APIs12499
Cellular: For ublox modem, read ‘@’ char first then send data.12498
TEST: update usb tests and guard them with macro12496
EFM32: fix mbed_hal-pinmap test12495
C++11-ify virtualisation in FileHandle + Serials12492
Update psoc6cm0p asset to version 1.1.1.12491
Fixed error of function ‘mac_fcf_lenght’12490
Fixed error of structure mlme_key_descriptor_t12489
C++11-ify virtualisation in lwIP classes12488
C++11-ify virtualisation in Nanostack classes12487
C++11-ify virtualisation in netsocket12484
TDBStore magic number if endian sensitive fix comment12481
Nanostack release for Mbed OS 612480
Fix SPDX identifiers and licenses (excluding features and targets)12478
M2351: Fix some minor issues12477
HAL: Add a get_capabilities() function to GPIO API12476
Fix build failure when target’s cmsis doesn’t exist12475
Proposal to remove SPIFReducedBlockDevice12473
Fix Freescale MCUXpresso AnalogOut12467
Inline nsapi_create_stack(NetworkStack)12466
MBED_STACK_STATS_ENABLED : Add stack_name information in greentea metrics12464
STM32 EMAC : add configuration choice and connection check12462
Fix static ram memory statistics for arm compiler12460
Allow MISO/MOSI set to NC during SPI initialisation (fix for issue #12435)12458
Add Musca B1 target12454
Nuvoton: Optimize spi_master_write(…) in case of no SPI MISO pin12453
STM32 TRACE_GROUP update12451
STM32 : enable MBED trace for QSPI12450
SFDP: consolidation of SFDP parsing [3/5]12449
Add missing pins def for ARDUINO_NANO33BLE12447
fix targets device_name with nrf51822 32K SoC12446
Add Eight-Bit-Addressing mode to I2CEEBlockDevice.12445
Fixed typo: ‘lenght’ in ip6string.h12444
Fixed typo: ‘lenght’ in ns_crc.h12443
Fixed typo: ‘lenght’ in coap_service_api.h12442
Fixed typo: ‘lenght’ in minimal-printf12441
CAN: fix length calculation (fixes #12311)12440
Implement reset_reason api for cypress targets12438
Fix CY8CPROTO_062_4343W baremetal build12437
travis: add PR license check for missing/not-valid license files12436
Remove GPIO pin-maps used for FPGA testing12431
Nordic NRF52 GPIO API: Fix non-deterministic failure to configure interrupt handling12427
Minor optimisation to mcr20a-rf-driver code12426
SFDP: consolidation of SFDP parsing [2/5]12421
Cypress Targets Reorganization12420
Remove the deprecated CAN APIs.12415
STM32H7 : add readme file for dual core use12384
STM32WB : update BLE part with better support12358
FIX: add cbor module in the requirement.txt12319
Fix userallocatedevent imp12318
SFDP: Move Sector Map Parameter Table parsing under SFDP module12233
Enable minimal-printf by default for all builds12206
Kvstore tests11942
IPCore String-based API removal11856
GCC: Add a build profile extension with the link-time optimizer enabled12941
Correct Timeout rescheduling12938
Correct core RTOS sleep routine timing12935
Remove unsupported targets12924
STM32F4 bypass PLL configuration when already done by bootloader12919
ExhaustibleBlockDevice: revert commit 10481f212913
usbcdc: provide doxygen only macro for doxy builder12889
Convert newlines on all terminal (tty) devices by default12876
802.15.4 STM S2LP driver update12874
nRF: use Mbed-default boot-stack-size & fix stack_size_unification test12873
Bare metal profile: USB class device support12872
Add the Doxygen note to non-supported RTOS kernel APIs.12866
Update mbed-coap to version v5.1.512864
Remove unsupported targets12860
STM32F7 update drivers version to CUBE V1.16.012855
Bare metal: Enable signals greentea test12853
ARCH_PRO: Remove uARM tooolchain support12852
Update mbed-coap to version 5.1.412850
Fix intermittent sync fail in tests-filesystem-general_filesystem12849
TEST: Update example test12846
Revert “Remove MTB_STM_S2LP target”12844
Add invalid data case to tdbstore ram init12843
enable storage tests on baremetal12841
Drops prebuild bootloaders not supported in Mbed OS 612840
Musca-B1: Grant Non-Secure access for MHU0 on EXP012839
Nuvoton: netsocket correction of judgment errors12833
Override c_lib to small for all targets12830
Cellular: Fix BG96 offloaded DNS query for new API12828
Update CYSBSYSKIT_0112827
enable common tickers & lp_tickers hal tests in baremetal mode12825
Turn on ARM linker –inline12823
Allow Devicekey::generate_root_of_trust() to define key size.12819
Cypress: Fix unitialized memory in spi_master_write12818
Add the Doxygen note to non-supported RTOS and Driver class.12817
Cellular: Disable AT traces when mbed-trace is disabled12816
Baremetal: Enable Semaphore greentea test12815
Cellular: Fix build problem if cellular.debug-at is set as null12811
Remove deprecated Platform header files12810
Remove unsupported targets12804
Cellular: Check if serial is supported12802
Nuvoton: Add ‘sectors’ configuration option into targets.json12799
TDBStore: Handle odd number of sectors in block12797
Add custom board option to STM32 pins generation script12792
Seeed: Removing unsupported Seeed targets for OS 612791
Fix for IPv6 Dual Stack support12787
Cypress: Add CYESKIT-064B0S2-4343W12786
Baremetal: Enable kernel_tick_count greentea test12785
Cordio: Apply Packetcraft’s fix for possible SweynTooth vulnerabilities12783
LittleFSv2: Bring in v2.212779
Baremetal: Enable EventFlags greentea test12778
Add I2C api to Musca-B1 target12775
Remove unsupported targets12769
Fix WIFI-GET-RSSI test case failure and remove extra label from CYW9P62S1_43438EVB_01 in target.json12768
ESP8266 Drv support baud-rate switch12765
Update MTS_MDOT_F411RE target and remove bootloader from tools12763
Cellular: Fix ATHandler::read_string to handle delimiter inside string12761
Callback: Trivial default12758
Fix: Return the correct std I/O device handle for Microlib in retarget code12757
Update Mbed OS with Mbed Crypto merged into Mbed TLS12755
Update astyle filtering rules for Nanostack12754
Nanostack release for Mbed OS 612752
PSoC 62/63: set correct mbed_ram_start and mbed_ram_size12748
Fix build failure due to C lib selected12746
Removed Toshiba targets (AdBun-M066, M3H6 & M3HQ).12745
add config option for phy media interface12744
Change files in TARGET_SDT64B12743
mergify: Add 5.15 rule12742
BLE: remove deprecated APIs from Gatt and SecurityManager12741
Add Semtech Lora radio drivers12739
FIX: update usb device tests for deprecated API12738
Remove Mbed SPM12737
Remove PSA implementation for v8-M and dual CPU targets12736
rtos: Improve CMSIS-RTOSv2 app compatibility12735
Make MUSCA B1 and MUSCA A1 TF-M ready12734
NUCLEO_WB55RG : enable IAR export12733
odin targets: remove release version12731
Testing: Fix multihoming test compilation issues12730
BLE Gap deprecation cleanup/rework12729
Mbedtls fixes12728
STM32 EMAC : increase thread-stacksize12719
FPGA CI TEST SHIELD: add test config json file12716
M487: Update BSP12715
RZ_A1H remove usage of ethernet hal API12712
Fix LTO issue with minimal-printf12711
targets:MIMXRT1050: Add QSPI flash support12708
Remove compatibility for Arm Compiler versions prior to 6.01.005012706
Tests: Remove support for ARM Compiler 512705
mbed-client-cli: Remove support for ARM Compiler 512704
LWIP: propagate the apimsg->err out of netconn_apimsg()12702
TFM: Remove ARM Compiler 5 considerations12701
Add custom BT Firmware image for CYW9P62S1_43012EVB_0112699
Storage: Remove support for ARM Compiler 512698
Drivers: Remove support for ARM Compiler 512696
rtos: declare vector table type as in Technical Note 1157812694
Remove netsocket icetea tests and TCPServer12693
USBMSD security updates12692
EFM32G11: Add RGB LEDs to PinNames.h12691
Replace small with std C lib if not supported by a target’s toolchain12690
STM32: solve GCC Unspecified RTOS error12686
STM32 EMAC : remove TIMEOUT issue when cable is not plugged yet12685
Remove deprecated netsocket methods12683
SocketAddress rework12682
MBED TRACE default level is INFO12681
SPIFBlockDevice doesn’t play nice on shared SPI bus #11732.12680
QSPI driver also acquires ownership upon initialization now.12679
PSoC6: enable export to uVision and IAR12677
STM32H7: enable QSPI12676
Remove deprecated BLE:: APIs and unsupported services12674
Remove Maxim and SoftDevice BLE stacks which do not support the latest APIs12673
Mergify update12672
Remove deprecated ARMC5 reference frommbed compile -S
output12671
Netsocket/lwIP Stack: Remove support for ARM Compiler 512670
ESP8266: Fix typo: gateway to netmask12668
tests-integration-fs-threaded: makes tests independent from each other12667
Add check for return code in DeviceKey to avoid injecting invalid ROT12666
Makefile: render compatible with some GNU make versions (revert #12646)12663
Migrate NUCLEO_F303K8 to Mbed OS 5 baremetal12662
Add workaround for STM32F4 hardfault in sleep mode12661
Adjusted SecurityManager Doxygen ASCII art12660
M2351: Support custom board12659
Rebuild WICED libraries after Mbed update12658
tests-integration;tests-filesystem: fix code causing compiler warnings and enable more tests12655
Remove ARMC5 reference from Mbed OS platform12654
Removed all references to __CC_ARM12652
Add moduletests for FileSystemStore12651
Cellular: Make Quectel EC2x modem start up timeout configurable12649
Expose SerialBase IrqType member to UnbufferedSerial class12648
Nanostack: Add config for Wi-SUN device type12646
Makefile: fix for overlong command line12645
Storage: Use internal flash for KVStore always if default config12642
M263: Support custom board12640
Remove minimal-printf extension profile12639
Remove the deprecated ethernet hal APIs12638
Enable storage tests to all targets12637
Cordio: fix for issue #1262512636
Extend unit tests for TDBStore12633
Cellular: Add offload TLSSocket implementation inside feature flag12632
Fix snprintf in minimal-printf library12631
Update psutils to address security issue12630
mbed test with dual core targets12629
Add “rtos-api” to bare metal12626
STM32F4 update drivers version to CUBE V1.25.012624
Cellular: Support EC2x power control pin support no connect12617
Correct doxygen for Mail::get12612
TEST: add RTOS macro to enable integration test12610
Add UBLOX_onboard_modem_api for power up UBLOX_C027.12609
Remove Semaphore deprecated APIs12607
Use toolchain’s struct stat if available12606
Netsocket: Introduce set_ip_address and get_dns_server APIs12603
Add target CYSBSYSKIT_0112589
Cellular: Add deativation of context associated with profile12581
Fully enforce NonCopyable12576
M487: Support custom board12572
Remove mbed wait deprecated APIs12570
Improve nsapi_create_stack12569
Replace with weak mbed_error_hook implementation (deprecate the hook function)12547
EFM32: update emlib to 5.9.112528
SFDP: consolidation of SFDP parsing [5/5]12522
Add property API to InternetSocket12472
Add WPA3 support in mbed-os for green tea tests12463
Clean up and optimise socket statistics12456
COMPONENT_BlueNRG_MS creation : ST Bluetooth Low Energy module12425
C++ Chrono support12410
Remove the deprecated RawSerial, UARTSerial, Serial12387
Add Objects Extensions Configuration Parameter to HAL12300
Add get_time function to ESP826612271
Make cypress psoc64 TFM ready and also add TF-M initialization12161
nRF52 I2CSlave Implementation12036
Callback extension and optimisation11726
Disable C++ static destructors in ARMC6 compiler11629
Refactor TDB internal bounds computation12995
build tools: fix target toolchain12984
Disable mbed 2 and unsupported targets12982
build api: fix release version12981
IOTSTOR-1044 - SPIFBlockDevice is broken in Mbed OS master(6),12978
Update psoc6pdl to v1.5.212977
STM32: remove uARM toolchain12971
MemoryPool fixes12961
Remove nRF51 targets12960
STM32 code cleaning for MBED-OS612959
STM32: targets json rework12958
Fix vector table bug when using bootloader on STM32WB5512956
NRFCordioHCIDriver: remove idle_hook (and RTOS dependency)12951
Clean-up S2LP driver configuration12949
CMSIS: update to CMSIS 5.7.012947
Fix setting the QE bit on ISSI Flash memories12945
Cleaning up PinNames.h for SDP-K1 board.12944
Fix the USB MSD greentea host side pyusb_msd.py script12943
Cypress: Update assets to latest12942
Add Timeout rescheduling test12923
Nuvoton: Refine more on watchdog HAL12917
Bare metal profile: Enable USB serial greentea test12916
USB basic and hid greentea test cleanup and enable to the bare metal profile12915
Optimise HAL_GetTick API12914
Add possibility to configure Mesh MAC neighbourtable size.12909
Cypress: Misc target updates12906
Work around C++14 assert problem12904
SDBlockDevice: Convert to Chrono12903
Nanostack HAL: Convert to Chrono12902
USB: Convert to Chrono12901
Rationalise Mail/Queue/MemoryPool timing APIs12896
Nuvoton: Fix watchdog reset failure on meeting Hard Fault12890
[SX1272 & SX1276 Driver] Fix Fifo Pointer in Continuous Mode12888
Musca-B1: Fix I2C pinmap array12875
KVStore: Fix buffer overrun when device key size doesn’t match12865
Nuvoton: Support bare-metal profile on NANO130 and M45312856
ST Boards: Remove uARM tooolchain support12836
Wi-SUN added regulatory domain Brazil12808
KVStore: Remove incorrect check with non-default configuration of FLASHIAP12805
Tests: USBSerial: Handle minimal printf limitations12801
Add base support for STM32H74512721
ESP8266: static address configuration and dhcp enable/disable added12623
LPC1114: baremetal profile support12433
ESP8266: Convert to Chrono12432
NFC: Convert to Chrono12430
Cellular: Convert to Chrono12429
DTLSSocketWrapper: Convert to Chrono12428
nsapi_dns: Convert to Chrono13008
tools: Warn when ARMC5 is no longer supported13007
tools: Support default_lib and c_lib13003
Mark PSA as an experimental APIUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-6.0.0”.
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.3
Downloads: zip tar.gz
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 CordioFor 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 binaries12869
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.1512863
STM32 GCC Unspecified RTOS error12859
Update mbed-coap to version 5.1.412854
Implement psa_hash_*() functions12845
Backport SweynTooth fix for Cordio to 5.1512842
Remove ethernet interface logic for SoftAP and STA12813
[mbed-os-5.15] Nanostack release to mbed-os-5.15 branchUsing 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
Downloads: zip tar.gz
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 viambedtls_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 areseed_counter
value of0
to mean “not yet seeded” will need to instead handle errors from calls tombedtls_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.1512776
Update stm32 emac ethernet driver12771
Cypress: Partial backport of #1276912767
Upgrade to Mbed TLS 2.21.0 and Mbed Crypto 3.1.012753
Cypress: Backport PRs from 6.0 to 5.15.212727
USBMSD security updates (bp #12693)12724
RZ_A1H and GR_LYCHEE: Enable bootloader support (Mbed OS 5.15)12723
Mbedtls fixes for 5.15.212717
Add fix for STM32F4 hardfault in sleep mode12653
Fix issue when TDBStore has varying erase sizes between areas. (Backport)12650
Cellular: ALT1250 PPP cellular driver for mbed-os 5.1512485
Nanostack release for Mbed OS 5.15Using 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-5.15.1
Downloads: zip tar.gz
As we prepare for the release of the next major version of Mbed OS, we still need to ensure that the needs of partners and customers are met, so today we are releasing a patch release for Mbed OS 5.15 (Mbed OS 5.15.1) This release includes a mix of defect fixes required to support existing customers and the enablement of a small number of new targets to support marketing activities ahead of Embedded World later this month.
Our focus on the next major Mbed OS release continues and we’ll do our second alpha release next week.
Summary
In this release we have added the following targets: * Samsung Exynos i S111 * NUCLEO_G071RB * HANI_IOT * NUCLEO-L552ZE-Q
We have fixed the following reported issues:
12361
OKDO odin driver - ARM in nightly error hciCmdAlloc not defined12087
Bad AT+COPS command with plmn12005
Build error with NUCLEO_H743ZI2 (Armc5, Mbed os 5.14)There are also a number of other fixes and code improvements.
Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
12355
HANI_IOT: add new target board support12106
Add Samsung Exynos i S111 target12093
TARGET_STM: add support of board NUCLEO_G071RB12306
STM32L5: NUCLEO-L552ZE-Q new targetFixes and Changes
12377
Update psoc6cm0p asset to 1.1.012370
OKDO_ODIN_W2: Reenable lp-ticker and BLE12355
HANI_IOT: add new target board support12306
STM32L5: NUCLEO-L552ZE-Q new target12167
Update Cypress Targets and Assets12164
Pr dev/remove hardcoded timeout in cypress bt code12147
mbed-coap uint16 overflow fix12146
mbed-coap buffer overflow fix12140
STM32 clean mbed_rtx.h file12134
Fix LPC11U35_401 baremetal build12126
Robustify equeue multithread unit test12106
Add Samsung Exynos i S111 target12093
TARGET_STM: add support of board NUCLEO_G071RB12088
Cellular: Fix AT command for COPS manual network selection12022
Make ESP8266 compatible with bare metal profile12015
STM EMAC: compilation issue with ARMC5Using this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.15.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.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.15.0 release is now available.
Summary
This is the last planned minor release from the Mbed OS 5 series and, as such, doesn’t contain many new features. We focused on fixing issues and working on quality and size improvements.
We put a lot of effort into networking, working on various improvements to Wi-SUN, Cellular and DNS, as well as BG96 and ESP2866 modules drivers. We also introduced support for offloading TLSSockets to an external hardware module.
We updated our tools to support Python 3, so they are ready for the imminent end of life of Python 2.7.
We introduced the static pin map extension to the HAL layer, which allows developers to save memory by selecting the used pins at compile time.
We also updated our code base and infrastructure to use the newest versions for compilers: GCC9 and Arm Compiler 6.13.Migration guide
This section lists specific changes that are part of this release and may need special attention.
Add support for Wi-SUN RF channel configuration
Summary of changes
Added support for Wi-SUN RF channel configuration options to Wi-SUN tasklet.
Impact of changes
Wi-SUN RF channel .json options have effect on channel configuration, and they need to be valid.
Migration actions required
Default configuration used with Wi-SUN should be that none of the settings affected by this pull request are set, and Wi-SUN will use the defaults for them.
If application .json configuration file has any of the these settings defined:
wisun-uc-channel-function
wisun-bc-channel-function
wisun-uc-fixed-channel
wisun-bc-fixed-channel
wisun-bc-interval
wisun-bc-dwell-interval
wisun-uc-dwell-intervalthey need to be removed or checked for validity.
Remove string-based API usage within mbed-os
See https://github.com/ARMmbed/mbed-os/pull/11914 for deprecation information. This PR provides
SocketAddress
-based APIs if they were missing after previous changes but does not remove the old APIs.Summary of changes
New
SocketAddress
based API added toESP8266
module, anticipating future string-based API removal.Impact of changes
None.
Migration actions required
None.
Updates to tools for Python 3 compatibility
Python 3 is now supported by the tools.
Summary of changes
No functional changes, code should be equivalent.
Impact of changes
Code should be Python 3 compatible.
Migration actions required
None.
Deprecate string-based APIs in IPCore
This is NOT a breaking change, but it is worth notifying all API users that the string-based APIs are going to be removed soon.
Summary of changes
The following API functions are being deprecated and will be removed in Mbed OS 6:
TCPServer (whole class is deprecated already) TCPSocket::connect(const char *host, uint16_t port); TLSSocket::connect(const char *host, uint16_t port); DTLSSocket::connect(const char *host, uint16_t port) InternetDatagramSocket::sendto(const char *host, uint16_t port, data, size); InternetSocket::bind(const char *address, uint16_t port); L3IP:add_ipv4_multicast_group(const char *address); L3IP:add_ipv6_multicast_group(const char *address) L3IP:remove_ipv4_multicast_group(const char *address); L3IP:remove_ipv6_multicast_group(const char *address) NetworkInterface::get_ip_address() NetworkInterface::get_netmask() NetworkInterface::get_gateway() NetworkInterface::set_network(const char *ip_address, const char *netmask, const char *gateway) NetworkStack::get_ip_address() NetworkStack::get_ip_address_if()
Impact of changes
Code gives
deprecated
warnings whenever old API is used.Migration actions required
Switch to the new
SocketAddress
based API.Bring static pin map extension to master
Summary of changes
- Provide types that will hold static pin maps for peripherals (
PWM
,AnalogIn
,AnalogOut
,SPI
,I2C
,UART
,QSPI
,CAN
). - Provide
xxx_init_direct(xxx_t *obj, static_pinmap_t *)
functions to HAL API (these functions will not use pin map tables). - Provide additional constructors in drivers layer, which will use the
xxx_init_direct(xxx_t *obj, static_pinmap_t*)
HAL functions. - Provide default weak implementations of
xxx_init_direct(static_pinmap_t *)
functions. These functions will call standardxxx_init(xxx_t *obj, PinName, ...)
function (backward compatibility for targets that don’t support static pin map mechanism). - Provide
constexpr
utility functions to look up for pin mapping in compile time (requires C++14). - Initialize console using static pin map mechanism, so
hal\mbed_pinmap_common library
is not needed and can be removed. - Modify FPGA tests to verify
xxx_init_direct(xxx_t *obj, static_pinmap_t*)
APIs.
Make SMS configurable in Cellular stack
Summary of changes
Cellular stack now has configurable SMS support. This is added to Cellular mbed_lib.json. It is enabled by default for backward compatibility.
Impact of changes
If one does not need SMS, disable it in mbed_app.json to decrease the application footprint.
Migration actions required
None.
mbed_retarget: Add a minimal console implementation to provide basic functionalities
Summary of changes
Add a minimal console implementation in
mbed_retarget
to provide basic console functionalities.
A new configuration parameterplatform.stdio-minimal-console-only
has been added to select it.Impact of changes
Smaller memory footprint for applications that only require basic console functionalities.
Migration actions required
None.
Deprecates NVStore
Summary of changes
NVStore is marked as deprecated.
Impact of changes
NVStore won’t be available from the next major release onward.
Migration actions required
Users must switch to use KVStore. For documentation, please see Docs APIs Storage KVStore .
Update to Mbed TLS 2.20.0d0 and Mbed Crypto 2.1.0d0
What is breaking?
The PSA Crypto secure element (SE) driver API - an additional parameter (a persistent data pointer) is now also passed to the slot validation for the driver to use.Why is this breaking?
Mbed OS tracks the unstable PSA Crypto API. This particular break is to enable drivers to modify persistent data during slot validation.Migration
Users implementing SE drivers should add an additionalvoid *persistent_data
parameter to the slot validation callback, regardless of whether thepersistent_data
will be used or not.Old New psa_drv_se_validate_slot_number_t
did not have a modifiablepersistent_data
parameterpsa_drv_se_validate_slot_number_t
now has a modifiablepersistent_data
parameterNew declaration of
psa_drv_se_validate_slot_number_t
:typedef psa_status_t (*psa_drv_se_validate_slot_number_t)( psa_drv_se_context_t *drv_context, void *persistent_data, const psa_key_attributes_t *attributes, psa_key_creation_method_t method, psa_key_slot_number_t key_slot);
Old declaration of
psa_drv_se_validate_slot_number_t
:typedef psa_status_t (*psa_drv_se_validate_slot_number_t)( psa_drv_se_context_t *drv_context, const psa_key_attributes_t *attributes, psa_key_creation_method_t method, psa_key_slot_number_t key_slot);
Check return of BlockDevice::init() in TDBStore.
TDBSTore::init()
is now allowed to return error codes from underlying BlockeDevice.
Previously, the API was limited to return onlyMBED_ERROR_READ_FAILED
orMBED_ERROR_WRITE_FAILED
, which might have hidden the actual error code from the device.
Now, the application will get the original return value passed from BlockDevice.modified Wi-SUN tasklet to return success when calling connect twice
Summary of changes
As stated in the Mesh API documentation, we should return the status NSAPI_ERROR_IS_CONNECTED if connect is called twice. This PR (11556) fixes it.
Impact of changes
If connect method is called twice, a different status code is returned.
Migration actions required
Implementations that rely on NSAPI_ERROR_DEVICE_ERROR status code when calling connect twice as their recovery method need to change the handling to the correct status NSAPI_ERROR_IS_CONNECTED.
Enable DER coded certificate support to Wi-SUN mesh API
Added support for DER formatted certificates and keys to Wi-SUN certificate API.
DNS manual cleanup mechanism added
Add
nsapi_dns_reset()
function to be able to clear a DNS cache when it is not needed anymore.ESP8266 unlocks deep sleep when disconnected
This release contains changes for ESP8266.
UART input is enabled and deep sleep is locked:- If module is connected to the network.
- For operations which communicate with the device but do not require network connectivity
UART input is disabled and deep sleep is unlocked:
- If module is disconnected
Cellular: Add API to clear CellularDevice
CellularStateMachine
callsCellularDevice::clear()
to clean-up the modem on initialconnect()
.
The previous functionality can be restored by defining the flagcellular.clear-on-connect: false
.ESP8266 nonblocking connect/disconnect
This release contains changes for ESP8266 nonblocking operations, which make them compliant with documentation:
connect()
anddisconnect()
will now return immediately in non-blocking mode and pass all blocking operations to asynchronous thread.- In the case of consecutive calls of
connect()
ordisconnect()
, the returned value from the second one may beNSAPI_ERROR_BUSY
. - If
ESP8266Interface::set_credentials(...)
is called during connecting to the network, it is not executed andNSAPI_ERROR_BUSY
is returned.
The change will not affect any users, unless they took advantage of the incorrect nonblocking behavior.
Offloaded TLSSocket and BG96 support for it
Some external modems have an internal TLSSocket implementation, which can be used instead of Mbed TLS based TLSSocket. Using the offloaded TLSSocket can result in significantly reduce ROM usage.
Offloaded TLSSocket can be enabled with
"nsapi.offload-tlssocket"
. The used network stack (for example, the cellular modem’s CellularStack class) must support the setsockopt’s defined in nsapi_types.h.Compared to the original Mbed TLS based TLSSocket, offloaded TLSSocket brings in one significant API limitation. Offloaded TLSSocket requires setting of certificates and keys after
open()
and beforeconnect()
calls, where Mbed TLS based TLSSocket allows setting these beforeopen()
call.This PR also includes a reference implementation for BG96 cellular modem.
Add watchdog lower limit timeout test
watchdog_features_t
extended by twouint32_t
members:clock_typical_frequency
andclock_max_frequency
. These values can be used to determine the accuracy of an uncalibrated watchdog clock.Introduce an Mbed config to enable XIP
Introduce XIP-enabled config to allow text/RO data to be loaded to QSPI flash where XIP (execute-in-place) is supported. This allows programs with larger text/RO data sections to run on a system with smaller on-chip flash.
This feature is disabled by default on all targets.
XIP can be enabled by adding
target.xip-enable: true
inmbed_app.json
, then locating the text/RO data sections to QSPI flash region in the linker script. In the boot sequence, QSPI flash needs to be configured to XIP mode.LwIP: Add ICMPv4 Socket support
The netsocket feature is extended with ICMP socket implementation. This change is only for ICMPv4 and ICMPv6 is not currently supported
Free serial resources if not needed anymore
The handling of enable/disable input/output of
UARTSerial
is moved intoSerialBase
. The underlying serial peripheral is freed if both input and output are disabled to reduce current consumption. If either input or output is enabled again, the serial peripheral is reinitialized.Tools: check for GCC 9, rather than 6
GCC 9 is now the officially-supported compiler version for the GCC_ARM toolchain.
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 the 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 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 hardware 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 hardware accelerated engines. - Workaround: None.
- 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 peer’s 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, such as GCC_ARM.
- Reported Issue: https://github.com/MicrochipTech/cryptoauthlib/issues/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: https://github.com/ARMmbed/mbed-os/issues/8064.
- Priority: Major.
Cordio Link Layer: GAP Advertising parameters need to be set before advertising data is set
- Description: This issue only affects users of the Cordio Link Layer. If this ordering is not respected, GAP advertising data will not be set correctly.
- Workaround: If using the BLE API, apply changes from https://github.com/ARMmbed/mbed-os/pull/10772. If using the Cordio Host Stack API, make sure Advertising parameters are set before advertising data is set when using the Cordio Link Layer.
- Reported Issue: IOTPAN-486.
- Priority: Major.
NRF52480: Bare metal build fails due to Cryptocell dependency
- Description: The bare metal build on NRF52480 fails because the Cryptocell depends on Mbed TLS. Mbed TLS is not present in bare metal builds.
- Workaround: Remove the CRYPTOCELL310 feature using your application’s target config.
- Reported Issue: https://github.com/ARMmbed/mbed-os/issues/11428.
- Priority: Major.
ArmC5 builds may be broken
- Description: Some boards fail to build with Arm Compiler 5. Mbed OS uses Arm Compiler 6 by default for most of the builds. Arm Compiler 5 is deprecated and will be removed in Mbed OS 6.
- Workaround: Use ArmC 6, GCC or IAR.
- Reported issues: Various https://github.com/ARMmbed/mbed-os/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+%28ARMC5%2C+Mbed+OS+5.14%29
- Priority: Low.
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: Use other compilers.
- Reported Issue: IOTTHD-3898.
- Priority: Major.
Test report
OOB (out-of-box) testing
- Manual OOB testing has been carried out against 5.15.0 RC1/RC2/RC3.
- OOB testing is focused on the out-of-box experience with official Mbed OS examples.
Release automated CI testing
In addition to the regular pull request tests and nightly tests, we also ran branch tests for mbed-os 5.15.0-RC1/RC2/RC3.
CI pipeline tests
- Compilation tests: ARMC6 ALL PASSED
- Compilation tests: GCC_ARM ALL PASSED
- Compilation tests: IAR ALL PASSED
- Unittest ALL PASSED
- Greentea test SOME FAILS
- Example test ALL PASSED
- Exporter test ALL PASSED
- Cloud Client integration test ALL PASSED
- Memory usage test ALL PASSED
- Mbed 2 build test ALL PASSED
The Greentea test failures are:
- UBLOX_EVK_ODIN_W2 failed on network-wifi tests ---- Tracked by defect IOTPART-8659, waiting for Partner’s input for fixing.
- UBLOX_C030_U201 failed on netsocket tests ---- Tracked by defect ONME-4400, under investigation by Mbed teams.
- UBLOX_C030_U201 failed on LP_ticker tests ---- Tracked by defect IOTHAL-528, not a regression, under investigation by Mbed teams.
Test numbers:
- Greentea test number 1421 (-33 ).
- Unittest number 624 (+84 ).
Targets coverage:
In Mbed OS 5.15, compilation test targets scope has not changed. It remains the same for all Mbed OS enabled targets.
As of the Mbed OS 5.15.0 release, we run Greentea tests on 11 targets:
- NRF52840_DK.
- DISCO_L457VG_IOT01A.
- K64F.
- K66F.
- LPC55S69.
- NUCLEO_F303RE.
- NUCLEO_F411RE.
- NUCLEO_F429ZI.
- NUCLEO_F767ZI.
- UBLOX_C030_U201.
- UBLOX_EVK_ODIN_W2.
Compared to the Mbed OS 5.14.0 release, we have added testing for:
- NRF52840_DK.
And removed testing for :
- NUCLEO_F207ZG.
- NUCLEO_F746ZG.
- NUCLEO_F746NG.
Coverity
In this release, the number of Coverity issues has reduced from 77 to 49 ( -28).
Critical Coverity issues have reduced from 15 to 13 ( -2).Code coverage
Test code coverage has been tracked, and the information is published on COVERALLS (https://coveralls.io/github/ARMmbed/mbed-os).
- Since the 5.14 release, we have had a code coverage base alignment leading to the inclusion of all the components of Mbed OS and a fixed code base.
- In the coverage base alignment, our code coverage dropped from 60% to 18%.
- Mbed TLS Mbed Crypto coverage data has been merged, and overall coverage has increased to 30%.
Memory monitoring
Mbed OS ROM size has increased by approximately 2.8K, mostly because of updating GCC6 to GCC9. (The std library increased by approximately 1.5K).
Other contributors to the ROM size increase include:
- nanostack-libservice +273.
- LWIPInterface.o +256.
- Netsocket +666.
- Storage - TDBStore +491.
Contents
Ports for upcoming targets
11886
Add target for CY8CPROTO-062S3-4343W11846
Add support for Makerdiary nRF52840-MDKFixes and changes
11979
Bare metal Greentea tests compilation fixes11978
LPC55S69_NS: Fix bare metal compilation error11971
TDBStore: Unlock the master mutex even after garbage_collect()11967
Fixed crashing nsapi_dns unittest11966
Fix targets.json syntax errors11963
STM32 USB: Add __HAL_RCC_PWR_CLK_ENABLE11959
Minimal Console: Fix compilation error11958
Add support for Wi-SUN RF channel configuration11956
tests-mbed_hal-sleep_manager: Fix regression found on since PR #1172111950
DISCO_H747I: Add support of MBED_TICKLESS11949
Fix for ArmC5 compilation errors for some targets11947
Minimal Console: Fix syntax errors11944
Cypress: Minor fix for mbed astyle11943
Split integration tests in fs/net11941
Remove string-based API usage within mbed-os11938
STM32: Update and align serial_clear implementations11937
Cellular: Replace CellularSocket.rx_avail with pending_bytes11936
DNS tests: Cancel asynchronous dns query if it times out11935
Cellular: Mark to be deprecated in CellularDevice11930
Add FlashIAP to NUCLEO_L4R5ZI11928
Allow MBED_ASSERT to throw errors in unittests, so we can verify it11926
Fixed Greentea FileHandle test for microlib11925
Fixed Greentea minimal-printf test for microlib11923
Cellular: Fix PPP to wait until connected event from (LWIP) PPP11921
Updates to tools for Python 3 compatibility11919
Cypress: FPGA: Improve SPI async calls11918
IOTSTOR-978: Bug fixes to TDBStore and SecureStore11915
TESTS: Fix TCP/TLS send_timeout test to nonblocking11914
Deprecate string-based APIs in IPCore11913
LPC55S69_NS default TDBStore size increased to 32kB11911
Update mbed-coap to version 5.1.211908
I2C byte read/write transmission improvement11901
Update MPN for CYW9P62S1_43012EVB_01 board11899
Fixes to PR template11895
TESTS: Allow ipv6_link_local_address() as unsupported11892
Bring static pin map extension to master11890
S2-LP: Sync with development repository11889
Nanostack release for Mbed OS 5.1511888
Pelion enable for UNO_91H11887
Add target for CYW9P62S1_43438EVB_0111886
Add target for CY8CPROTO-062S3-4343W11885
Update to WHD 1.60 release11884
Update Cypress targets11882
DISCO_L475VG_IOT01A: Fix bare metal profile Greentea tests11881
UBLOX_EVK_ODIN_W2: Fix bare metal build and Greentea tests11877
Fix for sending IPv6 UDP packet over link local interface11875
Bare metal: Fix Arm toolchain Greentea test compilation for NUCLEO_F411RE11873
Make SMS configurable in Cellular stack11870
STM32F7: linker scripts updates11868
Cypress Target update to support Manufacturing Test11867
Fix for Cypress GPIO driver (fix for issue #11835)11865
IAR: Enable linker optimizations for develop/release profile11851
Enable FAT ChaN lib configuration with mbed_lib.json11846
Add support for Makerdiary nRF52840-MDK11841
Wi-Fi: Reorder Greentea tests with minor fixes11839
SerialBase.h|cpp [-Wreorder] compiler warning fix11829
USB STM32: Don’t wrap direct function calls in MBED_ASSERT11827
DISCO STM32H747I ETHERNET support, but disabled11825
Bare metal Greentea test for storage component11824
Skip bare metal Greentea test for Network component11821
Skip bare metal Greentea test for PSA component11819
Add code to verify if external Wi-Fi module is still responsible11811
STM32H7 FLASH API issue with M4 core11808
Document Socket API functions return values11796
mbed_retarget: Add a minimal console implementation to provide basic functionalities11789
STM32H7: code and feature alignment for both NUCLEO and DISCO targets11785
Deprecates NVStore11783
Adding set baud rate routine11773
Fix watchdog reset test11755
Unittests for nsapi_dns11735
Dns unittest preparation11721
Bare metal Greentea support11720
ATCmdParser: Merge scanf and recv functions11713
Remove Tickless from STM32F4 targets11711
STM32F7 update drivers version to CUBE V1.15.011701
Arm toolchain: heap setup micro-optimization11687
Update to Mbed TLS 2.20.0d0 and Mbed Crypto 2.1.0d011682
Make FPGA tests to pass on CI targets (SPI, analogIn, PWM)11675
STM32 USB update step 111654
Adjustment of netsocket tests to the lossy mesh network limitation.11641
PmwOut: Add method to enable/disable PWM11634
Serial design draft11595
Check return of BlockDevice::init() in TDBStore.11556
Modified Wi-SUN tasklet to return success when calling connect twice11551
Coverity updates11539
Enable DER coded certificate support to Wi-SUN mesh API11535
DNS manual cleanup mechanism added11514
ESP8266 unlocks deep sleep when disconnected11480
Enable tickless mode in additional tested targets11469
Cellular: Disable cellular.clear-on-connect by default11463
Enable tickless mode in MAX32630FTHR11460
ESP8266 Unified Mbed trace prints.11459
Replaced in ESP8266::oob* recv() with scanf()11444
QSPI : Define default pins at drivers level11430
Member get_interface_name implemented in ESP8266Interface11414
Cellular: Add API to clear CellularDevice11409
ESP8266 nonblocking connect/disconnect11357
Offloaded TLSSocket and BG96 support for it11332
mbed_error.c: Better HW fault exceptions and stack dump11203
Add watchdog lower limit timeout test11032
Add test header files and defined behavior for APIs tested using FPGA-Test-Shield11006
Introduce an Mbed config to enable XIP10978
LwIP: Add ICMPv4 Socket support10940
Deinitialize the pin definition10924
Free serial resources if not needed anymore10618
Tools: Check for GCC 9, rather than 612059
Config: Fix bootloader config errors - propagate errors12058
Add static pin map support: SDBlockDevice, KVStore, system storage (reduce ROM used by Mbed Cloud Client example)12047
NANO130: Fix OOM with packing algorithm at IAR linking12039
Fix build errors for bare metal Greentea tests on NRF52840_DK12033
static pin-map: patch for SerialBase class12030
Updates the Cypress Wi-Fi Host Driver to 1.7.012006
FIX: Fix a bug introduced by static pin map11991
TESTS: Fix integration tests11983
Ublox Odin Driver OS 5 v3.7.1 rc3: Network-Wi-Fi Test Crash Fixes11970
Avoid crashes during fault handler12117
Storage features: fix static pin-map for ArmC512112
Notify on configuration exception rather than breaking buildUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.15.0”.
If you need any help with this release, please visit our support page, which provides reference links and details of our support channels.
- Provide types that will hold static pin maps for peripherals (
-
mbed-os-5.14.2
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.14.2 release is now available.
Summary
In this release we have added the following targets: * CY8CKIT_064S2_4343W * DISCO_H747I (CM7 core) * DISCO_H747I_CM4 (CM4 core) * CYW9P62S1_43012EVB_01
As an exception to our normal patch release rules we have added a new API called get_ipv6_link_local_address in NetworkInterface class. This API returns IPv6 link local address.
The QSPI interface permits the alt (aka mode) bits to be any multiple of the bus width. Previously the values
in qspi_alt_size_t only supported multiples of bytes. This has been fixed in this release. This is a backwards
compatible change as compatibility macros are provided for the old qspi_alt_size_t values.We have updated LittleFS to v1.7.2. The release notes for this change can be found here: * v1.7.2: https://github.com/ARMmbed/littlefs/releases/tag/v1.7.2 * v1.7: https://github.com/ARMmbed/littlefs/releases/tag/v1.7.0
The Cypress WiFI Host Driver (WHD) has been updated to version 1.40. This includes the following changes: * Security fix (KRACK all-zero-key) * Fixed Wi-Fi connection issue after receiving DISASSOC_IND messages * Fixed ioctl buffer length overflow * Added API input argument checks
It should be noted that the base target name for NU_PFM_M2351_CM has been changed to NU_PFM_M2351 in this release.
We have fixed the following reported issues:
- 11530 Gaps in QSPIFBlockDevice SFDP Implementation
- 11413 Board will not enter Deep Sleep after communications with Cell Module
- 11606 Cellular: Cannot use private _is_connected flag.
- 11633 QSPIF general_block_device test is failing on EFM32GG11_STK3701
- 11659 STM32F767ZI - I2C FastModePlus not properly enabled
- 11674 STM trng_api uses always RCC_RNGCLKSOURCE_PLL
- 11361 Sleep/deepsleep and Serial class
- 11565 Profiles contain RTX symbol (bare metal error)
- 11442 UDPSocket::sendto does not work with ipv6 and local-link interface addresss
- 11643 Cypress GPIO pull mode tests fail on CY8CKIT_062_WIFI_BT
- 11545 DISCO-L475VG-IOT01A lp_timeout test fails CI on IAR
- 11769 Cypress: PWM FPGA test wrong assert
- 11778 EventQueue: impossible to cancel event with negative unique id
- 11758 Using rawSerial adds about 600A
- 11795 Cypress: SPI FPGA test: tester always respond 0 when MODE other then 0
- 10342 USBMSD not recognised in MacOS
- 11652 The online compiler fails to build the Xadow-M0 target with MBED2 rev. 142 and later.
- 11746 AnalogIn test issue
- 11768 BLE: Security Manager doesn’t restore saved security parameters
We have also:
- Added FLASHIAP component support to DISCO_H747 and NRF52840_DK
- Enabled MBED_TICKLESS for MCU_PSOC_M4
- Added support for the Watchdog on nRF52 devices
- Added bootloader support for Seeed Arch-MAX
- Added iar exporter support for TT_M3HQ and TT_M4G9
- Enabled RESET_REASON and WATCHDOG for EFM32GG11_STK3701
There are also a number of other fixes and code improvements.
Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
11715
Add CYW9P62S1_43012EVB_01 board11605
DISCO_H747I dualcore support11434
Initial addition of files to support CY8CKIT_064S2_4343W targetFixes and Changes
11902
Cellular: Enable ePCO IE for BG96 driver11872
Change mbed-os-example-wifi to build only DISCO_L475VG_IOT01A11871
TESTS: Add socket.set_timeout in udpsocket_echotest11869
IOTSTOR-978: Skip a unstable testcase until fixed11861
Replace calls to printf() with mbed-trace in netsocket tests11859
Cellular: Fix queue scheduling for bare metal11854
ATHandler build warning fixed11850
Correct PB_6/PB_7 Serial AF mapping11848
Remove ITM Trace support from Arduino Nano 33 BLE11844
EFM32: Enable RESET_REASON and WATCHDOG for EFM32GG11_STK370111843
Fix ethernet memory handling issues on CM3DS11840
Update Cypress WifiHostDriver to version 1.5011836
Add sender address and port verification to UDPSOCKET_ECHOTEST11834
Fix flag checks to allow disabling unsecure tests11833
TESTS: turn off blinky log compare test due to example changed11831
BLE: Added call to delete the security database object upon SM reset.11830
Cypress: Add implementation of free() for gpio11828
MCU_LPC11U35_501: fix MCU inheritance11823
IOTBTOOL-333: Fix SimpleQueue build failure on py311822
TLSSOCKET_HANDSHAKE_INVALID test skip if DNS AAA record not available.11818
Adding baud rate setting to TLS and UDP echo burst tests11816
Fix failure of building non-RTOS for GR-PEACH, GR-LYCHEE and VK-RZ/A1H11815
Updated targets.json file to go along with pr-1177011814
USBMSD: implement MODE SENSE (10) command11813
Fix ARM issue 11795: - Cypress: SPI FPGA test: tester always respond11810
SecureStore: Add member initializers for inc_handle_t11800
Update common Cypress libraries11797
IOTSTOR-953: Fix address calculations from SlicingBlockDevice11790
nrf52: reset UARTE peripheral in serial_free11782
equeue: avoid non-standard bit shifts11780
Nuvoton: Add implementations of HAL API i2c_free and analogin_free11777
IOTBTOOL-377: Fix scatter file include path online11776
Fix for issue #11769 (Cypress: PWM FPGA test wrong assert)11775
LPC55S69: fix serial_set_flow_control11772
Cellular: updated cellular context flags and cid in ublox-api11770
Update CM0P pre-built images to build 1.0.0.3511767
Increase STM32 default deep sleep latency to 4ms11765
Cypress: fix GPIO mode NONE11763
Display full path of generated coverage output from unittests.11759
STM32 QSPI: Use defines for setting address size11756
Add option to use CCMRAM on F303xE.11754
Cellular: Added write_hex_string to AT handler11752
FlashIAP: Get erase value from HAL instead of hardcoding it11749
M2351: Change base target name ‘NU_PFM_M2351_CM’ to ‘NU_PFM_M2351’11748
Fix spurious link up/down when AP IP address range change11747
Update the internal kvstore flash reservation size to from 7k to 65K for Cypress Devices11743
fpga i2c test: limit tested peripherals11742
Fix the reset_reason host test in the CI11739
Nrf52 i2c byte rw fix11736
Nuvoton: Remove TRNG support11734
nxp LPC55S69: fix i2c pin mapping11729
minimal-printf: Fix handling of the two character sequence %%11728
minimal_printf: Fix high level C functions that print to the console11725
DeviceKey: Fix random key doesn’t generate with custom entropy source11724
iar export for TT_M3HQ and TT_M4G911719
Ensure modem echo is off before sending other AT commands11718
Handle legacy process event first on connection complete11717
Fix Quectel M26 context hang11715
Add CYW9P62S1_43012EVB_01 board11714
LWIP::get_ipv6_addr for link-local only11710
Update examples testing scripts11709
Update CMSIS pack index json for STM32H7xx family11708
TARGET_STM: remove warning and fix typo on SPI11706
MCU_NRF52840: Switches to correct Product Anomaly Notification(PAN) macro11700
Add bootloader support for Seeed Arch-MAX11699
Fix for missing os_cb_section11698
Clean up ARM toolchain heap+stack setup in targets11697
USB-Cypress: Lock sleep when USB is initialized11695
GREENTEA: init trace if trace is enabled in json11694
Fix components setting for GR-PEACH and GR-LYCHEE11693
UDPSOCKET_ECHOTEST change to tolerate duplicate packets11692
NRF52840_DK: enables FLASHIAP for the device11691
QSPI: document use of QSPI_NO_INST11690
Changed mbed gpio-port api to match gpio api11688
Clearing UART TC Flag prevents deep sleep, so do not clear it11686
Corrected nanostack PAE controller11685
Check-in PSA related auto-generated files to support online compiler.11684
Add support for nRF52 Watchdog11683
Baremetal profile fixes11679
STM32L4 TRNG clock configuration11677
Update BT Firmware to version 128.11676
nrf52 - fix i2c/twi driver11673
stm32f4xx_hal_pcd.c@346,22: unused variable ‘ep’11672
STM32F767ZI - I2C FastModePlus not properly enabled11671
nrf5x - add missing gpio_set implementation11669
Fixed issue with integer overflow when converting time units11668
Update Cypress WiFi driver code to version 1.4011667
Fixes IPv6 multicast join issue11662
Allow WhdAccessPoint scan results with extended parameters11661
mbed_rtc_time.h lacks an include guard11660
Fix dropped bytes on spi write11657
Cellular: Fix apn check11650
Nuvoton: Re-implement TRNG HAL with TRNG H/W11646
Fix swapped BT pins on CYW943012P6EVB-0111645
Enable tickless for PSoC6 targets11644
Cypress Cordio BT Driver setting Host MCU active during Host Wake assert11642
STMOD_CELLULAR: remove flow control support for DISCO_L4R9I11636
EFM32GG11_STK3701: add QSPIF component config11635
USBDevice: add documentation on USB suspend/resume to enter deep sleep11631
Qspi frequency test fix11630
Cellular: Change visibility of _is_connected as protected11624
LittleFS: Update to v1.7.211623
STMOD_CELLULAR: set CTS with PullDown11622
nRF52 SDK 15.0 - Enable more than 1 interrupt11620
Fix enum type to align with psa-arch-tests11619
Add FLASHIAP component to DISCO_H74711609
IOTBTOOL-407 Fix microbit to use Arm C511605
DISCO_H747I dualcore support11604
Introduce qspi_inst_t type for QSPI instructions11603
Report errors returned by _qspi_configure_format11602
Allow for arbitrary QSPI alt sizes11599
FUTURE_SEQUANA: SPI HAL API fixes11586
Cleaned up Mbed LWIP configurations11580
Remove target dependency in ublox cellular APIs11578
Add synchronization and switching between WhdSoftAPInterface and WhdSTAInterfaces11571
Allow OS_THREAD_LIBSPACE_NUM as a macro11563
Simplify pull request template11547
Fix for UBLOX_EVK_ODIN_W2 fails in emac test.11536
STM32 EMAC configuration update11531
Improve QSPIFBlockDevice conformance to SFDP11512
Fix Failure in Cryptocell tests on Montgomrery curve11475
TEST: add atecc608a example to compilation test11457
tools: add silent option to build11434
Initial addition of files to support CY8CKIT_064S2_4343W target11429
Move script to check for floats and make it Python 2 compatible11375
NSAPI DNS query IP version check for non LWIP stacks.11279
Add API to get ipv6 link local addressUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.14.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-5.14.1
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.14.1 release is now available.
Important note about this patch release
The Nanostack RF driver has been updated and as an exception to our normal release protocol, contains
a breaking change.Summary of changes
4-octet FCS which follows IEEE Std 802.15.4-2015 Bug fix related to channel spacing configuration
Impact of changes
This release contains version of a S2-LP driver which is not inter-operable with previous versions of the driver.
Migration actions required
To make previous version (Mbed OS 5.14.0) of the S2-LP driver inter-operable with this release, following changes are needed.
/components/802.15.4_RF/stm-s2lp-rf-driver/source/NanostackRfPhys2lp.cpp @@ -553 +553 @@ static void rf_init_registers(void) - rf_write_register_field(PCKTCTRL1, PCKT_CRCMODE_FIELD, PCKT_CRCMODE_0X1021); + rf_write_register_field(PCKTCTRL1, PCKT_CRCMODE_FIELD, PCKT_CRCMODE_0x04C11DB7); @@ -556,0 +557 @@ static void rf_init_registers(void) + rf_write_register_field(PCKTCTRL2, PCKT_FCS_TYPE_FIELD, PCKT_FCS_TYPE_4_OCTET); @@ -1001,0 +1003 @@ static void rf_receive(uint8_t rx_channel) + rf_channel_multiplier = 1; /components/802.15.4_RF/stm-s2lp-rf-driver/source/s2lpReg.h @@ -251,0 +252,3 @@ extern "C" { +#define PCKT_FCS_TYPE_FIELD 0x20 +#define PCKT_FCS_TYPE_4_OCTET (0 << 5) +#define PCKT_FCS_TYPE_2_OCTET (1 << 5) @@ -255,0 +259 @@ extern "C" { +#define PCKT_CRCMODE_0x04C11DB7 (5 << 5)
Summary of changes
In this release we have added the following targets: * NUMAKER_M252KG * ST DISCO-H747I * OKDO * TARGET_CY8CPROTO_063_BLE * MTS_DRAGONFLY_F413RH
Cypress targets have been updated to the latest PSoC 6 CSP (HAL, RTOS abstraction, Resource Abstraction).
This update includes:- Minor bugfixes/code cleanup
- Re-organization of resource/rtos abstraction folder structure
- Documentation improvements
The Cypress Specific HCI Cordio Driver has also been updated to add:
- MCU and BT device low-power support
- HCI UART enhanced to work at 3M baud rate for improved BT performance. In order to put the UART interface at 3M baud rate the state machine for initialization has been modified
- Updated BT device-wake pin drive mode from input to output mode to be able wake up the BT device from low-power state when needed
- Added delays to BT device wake de-assert function to ensure that UART data is drained
We have provided an STM32H7 ST CUBE V1.5.0 update. The main impact of this update is the introduction of a
Cortex-M4 instruction cache through ART accelerator.We have had to disable tickless mode on UBLOX_EVK_ODIN_W2 as it appears to cause crashes in WiFi tests (Issue #11557).
It will be re-enabled once this has been addressed.This release also includes a Nanostack update to v11.3.0. This includes coap-service updates and
bug fixes to the Wi-SUN protocol.We have fixed the following reported issues:
- 11295 QSPIFBlockDevice does not differentiate between mode (alt) and dummy cycles
- 11362 Pin speed control
- 11496 iar export: multiple -O in the project - fails to build
- 10854 Mbed Os 5.12.4 ATHandler::resp_stop
- 11508 LSI as RTC clock source on certain STM targets
- 10880 VREFINT_CAL_ADDR wrong address for MTB_RAK811
We have also:
- Added an initial implementation of Cypress Crypto hardware acceleration for mbedTLS
- Re-enabled GCC/ARMCC support for RTL8195AM
- Enabled asynchronous serial with DMA for K66F
- Added flow control (IFC) into the BG96 AT driver
There are also a number of other fixes and code improvements.
Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
11573
Add 413 dragonfly11561
Add TARGET_CY8CPROTO_063_BLE11407
Add OKDO platform11384
ST DISCO-H747I introduction11176
Support Nuvoton target NUMAKER_M252KGFixes and Changes
11678
Travis CI: Fixed issue where jobs are getting stalled/timing out11649
Fix memory leak on NetworkInterface destruction11647
Nanostack RF driver updates for Mbed OS 5.14.111639
Nanostack patch release for mbedos 5.14.111638
Change imgtool lib import to relative import11628
Make devicekey remainder test more meaningful11627
pinmap_peripheral function: update error code for easier debug11626
DISCO_L4R9I: update default STMOD+ pin11625
Revert tickless on UBLOX_EVK_ODIN_W211621
STM32L151: update calibration memory address11618
Cellular: Fix CellularStateMachine to not loop between init/power states11616
Cellular: Setting timeout before send command in gethostbyname.11615
Cellular: Remove old deprecated tests11612
IPCore unittests improvements11607
Tests: USB: Move control endpoint buffers to heap11601
DNS tests modification for ESP8266-specific scenario11598
AT_CellularDevice.cpp - unused variable err warning11597
Missing errno.h include11596
LoRa: Fix build warning about _ongoing_tx_msg11590
Moved Cypress TriggerMux initialization out of the HAL and into the BSP11589
Enable PSA tests for fastmodel11587
ATCmdParser doxygen header’s documentation update for scanf11585
NRF52: Fixed missing guard in port_api.c11583
STM32H7 ST CUBE V1.5.0 update11582
TEST: change integration fs test format and mount order11581
Cellular: Fix setting of PDP context ID (cid)11573
Add 413 dragonfly11572
Tighten GCC 2-region _sbrk11568
Speed up unit test build with parallel jobs11567
Simplicy QSPIF target overrides for PSoC611566
EP_AGORA: Add config logic to enable BLE, cell, and LoRa by default11564
Fix ARMC6 linker error for the bare metal profile11562
STM32H7: memory relocation11561
Add TARGET_CY8CPROTO_063_BLE11560
Explicitly set tdb internal flash size for PSoC6 Targets11558
Coverity fixes11548
Cellular: Fix resolving of DNS server IPv4/6 address11546
Tests: USB: Fix Python 3 compatibility11542
Update Cypress targets11541
esp8266 oob* : recv() brought back where it was needed11540
Tests: USB: Update error handling in basic tests11538
Cellular: Enable IPV6 for WISE_157011534
Cellular: Handle SEND FAIL and ERROR response11529
PSOC6: update to PDL 1.3.111525
STM32WB/STM32H7 : LSI selection when LSE is not available11523
Correct force inline syntax for IAR compiler11518
Cypress Cordio Driver Update11517
TCP Packet loss happens due to running of out of Mailbox size.11516
Update to latest psoc6csp11499
Cellular: Fix stop tag for Quectel M26 send command11498
iar export: fix invalid optmization flag - remove from misc11495
Improve cellular unittests11494
Fix Coverity issue: Initialize FlashIAP non-static member in constructor11491
Equeue chain, add documentation of using equeue_destroy11490
Cellular: Add flow control (IFC) in BG96 AT driver11489
Examples.py add –jobs argument11488
Cellular: Fix get_interface_name to not include leading zero11486
update googletest to v1.8.111483
Change reset_reason test timeout.11478
Refactor CRC constructor method to remove warning11474
Remove Mbed Crypto source files before importing11473
Fix compilation warnings from GCC in netsocket/network tests11472
Suppress Coverity warnings11471
STM32WB ADC : consecutive VBAT reading11470
Prevent unreachable statements and correct variable sizes.11465
Updated mbedTLS CRYPTO target to be more flexibly configured for supported boards11464
TEST: update compare log file name11462
Minimal-printf: Remove file printing in README and update tables11458
Tests: USB: Use libusb0 backend on Windows11456
IOTBTOOL-349: Correct handling of spaces in project name.11455
minimal-printf: Add capability to run floating point tests manually11454
ST: Change the LSI_VALUE according to documentation11453
Fix Coverity issues11452
Coverity changes in USBMSD.cpp11449
Coverity changes in USBDevice.cpp11448
STM license file update11447
Coverity changes in USBHID.cpp11446
add missing asserts to UserAllocatedEvent class11445
Add catch-all rule to makefile template11443
Enable asynchronous serial with DMA for K66F11440
Add missing documentation about tls testing11439
Remove unreachable statements warnings11438
Correct doxy-spellchecker error message11437
Harmonise Doxygen comments in drivers, events, platform and rtos dirs11427
ESP8266Interface buffer null-terminated and parameters of scan function in correct order11424
Stack type ip versions11421
Dns synchronous cache fix11420
Fixed smsc9220_emac link_out memory management.11417
Change stack sizes of threads used in tests. GR_LYCHEE failing CI11408
Remove mbed_trace dependency to Nanomesh headers11407
Add OKDO platform11404
FUTURE_SEQUANA: InterruptIn implementation bug fix11396
Remove floating point from AT_CellularSMS11395
Avoid non-trivial copy when initializing lorastack struct11394
Replace wait_ms calls with rtos::ThisThread::sleep_for11393
Cast void pointer before deallocating with delete[]11392
Remove minor build warnings11384
ST DISCO-H747I introduction11383
Change LSI_VALUE in STM implementation.11382
Use very verbose to see more details in case of problem11381
M263: Enlarge required deep sleep latency11380
M263: Enlarge LPTICKER_DELAY_TICKS for safe11379
M263: Fix FPGA CI testing failing11377
Fixed byte string related TypeError if using python3.11372
Cellular: Fix BG96 power on and connect11368
Add pin speed controlling interface11347
Fix NRF52832 softdevice memory map11338
Bring down interface when stopping softap11330
RTL8195AM - resuscitate AMEBA GCC/ARMCC support11314
Add executable analaysis tool for floating point checks.11297
Differentiate alt and dummy cycles in QSPIF11254
Update gcc.py for preprocessing in linker script11176
Support Nuvoton target NUMAKER_M252KG11046
Initial implementation of Cypress Crypto hardware acceleration for mbedTLS10991
Explaining how to opt in modules10684
Cellular: fix ATHandler destructor possible crash on deleteUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.14.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.14.0
Downloads: zip tar.gz
We are pleased to announce that the Mbed OS 5.14.0 release is now available.
Summary
This release continues to improve and stabilize Mbed OS. We added a static mode for the event queue, which doesn’t require using dynamic memory. This aligns the event queue’s memory usage with other parts of the system, including RTOS. You can still use dynamic memory, but if you are worried about memory fragmentation or know your memory requirements upfront you can only rely on static memory. We updated the version of C++ standard to C++14, to leverage modern features of the language. We implemented multiple changes to our connectivity, including PPP support for the Nanostack and enterprise security for WiFi. A big item that we started working on is splitting our public interfaces from the internal code; the work for the OS core is done, and we’ll continue this work in future releases for other parts of the system. It will add clarity and help our users use only public and stable APIs. We introduced a minimal version of the standard library printf family calls, which addresses most of the common use cases in a fraction of the memory footprint. We continued to update our PSA support to track the upstream development in PSA and Trusted Firmware. We doubled our effort in tracking and fixing Coverity warnings, reducing the number by 50%.
Compatibility
This release is compatible with Device Management Client 4.0.0
Migration Guide
This section lists changes that may require your attention.
Update Mbed OS for PSA Crypto API 1.0b3
Background
Mbed Crypto is our implementation of the PSA Crypto APIs. We shipped an implementations of prerelease versions of the PSA Crypto API in Mbed OS 5.11, 5.12, and 5.13, with a warning in the documentation that these APIs were subject to change and that we did not intend to maintain backwards compatibility with them. The PSA Crypto API has continued to develop and change over the past few months and a number of breaking changes have been made since the pre-release version we based our Mbed Crypto implementation on.
What is being broken?
The PSA Crypto APIs in Mbed OS as shipped in Mbed OS 5.13 are breaking.
PSA Crypto API 1.0b3 API breaking changes, addressed in Mbed OS 5.14 (see https://github.com/ARMmbed/mbed-os/pull/11315)
- Use key attributes structures for key creation
- Make generating or importing a key also allocate the key
- Update key derivation functions to accept chunked inputs
- Update key agreement API
- Align PSA Crypto error codes with other PSA error codes
- Rename functions for consistency with each other and the rest of PSA
- Be consistent in use of stdint types
Expected PSA Crypto API 1.0 API breaking changes, to be addressed in the next Mbed OS release
- NoneWhy is it being broken?
Mbed Crypto needs to track the upstream PSA Crypto API as maintained by ATG in order to pass ATG’s PSA Compliance Kit tests. The PSA Crypto API was not yet finalized in Mbed OS 5.13 and continues to evolve. We shipped an implementation in Mbed OS 5.13 to enable other teams working on Mbed OS to develop their services a top APIs that should be mostly similar to the final APIs, rather than save up all the integration pain for a later Mbed OS release when the APIs are finalized.
Analysis of impact on users
There should be no surprises to users based on our statements of PSA API instability. We’ve worked with Mbed TLS, Pelion Client, Storage (ITS), SPM, and Attestation teams to ensure the message of API instability was understood and to coordinate our changes to the API. There are potentially other users of the PSA Crypto API, and our documentation states the stability level of the API for these users.
Alternatives
We could continue to provide the version of the PSA Crypto API shipped with Mbed OS 5.13, but to save flash size and reduce the maintenance burden of maintaining an API we clearly communicated we’d be breaking in the next release, this was deemed not worth the cost.
Mitigation and migration path for users
Users must update to use the new version of the API.
Renaming of key pair names
Replace
KEY_PAIR
in names that would have usedKEYPAIR
in the previous API version. For example,PSA_KEY_TYPE_ECC_KEY_PAIR
replacesPSA_KEY_TYPE_ECC_KEYPAIR
.Using persistent keys
Use
psa_open_key()
to open a persistent key. Previously, volatile keys could also be opened. With PSA Crypto API 1.0b3, keys are implicitly opened for you upon import, generation, or derivation.psa_status_t psa_open_key(psa_key_id_t id, psa_key_handle_t *handle);
Only persistent keys can be opened, so there is no need to pass the lifetime anymore.
It is no longer necessary to call
psa_create_key()
to make a key persistent. A key is persistent if it is created with a lifetime other thanPSA_KEY_LIFETIME_VOLATILE
. As part of key creation, usepsa_set_key_id()
to set both the key’s persistent identifier and to set the lifetime to persistent and then call the key creation routine: like psa_generate_key() or psa_import_key()Old New psa_open_key()
Only use for opening previously created persistent keys psa_create_key()
psa_set_key_id()
Keys with IDs are made persistent implicitly upon creationAllocating keys
Key creation will implicitly allocate resources as necessary, so
psa_allocate_key()
has been removed from the API and is no longer needed.Old New psa_allocate_key()
Not necessary. Delete calls to psa_allocate_key()
.Importing keys
Previously, you had create a policy structure and pass many function arguments to communicate the properties you wanted the imported key to have. Now, you describe them entirely within the attributes structure, passing only the attributes and data to
psa_import_key()
.Old New psa_key_policy_init()
psa_key_attributes_init()
psa_key_policy_set_usage()
psa_set_key_usage_flags()
,psa_set_key_algorithm()
Pass key type to psa_import_key()
psa_set_key_type()
psa_set_key_policy()
Pass the attributes to psa_import_key() psa_import_key()
psa_import_key()
Generating keys
Previously, you had create a policy structure and pass many function arguments to communicate the properties you wanted the imported key to have. Now, you describe them entirely within the attributes structure, passing only the attributes and data to
psa_generate_key()
.Old New psa_key_policy_init()
psa_key_attributes_init()
psa_key_policy_set_usage()
psa_set_key_usage_flags()
,psa_set_key_algorithm()
Pass key type to psa_import_key()
psa_set_key_type()
psa_set_key_policy()
Pass the attributes to psa_import_key() psa_generate_key()
psa_generate_key()
Reading key policy or information
What used to be two functions with many parameters each is now one function that returns the attributes in one structure, in the same format you’d use to create new keys.
Old New psa_get_key_policy()
,psa_get_key_information()
psa_get_key_attributes()
Deriving keys
The previous “generator” class of functions has been renamed to “key_derivation”. The
psa_crypto_generator_t
structure was previously used to derive keys. Use of thepsa_key_derivation_operation_t
structure replacespsa_crypto_generator_t
for deriving keys.Old New psa_crypto_generator_t
psa_key_derivation_operation_t
psa_generator_abort()
psa_key_derivation_abort()
psa_get_generator_capacity()
psa_key_derivation_get_capacity()
Function parameter psa_key_derivation_set_capacity()
psa_generator_read()
psa_key_derivation_output_bytes()
Use of generator with PSA_ALG_SELECT_RAW
psa_raw_key_agreement()
psa_key_derivation()
Deriving keys now uses key derivation objects and consists of multiple parts. See the getting started guide for details. Key agreement
Old New psa_key_agreement()
psa_key_derivation_setup()
,psa_key_derivation_key_agreement()
,psa_key_derivation_output_key()
Hashing
Note: Not yet implemented
The PSA Crypto API 1.0b3 adds a few new functions to help with hashing. Specifically, functions to perform one-shot computation or comparison of hashes.
Old New Many hash function calls psa_hash_compute()
Many hash function calls psa_hash_compare()
Computing or verifying a MAC
Note: Not yet implemented
The PSA Crypto API 1.0b3 adds a few new functions to help with working with MACs. Specifically, functions to perform one-shot computation or comparison of MACs.
Old New Many MAC function calls psa_mac_compute()
Many MAC function calls psa_mac_verify()
Symmetric cryptography
Note: Not yet implemented
The PSA Crypto API 1.0b3 adds a few new functions to help with working with symmetric ciphers. Specifically, functions to perform one-shot encryption or decryption. The types used by
psa_cipher_generate_iv()
,psa_cipher_set_iv()
, andpsa_cipher_update()
have changed fromunsigned char
touint8_t
.Old New Many cipher function calls psa_cipher_encrypt()
Many cipher function calls psa_cipher_decrypt()
Authenticated encryption
Note: Not yet implemented
The PSA Crypto API 1.0b3 introduces multi-part authenticated encryption functions. The original one-shot AEAD functions still remain and aren’t being replaced.
New functions for multipart AEAD
- psa_aead_operation_init()
- psa_aead_encrypt_setup()
- psa_aead_decrypt_setup()
- psa_aead_generate_nonce()
- psa_aead_set_nonce()
- psa_aead_set_lengths()
- psa_aead_update_ad()
- psa_aead_update()
- psa_aead_finish()
- psa_aead_verify()
- psa_aead_abort()
Mbed Crypto entropy injection
Use of
uint8_t
replacesunsigned char
inmbedtls_psa_inject_entropy()
. The macroMBEDTLS_PSA_INJECT_ENTROPY
replacesMBEDTLS_PSA_ENTROPY_INJECTION
.Netsocket: Change DNS retry and total attempt counts
DNS lookup is done for each of five predefined servers twice. This change affects the previous DNS lookup functionality only when it’s expected that DNS is made three times on the very first DNS server.
Although that’s unlikely needed, the previous functionality can be restored reverting the changes to DNS configuration.uVision export: Handle more C++ language standards
- Mbed OS now uses C++11 language and C++14 library constructs, so requires the C++ compiler to be set to C++14 standard or later. Custom build profiles that select C++98 or C++11 are no longer supported. (ARMC5 should work in its C++11 mode, as C++14 library replacements are provided in-tree, but ARMC5 is not officially supported).
- uVision export now requires MDK 5.28a or later, as
-std=gnu++14
mode cannot be selected in earlier versions. In Mbed OS 5.13, the Vision exporter was selecting-std=gnu++11
, but this is no longer sufficient.
Cellular: moved string_to_pdp_type from AT_CellularContext to Cellular
Moved string_to_pdp_type from AT_CellularContext to CellularUtil. string_to_pdp_type is a common method for AT and other layers. Without moving there will be duplicate methods.
Feature public headers
This will break user code that was using an internal API using a prefixed path, for example
#include "foo/bar.h"
instead of#include "bar.h"
.Port the cryptocell 310 cmac driver
This is a target update, adding hw accelerated CMAC, however, it can also be considered as a breaking change, as it removes support for key sizes other than 128 bit keys, and removes support for DES CMAC.
Port CC 310 sha 512 driver
SHA384 is not supported, returning
MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED
Port aes cc310 driver
This is a target update, adding hw accelerated AES, however, it can also be considered as a breaking change, as it removes support for AES other than 128 bit keys.
Sleep rework, RTOS API for bare metal, wait deprecations
- Subset of RTOS API now available in bare metal builds
- Full power save functionality now available in bare metal builds via RTOS API
- Consistent sleep vs wait API naming - wait() and wait_ms() deprecated
Migration notes
- Use of
wait
andwait_ms
should be reviewed to check whether sleeping is appropriate or not in the context the call occurs - if so, change toThisThread::sleep_for
/thread_sleep_for
, else change towait_us
.
Update to Mbed TLS 2.19.1
The Mbed TLS key export feature’s export keys callback, new in Mbed TLS 2.19.0, now requires use of
const
on its hello.random buffers (7th and 8th parameters). This is an API change.f_export_keys_ext
in ssl.h now has signature:int (*f_export_keys_ext)( void *, const unsigned char *, const unsigned char *, size_t, size_t, size_t, const unsigned char[32], const unsigned char[32], mbedtls_tls_prf_types );
Convert TZ target name ‘NPSA’ to test spec platform name
Define naming rule for TrustZone targets: ‘PLATFORM’_[‘NPSA_‘]’S’/’NS’, where:
1. ‘PLATFORM’ for test spec platform name, which is registered in platform database of mbed-os-tools.
2. ‘NPSA’ for non-PSA targets. Defaults to PSA target if absent.
3. ‘S’/’NS’ for secure/non-secure targets.M2351: Enhance secure/non-secure image build flow for non-PSA target
Changes for NuMaker-PFM-M2351:
1. Change target name to NU_PFM_M2351_NPSA_S for non-PSA secure target and and NU_PFM_M2351_NPSA_NS for non-PSA non-secure target. Original target name NUMAKER_PFM_M2351 is recycled.
2. Combine secure image and non-secure image into one in non-secure target post-build. With this, user just needs to flash the combined image instead of flash secure image and then non-secure image separately.
3. To drop pre-built secure image in mbed-os tree and provide custom one, add the line ‘“target.extra_labels_remove”: [“NU_PREBUILD_SECURE”]’ into ‘mbed_app.json’ instead of via .mbedignnore.What’s new
add queue static allocation support
Adds UserAllocatedEvent API to provide mechanism for event posting and dispatching without utilization of queue internal memory.
Nanostack release for mbed OS 5.14
This release contains updates for the Mesh protocols:
- Stability improvements and bug fixes to Wi-SUN.
- Enabled Nanostack PPP protocol support.
This version of Wi-SUN stack is inter-operable only with itself (development work still on-going).
Wi-SUN protocol is tested using functional protocol testing suites.
Wi-SUN non-functional testing is performed using more than 100 devices connected to single Wi-SUN network.
Thread stack is verified using protocol testing suite that includes certification test suiteSys timer should let deep sleep happen
When next SysTimer wake-up is scheduler far enough, always consider
that deep sleep may be entered and program an early wake-up.So that even if deep sleep is only allowed some time later, it can be
entered. If not doing this, then the deep sleep would be prevented by
SysTimer itself and may not be entered at all.This has been proved to happen in a simple blinly example.
Add a gpio pinmap
Add a weak
gpio_pinmap()
, that every target has to override, to provide a set of pins for GPIO testing.Add Atomic
template - Added
Atomic<T>
template to make atomics easier in C++.
PSA storage: Conform to “PSA 1.0.0” spec release
PSA Storage: Add the integrity only and no replay protection flags.
Changed EventQueue::cancel to return boolean value
EventQueue::cancel now returns the boolean value to indicate whether the cancel was successful or not.
Cellular: add method to set authentication type to CellularContext
Add new method virtual void set_authentication_type(AuthenticationType type) to CellularContext so application can set the correct authentication type.
Add C++11/14 support utility file
- Various modern C++ forward-compatibility helpers have been added in
mbed_cxxsupport.h
to assist with C++11 and later code, including supporting ARM C 5 as much as possible.
Adding stmod_cellular component
This library allows enabling the cellular module that is connected to the STMOD+ connector of the board.
Currently supported cellular modules are Quectel UG96 and BG96 expansion boards that are included in [p-l496g-cell01] (https://www.st.com/en/evaluation-tools/p-l496g-cell01.html) and [p-l496g-cell02.] (https://www.st.com/en/evaluation-tools/p-l496g-cell02.html) packs.
The STMOD+ Connector specification can be found [here] (https://www.st.com/content/ccc/resource/technical/document/technical_note/group0/04/7f/90/c1/ad/54/46/1f/DM00323609/files/DM00323609.pdf/jcr:content/translations/en.DM00323609.pdf).
BLE: allow overriding event signal
This makes no change to existing code and users. Only affects future porters.
Add minimal printf
To replace the standard implementation of the printf functions with the ones from the minimal-printf library, the custom
minimal-printf
profile should be used when compiling with mbed-cli. For example:$ mbed compile -t <toolchain> -m <target> --profile release --profile minimal-printf
Add
C++ headers - A set of C++11/14 library support headers have been included in
platform/cxxsupport
. These include standard-C++-like APIs, egmstd::atomic
in<mstd_atomic>
, to improve on implementations provided with toolchains. Seeplatform/cxxsupport/README.md
for more information.
Created PPP interface and PPP service classes to netsocket
Add Cellular PPP connection support to Nanostack. Support is made by creating a common PPP service class that both lwIP and Nanostack can use for cellular connectivity.
Affected components are lwIP and Nanostack on board IP stacks, new netsocket PPP interface and PPP service class. Cellular network interface, cellular classes and “nsapi_ppp.h” interface are not modified. No changes are required from the users of the Cellular network interface to continue using the lwIP as the default IP stack.
To use the Nanostack IP stack with the Cellular network interface instead of the lwIP stack, cellular application configuration must be modified in following way:
Set the default stack to nanostack
"nsapi.default-stack": "NANOSTACK"
Configure PPP to IPv6 only mode (Nanostack does not support IPv4)
"ppp.ipv4-enabled": false, "ppp.ipv6-enabled": true,
mbed-mesh-api: Add new API for Wi-SUN configuration
Add new APIs to Wi-SUN network certificate handling and network configuration. This includes:
- network name
- regulatory domain, operating mode and operating class
- setting own and trusted certificate
- removing own and trusted certificatesOptimize debug profile flags for size
Changed the Debug compiler profile to favor size optimization over speed optimization.
Enterprise security support
Add NSAPI_SECURITY_WPA2_ENT type to nsapi_security enum.
- Phrase helps to connect to an 802.1X capable network.
- Phrase conforms to WPA2-AES and WPA-TKIP with enterprise security.
Add a gpio-irq pinmap
Add a weak
gpio_irq_pinmap()
, that every target has to override, to provide a set of pins for GPIO IRQ testing.AT_CellularSMS: allow configuring SMS encoding (7-bit/8-bit) at initialization
AT_CellularSMS::initialize
takes an additional encoding parameter that defaults to 7-bit (behavior of existing code does not change, one needs to opt-in to send 8-bit SMS)Change default optimisation level to O1 when exporting to uVision
Default uVision optimisation level changed to O1. It matches the debug profile.
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
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: https://github.com/ARMmbed/mbed-os/issues/8064
- Priority: Major
Platform: Realtek RTL8195AM does not define flash algorithms for uvision
- Description: No flashing support in uvision for Realtek RTL8195AM
- Workaround: Use drag-n-drop programming
- Reported Issue: https://github.com/ARMmbed/mbed-os/issues/4651
- Priority: Minor
Platform: Realtek RTL8195AM - CMSIS-RTOS error: ISR Queue overflow
- Description: Realtek RTL8195AM does not maintain a long running connection to Mbed device connector. The error manifests as an ISR Queue overflow.
- Workaround: None
- Reported Issue: https://github.com/ARMmbed/mbed-os/issues/5640
- Priority: Major
NVStore and TDBStore objects can collide in internal flash
- Description: NVStore and TDBStore are classes implementing storage solutions. By default they will allocate the last two sectors in internal flash.
If both are used, a runtime error will happen. NVStore is deprecated, and TDBStore should be used instead. - Workaround: Use TDBStore instead of NVStore.
- Priority: Minor
Cordio Link Layer: GAP Advertising parameters need to be set before advertising data is set
- Description: This issue only affects users of the Cordio Link Layer. If this ordering is not respected, GAP advertising data will not be set correctly.
- Workaround: If using the BLE API, apply changes from https://github.com/ARMmbed/mbed-os/pull/10772. If using the Cordio Host Stack API, make sure Advertising parameters are set before advertising data is set when using the Cordio Link Layer.
- Reported Issue: IOTPAN-486
- Priority: Major
NRF52480: baremetal build fails due to cryptocell dependency
- Description: The baremetal build on NRF52480 fails because the CryptoCell depends on Mbed TLS. Mbed TLS is not present in baremetal builds.
- Workaround: Remove CRYPTOCELL310 feature via your application’s target config.
- Reported Issue: https://github.com/ARMmbed/mbed-os/issues/11428
- Priority: Major
Cellular stack receives corrupted data when there is a thread frequently calls wait()
- Description: The low-power ticker of certain targets has been seen to sometimes cause interrupt latency problems, leading to symptoms such as loss of serial data.
- Workaround: To work around this direct use of LowPowerTicker etc classes can be replaced by Ticker etc. The RTOS itself will be using the low-power ticker if MBED_TICKLESS is set for the target and target.tickless-from-us-ticker is false. Undefining MBED_TICKLESS or setting target.tickless-from-us-ticker to true will stop the RTOS from using the low-power ticker.
- Reported Issue: https://jira.arm.com/browse/IOTCORE-1352 (Internal)
- Priority: Major
Enabling MBED_SLEEP_TRACING_ENABLED crashes the system on STM boards
- Description: MBED_SLEEP_TRACING_ENABLED is disabled by default. Enabling it on STM boards can cause the system to crash.
- Workaround: Do not enable it on STM boards
- Reported Issue: https://github.com/ARMmbed/mbed-os/issues/11497
- Priority: Major
Test Report
Overview
Numbers of improvements around testing had been made into product by mbed-5.14.0 release:
• Introduced FPGA test shield along with new peripheral test suites for Silicon Partners
• Reduced Coverity defects numbers by ~50%
• Merged Greentea test coverage and Unittest coverage, overall test code coverage reached ~61%
• Reduce CI testing time PR test (~2 hrs), Branch test (~4 hrs), nightly test (~8 hrs)
• Tracking down night test failures, fixed most of failures and keep the unfixed defect managedRelease automated CI test
Apart from regular Pull Request test and Nightly test, We also have Branch test executed on Mbed OS 5.14.0-RC3
Tests run on CI: * Compilation tests: ARM , GCC_ARM, IAR * Unittest Test matrix : Test Results (all passed) * GreenTea test matrix : Test Results (mostly passed) * Exporter test: * Cloud Client test:
With the above Greentea test failures: we identified the following failure reasons: * DISCO_L475VG_IOT01A failed on network-wifi tests ---- We believe this is a false positive, nightly tests on the same target(but different RaaS) are passed, the target on This RaaS will need RF-boxes * UBLOX_EVK_ODIN_W2 failed on network-wifi tests ---- Tracked by defect IOTPART-8659, waiting partner’s input for fixing * GR_LYCHEE failed on platform and rtos tests ---- Test code issue, fixed on master #11417, but not pulled in to 5.14 RC * LPC55S69 failed on storage devicekey and KVStore tests ---- Tracked by defect IOTSTOR-925 , under investigation by mbed teams * UBLOX_C030_U201 failed on netsocket tests ---- Tracked by defect ONME-4400, under investigation by mbed teams * UBLOX_C030_U201 failed on LP_ticker tests ---- Tracked by defect IOTHAL-528, not a regression, under investigation by mbed teams
Greentea test result matrix
Test Numbers: * Greentea test numbers increased from 1281 to 1454 * New FPGA shield tests been add to Mbed OS * Integration tests for storage and connectivity has been added to Mbed OS * More event queue greentea tests has been added * More mbed platform tests has been added * Unittest numbers increased from 582 to 624 * New event queue unit tests has been added * More cellular unit test has been added * New watchdog unit test has been added
### Targets Coverage
In Mbed OS 5.14, compilation test targets scope has not changed, remains all Mbed OS enabled targets.
As of the time mbed-os 5.14.0 release, we run greentea test on 13 targets: * DISCO_F746NG * DISCO_L457VG_IOT01A * GR_LYCHEE * K64F * LPC55S69 * NUCLEO_F207ZG * NUCLEO_F303RE * NUCLEO_F411RE * NUCLEO_F429ZI * NUCLEO_F746ZG * NUCLEO_L073RZ * UBLOX_C030_U201 * UBLOX_EVK_ODIN_W2Coverity
- During the 5.14 time frame we started to focus on stabilizing and fixing the Coverity static analysis issues
- We started with 145 total issues in the Coverity.
- Now we have reduced the number to 73 ( 89 - 16 False Positive ) that is decrease of around 50%.
Code Coverage
Test Code Coverage has been tracked and information is published on COVERALLS * Over the period of mbed-OS 5.13 to 5.14, the coverage numbers increased from ~36% to ~61% * Part of the coverage increase is due to changes in how we run some of the tests, that allow us to measure the coverage including:
* Converting some tests to greentea.
* Merging unittest coverage with greentea test coverage. * Some of the Mbed OS modules are being tested outside of the main Mbed OS CI, this coverage data is not yet merged into the overall coverage (mbedtls, nanostack, FPGA shield etc.). * Because of the reasons above, the ~61% coverage number is not an absolute reflection of real code coverage. * We will continue working to bring missing coverage info into the overall coverage number, including FPGA HW coverage.Memory Monitoring
- NXP Enabled TICKLESS mode by default on K64F and other targets added ~2200 bytes ROM and ~200 bytes RAM PR#10796
- Enabled async serial with DMA on K64F/K66F added about 200 bytes ROM and 400 bytes RAM PR#11443
- Minimal printf feature is not enabled by default, so we didn’t see any memory savings
Release OOB manual test
- Release manual OOB test been carried out against 5.14.0 RC1/RC2/RC3
- OOB focused on out-of-box experience with official mbed OS examples
- More than 10 issues been identified, blocking and critical issues been resolved.
Contents
Ports for Upcoming Targets
11122
Support Nuvoton’s new target NUMAKER_IOT_M263AFixes and Changes
11402
STM32L4 USB device11400
nsapi_dns: cleanup dns queue when running out or memory11391
EvenQueue: fix template functions passing UserAllocatedEvent<…> as argument.11370
Driver Updates + ARMC6 driver support + WIFI fixes11369
Specify QSPI frequency for more Cypress targets11367
Cypress 5.14 rollup11359
Update mbed-coap to version 5.1.011356
Fix WHD link state change event handling11355
Initial support for Serial Flash on PSoC Devices11354
Update linker scripts based on latest PDL 1.311353
Add reserved resources metadata to Cypress BSPs11349
TDBStore bugfix: won’t rely on flash erase value to detect is a sector erased11348
Mutex: _count incrementation brought back11345
Fix bare-metal configuration to support Pelion Device Management Client11344
S2-LP: Sync with development repository11343
ESP8266: Support power pin in custom wiring11342
add queue static allocation support11339
mbed-os/LwIP changes and fixes in auto-IP for Bonjour Conformance Test11337
Updating SDP-K1 PinNames.h.11335
Nanostack release for mbed OS 5.1411334
I2 c sequential communication rework11326
Update PDL for Cypress Targets11324
PSOC6: Update CSP to latest11322
Updated the LWIP buffer pool size for PSoC611319
Update WHD to 1.30.011315
Update Mbed OS for PSA Crypto API 1.0b311309
MCUXpresso Kinetis SPI drive: Add a delay between CS assertion and first sclk edge11306
At handler improvements11304
RSSI getter fixed for ESP826611303
NUCLEO_H743ZI2 : increase system clock from 400 MHz to 480 MHz11302
Enable json overriding ESP8266 default baud rate11301
STM32L4+ : increase system clock from 80 MHz to 120 MHz11298
Explicitly set rbp_internal_size for TARGET_PSOC611296
Fix missing offset in TBStore read from flash11294
KL43Z: Enable FALSHIAP storage11293
K82F: Add USBDEVICE support11291
Stm32 ospi qspi fallback support11290
MX25LM51245G QSPI test config file11289
Replace TEST_ASSERT_INT_WITHIN usage in netsocket tests11276
Add integration tests11275
Enable building feature storage with a bare metal profile11272
mbed fault handler: fix mbed_fault_context parameter11269
storage: fix potential memory corruption and check return values11266
ADC internal temperature support and EMAC header fix11265
Addand ARMC5 11249
Make AT_CellularSMS::list_messages support index 0 in SMS inbox11248
Allow ATHandler::read_int to return 0 successfully11247
AT_CellularSMS: set “international” flag in PDU when applicable11246
Cellular: Fix BG96 AT driver for IPv611245
AT_CellularSMS: allow configuring SMS encoding (7-bit/8-bit) at initialization11244
Netsocket: Change DNS retry and total attempt counts11239
crypto: Copy legacy crypto from Mbed Crypto11236
Force inline Timer::attach() to get rid of floating-point instructions11235
minimal-printf should not bypass the retargetting code11225
Vision export: Handle more C++ language standards11224
Coverity issues fixed11220
Fix cellular dns test with IAR compiled binary11213
Moved partial profile to a subdirectory11212
Change default optimisation level to O1 when exporting to uVision11211
Review follow-up mstd fixes11208
Atomics: GCC fix for M23 (again)11201
Cellular: Fixed improper AT handler setup through virtual calls in co11200
Cellular: moved string_to_pdp_type from AT_CellularContext to Cellula11191
Cellular: move RAT reading to better support ublox custom boards11190
Cellular: failure when deleting created context is not considered error11185
Move rtos & platform TARGET directories to source11181
mbed-mesh-api: Add new API for Wi-SUN configuration11154
Cellular API shutdown to stop state machine11152
Nuvoton: Fix FPGA CI test failing11149
Cellular: Remove unnecessary local variables11148
Cellular: Fix SIM pin enter command11145
Implement queue.count()11142
Relocate USB target specific code to roottargets
directory11136
USBDevice: Avoid forcing end device to be derived from USBDevice class11126
Optimize debug profile flags for size11122
Support Nuvoton’s new target NUMAKER_IOT_M263A11119
Riot Micro cellular device11104
Enterprise security support11099
Update EP_AGORA target pinout11084
NVStore.cpp (and KVStore) - run-time failure handling missing11082
Cellular: Add BG96 AT driver with DNS support11076
ARMC5extensions 11074
Add a gpio-irq pinmap11073
Feature public headers11072
STM32L4: update drivers version to CUBE V1.14.011070
IAR: Suppress “exceptions are disabled” warning11067
Add Unittest equeue tests11058
BLE: allow overriding event signal11053
Add Mbed bootloader support to CY8CKIT_062_WIFI_BT and CY8CPROTO_062_4343W11051
Add minimal printf11050
DISCO_L4R9I new target11039
AddC++ headers 11038
Extend the GPIO HAL API tests11019
Nuvoton: Modify wait ns(…) to provide more accurate implementation11018
PSOC6_SB: initial integration of Cypress Secure Boot target CY8CPROTO_064_SB11009
FPGA SPI: remove 4 and 12 bits size support10980
LwIP: make TCPIP_THREAD_PRIO configurable10974
Created PPP interface and PPP service classes to netsocket10971
Nanostack: sync libservice with changes in master copy10947
Port the cryptocell 310 cmac driver10921
STMOD_CELLULAR: readme file additional information10919
AT Cellular Network: mutex lock issue10913
Port CC 310 sha 512 driver10907
Port aes cc310 driver10900
Armcc5 compilation fixes10895
Reduce Event.h and EventQueue.h using C++1110885
Reduce Callback.h using C++1110877
Cellular: Ublox cellular context activation updated for C030_R412M10868
Add C++11/14 support utility file10866
Adding stmod_cellular component10847
PSA storage: Conform to “PSA 1.0.0” spec release10841
TARGET_STM: Add DEVICE_SPI_COUNT to use SPIs without interference10837
Toolchain attributes - use C++11/C1110829
PSA: TFM import10821
Cellular: Refactor APN db implementation to reduce memory usage10813
Make ARMC5 and IAR develop profile also size optimized10792
Fix: Allow target size restriction for LPC55S6910750
Changed EventQueue::cancel to return boolean value10741
M2351: Override wait_ns to provide more accurate implementation10711
Add i2cee-driver to components10703
Cellular: Removed boilerplate code10699
MbedCRC: make buffers const void *10694
Cellular: add method to set authentication type to CellularContext10683
Export wait_ns to be overridable10660
Add SCLK and SIN stats to SPIMasterTester10659
Replace uses of ArrayView with mbed::Span10644
Add a gpio pinmap10274
Add Atomictemplate 10104
Sleep rework, RTOS API for bare metal, wait deprecations11467
Convert TZ target name to test spec platform name11450
Minimal-printf: Set default configurations to false11441
Organize source files and add Doxygen labels11435
Update to Mbed TLS 2.19.0 and Mbed Crypto 2.0.011419
Adds missing include required by fixed-width format specifiers11418
NRF52: fix config11412
Kinetis update to fix tickless11410
Mesh API, Wi-SUN: Initialize Wi-SUN settings with values from json11385
Fix problem with low level lp_ticker STM wrapper11376
Update PDL documentation and metadata11526
Fix added to unlock AT handler mutex11522
Sys timer should let deep sleep happen11521
Bux fix: Context can be cleared using CGDCONT after sim ready state11493
Update to Mbed TLS 2.19.111487
Convert TZ target name ‘NPSA’ to test spec platform name11484
Delaying message id random initialization to later stage.11479
no-systick targets: fix systick irq handler setup11423
Nanostack release for mbedos 5 1411288
M2351: Enhance secure/non-secure image build flow for non-PSA targetUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.14.0”.
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.13.4
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.13.4 release is now available.
Summary
In this release we have added the following targets: * CC3220SF_Launchxl * Arduino Nano 33 BLE
mbed-coap has been updated to version 4.8.1. This brings the following changes:
- Store ACK’s also into duplicate info list.
- ROM size optimization. Flash size has gone down ~1100 bytes.
- IOTCLT-3592 - Client does not handle Duplicate ACK messages during blockwise registration correctly, issue closed
We have fixed the following reported issues:
- 11175 Watchdog issue with timeout
- 10198 FATFileSystem::stat() function broken with IAR
- 11143 TT_M3HQ fails to compile with mbed-os master
We have also:
- Enabled MBED_TICKLESS on K22F, K64F, K66F, K82F, KL82Z, KW24D, KW41Z, MIMXRT1050 and HEXIWEAR
- Added SPISlave, SPI_ASYNCH, I2CSlave, I2C_ASYNCH and RTC features to Toshiba’s TMPM46B
- Added TRNG support for MIMXRT1050_EVK
- Implemented Watchdog & Reset Reason for LPC1768 targets
- Updated MCUXpresso SDK SPI drivers
- Add ethernet support for NUCLEO_H743ZI
- Added FlashIAP and USBDEVICE support for K22F
There are also a number of other fixes and code improvements.
Migration Guide
This section lists specic changes which are part of this release and may
need special attention.Allows placing KVStore and update images on separate storage devices - to internal and external flash
Fixes TDB_INTERNAL configuration - makes possible to have the KVStore inside internal flash while update images are kept in an external storage.
Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
11137
Add Arduino Nano 33 BLE target11063
Add CC3220SF_Launchxl to Mbed OSFixes and Changes
11284
K22: Add USBDEVICE support11282
K22F: Add FlashIAP for storage11280
Tweak stm_spi_api Coverity warning.11274
Add ethernet support on NUCLEO_H743ZI board11273
Fix Coverity uninitialized pointer field Thread.h11270
Update mbed-coap to version 4.8.111268
Update MCUXpresso SDK SPI drivers11267
NXP MCUXpresso: optimize us_ticker for LPC platforms11261
MCUXpresso: Add TICKLESS support for LPC platforms11260
Typo in USBSerial.h function prevents compilation11259
FATFS / IAR compilation issue Pe02911255
Update NVRAM image for target CY8CMOD-062S2-4301211250
hal fhss timer: removed unnecessary and potentially unsafe memset11243
Python3 fixes11241
LoRaWAN: Terminate RX when receiving uplink messages11237
Fix TT_M3HQ build problem11231
Python3 fixes11226
LPC1768 Watchdog & Reset Reason11222
BLE: fix recursive call11216
BLE: make advertising data parser handle early termination11215
LPC1768: Make use of the other 32K of RAM11204
BLE: add nonscannable connectable type11194
Greentea testing wifi connect nonblocked11193
FATFileSystem::stat() enabled for all compilers11189
__cplusplus guard fixed pwmout_device.h for STM32 families11188
MIMXRT1050_EVK: Add TRNG support11183
M252KG: Fix kvstore-static_tests failing with OOM11180
tweak atomic_test timeout11178
ST: Watchdog: Fix timeout registers value calculation11172
make watchdog kick reset test pass CI (LSI problem)11171
Add Nuvoton M261 sub-family into arm_pack_manager11169
TLSSocketWrapper::recvfrom sets SocketAddress output variable11167
Fix lp ticker and common ticker tests11166
Fix inclusion of test related directories by build tool11165
Allows placing KVStore and update images on separate storage devices - to internal and external flash11157
Relax us ticker frequency requirement + test update11137
Add Arduino Nano 33 BLE target11127
Fix ANALOGIN support for LPC55S6911118
Add new features to Toshiba’s TMPM46B11116
Define IC related pin names for the L-Tek FF_LPC546XX target11063
Add CC3220SF_Launchxl to Mbed OS11021
Nuvoton: Enlarge LPTICKER_DELAY_TICKS for safe11020
Nuvoton: Enlarge required deep sleep latency10796
NXP: Enable MBED_TICKLESS on various NXP platformsUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.13.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-5.13.3
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.13.3 release is now available.
Summary
In this release we have added the following targets: * CY8CKIT_062S2_43012
We have fixed the following reported issues:
- 10912 How to reset Cellular network interface?
- 9850 GREENTEA can’t compile if DEVICE_SERIAL is not enabled
We have also:
- Added a USB device implementation for PSOC6
- Added the missing serial_free() implementation for FUTURE_SEQUANA
- Fixed rom start & size for CY8CKIT_062_WIFI_BT & CY8CPROTO_062_4343W
- Added crash capture support to STM32F413 targets
There are also a number of other fixes and code improvements.
Migration Guide
This section lists specific changes which are part of this release and may
need special attention.Known Issues
In this release the release version block in mbed_version.h was not updated correctly and still points
to mbed-os-5.13.2.Contents
Ports for Upcoming Targets
Fixes and Changes
11179
Zero initialise all NVStore&kvstore members11173
Coverity and compilation warnings fixes11168
Xpresso: qspi_write fix11163
Bring back SPIF module-specific debug logs11162
Add DNS servers from cellular PDP to nsapi11161
Fix include path issues on NRF5x with Cordio11160
Nuvoton: Remove dead code nu_delay_cycle_x411151
Fix PSoC 6 inout pins11150
__cplusplus guard fixed pwmout_device.h for STM32F411141
freescale: fix i2c_byte_read function11139
STM32F413 Crash Capture11138
fix rom start & size for CY8CKIT_062_WIFI_BT & CY8CPROTO_062_4343W11132
Fix MBED_ASSERT for UTs11131
FUTURE_SEQUANA: Add missing serial_free() implementation11130
Updated testcases11123
NRF52 need to call TIMER_TASK_SHUTDOWN for current consumption11103
STM32F7: Do not generate redundant IN tokens11101
PSoC 6 I2C and SPI driver updates11086
Mbed-os compile without DEVICE_SERIAL11080
Add target for CY8CKIT_062S2_4301211071
PSOC6: USB device implementation11066
Cellular: Fix cellular statemachine stop and BG96 power upUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.13.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.13.2
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.13.2 release is now available.
Summary
In this release, we have made a number of quality improvements:
- Updated Mbed TLS to 2.18.1 and Mbed Crypto to 1.1.1
- Updated the MCUXpresso AnalogIn driver to pass the FPGA test shield tests
- Enabled FPGA-based SPI testing on Silicon Labs targets
- Added information about sectors to STM32F446ZE targets
The following reported issues have also been fixed in this release:
- Fixed the MCUXpresso LPC GPIO IRQ driver to not disable both rising and falling edges of the interrupt
- Fixed SAADC resolution for nRF52-based targets
- Fixed serial device IRQ infinite loop in STM devices when buffer size is greater than 256 bytes
There are also a number of other fixes and code improvements.
Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
Fixes and Changes
11090
Cellular: Fix to delete context just once11079
NRF52840: enable TRNG in Nordic SDK config11078
NRF52840: fix include path issues for ble pal cordio ll and gcc11077
NRF52840: remove align instructions from gcc linker for ARM.extab exi11069
add defines sectors for STM32F446ZE11064
MCUXpresso: Fix the LPC GPIO IRQ driver11062
Fix SAADC resolution for nRF52-based targets… again11060
MCUXpresso: Update LPC spi driver11059
GCC ARM: Increase develop and release debug level11052
Update MCUXpresso AnalogIn driver for LPC devices11049
Normalize line endings for IM880B startup files.11042
Fixed serial_device IRQ infinite loop bug due to uint8_t overflowing in STM devices11035
mbedtls: Update to Mbed TLS 2.18.111028
Fix FPGA CI Test Shield warnings11026
Add a restricted peripheral list11022
Fix watchdog tests failing with OOM11015
Fix wrongly declared ADC pinout for EFM32GG11 STK3701A11014
Increase ADC tolerance to 5% in FPGA-based tests11010
FPGA SPI: ASYNC issue11008
Enable FPGA-based SPI testing on Silicon Labs targets11007
Fix PWM output on Silicon Labs targets for large pulsewidths11005
FPGA PWM: wait 1 period before measurement11004
FPGA I2C: correct init bloc number11003
LPC MCUXpresso: Remove extra I2C transaction on byte write10994
Add DEVICE_SERIAL_FC guards to serial HAL API10963
PSA TESTS: Include mbedtls/config.h before evaluating MBEDTLS_PSA_CRYPTO_CUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.13.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-5.13.1
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.13.1 release is now available.
Summary
In this release we have added target support for:
MTB ublox ODIN W2 and NUCLEO-F413ZH.We have: * Introduced a watchdog API to detect system malfunctions and reset the system to recover from them * Introduced an API to detect the system reset reason to compliment the watchdog functionality * Updated ST CUBE for the STM32F0 series to v1.9.0. This brings:
* Current ST Cube version in MBED to V1.7.0
* CMSIS part update from 2.3.1 to 2.3.3
* HAL part update from 1.5.0 to 1.7.0 * Replaced our BLE Nordic PAL client implementation. Issues in the GattClient logic have been fixed and previously missing GAT procedures have been implemented:
* Discover Primary Service by Service UUID
* Find Included Service
* Read Using Characteristic UUID
* Read Multiple Characteristics
* Queue Prepare Write
* Execute Write * Added Flash support for STM32F0, STM32F1 and STM32F3 devices * Enabled tickless mode on nRF52840Important changes are:
- 10997 VSCode exporter now uses executables that are installed into the system PATH instead of absolute paths to the compiler executables.
- 10967 ESP8266 driver fix to work with older firmware version of ESP8266 module.
- 10938 K64F, STM32F429: IAR icf linker scripts modified to use dynamic heap allocation of all available memory.
- 10879 PSA Crypto APIs are now available on all Mbed OS targets.
- 10857 Watchdog API:
- Added new HAL API:
watchdog
andreset_reason
- Added new drivers:
ResetReason
andWatchdog
- 10824 STM32: pwmout_write: configure channel only when not already enabled
- 10794 LWIP DNS servers setting/getting fixed.
- 10776 UDPSOCKET_ECHOTEST_NONBLOCK performance improvement.
- 10757 Add support I2C 3 for target EFM32G11
- 10701 STM: replace C++ low power ticker wrapper with a low level wrapper to remove the latency limitation of the LP ticker wrapper.
- 10665 Add hardcoded Echo server defaults for Greentea socket tests.
- 10609
wait_us
has been optimized for certain platforms - seeus_ticker_api.h
for the details of enabling optimizations on other targets. It can be optimized further if the optiontarget.init-us-ticker-at-boot
is enabled.
There are also a number of bug fixes and test enhancements.
Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
10972
add new target IM880B10884
NUCLEO_H743ZI2 new target support10633
Add new features to Toshiba’s TMPM4G910629
Add support for the Embedded Planet Agora targetFixes and Changes
11027
PSOC6: add LwIP configuration for Cypress boards11013
Revert “K64F, STM32F429: IAR linker scripts dynamic heap fix”11012
Remove FPGA analog out test11011
Allow re-initialising an I2C peripheral on Silicon Labs targets11002
LPC546XX: Add pins to LPCXpresso restricted list10997
Removing absolute paths to compiler executables10990
Fix doxygen_options.json for ResetReason10989
SPI FPGA test extension + SPI driver fix (K64F)10984
Skip form factor pins marked as NC10982
STM32 LPUART minor update for easy maintenance10977
Fix out-of-bounds array access in tests-mbedmicro-rtos-mbed-malloc10976
Fix error in tests-mbed_drivers-ticker when LED2 is not connected10975
Restrict FPGA tests to Arduino form factor10972
add new target IM880B10968
Add FLASHIAP for MTB_STM_S2LP10967
ESP8266: fix driver’s support AT firmware version10966
Add RZ/A1 settings to arm_package_manager10964
Add newline after mbed error so greentea shows it10954
Watchdog: Clean up the doxygen comments10950
Enable split heap in K64F/K66F devices10948
BLE: fix flex word10944
Update I2CTester for fpga-ci-test-shield10939
Fix SAADC resolution for nRF52-based targets10938
K64F, STM32F429: IAR linker scripts dynamic heap fix10934
Fix: Low frequency clock will now selected by given “lf_clock_src” setting.10933
Nordic NRF52832 cache ON10932
Internal delay loop code alignment to 1610928
STM: Correct macro test in us_ticker_defines.h10925
Doubled ATHandler’s BUFF_SIZE10920
Kinetis MCUXpresso: Update the clock drivers10910
Increase dns-response-wait-time10908
Fix netconn_recv_tcp_pbuf ARMC6 linker error10896
microlib support: Specify compiler version unable to build without the fix10894
Add adjust-check-config script to mbedtls importer10893
cellular: fix file permission10888
Remove macro MBEDTLS_PSA_CRYPTO_C from PSA targets10884
NUCLEO_H743ZI2 new target support10881
Fix Nordic/Mbed Critical Section API Inconsistency (In Builds w/o Softdevice)10879
PSA Crypto for all targets10874
Add new features to Toshiba’s TMPM3H610873
Add new features to Toshiba’s TMPM3HQ10870
HAL I2C: adds missing DEVICE_I2C guards10869
LPC55S69: fix cosFactor data size in header file10867
LoRaPHY: Pass frequency set in rx_config() to caller10864
TLSSocket: print certificate info only when tracing is enabled10861
Make the sys_arch_protect() mutex be recursive.10859
Removing I2C and SPI pin names in SDP-K1 PinNames.h file.10858
Check Cellular Properties have been set10857
Bring watchdog feature branch into master10856
STM32: enable CRC for all L0/L4/F710855
Nuvoton: Fix idle thread stack underflow in debug build10846
MbedCRC doxygen fixes10845
Wrong timeout value in greentea tests10842
Cellular: Stack type fixes10840
Cellular: cellular socket flags updated10835
M23: Fix compile error with mbed fault handler10834
Fixed UDP sendto if IP version not match10833
fix IAR compile error on fastmodels10826
Add STM32H743ZI to IAR export definition10825
Cellular: Fix PLMN debug trace for IAR10824
STM32: pwmout_write: configure channel only when not already enabled10823
Nuvoton: Fix channel release in analogout_free()10820
Bring FPGA-Test-Shield tests into Mbed-os master.10812
Cellular: fix athandler to use correct timeout in case of multiple urc’s10811
socket close callback10808
Cellular: Added handling for BG96 network PDP context deactivation10807
NSAPI/lwIP: Use netconn_recv_tcp_pbuf10804
TARGET_STM: SPI: update pull up config depending on clk polarity10798
TARGET_TT:Add GPIO INT pin with PT110795
FastModel: trun off MPU for FVP_MPS2_M0P10794
LWIP DNS servers setting/getting fixed.10793
STM32: remove compilation warnings10791
bootloader: Fix LPC55S69 bootloader segmentation10790
STM32H7 enable LPUART10782
GR_LYCHEE,RZ_A1H,VK_RZ_A1H: Fix greentea test failure with ARMC610781
Include TICKLESS stack size increase even without LPTICKER_DELAY_TICKS10779
Add support for SPIF of size bigger than 16Mbyte10776
UDPSOCKET_ECHOTEST_NONBLOCK performance improvement.10775
STM32H7: refactor TARGET directory10774
Fix serial IRQ handling10772
Workarounds for GAP advertising issues on Cordio10769
PSOC6: add SOFTFP to standard component list10767
usb_device-msd test: fix powershell unmount script issue10762
Disable only time drifting test cases and fix GREENTEA_SETUP() call in tests10761
Fix networkinterface non-blocking status test10758
Move Seeed ARCH_MAX to TARGET_STM32F407xE MCU10757
Add support I2C 3 for target EFM32G1110756
Cleaned up trace log SPIF Block Device10755
hal_qspi_test: undo buggy code10752
STM32L0: Add DEVICE_SPI_COUNT to DISCO_L072CZ_LRWAN1 + MTB_MURATA_ABZ10751
TARGET_TT:Setting wisely pin mode for TT_M3HQ.10749
Examples: enable more tests for examples10746
PSA protected storage: Add encrypt & RB protect flags by default to set.10744
Fixes in Sys Timer test10742
CThunk: Fix assertion when CThunk object is destroyed10739
M487: Fix wait_ns test failed10708
TARGET_STM: SPI: add pulse on master transmissions10707
Add C++14 sized delete operators10706
mem pool size: Fix calculation of memory pool size for portability10705
Atomics: GCC fix for M23 (ARMv8-M baseline)10704
microlib support: Fix build with Arm Compiler 6 and MicroLib10702
Add extra idle debug stack size in case all STATS are enabled10701
STM: replace C++ low power ticker wrapper with a low level wrapper10700
Update HAL Sleep manager test to cope with STM32 LPTIM HW10698
timeout_tests: do not call sleep from test thread10697
STM32H7: flash issue while erasing sector in Bank 110696
Cellular: Fix socket connect on UBLOX_AT driver10695
GD32_F450ZI : Add bootloader support10692
PSOC6: initial integration of Cypress HAL10689
nRF52840 USB Device Implementation10688
Add a top level README file for USB tests10686
MAX32630.sct fix10680
Add compilation flags to rf_configuration10676
STM32: common cmsis.h and device.h files10674
TARGET_TT: adding switches to PinNames10672
Fix typos in the FPGA CI Test Shield component10665
Add hardcoded Echo server defaults for Greentea socket tests.10663
PSOC6: move cmsis.h and device.h out from psoc6pdl directory10656
Cellular: AT_CellularContext disconnect in non-blocking mode10654
USBHostMSD: Implement BlockDevice get_type()10653
STM USBHALHost: Fix NULL pointer dereference10651
USBHost: Wait for device to implement SET ADDRESS10647
Fix LWIP warning issues found by Coverity scan10633
Add new features to Toshiba’s TMPM4G910629
Add support for the Embedded Planet Agora target10619
Fastmodel: enable flashIAP and kvstore10609
wait_us optimization10588
Cell bg96 power10536
Changes required by the ST low power ticker wrapper.10501
Remove excessive info and debug prints in SPIF driver10484
Cellular: Telit ME910 driver10466
STM32H7: WATCHDOG and RESET_REASON support10437
PSA: Exclude mbed-hal-spm test for M23 targetUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.13.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.13.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.13.0 release is now available.
Summary
As IoT devices proliferate, our focus is shifting toward optimizing Arm Mbed OS to best address the use cases our customers face. In 5.13, we have reduced the number of new features we’re delivering and have instead concentrated on specific optimizations of existing features that benefit our customers.
Migration guide
This section lists specific changes that are part of this release and may need special attention.
Nanostack release for Mbed OS 5.13
This release contains updates for the Mesh protocols:
- Stability improvements and bug fixes to Wi-SUN and Thread protocol.
- EAPOL (certificate-based network authentication) enabled to Wi-SUN mesh protocol.
Notes about Mesh stack maturity:
- This version of Wi-SUN stack is interoperable only with itself (development work still ongoing).
- Wi-SUN protocol is tested using functional protocol testing suites.
- Wi-SUN nonfunctional testing is performed using 40 devices connected to single Wi-SUN network.
- Thread stack is verified using protocol testing suite that includes certification test suite.
DataFlash: Change erase size to pages to reduce memory use
Previously the DataFlash driver exposed the minimum erase size as blocks, which are typically 4 K. DataFlash, however, supports page erases as small as 256 B.
This change implements page erases, which lower RAM requirements for buffers.
Because this has no relation to any file system and lowers the minimum erase size, it should not cause issues with devices with existing data stored on them. However, a future format of FATFS may end up with smaller sectors by default, which would further reduce RAM requirements.
Enterprise_mode + wifi_configuraiton_api: update ODIN drivers to v3.7.0 RC1
A private API is provided for ODIN_W2 target against enterprise mode.
nsapi_error_t connect( const char *ssid, const char *pass, nsapi_security_t security, auth_cert_s *cert_handle, const char *username = NULL, const char *user_pswd = NULL, uint8_t channel = 0);
The application is required to pass a certificate (CA cert or client cert) and key (private key) in PEM format. You are required to pass those certificates through cert_handle auth_cert_s. An appropriate security should be selected: either NSAPI_SECURITY_EAP_TLS or NSAPI_SECURITY_PEAP.
For example:
static auth_cert_s certificates; _wifi = new OdinWiFiInterface(true); #ifdef EAP_TLS_TESTING certificates.client_cert = &cert_data[0]; certificates.client_prvt_key = &cert_data_key[0]; certificates.ca_cert = NULL; #elif defined(PEAP_TESTING) certificates.client_cert = NULL; certificates.client_prvt_key = NULL; certificates.ca_cert = &ca_cert_data[0]; #endif _wifi->connect(ssid, pass, security, &certificates, _peap_username, _peap_user_pass, channel);
Configuration API
virtual unsigned int get_config(void *setting); virtual void set_config(void *setting, cb_uint32 value);
A description of parameters is available in https://github.com/u-blox/mbed-os/blob/0dda8c447c644cb8ee5063099ad09226a6caf746/targets/TARGET_STM/TARGET_STM32F4/TARGET_STM32F439xI/TARGET_MODULE_UBLOX_ODIN_W2/sdk/ublox-odin-w2-drivers/cb_wlan_driver_config.h
Cellular: Make AT_CellularContext::get_context() virtual
Makes
AT_CellularContext::get_context()
virtual - overwrite-able by the individual cell module driver authors (similar to what is available for other AT_CellularContext functions, like do_connect()).Set compilers to C++14 and C11
GCC and Arm toolchain profiles now select C++14 and C11, matching IAR, and these are the tested profiles. The code base in this release should still work if profiles are set to C++98 and C99, though this is no longer tested.
Migration notes
As the default profiles now select C++14 and C11 for GCC and Arm toolchains, some applications may fail to compile because they use constructs that were valid in C++98 but are not in C++14.
IAR 8 has always operated in C++14/C11 mode, so there are no new changes for IAR users who switched to IAR 8 for Mbed OS 5.12, but these notes apply to users migrating from older Mbed OS versions that used IAR 7.
Common compatibility issues
- A space is required when a macro follows a string literal, for example in C99-style
printf
formats:
C++ uint32_t val; printf("val = %"PRIu32, val); // Not valid in C++11 printf("val = %" PRIu32, val); // OK
Without the space, C++11 interprets it as being a request for a user-defined “PRIu32-type” string literal.
- Initializer lists cannot have implicit narrowing conversions:
C++ uint32_t x; uint8_t array1[] = { x }; // Not valid in C++11 uint8_t array2[] = { 0xffff }; // Not valid in C++11 uint8_t array3[] = { x & 0xff }; // Not valid in C++11 uint8_t array4[] = { (uint8_t) x }; // OK uint8_t array5[] = { static_cast<uint8_t>(x) }; // OK uint8_t array6[] = { 0xffff & 0xff }; // OK (because it's a compile-time constant that fits)
These changes should be easy to make to existing code bases. You can find a guide to other possible breakages in C++11 at https://stackoverflow.com/questions/6399615/what-breaking-changes-are-introduced-in-c11. C++14 and C11 can cause a few extra issues.
Future compatibility issues
The
register
keyword is deprecated in C++14 and is removed in C++17. Some compilers issue warnings forregister
use in C++14, but this has been temporarily suppressed due to the prevalence of the keyword in target code. C++ code should be updated to remove the keyword as soon as possible: The warning will be reactivated after Mbed OS itself no longer triggers it.Fallback
Mbed OS 5.13 releases should still work if compiled as C++98/C99, though this is not tested. If you have serious application compatibility issues, you should be able to switch the build profile back to the earlier language version as a temporary measure. This is likely to no longer be the case for Mbed OS 5.14.
Arm Compiler 5
Arm Compiler 5 has limited C++11 support and no C++14 or C11 support, and Arm Compiler 5 is no longer tested or officially supported. Nevertheless, Arm Compiler 5 builds have deliberately not been broken; the Arm Compiler 5 build profiles select its C++11 mode in an attempt to match the other toolchains as much as possible, but the limited support may itself cause issues. Attempts to check
__cplusplus >= 201103
may activate code Arm Compiler 5 cannot actually compile. Like the other toolchains, the profile can be switched back to C++98 if necessary for now.Continued Arm Compiler 5 support will limit the adoption of C++11 and C++14 features in the Mbed OS code base, so it is possible Arm Compiler 5 builds may stop working in an upcoming release.
Nanostack: translate errors from sendmsg
Nanostack send calls return more accurate information in case of errors.
Update CMSIS to 5.5.1
CMSIS updated from 5.4.0 to 5.5.1.
KVStore: Support external storage out of mbed-os tree
Support external storage out of mbed-os tree in KVStore. To enable it, you need to:
- Configure KVStore configuration parameter
blockdevice
toother
. - Override
get_other_blockdevice()
to provide block device out of mbed-os tree.
C++ BlockDevice *get_other_blockdevice();
Update to LWIP 2.1.2
The latest LWIP 2.1.2 released is now integrated with Mbed OS. The new LWIP release has improvements in following areas:
-IP4 routing.
-IP6 scopes and zones.
-DHCP6.
-ND6.
-TCP.
-Sockets.
-Binding network interfaces to sockets.The LWIP changelog contains detailed changes
Mbed OS dedicated patches were applied to the new LWIP version.
Multihoming was refactored due to the new socket-interface bind implementation.
Add option to disable default UART console
A new configuration option,
target.console-uart
, allows default serial console functionality to be deactivated, either because the target has serial but no console, or to save power/memory by not using the console.Remove FEATURE_STORAGE and all underlying deprecated features
Remove FEATURE_STORAGE and all underlying deprecated features: cfstore, flash-journal and storage-volume-manager.
Mail/MemoryPool: blocking alloc
Mail
andMemoryPool
now provide blocking forms ofalloc
calls that can sleep the thread until a memory block is available.Cellular: CellularContext must provide access to CellularDevice
When using NetworkInterface::get_default_instance(), the application gets handle to CellularInterface, which is actually CellularContext derived from CellularInterface. The application also needs to handle CellularDevice to open other interfaces.
Assembler atomics
We have:
- Separated atomic APIs into
mbed_atomic.h
frommbed_critical.h
. Code not includingmbed.h
may need to check their includes. - Added atomic
fetch_add
,fetch_sub
,fetch_and
,fetch_or
,fetch_xor
andcompare_exchange_weak
operations. - Added explicit memory ordering specification. (Don’t use this unless you are familiar with the C++11 memory model.)
- Added freestanding atomic function templates.
Cellular: retry logic for CellularContext connect
Add retry logic for CellularContext connect last phase: activating pdp context/open ppp channel. Retry logic is the same as in CellularStateMachine.
Enable post build bootloader merging in uvision
Offline projects that use the managed bootloader mode (as is the case for all Pelion Device Management projects using the update capability) should now be able to export and debug properly in uVision. A post build script is now enabled, which takes care of the header generation, binary merging and loading of the correct symbols for your application. This only allows debugging the application, not the bootloader.
Note: This feature is only enabled when exporting offline with Mbed CLI. This is because the post build script has a dependency on the Mbed OS tools and their Python dependencies. This means projects exported from the Online Compiler can’t use this capability.
Use LP tickers for waiting in no-RTOS builds when available
For bare metal builds, use the lp_ticker for calls to wait_ms instead of us ticker if lp_ticker is available.
ESP8266: treats Wi-Fi scan results as out-of-band data; new API to adjusting Wi-Fi scan settings
ESP8266: new Wi-Fi scan API for active and passive mode. Making channel scan time configurable
GCC - Add support to split heap across 2-RAM banks
Mbed heap split into 2-RAM banks is added, which can be enabled by compiling source with MBED_SPLIT_HEAP macro. You should add linker symbols
__mbed_sbrk_start
__mbed_krbs_start
__mbed_sbrk_start_0 __mbed_krbs_start_0
in GCC linker script to state start and end of each HEAP region.ESP8266: Country code API
ESP8266Interface: new API to configure country code and channels to be used.
Default to Cordio BLE stack for NRF52* targets
Starting with mbed-os 5.13 and the introduction of Nordic SDK V15, Nordic SoftDevice Bluetooth stack is not supported. Bluetooth remains supported with the help of Arm’s Cordio stack.
Known issues
We publish Mbed OS as a collection of modules on GitHub. Issues are raised in 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, please 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 the EXPERIMENTAL stage, so use it at your own responsibility.
- Reported issue: Issue reported by a customer in an 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 hardware 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 hardware 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 peer’s side. - Reported issue: Reported by the development team.
- Priority: MAJOR.
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: There are no known workarounds.
- Reported issue: https://github.com/ARMmbed/mbed-os/issues/8064.
- Priority: Major.
Platform: Realtek RTL8195AM does not define flash algorithms for uVision
- Description: No flashing support in uVision for Realtek RTL8195AM.
- Workaround: Use drag-and-drop programming.
- Reported Issue: https://github.com/ARMmbed/mbed-os/issues/4651.
- Priority: Minor.
Platform: Realtek RTL8195AM - CMSIS-RTOS error: ISR Queue overflow
- Description: Realtek RTL8195AM does not maintain a long running connection to Mbed device connector. The error manifests as an ISR Queue overflow.
- Workaround: There are no known workarounds.
- Reported issue: https://github.com/ARMmbed/mbed-os/issues/5640.
- Priority: Major.
Core: Some boards are crashing when lots of data is sent and received through buffered serial
- Description: This is currently known to affect Ublox ODIN W2 and RTL8195AM.
- Workaround: There are no known workarounds.
- Reported issue: https://github.com/ARMmbed/mbed-os/issues/8081.
- Priority: Major.
NVStore and TDBStore objects can collide in internal flash
- Description: NVStore and TDBStore are classes implementing storage solutions. By default, they allocate the last two sectors in internal flash. If you use both, a runtime error happens. NVStore is deprecated, and you should use TDBStore instead.
- Workaround: Use TDBStore instead of NVStore.
- Priority: Minor.
SPI failures on CY8CKIT_062_WIFI_BT
- Description: When reading from an SD card connected with SPI, sometimes we see that read operation leave some bytes unchanged in the buffer without reporting the error. The root cause is under investigation.
- Workaround: https://github.com/ARMmbed/mbed-os/tree/feature-SD-verify.
- Reported issue: IOTSTOR-815.
- Priority: Major.
UART flow control does not work on Cypress CY8CKIT_062_WIFI_BT_PSA
- Description: UART hardware flow control: When connecting a Wi-Fi shield with UART, flow control does not work. The root cause is under investigation.
- Workaround: There are no known workarounds.
- Reported issue: IOTHAL-481.
- Priority: Major.
Wi-SUN static IPv6 backbone configuration in nanostack border router is not working
- Description: Static IPv6 backbone configuration is not working in border router if Wi-SUN mesh network is used and will cause hard fault.
- Workaround: Use dynamic configuration in border router with functional IPv6 backend.
- Reported issue: IOTTHD-3591.
- Priority: Major.
Cordio Link Layer: GAP advertising parameters need to be set before advertising data is set
- Description: This issue only affects users of the Cordio Link Layer. If this ordering is not respected, GAP advertising data will not be set correctly.
- Workaround: If using the BLE API, apply changes from https://github.com/ARMmbed/mbed-os/pull/10772. If using the Cordio Host Stack API, make sure advertising parameters are set before advertising data is set when using the Cordio Link Layer.
- Reported issue: IOTPAN-486.
- Priority: Major.
Mbed_platform_wait_ns fails on NRF52* when compiled with Arm Compiler 6
- Description: Under some circumstances, the wait_ns test will fail when compiled with Arm Compiler 6 and run on NRF52_DK. The test results seem highly dependent on compilation options and what is put in the binary. The test always succeeds when -O0 or -O2 is used. It fails only with -Os.
- Workaround: Compile with a different optimization option.
- Reported issue: https://github.com/ARMmbed/mbed-os/issues/10849.
- Priority: Critical.
Testing and improvements
GitHub pull request testing speed up
We have improved our internal Jenkins testing scripts to speed up pull request tests. The purpose is to test only what is needed. The three main improvements are:
- Algorithms that select needed checks based on code change. In practice, this is most visible in pull requests that contain only README changes. For those changes, no testing is needed at all.
- An algorithm that ignores greentea tests that did not change and passed previously. This reduces >90% of greentea test duplication, which was the bottleneck of the testing pipeline.
- Additional hardware, so we can run more hardware tests in parallel.
Based on these big changes and many smaller improvements, automated tests are not the bottleneck for the pull request handling process.
Nightly test setup
We have introduced an additional test phase that runs every night. In this phase, we have more tests and hardware coverage. We will introduce new hardware first in nightly tests and later in pull request tests. This makes pull request testing faster and more robust.
We currently use this setup internally but will report relevant findings to the Partners and community. The intention is to make this more visible to the external community.
Test coverage metrics
We are moving away from calculating the number of tests executed and number of build binaries. These metrics are no longer as relevant because of many optimizations in the test flow.
Below is the number of test cases for each of the test tools. The change since 5.12.0 in the parentheses:
- Unit tests: 582 (+1), line coverage: 87% (coverage measure only files which contain some tests).
- Greentea: 1281 (-155), line coverage: 36% (coverage is calculated with Fast Models which cannot execute all test at the moment).
- Icetea: 42 (+0).
Contents
Ports for upcoming targets
9221
Add ARM_MUSCA_A1 targetFixes and changes
10675
Update Mbed TLS 2.18.0 rc110666
Bring Nordic SDK v15 update to master10646
Fix deprecation notice for ble::Gap::getState()10640
BLE HealthThermometerService: correct GATT characteristics10639
Cellular: Preventing Socket ID assignment until actual socket creation at the modem10638
Fix AdvertisingDataBuilder UUID insertion bug10636
+UPSND sent to poll activation status10635
BLE: Deprecate UARTService and suppress compiler warnings10634
BLE: Fix deprecated API calls in battery and thermometer services10631
Update cube h7 to 1.4.010627
Remove targets FUTURE_SEQUANA_M0_PSA and FUTURE_SEQUANA_PSA10625
TESTS: Update examples.json to enable testing10624
Nanostack release for Mbed OS 5.1310623
Cellular: Fix unit test valgrind warnings10621
Fix usb_device-msd test Python dependencies10620
Update mbed-coap to version 4.8.010617
Change W7500 GPIO driver10616
Fix bug Operator new[] out of memory10615
This allows CPP application to use the functions from cc.h10614
Include mbed-greentea==1.7.1 for mbed-os-tools==0.0.810606
PSA release script update: Add toolchain option10605
K66F: Update SAI and SAI EDMA driver to SDK 2.510602
Runtime DNS server addition implement10598
Add Wi-Sun certificate options to mesh API configuration JSON10597
SysTimer should be buildable without lp ticker10596
Introduce Semaphore::acquire methods10594
Arm Compiler 5: Fix mbed_atomic_impl.h assembly10593
Cellular: Fix flow control pin configs for BC95 and Gemalto targets10591
M2351: Fix serial sync error in SPDMC test10587
GR_LYCHEE,RZ_A1H,VK_RZ_A1H: Fix greentea test failure with Arm Compiler 610582
Add LED4 definition in PinNames.h of SDP-K1 board10581
BLE: Management of Tx path on Cordio10580
BLE: Put the acl buffer size in config10557
Cellular: Initialize CellularContext member variables in correct class10554
Cellular: Fix compile warnings from cellular10553
Add semihosting and SWO examples to mbed_override_console()10540
Check in files for the FPGA CI test shield10521
TEST: Update Python script to enable examples smoke test10511
Cellular: Fix setting of statemachine timeout10505
Improve importer.py10489
gpio_api.h: Clarify desired behavior for NC10482
Allow NC pins to be instantiated on Silicon Labs platforms10478
DataFlash: Change erase size to pages to reduce memory usage10476
LWIP TCP socket close - disconnecting fix10475
Implement nanostack eventloop tick timer10473
Add exception case for IPv6 only mode of BG9610456
LWIP 2.1.2 tcpip thread stack overflow fix10454
Enterprise_mode_+_wifi_configuraiton_api: update ODIN drivers to v3.7.0 RC110442
Cellular: Make AT_CellularContext::get_context() virtual10427
Set compilers to C++14 and C1110410
Nanostack: Translate errors from sendmsg10402
Cellular: Send disconnect to correct ctx10398
Clean up Arm toolchains from get_mbed_official_release()10366
Update CMSIS to 5.5.110355
KVStore: Support external storage out of mbed-os tree10353
Update to LWIP 2.1.210328
Add option to disable default UART console10324
Cellular: New state machine state and better info from stm10322
GCC: remove-fno-builtin
option10258
Remove FEATURE_STORAGE and all underlying deprecated features10254
Remove unused tools modules and document the used ones10244
Add the INTERRUPTIN compilation guard for ESP826610225
Mail/MemoryPool: blocking alloc10210
Cellular: CellularContext must provide access to CellularDevice10162
BLE - Notify HCI driver of host stack inactivity10151
Sleep manager: Optimize counter10150
Timer: Remove hard-coded lp_ticker knowledge10147
Assembler atomics10146
CellularBase -> CellularInterface tidy10056
Cellular: Retry logic for CellularContext connect10053
Cellular: Make CellularStateMachine timeouts configurable10043
Add vprintf to Rawserial10021
Enable post build bootloader merging in uVision9960
Use LP tickers for waiting in no-RTOS builds when available9955
ESP8266: Treats Wi-Fi scan results as out-of-band data; new API to adjust Wi-Fi scan settings9944
GCC - Add support to split heap across 2-RAM banks9927
ESP8266: Country code API9476
Asynchronous Serial API fixes and refactoring9443
Add USBCDC_ECM class9221
Add ARM_MUSCA_A1 target9111
CAN: Fix signness mismatch inCANMessage
constructors10747
Cypress: Fix issue #1061310740
ARMC6: Suppress “register deprecated” warning10733
Fix NRF52 memory pools10722
mbed-crypto: Automatically enable entropy injection10716
Update requirement for manifest-tool10809
ns_list: avoid UINT_FAST8_MAX (fix Arm Compiler 5 builds)10805
Fix Arm Compiler 5 compilation10802
Update to Mbed TLS 2.18.0rc310786
Re-enable complilation for Wi-Fi and nanostack examples10770
mbed-crypto: Update to Mbed Crypto 1.1.0d110753
Fix NRF52 enabled UART count and enable UART0/110709
Default to Cordio BLE stack for NRF52* targets10875
Cellular: Remove IPv6 and IPv4v6 as supported properties for BG9610764
BG96 IPv6 support and socket ID fix for BG96 and M26Using this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.13.0”.
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.12.4
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.12.4 release is now available.
Summary
No new targets being added in this release.
Important changes are:
10520 Permit non-TrustZone ARMv8 build
- Non-TrustZone ARMv8 targets now supported (core must be set to
Cortex-M33
rather thanCortex-M33-NS
).
There are also a number of other fixes and code improvements.
Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
Fixes and Changes
10579
Cellular: fix Quectel BG96 missing unlock at socket_connect10578
Modify PinName file to keep correspondence with spec10575
BLE: fix CCC callback not being called when writing to a CCC10573
Change “aplication” to “application”10570
STM32 astyle updates10544
Py3 fixes for test scripts10543
Cellular: Increase receiving timeout for UDP echo non-blocking test10541
Adding QSPI support to target RHOMBIO_L476DMW1K10539
Add mbed studio flag during assembly10538
Enabled crash reporting for DISCO_F407VG target10534
NANO130: Fix optimization error with NVIC_SetVector/NVIC_GetVector on ARMC610530
C027 Fix for modemOn flag10529
Cellular: Target name change for ublox cellular instance10527
Nuvoton: Add COMPONENT_FLASHIAP support10524
TRAVIS: turn off upload python test code coverage10523
Removing support of FLASHIAP in general_filesystem tests10520
Permit non-TrustZone ARMv8 build10512
requirements: update urllib3 to 1.24.210500
This removes many const char* warnings related with LWIP_ASSERT()10496
Allow application to override LWIP_RAW10483
PSOC6: move mbed_sdk_init to mbed_overrides.c10480
SPI: Prime asynch transaction buffer on construction10479
STM32WB: Update Flash size10468
Add support for CAN to SiLabs targets10287
Enable MTS_DRAGONFLY_F411RE to register with PelionUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.12.4”.
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
- Non-TrustZone ARMv8 targets now supported (core must be set to
-
mbed-os-5.12.3
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.12.3 release is now available.
Summary
In this release we have fixed the following reported issues:
We have also:
- Added support for QSPI to Cypress targets
- Re-added IAR support for MIMXRT1050
- Updated the wifi driver for rda target UNO_91H
- Activated FLASHIAP for STM32F303RE
There are also a number of other fixes and code improvements.
Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
Fixes and Changes
10525
Fix ‘LICENSE’ file 404 link error in README.md10516
32 Byte key derivation may fail with a 16 Byte ROT key10513
Fix ARMC6 fpu detection for M33 core10509
LPC55S69: Add support for UART hardware flow control10507
PSA: mbedSPM correct SPM initialization order10506
Add missing ADC pins mapping for FRMD-K66F (#10498)10502
PSA: TFM import10493
STM32F303RE: Activate FLASHIAP10492
Remove sleep lock/unlock from Silicon Labs HAL implementation10490
Cellular: Added UT for case when read_string buff size hits middle of10488
Cellular: Add description for CellularProperty10485
NVStore.cpp compiler warning removal (os_ret)10477
Wi-SUN: adds greentea test config10474
fix usb msd test python dependencies10472
Fix USB control transfers using small size10471
SDP-K1: Updates to target code10465
Cellular: fix calls to ATHandler::read_string(…) give correct size10463
Cellular: Add WISE-1570 handling for socket closing URC10462
Nanostack: release connect_semaphore only when it is pending10461
Update wifi driver for rda target UNO_91H10453
Cellular: Minor doc update for CellualrSocket object10451
MIMXRT1050: Readd IAR support10449
Configure UNO_91H to support PDMC compile10448
Size should be calculate after confirm the final start address10443
Fix for downloading the wrong binary in the online compiler10438
PSA: Pass TFM_LVL macro to linker files10436
NUC472: Workaround for unknown error with power-down10435
Add support for QSPI to Cypress Boards10434
Nanostack network handle does not always call status cb for BOOTSTRAP events10426
UDPSOCKET_ECHOTEST fails if a packet of every size was not sent10401
NUC472: Support crash capture for no-XRAM configuration10390
Correct some CPU selections in tools10364
Refactor PSA code generators10303
STM32L4xx: IAR memory maps updated10078
Fix heap init error in rtos-less code10018
STM: Update linker script for using SRAM1 and SRAM2 in ARMUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.12.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.12.2
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.12.2 release is now available.
Summary
In this release we have added target support for:
ARM_MPS2_M3, ARM_MPS2_M4 and ARM_MPS2_M7.The following reported issues have been fixed: * 8411 VSCode exporter with zip option: .vscode directory not included in zipfile * 875 mbed complie can’t find ARM complier 6 in the PATH with quotes * 10049 DISCO_F746NG QSPI WriteEnable might Fail on IAR8 * 9578 Mbed-OS build fails for FUTURE_SEQUANA/family of targets with ARM Compiler 6.11 * 10107 OS2 ARM build is no more possible * 10109 map file extraction is failing with GCC and M33 * 9069 M487: Crash report test failed in IAR * 10352 ATHandler.cpp malloc undefined * 10242 Mbed error info not printed with mbed-os-5.12.0 * 10344 Printing fault information fails if console is not initialized * 9106 Wait() function causes system to hang on STM32F0(91RC) * 5467 Export: uvision5 + STM32 does not flash * 10360 Inconsistent Licensing Information
We have:
- enabled low-power ticker and sleep HAL API for FastModels.
- provided a basic driver for Quectel EC25/EC21
- reactivated the data cache for i.MX RT1050
- updated mbed-cloud-sdk to 2.0.6
There are also a number of other fixes and code improvements.
Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
9870
Re-enable MPS2 platformFixes and Changes
10421
Update Jinja2 for CVE-2019-10906 fix10420
Updated mbed-cloud-sdk to 2.0.610419
FUTURE_SEQUANA: Clean up “unused variable” compiler warnings10418
CordioGattServer: reset settings variable before ANDing the properties to it10417
suppress coverity error10415
rtos/drivers: add license information10414
ExhaustibleBD: licensed under Apache 2.010412
FUTURE_SEQUANA: Fix flash_api bug introduced with e16d2d81d910411
Cellular: Added BG96 handling for socket closing URC10409
Fixing default algorithms in cmsis pack index10408
Update comments and improve readability for the BusInOut class10407
Fix warnings on PSA secure builds10406
Modify CMSIS pack manager to properly handle OSError10395
mbed_error: Avoid negative left shift10394
Networking: Fix some ARMC6 warnings10393
approcah -> approach10391
Update the writing example in unit testing README10387
Atmel SAMG55: Cortex-M4 -> Cortex-M4F10386
ARM MPS2: Cortex-M4 -> M4F & M7 -> M7FD10385
README file for wifi tests gives configuration example10384
Toshiba: Cortex-M4 -> Cortex-M4F10383
GigaDevice: Cortex-M4 -> Cortex-M4F10382
SDP_K1: Cortex-M4 -> Cortex-M4F10381
ECHOTEST internal loop simplification and fix10380
Nordic QSPI data must be written from/read to aligned buffers in RAM10378
STM32: protect compilation when DEVICE_USTICKER is disabled10377
Fix ESP8266 driver behavior on connection failures10376
LPC55S69: Fix APB bridge security programming10375
Cellular: Fix to delete PDP context on disconnect10369
L3IP interface input handler change.10368
FUTURE_SEQUANA_PSA fix PSA Protected storage10367
Increase background stack size to fix overflows with debug profile10363
Flagging WEAK method implementation for default construction10358
Error print improvements10354
Cellular: Using new rather than malloc in debug_print10350
Fix doxygen comment in USBDevice10349
Fix crash capture feature for nuvoton10348
Parse M33 + GCC_ARM map files10347
Fix detection of supported targets for mbed 2 builds10346
FUTURE_SEQUANA: Add suport for ARMC610343
TARGET_STM32F7: Reset QSPI in default mode on abort for all versions.10341
Cellular: Check for URC during AT response stop10340
BLE: fix missing implementation call10338
Cellular: Fix deleting of state machine to correct class10335
PSA release.py - Check that required toolchains are in PATH10334
MXRT1050_EVK: Fixes test failure seen with ARM & IAR toolchain10333
Allow toolchain paths to be wrapped in quotes10332
Break up large prints from –supported10330
Reduce greentea socket tests failures related to network issues10318
Crash with MTB_MXCHIP_EMW3166 has been corrected.10314
i.MX RT1050: Reactivate data cache10301
examples test compile optional verbose10292
Cellular: Basic driver for Quectel EC25/EC2110268
PSoC6 serial driver: Setup RTS and TX lines on deepsleep entry/exit10257
Correct Python 3 errors and lint warnings in build_release.py10232
PSA Crypto Service - multipart operation memory fixes10124
Enable low-power ticker and Sleep for FastModels10096
Add USB HID tests10020
Fix single-threaded apps for IAR v8 builds10019
uARM - Move heap region after IRAM110004
M2351: Support memory custom partition9981
test_soap_connection_handler leaks memory when open_connection fails9967
Fix for projects exported as a zip file (affects online compiler)9966
tools: fix the path generated to the sct file9870
Re-enable MPS2 platform9844
Travis CI: Stages, OS update, apt-get relief!Using this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.12.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-5.12.1
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.12.1 release is now available.
Summary
We have added support for two new targets in this release, MTB ublox ODIN W2 and NUCLEO-F413ZH.ST CUBE for the STM32F0 series has been updated to v1.9.0.
This brings: * Current ST Cube version in MBED: V1.7.0 * CMSIS part update from 2.3.1 to 2.3.3 * HAL part update from 1.5.0 to 1.7.0Our BLE Nordic PAL client implementation has been replaced. The previous implementation was found to contain a number issues deep in the GattClient logic (improper queueing and order ofoperations). It was deemed more efficient to re-write the implementation than try to patch the previous version.
As well as fixing issues, the re-write has the added benefit of including all the previously missing GAT procedures: * Discover Primary Service By Service UUID * Find Included Service * Read Using Characteristic UUID * Read Multiple Characteristics * Queue Prepare Write * Execute WriteWe have also added Flash support for STM32F0, STM32F1 and STM32F3 devices, and enabled tickless on nRF52840.
There are also a number of bug fixes and test enhancements.page, which provides reference links and details of our support channels.
10118 Selectively append changes to exported config files
Not tested on windows or python 2.
Uses .splitlines(), and newlines should be correctly handled by the file read and write functions.10106 Update manifest tool to version 1.4.8 and install it from pypi
10102 Remove fuzzywuzzy dependency
10081 Cellular: call AT+CGEREP after sim is ready
AT+CGEREP call was made before sim was ready and it was failing in most modems.
Now call is made after sim is ready.9964 Add imports of basestring for python 3
9905 Tests: check if recv returned too much data
9904 Handle oversized packets in tcp and udp socket tests.
9896 wait_us without usticker
Some targets have no usticker. Fallback to use busy loop
wait_ns()
for cases like this.9837 Cellular: CGACT not supported in coming firmware in BG96
Change API CellularNetwork::is_active_context to take more parameters to reduce copy-paste code.
API can be use in old way as parameters have default values.
Change CGACT to QIACT in case as BG96 module. Reason is that in upcoming firmware versions only QIACT is supported. Current firmware versions do support both commands.9814 Adding NUCLEO_WB55RG support
Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
10281
Adding support for S2_LP (WiSUN) as a new MTB target10133
Adding STM32_F439 as a new MTB target10115
Uhuru RAVEN: Adding platform HAL10000
Adding support for SDP-K1.9814
Adding NUCLEO_WB55RG supportFixes and Changes
10317
Fix for DigitalOut(NC) instantiation for all Toshiba targets10304
equeue: align passed-in buffer10302
BLE: force mandatory services to have lowest handles10299
MIMXRT1050: Fix ENET issues10296
Build script: add explicit console log in case of linker script error10295
eclipse_gcc_arm export improvement10294
NUCLEO_L4R5ZI_P: enable sw4stm32 export10290
README link to license guide 404s10289
PSOC6: Rebuild WICED libraries10288
Revert limiting Renesas targets to ARMC610282
Nuvoton: Support export IAR8 project10281
Adding support for S2_LP (WiSUN) as a new MTB target10280
Remove CFSTORE VERSION file (colliding with an ARM 6.12 C++ header file)10276
Parse Errors and Warnings from Arm Compiler 610275
Updated AWS url for astyle.10270
BLE SimpleAdvertisingBuilder moved functions out of mbed_assert calls10269
cellular: valgrind defect fix10267
PSOC6: Modify lp_ticker to 32 bit10260
Remove leftover waffle comments from README.md10248
TARGET_STM32F7: Refresh cache when erasing or programming flash10246
LPC55S69: Update Flash driver to set clock frequency10243
Nanostack::EthernetInterface::bringdown() can handle blocking mode10240
Add Python modules to LICENSE file10234
Update flash algo default with CPM 0.2.410231
Nanostack ARMC6 update10230
Cellular: cellular_network_test Compilation Error Removed10229
Cellular: Power ON Wait Increased for C030_U20110222
Travis CI: Updated astyle to work with updated .astyleignore file10221
Travis CI: Replaced ‘./’ with ‘^’ in .astyleignore file.10219
BLE: fix scan timeout being called from interrupt10214
LoRaWAN: Adding TOA and Channel info in RX metadata10213
GR_LYCHEE,RZ_A1H,VK_RZ_A1H: Fix greentea ticker test case failures10212
Fix tempsensor cal1 constant in stm32f3xx_ll_adc.h10209
Nuvoton: Add button names BUTTON1/BUTTON210206
Define program_cycle_s for LPC55S69 & CY8CKIT_062_WIFI_BT10200
update vscode default gcc arm version to 6-2017-q1-update10196
LoRaWAN: Fixing premature RX2 closure10194
readme: remove waffle as not supported soon10190
Fixed compilation error in LWIPStack class if lwip tcp is disabled.10185
Nanostack 802.15.4 RF drivers update10184
Cellular: Increase receiving timeout for UDP echo non-blocking test10182
Workaround for ARMC6 Windows 7 assembler issue10181
DISCO_L496AG: Add PMOD and STMOD+ connector10180
Fix SPIF speed for MTB_ADV_WISE_1570 and max packet size for BC9510179
Cellular: C030_N2XX default interface10178
Nuvoton: Remove SD component from targets.json10171
Fix QSPIF Bus mode mask and quad enable write SR size10166
Travis CI: Tweak astyle to not over-exclude files10160
Crypto access control additional tests10156
MTB_STM_L475: fix UART clock10155
Remove dependency on us_ticker HAL apis for non USTICKER targets10154
Fix for LoRaWAN downlink sequence counter rollover10149
STM32H7 ADC internal channels10145
RTOS API: minor tidies10144
Atmel RF: use system wait_ns10143
STM32 ADC INTERNAL CHANNEL reset after read10142
Nanostack 802.15.4 RF drivers update10140
Cellular: fix astyle for files that already in master10138
Cellular: don’t allow ATHandler read/write if filehandle not usable10133
Adding STM32_F439 as a new MTB target10131
Add baremetal example to testing10122
mbed_error.c: fix warnings10121
Cellular: Improve ATHandler AT debug traces10120
Cellular: Fix network interface test for cellular targets10118
Selectively append changes to exported config files10115
Uhuru RAVEN: Adding platform HAL10110
Improve genenral BlockDevice tests10106
Update manifest tool to version 1.4.8 and install it from pypi10105
test_configs: generic app config for boards with Wi-Fi10102
Remove fuzzywuzzy dependency10100
Cellular: Support Cinterion EHS5-E cellular module10098
Cinterion Cellular: Setup connection profile with username and password10094
BLE: Fix ble gattserver autorization list registration10093
BLE:Fix cordio reset sequence10092
BLE:fix on_phy_update_complete function10084
Cellular: AT information response to return false on empty prefix10081
Cellular: call AT+CGEREP after sim is ready10074
Fixed issue with PWM not being freed when the object is destroyed10073
Removed PSoC6 SystemInit Workaround for ARM compiler10072
Adding variable length attributes to Maxim Feather10070
PSA more options in release tool10065
Correct post-build-hook detection logic10048
Fix for reallocation memory fail in TMPM46B10045
Uvision exporter fixes for Python 3, CPM updates, and Windows path issues10037
TCP/TLS Socket tests will skip if TCP is not supported10036
Refactor Crypto Service Proxy10030
TESTS: skip timing accuracy test on FastModels10029
Cellular: Remove compile dependency of UARTSerial10014
Update nanostack-interface error mapping10008
Fix MBED_RAM_START/MBED_RAM_SIZE symbol generation10005
cellular: remove last CELLULAR_DEVICE references10000
Adding support for SDP-K1.9998
Remove intervaltree from requirements.txt for mbed-os as it contradic9995
Fixing path comparisons in config tests on Windows9992
BLE - Use low power timing primitives9988
BLE: fix tick rate set to 10 ms9986
OdinWifiInterface is calling memcpy with a null pointer9985
GigaDevice targets can return uninitialized variable in CAN driver9980
Dead pointer usage in GenericSecurityManager9979
TEST_APPS socket_app leaks memory when cannot initialize packetSizes9972
cellular: BC95 memory leak fix9971
Correct thread status callback functionality9964
Add imports of basestring for python 39959
Refactor socket stats to reduce boiler plate9952
Fix PWM driver of RZ/A19948
BLE:Cordio:insert_descriptor check r/w properties9941
Add missing RSPIF component to the defaut BlockDevice handler9937
Cellular: removed manual registering state.9936
Fix lwip to compile if MBED_CONF_LWIP_DEBUG_ENABLED is defined9935
Increased timeout for lwip waiting netif_is_link_up9930
NUCLEO_H743ZI: Arduino A5 is mapped on ADC3_IN69925
SAML21J18A: #endif without #if in analogout_api.c9924
Update Wi-SUN network default name9921
BLE:Cordio:Fix insert characteristic not handle error9919
BLE - Report extended advertising in legacy handler9914
Remove #ifndef NO_GREENTEA from tests9905
Tests: check if recv returned too much data9904
Handle oversized packets in tcp and udp socket tests.9902
Remove assertion of MDMRST in case of SARA-R49900
DNS send returning WOULD_BLOCK forces delayed retry9896
wait_us without usticker9895
Fix for i2c_t object not being initialized to 0 causing timeout9893
ESP8266: astyle fixes9884
STM32F429 ARM MICRO startup file update9873
Corrected timeout for +UDNSRN command9872
Fix for NUCLEO_F207 UDPSOCKET_ECHOTEST_BURST_NONBLOCK fails.9837
Cellular: CGACT not supported in coming firmware in BG969814
Adding NUCLEO_WB55RG support9801
Correctly include EventQueue.h9637
Cellular: UBLOX_C030_N211 Cellular API’s9444
Usb msd testsUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.12.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.12.0
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.12.0 release is now available.
Summary of release
Mbed OS 5.12.0 brings support for Platform Security Architecture (PSA) to truly secure your data end-to-end. The release is supported in Mbed Studio Beta, providing a seamless development and debugging experience. We also included the first open sourced Wi-SUN stack for Field Area Networks based on 6LoWPAN and IEEE 802.15.4 technologies, and our new USB device stack supporting multiple device classes. Finally, we introduce a new Mbed OS profile called bare metal, which targets memory constrained devices.
This release also includes fixes, new versions of various components and updates to supported compiler versions.
Notes for specific pull requests
9920 Update Mbed TLS for 5.12 release to Mbed TLS development HEAD
This release of Mbed TLS includes:- Integration of the PSA Crypto API sufficient to support Pelion Client.
- RAM optimizations to reduce RAM usage during TLS handshakes when using X.509 authentication. This reduces the overall RAM required by Mbed TLS.
9898 Cellular: fix connect-disconnect sequence called many times
Removed API get_connection_status() from CellularNetwork. This was left accidentally after refactoring. It wasn’t giving correct states after refactoring. The application should use CellularContext::get_connection_status, instead.9864 BLE: Cordio host upgrade
Upgrade of Cordio host to new version (from 2.4 to 19.02). This should not impact users and be an in-place upgrade. Replace compiled Cordio controller libs with sources - no functional change and no impact on users.9851 feat: add support for .obj files in memap
- A brief description of changes introduced
Add support for.obj
files in memap tool. - An analysis of effects: components affected, potential consequences for users and reasons for the addition or change.
Affects tools component, behaviour doesn’t change for existing users. This adds support for using the memap tool for CMake/gcc-arm-none-eabi builds (and maybe others too). - Migration guidance: actions for updating the current code. Please include code snippets to illustrate before and after the addition or change.
N/A
9838 Nanostack release for Mbed OS 5.12
- Initial version of Wi-SUN mesh stack.
- Improvements and bug fixes to Thread and 6LoWPAN ND protocol stacks.
9813 BLE: Cordio build time configuration through mbed_lib.json
This doesn’t remove the old Cordio stack config file and merely sits on top, so it will not introduce any unexpected changes. If users modified the cfg files themselves (in features\FEATURE_BLE\targets\TARGET_CORDIO\stack\cordio_stack\ble-host\sources\stack\cfg), they will have to resolve the conflict.9812 Add wait_ns API
- wait_ns() API added for <10us small software-loop based delays.
9808 IAR 8 feature branch merge
Updating the IAR toolchain version to IAR 8.32.9804 Provide an option to disable writing developer certificate
It is possible now to disable writing developer certificate to mbed_cloud_dev_credentials using an option –no-developer-cert with “mbed dm init” command9800 Bare metal profile
Mbed OS may now be built without the RTOS by creating anmbed_app.json
with the following contents:{ "requires": ["bare-metal"] }
9799 Increase events.share-eventsize to 768B because of ESP8266 AT driver and asynchronous DNS
“events.shared-eventsize” increased from 256B to 768B
Original value was too small once both the ESP8266 driver and asynchronous DNS started to use the shared event queue. An assumption is made that once the shared event queue is taken into use, there are going to be multiple users instead of one, for which the original value would have been sufficient.
9797 API to temporarily enable/disable FileHandles
UARTSerial
can now be temporarily or permanently disabled for input and/or output. This is particularly useful to save power when reception is not required - disabling input permits deep sleep. To do this more generically for the console, usembed_file_handle(STDIN_FILENO)->enable_input(false)
.
9795 crypto: Update to Mbed Crypto 1.0.0d5 and then to 1.0.0d6
Previously, calls topsa_crypto_*_setup()
would succeed even if a user did not initialize their operation context. Help users of the PSA Crypto API catch their own bugs by returningPSA_ERROR_BAD_STATE
when a setup function is called with an uninitialized context.9790 BLE conf
No changes made to existing programs. By default, all options are enabled, which is the current state.9768 Bring USB Feature branch into master
This feature brings USB device support into Mbed OS from a feature branch. Targets that support USB include the LPC1768, ARCH_PRO, K64F, NUCLEO_F207ZG, NUCLEO_F412ZG, DISCO_F413ZH, NUCLEO_F413ZH, NUCLEO_F429ZI, NUCLEO_F446ZE, NUCLEO_F746ZG, NUCLEO_F756ZG, NUCLEO_F767ZI, DISCO_F469NI, DISCO_F746NG, DISCO_F769NI, DISCO_L475VG_IOT01A, DISCO_L476VG, RZ_A1H, GR_LYCHEE, DISCO_L496AG, NUCLEO_L496ZG, NUCLEO_L4R5ZI. Supported USB device classes include USBAudio, USBHID, USBMouse, USBKeyboard, USBMIDI, USBMSD, USBSerial and USBCDC.9758 Allow hash or mac on large buffers with less memory use
Description: Hash and mac operations are now processed in secure partition in multiple chunks internally leading to decrease in memory use for large buffers.
Effect analysis: This change has no impact on API and should not alter behavior from the user perspective.
Migration: No action should be required from the user side.9746 Cellular: Retire CellularBase class
In order to align to other connectivity technologies CellularBase is deprecated and CellularInterface usage is preferred. This change is backward compatible.9708 Implement PSA protected storage & restructure PSA storage implementation
- Restructure PSA storage implementation (directory structure and common code)
- Add the PSA protected storage feature
9668 PSA Initial Attestation service
- A brief description of changes introduced.
Add PSA Initial Attestation Service implementation. - An analysis of effects: components affected, potential consequences for users and reasons for the addition or change.
this code is a new feature and doesn’t effect existing code. - Migration guidance: actions for updating the current code. Please include code snippets to illustrate before and after the addition or change.
This breaks backwards compatibility with Nucleo F411RE entropy injection.
9571 Update to 2-region model for HEAP and Stack Memory
RAM memory model is updated to a two-region model. RTOS and non-RTOS versions of Mbed OS across all targets and toolchains will have separate stack and heap sections. ISR stack size is unified across all targets and is set as 1K for Mbed OS with RTOS. In case of no RTOS, stack size is also the main thread size and is set as 4K.9568 Merge feature cellular refactor
This PR has impact on cellular application development and porting of new cellular devices.Application developers need to select the suitable NetworkInterface type. When using NetworkInterface NSAPI configuration defines are applied by default, see NSAPI configuration options for cellular in more details.
CellularBase
users have a new functionset_default_parameters
to apply NSAPI configuration options.CellularContext
is to be used instead ofCellularBase
for new extended cellular functionality, such as NonIP sockets and EPS CP optimization…Migration guidelines for application developers:
- Change
CELLULAR_DEVICE
macro toget_default_instance
- Change
OnboardCellularInterface
orEasyCellularConnection
toCellularContext
- Call
CellularDevice::set_data_carrier_detect
to set HUP signal detection
Cellular API changes need to be taken into account when porting new cellular devices. This PR already contains the changes needed for the existing cellular drivers and the onboard modems. Arm has an internal ticket to update the cellular porting documentation for Mbed OS 5.12.
Migration guidelines for porting developers:
- Follow
GENERIC_AT3GPP
implementation when porting new AT based cellular devices - Change
power_on/off
to onboard_modem_api withsoft_power_on/off
andhard_power_on/off
- Move implementation from
CellularSIM
andCellularPower
toCellularInformation
andCellularDevice
- Implement
CellularDevice::init
andCellularDevice::shutdown
- Use
CellularNetwork::get_signal_quality
instead ofCellularNetwork::get_extended_signal_quality
9449 Pinmap extensions
Added pinmap support to the HAL API. For more information see the porting targets docs page - https://os.mbed.com/docs/mbed-os/latest/porting/porting-targets.html.9219 LoRaWAN: Retiring LoRaWANBase class
There has been only one user of the LoRaWANBase class, the LoRaWANInterface. We anticipated that the third parties may use this class to provide their own LoRaWAN network stacks alongwith the default network stack provided by Mbed OS. However, a trend has been observed that the default stack provided by Mbed OS has become the de-facto choice. Having LoRaWANBase class adds 1K to the ROM in terms of footprint (for GCC, ARMCC and IAR optimize that already). It has been decided to do away with the LoRaWANBase class for now, and if the need arises it can be reintroduced back.9184 Adds an NFC System Test suite
Adds an automated test suite which provides Standalone and End-2-End validation for either the supported PN512 NFC Controller shield or the M24SR NFC EEPROM. This is an icetea framework based test suite and requires additional hardware.9940 Reduce flash page size from 512 to 32 bytes in PSOC6 based boards
Reduce flash page size from 512 to 32 bytes in PSOC6 based boards10193 Fallback to ARMC5 when ARMC6 is not configured
The-t ARM
argument defaults to using the Arm Compiler 6 when it is configured in a user’s enviroment. However, In cases where a target supports building with both Arm Compiler 5 and Arm Compiler 6 and Arm Compiler 6 is not properly configured, the tools will fallback to compiling with Arm Compiler 5.10164 tls: Update Mbed TLS to 2.17.0
Update Mbed TLS to version 2.17.0.10152 crypto: Update Mbed Crypto to 1.0.0
Update Mbed Crypto to version 1.0.0.10114 Allow the use of Mbed Studio’s version of Arm Compiler 6
You can use the Arm Compiler 6 compiler that is bundled with Mbed Studio with the command-line tools. Enable this behavior by adding the Arm Compiler 6 executable to your system path (the default location of this on Windows isC:/MbedStudio/tools/ac6/bin
). Alternatively, you can set this same location with Mbed CLI with the commandmbed config ARMC6_PATH C:/MbedStudio/tools/ac6/bin
(be sure to use the correct path when you run the command). You also need to set theARMLMD_LICENSE_FILE
environment variable to the license file that is bundled with Mbed Studio. Please see the Mbed OS documentation for further details.Known issues
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 the EXPERIMENTAL stage; please use it at 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 hardware 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 hardware 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 peer’s side. - Reported issue: Reported by the development team.
- Priority: MAJOR.
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 issue: https://github.com/ARMmbed/mbed-os/issues/8064.
- Priority: Major.
Platform: Realtek RTL8195AM - CMSIS-RTOS error: ISR Queue overflow
- Description: Realtek RTL8195AM does not maintain a long running connection to Mbed device connector. The error manifests as an ISR Queue overflow.
- Workaround: None.
- Reported issue: https://github.com/ARMmbed/mbed-os/issues/5640.
- Priority: Major.
Core: Some boards are crashing when lots of data is sent and received through buffered serial.
- Description: This is currently known to affect Ublox ODIN W2 and RTL8195AM.
- Workaround: None.
- Reported issue: https://github.com/ARMmbed/mbed-os/issues/8081.
- Priority: Major.
NVStore and TDBStore objects can collide in internal flash
- Description: NVStore and TDBStore are classes implementing storage solutions. By default, they allocate the last two sectors in internal flash. If both are used, a run time error will happen. NVStore is deprecated, and TDBStore should be used instead.
- Workaround: Use TDBStore instead of NVStore.
- Priority: Minor.
SPI failures on CY8CKIT_062_WIFI_BT
- Description: When reading from an SD card connected via SPI, sometimes we see that read operation leave some bytes unchanged in the buffer, without reporting an error. The root cause is under investigation.
- Workaround: https://github.com/ARMmbed/mbed-os/tree/feature-SD-verify.
- Reported issue: IOTSTOR-815.
- Priority: Major.
UART flow control does not work on Cypress CY8CKIT_062_WIFI_BT_PSA
- Description: UART hardware flow control: When connecting a Wi-Fi shield via UART, flow control does not work. The root cause is under investigation.
- Workaround: None.
- Reported issue: IOTHAL-481.
- Priority: Major.
Mbed CLI may use the wrong armasm or armlink version when both Arm Compiler 5 and Arm Compiler 6 are configured using the host platform PATH environment variable
- Description: If you have configured both Arm Compiler 5 and Arm Compiler 6, Mbed CLI may use the wrong armasm/armlink version based on which version is listed first in the host platform PATH environment.
- Workaround: Use “mbed config” commands as documented in https://os.mbed.com/docs/mbed-os/v5.12/tools/after-installation-configuring-mbed-cli.html to configure toolchains instead of using the host platform PATH environment variable. This is the preferred solution until Arm Compiler 5 is deprecated.
- Reported issue: https://github.com/ARMmbed/mbed-os/issues/10069.
- Priority: Minor.
Some hardware platforms don’t support ArmCompiler 6
- Description: With the Mbed OS 5.12 release, we are adding support for Arm Compiler 6.11, and it will become the default Arm compiler for Mbed OS targets. At the moment, we still have some targets not compatible with Arm Compiler 6. Below is the list of targets not compatible with Arm Compiler 6:
CY8CKIT_062_4343W, CY8CKIT_062_BLE, CY8CKIT_062_WIFI_BT, CY8CKIT_062_WIFI_BT_M0, CY8CKIT_062_WIFI_BT_M0_PSA, CY8CKIT_062_WIFI_BT_PSA, CY8CPROTO_062_4343W, CYW943012P6EVB_01, CYW943012P6EVB_01_M0, FUTURE_SEQUANA, FUTURE_SEQUANA_M0, FUTURE_SEQUANA_M0_PSA, FUTURE_SEQUANA_PSA, KW24D.
We are working with our Partners to ensure they are fully supported by Arm Compiler 6. - Workaround: The developers compiling for these targets should use Arm Compiler 5.06u6.
- Reported issue: https://github.com/ARMmbed/mbed-os/issues/9578, IOTCORE-1059.
- Priority: Major.
Contents
Ports for upcoming targets
9224
Add platform TT_M4G99910
Add support for LPC55S599908
Pr/cy mbed os 5.12.0Fixes and changes
9946
Fix include paths for the assembler for makefiles9932
Fix direct access to device key test for small erase/program ratio9920
Update Mbed TLS for 5.12 release to Mbed TLS development HEAD9918
Unify PSA code generators9917
Add attestation doxygen9916
Skip test on Cortex M33 devices9915
Update TF-M sources9913
Fix bug in crypto_acl test9906
Docs: fix doxygen not being generated for BLE classes9899
Regenerate mbed-spm files9898
Cellular: fix connect-disconnect sequence called many times9892
Update PSOC6 postbuild prints9891
Correct the device name for NUC472 / M453 - IAR 89888
Arm Toolchain update to Arm Compiler 6.11(ARMC6)9885
ESP8266: graceful disconnect on network state timeout9883
Free dynamic memory in Crypto Service proxy (PSA targets)9879
Lock sleep when USB is initialized9875
Fix multihoming tests9874
Add mbed_lib.json to usb folder9871
ESP8266: receive is able to handle device busy indication9867
PSOC6: Rebuild WICED libraries with IAR8 support9866
QSPI write alignment fix for nRF52x9864
BLE: Cordio host upgrade9862
Backward support PSA_ITS9861
STM32 InterruptIn protection9856
Crypto: Update Mbed Crypto to 1.0.0d79852
Docs: fix release notes link in PR template9851
Feat: add support for .obj files in memap9849
Update mbed-cloud-sdk to latest version 2.0.59845
Add spi_get_peripheral_name() to stm_spi9843
Fix Cordio gatts configuring write permission9842
Add missing license description to RZ/A1 driver9838
Nanostack release for Mbed OS 5.129836
TF-M: Fix issues found in SPM tests9835
Add define to skip greentea sync9834
Add missing copyright header to STM32 driver9833
Remove Arm Beetle target for Mbed OS 5.129831
Update mbed-cloud-sdk to latest version 2.0.49829
Fix SPM error codes9828
Update 802.15.4 RF drivers to the latest version9825
Remove unnecessary prints in FileSystemStore class9823
mbed-SPM updates9822
Return the new values for key type & size even if function fails9821
PSOC6: send HCI reset after patch RAM download9817
Apply artifact_name configuration parameter to exported projects9813
BLE: Cordio build time configuration through mbed_lib.json9812
Add wait_ns API9808
IAR 8 feature branch merge9806
Update mbed_stats.c to use __ARMCC_VERSION flag for compatibility with AC69804
Provide an option to disable writing developer certificate9802
Fix psa_system_reset() on PSA IPC platform9800
Bare-metal profile9799
Increase events.share-eventsize to 768B because of ESP8266 AT driver and asynchronous DNS9797
API to temporarily enable/disable FileHandles9796
New Wiced binaries9795
Crypto: Update to Mbed Crypto 1.0.0d5 and then to 1.0.0d69794
Refactor tcpsocket tests to use sigio and not to wait9792
NUCLEO_L073RZ Bootloader support9791
Support mbed_start_application for Cortex-M0+9790
BLE conf9786
Optimize tickless tick computation9785
Use us ticker for tickless on devs with wrapper9783
Ensure header CRC is written as unsigned int9781
PSOC6: correctly align hex files with split text sections9780
Crypto Service - keys access control TESTS9778
Add missing wifi parameters to test configs9772
Additions to TF-M source integration9768
Bring USB Feature branch into master9766
Update Toolchain Arm Micro scatter files9763
BLE: fixed initialisation order in GattServer9759
Multiple memory handling fixes9758
Allow hash or mac on large buffers with less memory use9755
Support in more types then just RSA_KEYPAIR9754
Fix SPM returning the wrong value9752
Add comment fix warning9751
Cellular: Fix ATHandler set/restore_at_timeout with mutex lock9746
Cellular: retire CellularBase class9745
Fix incorrect return value in psa_security_lifecycle_state (emul)9738
Tools: Reoder post-build hooks and bl merging9728
Cellular: Fix sigio to be released in ATHandler destructor9727
BLE API devirtualization9718
Greentea tests: user-configurable timeouts9714
Only GCC_ARM toolchain is supported, removing legacy code9710
Crypto: Remove PSA Crypto API from targets without entropy9708
Implement PSA protected storage & restructure PSA storage implementation9706
Cellular: fix onboard modems powering failure.9705
Cellular: Fix cellular stack and drivers for netsocket tests9702
Fix dependencies of platform partition9701
Refactor psa entropy inject test9698
Netsocket documentation cleanup9690
Pinmap design doc9684
enet_tasklet_disconnect() should generate event to tasklet.9681
Make a few trivial syntactic changes to better support cross-compilation9679
Default behavior of C030-R412M should be to use modem IP stack9678
FUTURE_SEQUANA_PSA: fixed deep sleep mode9677
Add MBEDTLS_ENTROPY_NV_SEED to NUCLEO_F411RE to fix the build9668
PSA Initial Attestation service9667
Linker files for LPC11U68 and LPC1549 updated9666
Use new delivery for FUTURE_SEQUANA_PSA9660
Cellular: clean sensitive information from trace9655
Cellular: Non-IP doxygen updates9653
TF-M sources integration to Mbed-OS9645
Change TESTS/netsocket/ for cellular testing9638
Crypto Service - keys access control9633
Improvement to artifact delivery method9630
Publish tests documentation for DNS, Emac, NetworkInterface and Wifi9628
Bare metal mbed_lib updates9617
SPE: Fix up atomic usage9616
nRF52 serial: Tighten/simplify atomics9605
Restore MBEDTLS_PSA_CRYPTO_C for PSA targets9600
Atomic extensions: 64-bit, bool, exchange9588
DISCO L475VG IOT01A: heap in SRAM2 region9581
SharedPtr: use atomic load9575
Crypto IPC 64 bit key ids for ITS9571
Update to 2-region model for HEAP and Stack Memory9568
Merge feature cellular refactor9566
Fix warning in Crypto when using boot seed injection9561
Tools changes for bare metal9555
Wio BG96: Modified sequence of module startup9554
Wio 3G: Modified sequence of module startup.9537
BLE: Add MTU events9530
Use atomics for double-checked locks (SingletonPtr + __cxa_guard)9529
RollUp PR Crypto with ITS9528
Second barrier for core_util_atomic_flag_clear9520
ESP8266: reduces SIGIO signaled to the upper layers9503
ESP8266: OOB handling done based on arrival of SIGIOs9493
Initialize platform in trng test9474
Fix newlines at end of files9473
ESP8266: treats reset-ready-message as OOB9469
SPI upgrade - per-peripheral mutex and GPIO-based SSEL9456
ESP8266: calls MBED_ERROR if modem’s watchdog reset gets triggered9449
Pinmap extensions9438
Use dedicated PinMap for each QSPI data line9437
FPU_USED to be set based on HW FPU support + Squash commits9424
Allows multiple network status listeners9414
Clarify asynchronous Networkinterface::connect() and disconnect() API9410
STM32F756 and STM32L486 alignment with STM32F746 and STM32L4769405
Travis: Fix doxy-spellcheck job9401
Tools: adds and implements a –custom-targets command line switch9398
Revert “Warn with ARMC6 and not v8m”9392
Documentation of TLSSocket behavior on AUTH_FAILURE9387
Multihoming initial release9386
SD default configuration for ST boards is already defined in TARGET_STM9378
Add get_connection_status() override in CellularContext9352
mbed_boot_arm_std.c: remove redundant compiler check9350
GD32_F450ZI: Support boot stack size configuration option9317
Tools: support cases where bootloader is in chunks9305
Minor Doxygen fixes for all file system classes9277
Sleep: error flags fix9248
InternetSocket: use atomics, not volatile9247
Add atomic loads and stores and barriers9245
LoRAWAN: volatile bool -> atomic_flag9231
Critical sections: remove unnecessary volatile9224
Add platform TT_M4G99219
LoRaWAN: Retiring LoRaWANBase class9188
Add more information to error url to enhance error analytics9184
Adds an NFC System Test suite9096
BLE: Enforce advertising data payload limits9092
Interrupt stack size unification + test9067
Move socket-stats-enable config to socket-stats-enabled8972
Merge feature-posix branch (FileHandle::truncate)8961
ThisThread get_name()8887
Adding debugger awarness with Keil MDK8757
Update Cmsis-pack-manager to 0.2.38749
Cellular: AT handler API8739
L3IP Interface Implementation8497
Add get/settimeofday retargets7799
Removing feature names from the “allowed feature” config list.10077
Create green-tea init for attestation test10046
PSA: release.py bugfix - send the correct parameter to _get_target_info()10042
BLE: fix conflicting include by qualifying cordio pal includes10041
Fix include in psa compliance tests to mbedtls config file10038
PSA: release.py updates to fixes situation where the script would get stuck10033
Port spi_get_peripheral_name fix to some Freescale boards10031
Add new mbed-os-example-attestation example10027
TF-M patch: Handle extended stack frame in tfm_svcall_psa_call10026
Add needed crypto macros to secure side10025
PSA: PSoC 6 Correct TRNG behaviour10023
Fix crypto compliance tests10012
Generate BLE Static Random Address on U-blox Odin-W2 platform10011
Removed cymetadata section from FUTURE_SEQUANA targets10010
Update PSA tools10002
Disable PSA in baremetal profiles10001
PSA: release.py - add build profile9997
Platform reset API rename9996
PSA: Fix error codes masking in psa_attestation_inject_key()9990
Sync PSA compliance test to latest version9989
Test for and Recompute sector information for all targets9982
Nanostack update for Mbed OS 5.129978
PSA: Fix psa/release.py tool9977
NUCLEO_L073RZ: IAR linker script issue9976
PSA: Remove unused type which was conflicting wiith errno.h9973
TF-M config: Add max_ns_thread_count parameter9963
PSA tools docs9957
Fix issues found in LPC55S69 integration9956
Add attestation doxygen9953
PSA: automatic mocking of PSA targets in test builds9940
Reduce flash page size from 512 to 32 bytes in PSOC6 based boards9939
Fix for secure partition9931
Reduce number of threads in block device test9928
Secure binaries release script9911
Add TF-M flags to doxygen9910
Add support for LPC55S599908
Pr/cy mbed os 5.12.09907
BLE: Fix cordio configuration9894
PSA tools: Find secure image at post-build9312
PSA compliance tests suite10113
Use secure/non-secure rom for bl modes10108
Fix functionality for FlashIAPBD & SlicingBD10101
LPC55S69_S: reduce ITS size to 32KB10089
Make the presence of cmsis-pack-manager package optional10088
Temporary disable Crypto HW accelerator on UBLOX_EVK_ODIN_W210086
Add bootloader support for the LPC55S69 board10068
LPC55S69: Add IAR and uvision exporter support10055
Add bootloader support for Cypress PSA boards10047
Reduce 32KB from LPC55S69_S binary size10044
Correct check for the ARM toolchain binary in the PATH.10034
PSA: PSoc 6 configurable secure memory size9994
Correct FPU settings traceback found by IAR10199
Fix the removal of Mbed-added core flags in uvision exporter10193
Fallback to ARMC5 when ARMC6 is not configured10188
Configure sector information intargets.json
10187
Fall back to configuration information when CPM reports no memories10186
Remove cypress boards from CMSIS pack manager10173
Collect excluded libraries into ignored_dirs10172
Cellular: Fix plmn trace for IAR10164
TLS: Update Mbed TLS to 2.17.010157
Deduplicate IAR MBED_ROM__xxxx defines10152
Crypto: Update Mbed Crypto to 1.0.010114
Allow the use of Mbed Studio’s version of ARMC69965
Fix undefined tr_debug for QUECTEL_BG96 cellular featureUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.12.0”.
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.11.5
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.11.5 release is now available.
Summary
In this release we have added target support for: * STM32_L475 MCU * RHOMBIO_L476DMW1K
We have added fixes for the following reported issues:
- 9276 nrf52: after disconnect, device doesn’t go into sleep again
- 9513 Occasional hard falt when using the mbedtls entropy function in parrallel threads (K64F)
- 9523 Non Rtos build fails for ARM compiler (K64F)
- 9620 FUTURE_SEQUANA: failing to pass block device tests.
- 8894 Document EventFlags wait function timeout units
- 8618 Python3 build fails on MTS_MDOT_F411RE
- 8205 Sleep tracer is not finding matching driver when performing an unlock
- 9494 nanostack unittests: do not contain license headers
- 9695 NRF52_DK LED2 always on
mbed-coap has been updated to version 4.7.4. This brings the following changes: * Remove dependency on the yotta tool * Do not remove stored (GET) blockwise message when EMPTY ACK is received. When non piggybacked response mode is used the original GET request must not be removed from the stored message list. Message is needed for building the next (GET) blockwise message * Move definitions to sn_config.h
Support has been added for: * WIFI on the RDA target UNO_91H * CMake export on PSOC6
There are also a number of other fixes and code improvements.
Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
9782
Adding RHOMBIO_L476DMW1K as a new Board target9777
Adding STM32_L475 as a new MTB targetFixes and Changes
9798
STM32 LPTICKER (LPTIM): correct init execution after bootloader9782
Adding RHOMBIO_L476DMW1K as a new Board target9777
Adding STM32_L475 as a new MTB target9776
adv builder helper now returns an object9775
PSOC6: fix port_write API9774
license: use .md extension9767
Remove ITM from NRF52_DK and DELTA_DFBM_NQ620 targets9765
Add config header to assembly compilation9762
PSOC6: update the psoc6pdl and HAL to the latest version9756
PSOC6: enable export to CMake9753
Update Nanostack_HAL licenses and copyright year9748
BLE:Cordio: ATTS setting for write cback should use bitwise or9742
tools: export: MCUXpresso: fix case inconsistencies in .templ file names9741
ESP8266: connect() returns OK in non-blocking calls9740
Remove pyocd requirement and update icetea.9736
tools/test/cmsis: add license header9730
Greentea: Remove TLSSocket_simultaneous test9724
tools/utils: ensure default build profiles are processed first9722
Add flash sum check9715
Add .inc as a header file type.9713
Add release notes section to PR template9709
Reverting to original doxy configuration9696
features: nanostack: fix warning in thread_extension.h9694
nanostack: icmpv6: fix build warning9693
platform: fix build warning in mbed_error9692
target: UBLOX: Fix build warning in UBLOX_AT_CellularNetwork.cpp9691
btle: fix build warning about unused clockConfiguration9686
Greentea tests: set correct port to test against google.com9685
Fix sleep tracing not finding matching driver during unlock.9680
FUTURE_SEQUANA: Fixed Arduino signal mappings9673
Fix Py3.7 mdot target build9670
Add units to timeout argument in EventFlags9658
REALTEK_RTL8195AM binary timestamp9657
Revert “MIMXRT1050_EVK: Add IAR support in the exporter”9656
M2351: Fix crypto AC management9654
Update mbed-coap to version 4.7.49652
Fix minor bugs in secure targets file filtering9651
FUTURE_SEQUANA_M0_PSA - fix CM4 starting address9650
Multi thread Block Device Tests Fix - Ensure unique block address9649
Fix IntelliSense in VSCode export9647
FUTURE_SEQUANA: SPI HAL fixes9639
ESP8266: connect() checks errors from ESP chip9636
Fix compiler warnings9635
Do not provide a default Pelion host address.9613
K64/ARM: Update to 2-region model for HEAP and Stack Memory9602
STM32 GPIO: use maximum speed9601
LoRaWAN: Proper size checks for link ADR cmds & correct include path in Unittests framework9587
targets: QUECTEL: Fix build warning9584
TLSSocket send/recv return WOULD_BLOCK error instead of NO_CONNECTION9582
Greentea Socket test improvements9570
tests-netsocket-udp: UDPSOCKET_ECHOTEST_NONBLOCK fixes9532
Mutex-protect mbedtls_hardware_poll9514
BG96 netsocket tests9502
readme: add list of licenses - not Apache 2.09501
Add WIFI support for RDA target UNO_91H9372
BLE - Nordic: Release crypto cell when not in use.9326
Doxygen correction9307
Configuration options for STM_EMAC buffer countsUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.11.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-5.11.4
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.11.4 release is now available.
Summary
In this release we have added fixes for the following reported issues:
- 9402 Mbed-OS build fails for LPC546XX and FF_LPC546XX targets with ARM Compiler 6.11
- 8513 NVSTORE deinit function doesn’t free memory
- 9468 FlashIAPBlockDevice init failing if using default constructor
- 7308 Deep_sleep_lock Ticker.h Issue
- 9525 Flow control fails on STM32L476
- 8626 Update device peripherals for STM32 series
- 9026 [Wio 3G] PB_7 (RXD) cannot be used for Serial
- 9504 analogin_device.c doesn’t clear internal buffer for Vref
- 9402 Mbed-OS build fails for LPC546XX and FF_LPC546XX targets with ARM Compiler 6.11
- 9608 GCC_ARM build fails for v8m secure targets
- 9611 FUTURE_SEQUANA: failing make nightly exporters
Support has been added for:
- MIMXRT1050 IAR exporter
- TRNG for STM32F2
There are also a number of other fixes and code improvements.
Known Issues
9688 PSOC6 WICED drivers need to be recompiled for 5.11
The PSOC6 WICED drivers will not work correctly with this release.Contents
Ports for Upcoming Targets
None
Fixes and Changes
9631
Update linker scripts for bootloader target TMPM46B9625
Fix cortex-m33 armlink error9619
Correct the dsp flag from no_dsp to nodsp9615
FUTURE_SEQUANA: Remove special “tags” from M0 hex images9614
Fix cortex-m33-S gcc compilation error9606
Correct typo no_dsp - nodsp9596
Implement Linker command/response files in make export9595
Define USBTX and USBRX for targets without them9594
Remove SERIAL_FC on devices which don’t support it9593
Standardize Arduino form factor9589
Improve error message for exports for OS2-only targets9585
PSOC6: M0 core binary image for BLE controller updated to version 1.059583
STM32F2: Enable TRNG9580
Fix SharedPtr::reset9579
FHSS timer: Use singleton pointer9572
Use an ip4- and ip6-compliant site to test TLS certificate error reporting9562
LPC546XX, MIMXRT1050: Update to fix ARMC6 build failures9560
Reset internal vref buffer after an ADC conversion9557
[Wio BG96] Modified pin map9556
[Wio 3G] Modified pin map9553
STM32: Enable SERIAL_FC for all9552
STM32H7: Enable OS2 compilation9551
Modify general blockdevice tests to run all storage components9550
Prevent double attempt to connect mesh api9549
BLE: fix missing scan timeout for 4.2 controllers using new API9546
Mesh api fixes9534
STM32 Serial Flow Control9533
Cellular: Remove makefile and mbedignore refering to obsolete cellula9531
Remove COMPONENT_FLASHIAP tests9527
Remove yotta references within testing frameworks9526
Remove yotta and minar references in NCS365109522
Update all mbed test packages9521
Py3 fixes and Travis CI enablement9515
tests-netsocket-udp UDPSOCKET_SENDTO_INVALID allow unsupported empty UDP packet9509
PSOC6.py: generate hex files with 16 bytes per row9500
TCPSocket.cpp setting socket should terminate with semicolon9499
Remove unused yotta module metadata9498
Remove outdated text and fix spelling in README.md9497
Remove yotta from README.md9496
MIMXRT1050_EVK: Add IAR support in the exporter9487
Add sd-driver example9485
UBLOX_C030: Fix modem reset functionality9483
Fix for Issue #7308 (Deep_sleep_lock Ticker.h Issue)9482
ARCH_PRO: add missing SPI pin definitions9480
Refactor core optional parameters (FPU + DSP + Security extensions)9478
Refactor storage components9475
FlashIAP Block device: Assert if default constructor is used without setting config parameters9471
lwipstack: mem-size set to the to minimal working size with DTLS9466
Improve PSoC 6 post-build hooks, whitelist makefile export9445
NVStore: fix area calculation function9431
Update IAR Armv8M changes9430
LPC546XX, MIMXRT1050: Update to fix ARMC6 build failures9429
Fix TCPSOCKET_ENDPOINT_CLOSE: Cannot accept WOULD_BLOCK9394
STM32: PeripheralPins files update from lastest CubeMX tool version9393
BLE: Fix SafeEnum type safety9388
Fix for ARMc6 compiler errors9342
Add support for debug and program launch configurations9328
Doxygen fixes for IP networking area9283
Add TLSSocket greentea tests.9236
COMPONENT_SD tests update for small RAM targets9021
tools: check that part size is not exceeding region sizeUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.11.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-5.11.3
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.11.3 release is now available.
Summary
In this release we have added target support for Quectel M26 GSM/GPRS module and C030-R412M,
We have added fixes for the following reported issues:
- 9138 Can’t execute OS2 tests in ARM if default_toolchain is uARM
- 85 Len vs amount check
- 9400 tests-mbedmicro-rtos-mbed-systimer to tune ?
- 9426 NUCLEO_H743ZI: iar export failing
- 9281 lfs_emubd.c needs to be ignored?
- 9513 Occasional hard fault when using the mbedtls entropy function in parallel threads (K64F)
Support has been added for:
- Nanostack on KW41Z
- An updated PSA binaries importer for FUTURE_SEQUANA_PSA
- FLASH on TARGET_MAX32620C MCU, MAX32620FTHR and SDT32620B
- CAN on STM32H7
- TICKLESS on NUCLEO_H743ZI
- QSPIF as default storage for LPCXpresso546XX
Important notes:
-
A folder path fix for KVStore FILESYSTEM configuration and default configuration (under SD component) has been added. Previously the folder path was the constant “kvstore”. This has been fixed to now behave correctly by taking the value from the configuration store. Users will now need to ensure they have the correct values in the configuration store.
-
The IAR heap size for STM32L496xG has been increased
-
A problem was identified where ther FlashIAP driver would fail during write actions due to HW limitations. A fix has been added to retry a few times until the write is successful.
-
There was a random issue where a device would not boot. This was found to be due to the pre-main check of error_reboot_count being applied repeatedly on every boot. This meant that once the reboot limit was hit, every subsequent reset would halt before main, until something managed to clear or corrupt the error context. This has been fixed by setting the is_error_processed flag before halting, so that when an external agent resets the device while halted, the error is not reported (which would cause the device to halt again).
There are also a number of other fixes and code improvements.
Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
9261
Initial version for Quectel M26 GSM/GPRS Module.9369
Add target C030-R412MFixes and Changes
9548
FlashIAP driver: Add retries to erase and program operations.9547
mbed_die: Use wait_us not wait_ms9544
Halt to enforce reboot limit once only9532
Mutex-protect mbedtls_hardware_poll9492
Travis CI: Fix for license check job9488
Fix licenses in travis test and realtek lib9484
Start Component SD test by formatting SD Card9462
Corrected the targets value in json file as CI uses real board names9453
mbed-host-tests minimum requirement set9452
Crypto platform renaming9448
Fix links to https://os.mbed.com documentation9440
Put LittleFS emulated BD module under .mbedignore9439
Examples: enabled some examples build for FVP_MPS2_M3 target9433
Set DSP and floating point flags for ASM files9428
STM32H743ZI: iar removal as not supported in v7.x9427
BLE: fix possible truncation9422
PB_1 is not connected to D4 in R412M above9421
ESP8266: implements possibility to decide between non-blocking/blocking connect.9418
tools: build_api: remove redundant initialization and fix spelling9417
Netsocket DNS test: increase timeout value9416
RTOS: SysTimer: Fix test timing issues9415
Allow NSAPI_ERROR_UNSUPPORTED from Socket::setsockopt()9411
STM32L496xG: increase IAR heap size9408
SPIF - Fix command to unlock Global Block-Protection register9407
DirectAccess DeviceKey: add support for default storage type9406
Extended mount to check all metadata-pairs9404
DSP_PRESENT flag is needed for Armv8m devices having DSP enabled9403
Clarify addition to CONFIGURATION.md9399
BLE: fix missing null checks on Gap event handler9397
Fixing folder path for KVStore FILESYSTEM configuration.9389
Travis CI: Bind remaining python modules9385
Fixes typos in SMSC9220 Ethernet driver9380
UNO_91H: open hal lib source9377
test: general_block_device fix to always erase prior the first program9376
TCP/UDP greentea tests refactoring and cleanup9374
Add QSPIF as default storage for LPCXpresso546XX9368
PSOC6: Fixes for serial hal driver, asynchronous mode.9366
ESP8266: add an error check for data overflow from modem side9365
Fix for asserion failing in BLE::callDispatcher with gcc debug profile.9363
Remove unnecessary error prints in FileSystemStore9361
Removing dependency of TDBStore in SystemStorage file and moving some file location - TFM support.9360
LPC546XX, LPC54114: Add README and LICENSE files for the power libraries9357
NUCLEO_H743ZI : enable TICKLESS9356
ESP8266 - fixes disconnect to check the state from modem9354
STM32H7 : add CAN support9347
stm32: Improve the CRC function to support fully accumulate9339
Fix Out-Of-Band (OOB) data generation for BLE OOB pairing9337
unittest: remove cellular driver L3IP stub9335
thread_mle_message_handler: fix build warning9333
Minor Doxygen fixes for BufferedBlockDevice and iBeacon9331
ESP8266: prevent WOULD BLOCK from TX if UDP9318
fix bug for RDA UNO_91Hcalling us ticker functions without init.9316
Add FLASH support to TARGET_MAX32620C and brd targets9302
Add TRNG checkup in devicekey9297
uARM targets now build in correct ARM_MICRO directory9296
Remove printf completely and fix the optimization check9291
NRF5x: QSPI SFDP read, min read/write implementation9288
Gemalto Crinterion UDP test adjustments9286
travis: Add include_check job9280
Sleep manager implements all the API’s in platform file9258
FLASH test: skip test if test region overlaps code9257
FLASHIAP test: skip test if test region overlaps code9223
Update PSA binaries importer for FUTURE_SEQUANA_PSA8970
Add doxygen spellcheck job to Travis6622
Add nanostack support for KW41ZUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.11.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.11.2
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.11.2 release is now available.
Summary
In this release we have added target support for NUCLEO_H743ZI, GD32_E103VB and GD32_F450ZI.
We have added fixes for the following reported issues:
- 8567 Equeue unchain bugs
- 8913 Build of NUCLEO_F030R8 fails when DEVICE_SERIAL=0
- 8903 Realtek_RTL8195AM is printing a lot of traces
- 9196 ESP8266 CTS/RTS fails in stop_uart_hw_flow_ctrl()
- 9075 K82F QSPI test fails intermittently
- 9216 Defining MBED_SLEEP_TRACING_ENABLED caused error
- 9266 Astyle in travis doesn’t use .astyleignore
- 9255 FLASHIAP component tests failed
- 9207 MCU_LPC546XX - breaks on master
- 9272 Block device test : skip multi thread part in case of small RAM
Support has been added for: * PSA APIs on Pelion supported boards * a bootloader on the DISCO_F469NI
There have also been some updates to improve the quality of the documentation.
Important notes:
- There was an issue with the internal KVStore, identified after the 5.11 release. The fix for this
required changes which would normally not be accepted into a patch release. We have made an exception in
this case due to the significant nature of the issue.
Prior to the fix provided in, 9156,
the space left for the internal TDBStore (when working in the default internal configuration) was allocated from
the sector following the end of the application until the end of flash. While this worked, it was problematic if the
application would have crossed the sector boundary after an update. This PR leaves the application a couple
of sectors to grow at the expense of the allocated storage (if they are available, which is the likely case).The fix is defined as a breaking change, even if not a typical one: Boards that use the default internal
configuration will lose the storage content after the upgrade (as the internal storage start will move forwards).
Two boards will be affected: K66F and FUTURE_SEQUANA_M0_PSA. Non default configurations won’t be
harmed.- The device key in versions before 5.11.2 may have been insecure as the TRNG may have unknowingly failed.
This issue has been addressed in this release by 9278 DeviceKey: [Security Fix] Generated ROT-key is still used when TRNG fails.
There are also a number of other fixes and code improvements.
Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
9056
NUCLEO_H743ZI: add new platform9203
Add GD32_E103VB as new target9232
Add GD32_F450ZI as new targetFixes and Changes
9391
Add pyocd depencency to resolve Travis CI issue9384
MBRBlockDevice: When partitioning, clear the rest of first erase unit9371
travis: set hypothesis to v3.889362
Fix the general block device for better support of low memory boards9355
Parameterise the repo used in the Mbed TLS importer script9346
Travis CI: Corrected astyle job behavior with non-master base branch PRs9341
Flush ESP8266 serial input buffers after HW reset9334
Doxygen fixes in block devices9332
Update and cleanup BLE.h doxygen9330
Doxygen update for LoRaRadio class9329
SDBlockDevice docs update9327
STM32: replace missing #ifdef DEVICE_xxx9324
Avoid building mbed_tz_context.c for TF-M targets9323
STM32: astyle check9321
STM32 : typo error in QSPI9319
tools/importer script changes9315
LPC546XX: Do not make MCU_LPC546XX target public9313
STM32L476VG: fix wrong pin map function on ADC channels9311
Edit README.md9310
SPIFBlockDevice docs update9309
ESP8266 - fix send buffer exhaustion handling9295
Add missing END to Armv8M IAR assembly files9293
Updated pyyaml due to possible vulnerability9290
ESP8266: Set HW reset time to 2ms9289
travis: add keys for ubuntu - workaround9284
ESP8266: Fixes AT-layer socket_open-functions9278
DeviceKey: [Security Fix] Generated ROT-key is still used when TRNG fails9274
UNO_91H: fix MPU compilation issue9271
Correcting the error-case trace from mesh-api interfaces9269
SDT64B: Add TARGET_SDT64B, a bootloader file on SDT64B9268
Calculate FlashIAPBlockDevice start address and size automatically for test only9267
Fix travis astyle usage of .astyleignore9264
reduce info traces to debug level to prevent logs overflow9260
Use mbed_error_printf instead of debug for ISR friendly prints9256
STM32L0 & STM32L1: FLASH is EEPROM9252
STM32L4 ADC : power optimisation for VBAT channel9251
LoRaWAN: Randomizing backoff for Join process9250
Fix Python 3 syntax in rtc host test9249
add bootloader support to the DISCO_F469NI9246
STM32L0 TEMPERATURE ADC CHANNEL minor update9244
Kvstore tests api change to run on K64F only9241
TDBStore: fix bug in sector blank check for variant sized sectors9239
Increases events.shared-stacksize to 2K9237
Refactoring and fixing some issues in KVStore configuration.9234
nanostack-mac-tester sync with v1.0.19233
FastModel: update platform header, removed unwanted smsc9220 device9229
hal-qspi_test: move frequency setting before flash init9227
[SDT64B] changed UART0 to UART2, added UART_5 on SDT64B9220
BLE: NRF52 returns used tx/rx phy on phy update callback9218
Change to mbedtls_platform_zeroize()9215
Direct access to device key9210
mbed.h includes removed9209
More static place for astyle9202
Realtek-RTL8195AM-Hide_Debugging_Messages9200
TDBStore: Perform garbage collection on failed writes9198
Fixing bug - overwrite of default configuration values for RBP start address and size fails9197
Nuvoton: Fix UART flow control CTS/RTS9195
Enable PSA APIs on Pelion boards9191
Nuvoton: Fix crypto compile error with Mbed OS 29187
Resolves build failures with IAR 8.x9186
Fix ticker_read_us() race condition.9183
Allow LwIP TCP retransmissions to be configured and tune those smaller.9182
Disable MPU support on NRF52x platforms9175
Greentea tests ignore bind returning UNSUPPORTED9173
Prevent ESP8266 stopping HW control on init9167
Modify IRQ handler processing when unusing RTOS at Cortex-A9163
Don’t use define checks on DEVICE_FOO macros (partner code)9154
ARMC6: Use float-abi=hard9152
Cellular: fix state machine to check network attach9135
Get type for BlockDevice9128
Fix SPM HAL test9114
Simplified astyle travis test to be easier to reason about9066
Equeue chaining bug fixes9058
BLE: suppress scan timeout if we disabled scanningUsing this release
You can fetch this release from the mbed-os GitHub repository, using the tag “mbed-os-5.11.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-5.11.1
Downloads: zip tar.gz
We are pleased to announce the Mbed OS 5.11.1 release is now available.
Summary
In this release, we have added support for GD32F307VG, TT_M3HQ, Seeed Arch MAX, ACONNO ACN52832,
NUCLEO_L4R5ZI_P and the KW41Z side of RapidIoT .We have added fixes for the following reported issues:
- 8714 STM32L4 - using TICKLESS and serial (UART - AT cellular) losing characters
- 8864 TRNG on L4 pulls rug out from USB
- 5348 K64F: LowPowerTimeout: Inaccurate delay after board power up
- 8880 CordioGattServer is using wrong connection handles resulting in faults / memory corruption
- 8555 NVSTORE test issue
- 7398 UART not working on LPC54608
- 8913 Build of NUCLEO_F030R8 fails when DEVICE_SERIAL=0
- 8992 Support for Cortex-M33FD
- 8710 Build failure for FUTURE_SEQUANA_M0 with PSOC6_DYNSRM_DISABLE=1
- 8864 TRNG on L4 pulls rug out from USB
- 8950 Properly fix Travis CI Rabbit MQ issue
- 9014 ATHandler.cpp - Bad logical comparison
- 8785 NvStore does not correctly persist values through reset
- 8870 Feature: QSPI support on DISCO_F769NI
- 8124 RTL8195AM netsocket test failures
- 8870 Feature: QSPI support on DISCO_F769NI
- 8664 equeue cancel function can corrupt internal data structures, causing queue failure
- 9099 Identically names structs in different files
- 9176 STM32: RTC No Longer Enabled by Reading the Time
Support has been added for: * nrf52_dk bootloader * DAC (analog-out) HAL on NUMAKER_PFM_NANO130, NUMAKER_PFM_M453, NUMAKER_PFM_M487/NUMAKER_IOT_M487 and NUMAKER_PFM_M2351 * TICKLESS for STM32 targets which are using LPTIM feature for LPTICKER
We have updated mbed-coap to version 4.7.3.
There are also a number of other fixes and code improvements.
Known Issues
There is the following known issue with this release:
ESP8266::_open_tcp: device refused to close socketContents
Ports for Upcoming Targets
8725
Add support for GD32F307VG8815
Add platform TT_M3HQ8831
[Seeed Arch MAX] Add Mbed OS 5 support8860
Add the port for the ACONNO ACN52832 module on MTB’s form factor9008
Add NUCLEO_L4R5ZI_P target9053
Rapid-IoT: Add support for the KW41Z side of the platformFixes and Changes
9180
Revert “STM32 RTC : skip rtc_write if possible”9174
MTB_ODIN_v2_fixes9171
Nuvoton: Fix NUC472 hard fault in SMCC tests9168
Fix to unit test losing process output due to timing issue9166
Ublox C030 ADC internal channels added9164
Disable printf in crash reporting for release builds9159
Drop MBED_EXTENTED_TESTS flagging from network tests.9158
Fix LTO build failures due to duplicate local types9157
PSOC6: Updated default M0 image to not modify UDB configuration when9155
PSOC6: Fixing merge issue for pull request #90099151
github: add reviewers to the PR template9150
Check correct ARMC6 predefine for FP codegen9148
Fix FLASHIAP_ROM_END macro for GCC_ARM & IAR toolchains9144
EventQueue: Old pointers of sibling were not cleared9143
Fix BLE long write execution failure9134
STM32: enable TICKLESS9131
Add versioning limits tointervaltree
module9130
Fix ESP8266 “Link Type” errors after reset9129
DNS tests: improve debug messages9127
WIFI test: improve debug messages9126
Fix multiple definitions of ‘__aeabi_atexit’9122
Update the CC310 IAR libraries9109
Rework fseek/ftell tests9107
Fixing execution of OS2 tests9105
Add some rounding to determine the pulse value for PWM for the STM target9102
Nuvoton: Support boot stack size configuration option9101
Cellular: Fix to use PPP stack in PPP mode9100
Align prototype & implementation of enet_tasklet_disconnect & friends9097
Update to add support for Cortex-M33FD9089
STM32 QSPI update9087
kvstore tests: reduce reset9085
U-blox C030 PinNames Updated9084
Realtek-rtl8195am-Network_Socket_Updates9081
Nuvoton: Fix crypto AC management9079
Add socket stat logging state change update9073
W7500x target ADC 6 and 7 not implemented9063
mbed_fault_handler: fix build warning9061
More MPU work9060
Fix duplicate ‘overrides’ keys in targets.json config file9057
Prefer QSPI Bus mode 1-4-4 as highest priority for QSPIFBlockDevice9055
travis: use https for fetching astyle package9054
Fix max_keys reset limitation9052
Cellular: Rewrite AT handler consume to tag9049
Fix test-netsocket-tcp greentea test build fails.9047
travis: add license9045
Fix wrong PIN config for RTL8195AM platform9043
Removed rabbitmq fix from travis.yml9037
BLE: Update toolchain.h with mbed_toolchain.h9035
STM32L4: correct RNG clock source9034
Change enet_tasklet declarations to match code9033
Fix Stream for IAR toolchain9009
[PSOC6]: Fix for static resource manager.9001
Missing socket greentea tests implementation8995
Add core option for Cortex-M33 with DSP enabled8993
Apply GitHub style to exporter matrix8990
Adjust FAT FS tests to