Skip to content

Releases: ARMmbed/mbed-os

mbed-os-5.13.1

17 Jul 09:23
5941d17
Compare
Choose a tag to compare

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 nRF52840

Important 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 and reset_reason
    • Added new drivers: ResetReason and Watchdog
  • 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 - see us_ticker_api.h for the details of enabling optimizations on other targets. It can be optimized further if the option target.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 IM880B

10884
NUCLEO_H743ZI2 new target support

10633
Add new features to Toshiba's TMPM4G9

10629
Add support for the Embedded Planet Agora target

Fixes and Changes

11027
PSOC6: add LwIP configuration for Cypress boards

11013
Revert "K64F, STM32F429: IAR linker scripts dynamic heap fix"

11012
Remove FPGA analog out test

11011
Allow re-initialising an I2C peripheral on Silicon Labs targets

11002
LPC546XX: Add pins to LPCXpresso restricted list

10997
Removing absolute paths to compiler executables

10990
Fix doxygen_options.json for ResetReason

10989
SPI FPGA test extension + SPI driver fix (K64F)

10984
Skip form factor pins marked as NC

10982
STM32 LPUART minor update for easy maintenance

10977
Fix out-of-bounds array access in tests-mbedmicro-rtos-mbed-malloc

10976
Fix error in tests-mbed_drivers-ticker when LED2 is not connected

10975
Restrict FPGA tests to Arduino form factor

10972
add new target IM880B

10968
Add FLASHIAP for MTB_STM_S2LP

10967
ESP8266: fix driver's support AT firmware version

10966
Add RZ/A1 settings to arm_package_manager

10964
Add newline after mbed error so greentea shows it

10954
Watchdog: Clean up the doxygen comments

10950
Enable split heap in K64F/K66F devices

10948
BLE: fix flex word

10944
Update I2CTester for fpga-ci-test-shield

10939
Fix SAADC resolution for nRF52-based targets

10938
K64F, STM32F429: IAR linker scripts dynamic heap fix

10934
Fix: Low frequency clock will now selected by given "lf_clock_src" setting.

10933
Nordic NRF52832 cache ON

10932
Internal delay loop code alignment to 16

10928
STM: Correct macro test in us_ticker_defines.h

10925
Doubled ATHandler's BUFF_SIZE

10920
Kinetis MCUXpresso: Update the clock drivers

10910
Increase dns-response-wait-time

10908
Fix netconn_recv_tcp_pbuf ARMC6 linker error

10896
microlib support: Specify compiler version unable to build without the fix

10894
Add adjust-check-config script to mbedtls importer

10893
cellular: fix file permission

10888
Remove macro MBEDTLS_PSA_CRYPTO_C from PSA targets

10884
NUCLEO_H743ZI2 new target support

10881
Fix Nordic/Mbed Critical Section API Inconsistency (In Builds w/o Softdevice)

10879
PSA Crypto for all targets

10874
Add new features to Toshiba's TMPM3H6

10873
Add new features to Toshiba's TMPM3HQ

10870
HAL I2C: adds missing DEVICE_I2C guards

10869
LPC55S69: fix cosFactor data size in header file

10867
LoRaPHY: Pass frequency set in rx_config() to caller

10864
TLSSocket: print certificate info only when tracing is enabled

10861
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 set

10857
Bring watchdog feature branch into master

10856
STM32: enable CRC for all L0/L4/F7

10855
Nuvoton: Fix idle thread stack underflow in debug build

10846
MbedCRC doxygen fixes

10845
Wrong timeout value in greentea tests

10842
Cellular: Stack type fixes

10840
Cellular: cellular socket flags updated

10835
M23: Fix compile error with mbed fault handler

10834
Fixed UDP sendto if IP version not match

10833
fix IAR compile error on fastmodels

10826
Add STM32H743ZI to IAR export definition

10825
Cellular: Fix PLMN debug trace for IAR

10824
STM32: pwmout_write: configure channel only when not already enabled

[10823](https:...

Read more

mbed-os-5.13.0

27 Jun 15:20
7482462
Compare
Choose a tag to compare

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

10624

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

10478

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

10454

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

10442

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

10427

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:

    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:

    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 for register 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

10410

Nanostack send calls return more accurate information in case of errors.

Update CMSIS to 5.5.1

10366

CMSIS updated from 5.4.0 to 5.5.1.

KVStore: Support external storage out of mbed-os tree

10355

Support external storage out of mbed-os tree in KVStore. To enable it, you need to:

  1. Configure KVStore configuration parameter blockdevice to other.

  2. Override get_other_blockdevice() to provide block device out of mbed-os tree.

    BlockDevice *get_other_blockdevice();

Update to LWIP 2.1.2

10353

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

10328

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

10258

Remove FEATURE_STORAGE and all underlying deprecated features: cfstore, flash-journal and storage-volume-manager.

Mail/MemoryPool: blocking alloc

10225

Mail and MemoryPool now provide blocking forms of alloc calls that can sleep the thread until a memory block is available.

Cellular: CellularContext must provide access to CellularDevice

10210

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

10147

We have:

  • Separated atom...
Read more

mbed-os-5.12.4

22 May 14:22
73f0963
Compare
Choose a tag to compare

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 than Cortex-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_connect

10578
Modify PinName file to keep correspondence with spec

10575
BLE: fix CCC callback not being called when writing to a CCC

10573
Change "aplication" to "application"

10570
STM32 astyle updates

10544
Py3 fixes for test scripts

10543
Cellular: Increase receiving timeout for UDP echo non-blocking test

10541
Adding QSPI support to target RHOMBIO_L476DMW1K

10539
Add mbed studio flag during assembly

10538
Enabled crash reporting for DISCO_F407VG target

10534
NANO130: Fix optimization error with NVIC_SetVector/NVIC_GetVector on ARMC6

10530
C027 Fix for modemOn flag

10529
Cellular: Target name change for ublox cellular instance

10527
Nuvoton: Add COMPONENT_FLASHIAP support

10524
TRAVIS: turn off upload python test code coverage

10523
Removing support of FLASHIAP in general_filesystem tests

10520
Permit non-TrustZone ARMv8 build

10512
requirements: update urllib3 to 1.24.2

10500
This removes many const char* warnings related with LWIP_ASSERT()

10496
Allow application to override LWIP_RAW

10483
PSOC6: move mbed_sdk_init to mbed_overrides.c

10480
SPI: Prime asynch transaction buffer on construction

10479
STM32WB: Update Flash size

10468
Add support for CAN to SiLabs targets

10287
Enable MTS_DRAGONFLY_F411RE to register with Pelion

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

mbed-os-5.12.3

08 May 16:02
0f959db
Compare
Choose a tag to compare

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:

  • 10498 FRDM-K66F Missing ADC pins mapping
  • 10400 No flow-control on TARGET_LPC55S69

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

10516
32 Byte key derivation may fail with a 16 Byte ROT key

10513
Fix ARMC6 fpu detection for M33 core

10509
LPC55S69: Add support for UART hardware flow control

10507
PSA: mbedSPM correct SPM initialization order

10506
Add missing ADC pins mapping for FRMD-K66F (#10498)

10502
PSA: TFM import

10493
STM32F303RE: Activate FLASHIAP

10492
Remove sleep lock/unlock from Silicon Labs HAL implementation

10490
Cellular: Added UT for case when read_string buff size hits middle of

10488
Cellular: Add description for CellularProperty

10485
NVStore.cpp compiler warning removal (os_ret)

10477
Wi-SUN: adds greentea test config

10474
fix usb msd test python dependencies

10472
Fix USB control transfers using small size

10471
SDP-K1: Updates to target code

10465
Cellular: fix calls to ATHandler::read_string(...) give correct size

10463
Cellular: Add WISE-1570 handling for socket closing URC

10462
Nanostack: release connect_semaphore only when it is pending

10461
Update wifi driver for rda target UNO_91H

10453
Cellular: Minor doc update for CellualrSocket object

10451
MIMXRT1050: Readd IAR support

10449
Configure UNO_91H to support PDMC compile

10448
Size should be calculate after confirm the final start address

10443
Fix for downloading the wrong binary in the online compiler

10438
PSA: Pass TFM_LVL macro to linker files

10436
NUC472: Workaround for unknown error with power-down

10435
Add support for QSPI to Cypress Boards

10434
Nanostack network handle does not always call status cb for BOOTSTRAP events

10426
UDPSOCKET_ECHOTEST fails if a packet of every size was not sent

10401
NUC472: Support crash capture for no-XRAM configuration

10390
Correct some CPU selections in tools

10364
Refactor PSA code generators

10303
STM32L4xx: IAR memory maps updated

10078
Fix heap init error in rtos-less code

10018
STM: Update linker script for using SRAM1 and SRAM2 in ARM

Using 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

29 Apr 16:15
cfa7938
Compare
Choose a tag to compare

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 platform

Fixes and Changes

10421
Update Jinja2 for CVE-2019-10906 fix

10420
Updated mbed-cloud-sdk to 2.0.6

10419
FUTURE_SEQUANA: Clean up "unused variable" compiler warnings

10418
CordioGattServer: reset settings variable before ANDing the properties to it

10417
suppress coverity error

10415
rtos/drivers: add license information

10414
ExhaustibleBD: licensed under Apache 2.0

10412
FUTURE_SEQUANA: Fix flash_api bug introduced with e16d2d8

10411
Cellular: Added BG96 handling for socket closing URC

10409
Fixing default algorithms in cmsis pack index

10408
Update comments and improve readability for the BusInOut class

10407
Fix warnings on PSA secure builds

10406
Modify CMSIS pack manager to properly handle OSError

10395
mbed_error: Avoid negative left shift

10394
Networking: Fix some ARMC6 warnings

10393
approcah -> approach

10391
Update the writing example in unit testing README

10387
Atmel SAMG55: Cortex-M4 -> Cortex-M4F

10386
ARM MPS2: Cortex-M4 -> M4F & M7 -> M7FD

10385
README file for wifi tests gives configuration example

10384
Toshiba: Cortex-M4 -> Cortex-M4F

10383
GigaDevice: Cortex-M4 -> Cortex-M4F

10382
SDP_K1: Cortex-M4 -> Cortex-M4F

10381
ECHOTEST internal loop simplification and fix

10380
Nordic QSPI data must be written from/read to aligned buffers in RAM

10378
STM32: protect compilation when DEVICE_USTICKER is disabled

10377
Fix ESP8266 driver behavior on connection failures

10376
LPC55S69: Fix APB bridge security programming

10375
Cellular: Fix to delete PDP context on disconnect

10369
L3IP interface input handler change.

10368
FUTURE_SEQUANA_PSA fix PSA Protected storage

10367
Increase background stack size to fix overflows with debug profile

10363
Flagging WEAK method implementation for default construction

10358
Error print improvements

10354
Cellular: Using new rather than malloc in debug_print

10350
Fix doxygen comment in USBDevice

10349
Fix crash capture feature for nuvoton

10348
Parse M33 + GCC_ARM map files

10347
Fix detection of supported targets for mbed 2 builds

10346
FUTURE_SEQUANA: Add suport for ARMC6

10343
TARGET_STM32F7: Reset QSPI in default mode on abort for all versions.

10341
Cellular: Check for URC during AT response stop

10340
BLE: fix missing implementation call

10338
Cellular: Fix deleting of state machine to correct class

10335
PSA release.py - Check that required toolchains are in PATH

10334
MXRT1050_EVK: Fixes test failure seen with ARM & IAR toolchain

10333
Allow toolchain paths to be wrapped in quotes

10332
Break up large prints from --supported

10330
Reduce greentea socket tests failures related to network issues

10318
Crash with MTB_MXCHIP_EMW3166 has been corrected.

10314
i.MX RT1050: Reactivate data cache

10301
examples test compile optional verbose

10292
Cellular: Basic driver for Quectel EC25/EC21

10268
PSoC6 serial driver: Setup RTS and TX lines on deepsleep entry/exit

10257
Correct Python 3 errors and lint warnings in build_release.py

10232
PSA Crypto Service - multipart operation memory fixes

10124
Enable low-power ticker and Sleep for FastModels

10096
Add USB HID tests

10020
Fix single-threaded apps for IAR v8 builds

10019
uARM - Move heap region after IRAM1

10004
M2351: Support memory custom partition

9981
test_soap_connection_handler leaks memory when open_connection fails

9967
Fix for projects exported as a zip file (affects online compiler)

9966
tools: fix the path generated to the sct file

9870
Re-enable MPS2 platform

9844
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

10 Apr 16:30
0063e5d
Compare
Choose a tag to compare

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

Our 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 Write

We 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 target

10133
Adding STM32_F439 as a new MTB target

10115
Uhuru RAVEN: Adding platform HAL

10000
Adding support for SDP-K1.

9814
Adding NUCLEO_WB55RG support

Fixes and Changes

10317
Fix for DigitalOut(NC) instantiation for all Toshiba targets

10304
equeue: align passed-in buffer

10302
BLE: force mandatory services to have lowest handles

10299
MIMXRT1050: Fix ENET issues

10296
Build script: add explicit console log in case of linker script error

10295
eclipse_gcc_arm export improvement

10294
NUCLEO_L4R5ZI_P: enable sw4stm32 export

10290
README link to license guide 404s

10289
PSOC6: Rebuild WICED libraries

10288
Revert limiting Renesas targets to ARMC6

10282
Nuvoton: Support export IAR8 project

10281
Adding support for S2_LP (WiSUN) as a new MTB target

10280
Remove CFSTORE VERSION file (colliding with an ARM 6.12 C++ header file)

10276
Parse Errors and Warnings from Arm Compiler 6

10275
Updated AWS url for astyle.

10270
BLE SimpleAdvertisingBuilder moved functions out of mbed_assert calls

10269
cellular: valgrind defect fix

10267
PSOC6: Modify lp_ticker to 32 bit

10260
Remove leftover waffle comments from README.md

10248
TARGET_STM32F7: Refresh cache when erasing or programming flash

10246
LPC55S69: Update Flash driver to set clock frequency

10243
Nanostack::EthernetInterface::bringdown() can handle blocking mode

10240
Add Python modules to LICENSE file

10234
Update flash algo default with CPM 0.2.4

10231
Nanostack ARMC6 update

10230
Cellular: cellular_network_test Compilation Error Removed

10229
Cellular: Power ON Wait Increased for C030_U201

10222
Travis CI: Updated astyle to work with updated .astyleignore file

10221
Travis CI: Replaced './' with '^' in .astyleignore file.

10219
BLE: fix scan timeout being called from interrupt

10214
LoRaWAN: Adding TOA and Channel info in RX metadata

10213
GR_LYCHEE,RZ_A1H,VK_RZ_A1H: Fix greentea ticker test case failures

10212
Fix tempsensor cal1 constant in stm32f3xx_ll_adc.h

10209
Nuvoton: Add button names BUTTON1/BUTTON2

10206
Define program_cycle_s for LPC55S69 & CY8CKIT_062_WIFI_BT

10200
update vscode default gcc arm version to 6-2017-q1-update

10196
LoRaWAN: Fixing premature RX2 closure

10194
readme: remove waffle as not supported soon

10190
Fixed compilation error in LWIPStack class if lwip tcp is disabled.

10185
Nanostack 802.15.4 RF drivers update

10184
Cellular: Increase receiving timeout for UDP echo non-blocking test

10182
Workaround for ARMC6 Windows 7 assembler issue

10181
DISCO_L496AG: Add PMOD and STMOD+ connector

10180
Fix SPIF speed for MTB_ADV_WISE_1570 and max packet size for BC95

10179
Cellular: C030_N2XX default interface

10178
Nuvoton: Remove SD component from targets.json

10171
Fix QSPIF Bus mode mask and quad enable write SR size

10166
Travis CI: Tweak astyle to not over-exclude files

10160
Crypto access control additional tests

10156
MTB_STM_L475: fix UART clock

10155
Remove dependency on us_ticker HAL apis for non USTICKER targets

10154
Fix for LoRaWAN downlink sequence counter rollover

10149
STM32H7 ADC internal channels

10145
RTOS API: minor tidies

10144
Atmel RF: use system wait_ns

10143
STM32 ADC INTERNAL CHANNEL reset after read

10142
Nanostack 802.15.4 RF drivers update

10140
Cellular: fix astyle for files that already in master

10138
Cellular: don't allow ATHandl...

Read more

mbed-os-5.12.0

27 Mar 12:00
6bf7fd3
Compare
Choose a tag to compare

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" command

9800 Bare metal profile
Mbed OS may now be built without the RTOS by creating an mbed_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, use mbed_file_handle(STDIN_FILENO)->enable_input(false).

9795 crypto: Update to Mbed Crypto 1.0.0d5 and then to 1.0.0d6
Previously, calls to psa_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 returning PSA_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 function set_default_parameters to apply NSAPI configuration options. CellularContext is to be used instead of CellularBase for new extended cellular functionality, such as NonIP sockets and EPS CP optimization...

Migration guidelines for application developers:

  • Change CELLULAR_DEVICE macro to get_default_instance
  • Change OnboardCellularInterface or EasyCellularConnection to CellularContext
  • 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 with soft_power_on/off and hard_power_on/off
  • Move implementation from CellularSIM and CellularPower to CellularInformation and CellularDevice
  • Implement CellularDevice::init and CellularDevice::shutdown
  • Use CellularNetwork::get_signal_quality instead of CellularNetwork::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](https://github.co...

Read more

mbed-os-5.11.5

27 Feb 17:27
51d5550
Compare
Choose a tag to compare

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 target

9777
Adding STM32_L475 as a new MTB target

Fixes and Changes

9798
STM32 LPTICKER (LPTIM): correct init execution after bootloader

9782
Adding RHOMBIO_L476DMW1K as a new Board target

9777
Adding STM32_L475 as a new MTB target

9776
adv builder helper now returns an object

9775
PSOC6: fix port_write API

9774
license: use .md extension

9767
Remove ITM from NRF52_DK and DELTA_DFBM_NQ620 targets

9765
Add config header to assembly compilation

9762
PSOC6: update the psoc6pdl and HAL to the latest version

9756
PSOC6: enable export to CMake

9753
Update Nanostack_HAL licenses and copyright year

9748
BLE:Cordio: ATTS setting for write cback should use bitwise or

9742
tools: export: MCUXpresso: fix case inconsistencies in .templ file names

9741
ESP8266: connect() returns OK in non-blocking calls

9740
Remove pyocd requirement and update icetea.

9736
tools/test/cmsis: add license header

9730
Greentea: Remove TLSSocket_simultaneous test

9724
tools/utils: ensure default build profiles are processed first

9722
Add flash sum check

9715
Add .inc as a header file type.

9713
Add release notes section to PR template

9709
Reverting to original doxy configuration

9696
features: nanostack: fix warning in thread_extension.h

9694
nanostack: icmpv6: fix build warning

9693
platform: fix build warning in mbed_error

9692
target: UBLOX: Fix build warning in UBLOX_AT_CellularNetwork.cpp

9691
btle: fix build warning about unused clockConfiguration

9686
Greentea tests: set correct port to test against google.com

9685
Fix sleep tracing not finding matching driver during unlock.

9680
FUTURE_SEQUANA: Fixed Arduino signal mappings

9673
Fix Py3.7 mdot target build

9670
Add units to timeout argument in EventFlags

9658
REALTEK_RTL8195AM binary timestamp

9657
Revert "MIMXRT1050_EVK: Add IAR support in the exporter"

9656
M2351: Fix crypto AC management

9654
Update mbed-coap to version 4.7.4

9652
Fix minor bugs in secure targets file filtering

9651
FUTURE_SEQUANA_M0_PSA - fix CM4 starting address

9650
Multi thread Block Device Tests Fix - Ensure unique block address

9649
Fix IntelliSense in VSCode export

9647
FUTURE_SEQUANA: SPI HAL fixes

9639
ESP8266: connect() checks errors from ESP chip

9636
Fix compiler warnings

9635
Do not provide a default Pelion host address.

9613
K64/ARM: Update to 2-region model for HEAP and Stack Memory

9602
STM32 GPIO: use maximum speed

9601
LoRaWAN: Proper size checks for link ADR cmds & correct include path in Unittests framework

9587
targets: QUECTEL: Fix build warning

9584
TLSSocket send/recv return WOULD_BLOCK error instead of NO_CONNECTION

9582
Greentea Socket test improvements

9570
tests-netsocket-udp: UDPSOCKET_ECHOTEST_NONBLOCK fixes

9532
Mutex-protect mbedtls_hardware_poll

9514
BG96 netsocket tests

9502
readme: add list of licenses - not Apache 2.0

9501
Add WIFI support for RDA target UNO_91H

9372
BLE - Nordic: Release crypto cell when not in use.

9326
Doxygen correction

9307
Configuration options for STM_EMAC buffer counts

Using 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.5-alpha

14 Feb 19:01
bc132a6
Compare
Choose a tag to compare

This is a pre-release of mbed-os-5.11.5. It contains the following content:

9700 PSOC6: rebuild libwiced_drivers.a against mbed-os-5.11.4
9576 Remove redundant ifdef DEVICE_TRNG from DeviceKey

This pre-release is made to support users needing the above fixes but who cannot wait for the full release of mbed-os-5.11.5. The majority of users should wait for the full release.

mbed-os-5.11.4

13 Feb 17:34
ecb3c8c
Compare
Choose a tag to compare

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 TMPM46B

9625
Fix cortex-m33 armlink error

9619
Correct the dsp flag from no_dsp to nodsp

9615
FUTURE_SEQUANA: Remove special "tags" from M0 hex images

9614
Fix cortex-m33-S gcc compilation error

9606
Correct typo no_dsp - nodsp

9596
Implement Linker command/response files in make export

9595
Define USBTX and USBRX for targets without them

9594
Remove SERIAL_FC on devices which don't support it

9593
Standardize Arduino form factor

9589
Improve error message for exports for OS2-only targets

9585
PSOC6: M0 core binary image for BLE controller updated to version 1.05

9583
STM32F2: Enable TRNG

9580
Fix SharedPtr::reset

9579
FHSS timer: Use singleton pointer

9572
Use an ip4- and ip6-compliant site to test TLS certificate error reporting

9562
LPC546XX, MIMXRT1050: Update to fix ARMC6 build failures

9560
Reset internal vref buffer after an ADC conversion

9557
[Wio BG96] Modified pin map

9556
[Wio 3G] Modified pin map

9553
STM32: Enable SERIAL_FC for all

9552
STM32H7: Enable OS2 compilation

9551
Modify general blockdevice tests to run all storage components

9550
Prevent double attempt to connect mesh api

9549
BLE: fix missing scan timeout for 4.2 controllers using new API

9546
Mesh api fixes

9534
STM32 Serial Flow Control

9533
Cellular: Remove makefile and mbedignore refering to obsolete cellula

9531
Remove COMPONENT_FLASHIAP tests

9527
Remove yotta references within testing frameworks

9526
Remove yotta and minar references in NCS36510

9522
Update all mbed test packages

9521
Py3 fixes and Travis CI enablement

9515
tests-netsocket-udp UDPSOCKET_SENDTO_INVALID allow unsupported empty UDP packet

9509
PSOC6.py: generate hex files with 16 bytes per row

9500
TCPSocket.cpp setting socket should terminate with semicolon

9499
Remove unused yotta module metadata

9498
Remove outdated text and fix spelling in README.md

9497
Remove yotta from README.md

9496
MIMXRT1050_EVK: Add IAR support in the exporter

9487
Add sd-driver example

9485
UBLOX_C030: Fix modem reset functionality

9483
Fix for Issue #7308 (Deep_sleep_lock Ticker.h Issue)

9482
ARCH_PRO: add missing SPI pin definitions

9480
Refactor core optional parameters (FPU + DSP + Security extensions)

9478
Refactor storage components

9475
FlashIAP Block device: Assert if default constructor is used without setting config parameters

9471
lwipstack: mem-size set to the to minimal working size with DTLS

9466
Improve PSoC 6 post-build hooks, whitelist makefile export

9445
NVStore: fix area calculation function

9431
Update IAR Armv8M changes

9430
LPC546XX, MIMXRT1050: Update to fix ARMC6 build failures

9429
Fix TCPSOCKET_ENDPOINT_CLOSE: Cannot accept WOULD_BLOCK

9394
STM32: PeripheralPins files update from lastest CubeMX tool version

9393
BLE: Fix SafeEnum type safety

9388
Fix for ARMc6 compiler errors

9342
Add support for debug and program launch configurations

9328
Doxygen fixes for IP networking area

9283
Add TLSSocket greentea tests.

9236
COMPONENT_SD tests update for small RAM targets

9021
tools: check that part size is not exceeding region size

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