Releases: ARMmbed/mbed-os
mbed-os-5.13.1
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
andreset_reason
- Added new drivers:
ResetReason
andWatchdog
- Added new HAL API:
- 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 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:...
mbed-os-5.13.0
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: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
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.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
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
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 atom...
mbed-os-5.12.4
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_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
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.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
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
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...
mbed-os-5.12.0
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, 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 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 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](https://github.co...
mbed-os-5.11.5
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
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
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.