Releases: ARMmbed/mbed-os
mbed-os-5.9.6
We are pleased to announce the Mbed OS 5.9.6 release is now available.
Summary
The CMake exporter is now capable of creating combined hex files for targets.
The low power ticker has been updated to prevent unnecessary rescheduling.
Fast Models' memory regions have been updated to make maintenance simpler as well as use an extra region of SRAM that was previously unutilized. Additionally, the change prepares the targets for other changes that will be showing up in the near future.
There are also a number of bug fixes and test enhancements.
Known Issues
The release version did not get updated as part of this release so is still showing 5.9.5.
Contents
Ports for Upcoming Targets
Fixes and Changes
7686
Correct MTB_ADV_WISE_1530 led configuration
7738
Timeout tests : unstable result
7750
Cellular: Fixed sms greentea tests init
7752
tests-mbed_drivers-timer: change delay method
7771
Update mesh_system_heap_error_handler to use new error handler
7645
nrf_drv_twi: remove redundant nrf_drv_disable call in nrf_drv_twi_uninit
7693
Fix for CM3DS GPIO api
7716
Fix issue #5119, changed pwmout_api.
7777
STM32F1 RTC : wrong Sunday value
7719
Lora: Document all possible error codes for LoRaWANBase methods
7740
Cellular: Handle AT response stop in case IP address is missing from
7741
tests-mbed_hal-common_tickers: disable ticker free test cases.
7769
Fix build_data functionality with python 3
7782
equeue: Fix overflow in rtos-less timeout code
7600
Remove unnecessary low power ticker rescheduling
7670
Check max possible keys in NVStore tests
7797
Fix target_name variable in some use cases
7786
Moved ASYNCHRONOUS_DNS_SIMULTANEOUS_REPEAT under mbed extended tests
7706
Refactoring memory regions definitions for Fast Models MPS2 targets
7681
BLE: store secure connections ltk in both local and peer entry
7830
Fix uvisor ticker issue on K64F
7212
FlashIAP & NVStore tests: Skip test if overwriting code in flash
7770
LoRa: Fix MAC initialization for connection with parameters
7768
Cellular: Document all possible error codes for cellular API.
7775
STM32 wrong MBED_ASSERT use
7791
Fix TMPM64B IAR linker file
7798
Add bootloader support for target NUCLEO_F303RE
7807
Compiler warning: unused variable in LoRaMac.h
7823
MIMXRT1050_EVK: Update the I2C driver
7826
Fix stack size for LwIP on EFM32GG11
7832
Nanostack: Fix return code for unsupported socket options
7831
LoRaWAN: Restoring default RX2 data rate
7790
STM32 LPTICKER : RTC wake up timer is reset before setting a new one
7785
Lora: Fix join-response failure handling
7762
Add combined hex target to CMake
7843
MIMXRT1050: Fix I2C Byte transfer functions
7744
RTOS threads test: Handle out of memory cases
Using this release
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.9.6".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
mbed-os-5.9.5
We are pleased to announce the Mbed OS 5.9.5 release is now available.
Summary
In this release we have added LPTICKER support for Renesas devices and support for SLEEP in
MXRT1050EVK.
We have updated mbed-coap to version 4.5.1. This fixes an issue where blockwise observations were not completing.
We have also updated CubeF1 for STM32F1 to V1.6.1. This includes:
- CubeF1: updated from V1.5.0 to V1.6.1
- HAL driver: updated from 1.1.0 to 1.1.2
- CMSIS driver: unchanged (V4.2.0)
There were some bugs from the cancel_sending() method in LORAWAN:
- The system crashed if the method was called before initialization.
Now LORAWAN_STATUS_NOT_INITIALIZED is returned. - The method returned LORAWAN_STATUS_BUSY error when no send request was pending.
LORAWAN_STATUS_OK should be returned in this case. - LORAWAN_STATUS_BUSY is now returned if the backoff timer is just about to be
dispatched (time_left returns 0).
These are now fixed.
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
7273
Cellular: added unit tests for new API functions (sim, power, base, device).
6985
Fix heap base/limit error with ARM_LIB_STACK/ARM_LIB_HEAP in RTOS-less
7289
On STM32F439xI IAR linker file decreased stack size and increased heap
7545
Fix for Thread::max_stack not returning right value when OS_STACK_WATERMARK is enabled
7622
MPS2 platform: Enable interrupt on rx for UART
7628
Optimize the configuration for RTX evr events
7632
Remove debug print
7641
LoRaWAN: Fixing incorrect NetID causing ABP Failures
7653
Update mbed-coap version to 4.5.1
7565
Nuvoton: Fix NUC472 SD-Host HW IP reset definition
7658
Add default interface for wiced WiFi.
7655
Remove device emac check from emac greentea tests
7642
Changing default SPI CS pin to SD card on MTB
7620
Lora: Fix cancel_sending
7606
STM32F1: update to CubeF1 V1.6.1
7552
Renesas: Add LPTICKER
7465
Skip a few tests if not enough memory can be allocated for them
7648
Add init reference count to all block devices
7621
cellular: astyle fix
7664
fix comment copy/paste error
7661
Clear CONN_IN_PROGRESS flag after incomplete connect()
7668
STM32F7: remove HAL_InitTick() declaration in us_ticker_data.h files
7374
Cellular: fix greentea tests C027 and BG96
7675
Renesas : Improve Flash iap
7676
Nuvoton: Organize file structure
7660
Remove inclusion of mbed.h and mbed namespace from filesystem code
7383
FlashIAP: Add timing test
7687
BLE: set correct default privacy configuration for centrals
7689
PR template: fix target update list
7643
STM32: remove uart force_reset at init
7703
Resolve us_ticker.c api discrepancy between EV_COG_AD4050LZ and EV_COG_AD3029LZ
7678
Nanostack: fix error code
7691
events: astyle fix
7419
MIMXRT1050EVK: Fix Sleep support
7531
Cellular: sms greentea tests
7640
iar: remove nxp duplicate definitions
7721
Fix owner restoration and discard across nvstore init
7688
BLE: call secure connections versions of ltk functions
7717
STM32: check for UART ongoing transfers before entering deepsleep
7725
Update Lwip error calls to use new error codes and mbed_error call
7731
Cellular: WISE_1570's system clock back to HSE_XTAL
7722
Fix Microlib compatibility for -t ARM
7729
Rename text region in ARM linker file for Renesas & Realtek boards
Using this release
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.9.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.9.4
We are pleased to announce the Mbed OS 5.9.4 release is now available.
Summary
This release showcases several new targets added to Mbed OS:
- Silicon Labs has enabled their EFM32GG11 chips, with the supporting STK3701 dev board
- Toshiba has added a new target, the TMPH3H6
- Nuvoton has enabled the NUMAKER_PFM_M2351, the first Cortex-M23 CPU in Mbed OS, and the first ARMc6 target enabled
MPS2 Fast Model targets have now been added and enabled.
An IAR linker fix for the NRF52832 had been made, shrinking the ram size of the part to match it's datasheet.
Several Silicon Labs targets have now enabled hardware CRC acceleration.
Unity macros have now been added to enable the ability to skip tests if requested.
A variety of smaller bug fixes and general improvements were also brought into Mbed OS.
Known Issues
There are no new known issues with this release.
Fixes and Changes
7079
Add support for EFM32GG11
7448
Unity: Add macros for test skipping.
7396
Tools: Show Mbed-2-only targets in mbed compile -S
7302
Support Nuvoton's NUMAKER_PFM_M2351 target
7468
Remove LoRaWAN license from top-level directory
7533
Fix linker script for NRF52832/IAR
7504
Feature itm fix
7544
Remove extra ARMc6 instance in unique mapping
7479
Silicon Labs: Add support for hardware CRC
7520
LoRaWAN: Wrong return code for JoinRequest retry
7548
Fix some targets fail to pass ticker overflow test
7539
STM32F2/F4/F7 : LL API is now available for IRQ
7491
EFM32: fix weak PeripheralPins configuration
7556
Fix spelling in error message in fault handler
7536
Add Support for Toshiba TMPM3H6
7480
Add MTS Dragonfly bootloader back after accidental removal from pr #7131
7510
STM32: Improve GPIO IRQ edge detection when waking from deepsleep
7519
Wiznet: fix us_ticker & gpio bug
7530
RTOS SYSTIMER test error in TICKLESS mode
7553
STM32L496: fix RAM size in ARM scatter file
7554
Enable HAL Flash API on Fast Models MPS2 targets
7549
Revise heap and stack size for Ethernet of GR-PEACH
7551
realtek rtl8195am remove DEVICE_EMAC
7584
Minor enhancement to wait_us
7578
Makes Greentea TCP test cases to timeout less in connection errors
7603
Nuvoton: Replace __wrap__sbrk with overriding _sbrk
7609
Make location meaningful in print_error_report
Using this release
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.9.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.9.3
We are pleased to announce the Mbed OS 5.9.3 release is now available.
Summary
In this release, we have enabled the ability to determine the Mbed OS release version from within compiled code.
Nanostack has been updated with the option to use the global event queue to save on memory usage.
ST and Silicon Labs brought in various clock changes and updated to their targets.
Mbed OS tools now have the ability to source other C++ file extensions, along with a plethora of smaller changes.
There are also a number of bug fixes and test enhancements.
For full details of this and previous releases, please visit our [[https://os.mbed.com/releases/ | releases]] page.
Known Issues
There are no new known issues with this release.
Contents
Ports for Upcoming Targets
Fixes and Changes
7368
Tools: Include Symbols in dependency list
7370
build_api.py : add comment about separate_names
7359
Cellular: EasyCellularConnection::connect doesn't have any check that "CellularConnectionFSM" object is created or not
7326
STM32: add lpuart_clock_source config
7369
Fix race condition in serial_api.c for NRF52 series
7348
LoRaWAN: Correcting doxygen
7239
netsocket: dns: make dns-cache-size:0 remove whole DNS cache code
7029
Nuvoton: Adhere to reworked ticker spec to release with Mbed OS 5.9
7008
AStyle : drivers/hal/platform folders update
7367
Tools: Detect Arm Compiler version using Component
7331
Improve the process for Cortex-A9 in mbed_application
7384
Fix memory leakage with MBR on exiting error path
7403
LPC546XX: Fix UART mux setting in the LPCXpresso board
7342
Add kernel ticker test
7376
DISCO_L496AG: change LED1 and LED2 pins
7377
Tools: Summarize stats when depth is 0
7386
Make clock source changeable over mbed_app.json for EFM32-Targets
7390
DISCO STM32L4 : Add TWO_RAM_REGIONS macro
7401
Fix interrupt initialization for NRF52 series
7405
Fix target definition for NRF52 series
7411
Fix wrong config binding
7413
Modified Wiced drivers EMAC instance get
7371
Improve efficiency and formatting of ITM output
7420
MIMXRT1050_EVK: Fix the GPIO IRQ number assignements
7421
MIMXRT1050_EVK: Move clock enable after check of pin
7406
NANO130: Change PLL clock source to HIRC instead of HXT
7429
MXRT1050: Ensure the pins are in input mode for analogin
7412
apply FatFs 0.13b hotfix - fix readdir() never terminates when dir is full
7352
STM32: Fix RTC test issue on targets using a 16-bit timer for us_ticker
7437
Recognize ".cc" and ".hh" source file extensions
7410
Tools: Move exporter alias handling to CLI
7333
Cellular: More unit tests for ATHandler's read routines
7466
Tools: py3 compatible version checks
7446
Disable LSE for MTB_USI_WM_BN_BM_22
7404
Do not print error reports in release builds
7453
Fix SWI conflict in SoftDevice for NRF52 series
7042
Flash API: Enable Flash api on CM3DS
7474
Replace build profile changes with config
7290
STM32: Refactor us_ticker files
7365
STM32 RTC : bypass shadow registers
7487
Allow STDIO pins to be NC in NRF52 series
7107
Add option to make Nanostack use global event queue
7486
Fix linker script for NRF52840/IAR
7501
Tools: Make directories before gen file uses them
7489
Cellular: HSI set to be source clock for WISE_1570
7471
tests-mbed_drivers-lp_timer: change delay method
7318
Cellular: Remove max_packet_size
7434
Separate version header file in Mbed OS
7461
Raytac: target removal
7445
LoRaWAN: Remedy for issue #7230
7505
Fix linker script for NRF52840/ARM
7494
tests-mbed_hal-lp_ticker: change implementation of the delay before deep-sleep.
7481
Tools: Fix py3 bug with mbed export -S
7500
Tools: Correct cmse lib creating with make_gcc_arm exporter
7503
Tools: Drop quotes from makefiles
7475
Tools: py3 compatible mbed-os version lowercasing
7436
Update stats to fetch Mbed OS version info
7507
STM32 LPTICKER with LPTIM minor update
7477
Tools: Skip target lookup in test builds.
7498
STM32: enable HSI/LSE clocks for LPUART
Using this release
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.9.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.9.2
We are pleased to announce the Mbed OS 5.9.2 release is now available.
Summary
In this release, we have updated mbed-coap to version 4.5.0. This brings fixes for the following issues:
- Hardfault during reconnection retry with Thread
- mbed-coap: extra response received after registration
- Incorrect CoAP request blockwise response handling
There was a LoRaWAN issue LoRaWAN "Tx Timeout" does not trigger Error Event, which has been fixed in this release. If the radio is unable to transmit, it is considered a fatal error and the application is now notified.
In the FSM of the Cellular Connection module there was an issue where the code would crash if the SIM interface was closed too early. This has also been fixed in this release.
To allow the application to choose the default WiFi interface by calling the function, WiFiInterface::get_default_instance() , we have provided default WiFI interfaces for Ublox and Realtek devices.
We have added iAP and Bootloader support for GR-PEACH and GR-LYCHEE, and binary WiFi drivers for
MTB_MXCHIP_EMW3166.
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
7082
Update mbed-coap to version 4.4.4
7158
Add API to read Thread EUI-64
7197
Tools: Allow exporting of uARM-only targets to uvision
7058
Fix two issues in ExhaustibleBlockDevice
7209
Tolerate packet loss up to 30% in udp echo tests
7231
Tools: Force small lib when compiling with uARM
7073
NRF52_DK: SLEEP enable
7208
Added long echo sequence test to EMAC tests
7201
LPC54628: Update the ADC clock divider based on the input clock source
7211
Nordic BLE: Accept connection parameter update
7237
Enable COG boards instruction cache
7234
Spelling error in fault handler
7225
STM32: Add comments for HAL_InitTick function
7229
Disabled STM ethernet driver hardware checksum calculation
7249
Maxim: Rename files to fix warning
7226
Make MTB_ADV_WISE_1570 respect MBED_APP_START & enable bootloader
7207
Change DNS global class definitions to singletons
7224
Fix Greentea test code with deepsleep
7245
Fix default interface selection by using correct macro names.
7146
Cellular: Added power and sim greentea and unit tests.
7242
Rename text region in Arm linker file for a few NXP CPUs
7191
LoRaWAN: Fine tuning timing for delays and receive windows
7263
NRF51 Post-build: Allow Hex BL, SD, APP
7261
IAR: Suppress C "bypasses initialization" warning
7259
Provide default WiFi interfaces for Ublox and Realtek
7216
Asynchronous DNS greentea tests
7206
K64f non-blocking powerup
7205
STM32: Fix data alignment issue in HASH function for F2, F7, L4
7264
Suppress shift warning for IAR compiler as well
7241
STM32: Reduce HAL_deepsleep stack usage
7266
Update arm_pack_manager index
7272
Add binary drivers for MTB_MXCHIP_EMW3166
7175
Enable new HAL us_ticker API on fast model MPS2 platform
7172
Unify RTC, lp ticker, and us ticker for NRF51 and NRF52 series
7274
Travis: fix mongodb key expired error
7288
Fix Greentea test code with wakeup from deepsleep
7283
Update Greentea netsocket and wifi tests
7280
Fix SPI initialization for NRF52 series
7220
Fix mbed::InterruptIn.mode() in NRF5x targets
7295
Compiling Cortex-A cores in uVision is not supported.
6973
Support thread-safety with ARMC6
7291
adding USTICKER label for C027
7275
Cellular: fixed defect where SIM interface was closed too early
7262
BLE: Add setScanParams overload to the Gap API
7105
MIMXRT1050: Update to EVK Rev B
7284
Add binary drivers for MTB_USI_WM_BN_BM_22 and MTB_ADV_WISE_1530
7296
Add names to Idle/timer thread
6925
Support Flash iAP and Bootloader for GR-PEACH and GR-LYCHEE
7269
Cellular: add cellular network tests
7214
Error handling configuration updates and Optimization for exception handling
7210
Fix Nordic security cancellation
7311
Modify RAM size definition of ARMCC for GR-LYCHEE
7299
MBR: Fix issue with MBR init asserting on bad partition size
7338
Download astyle from AWS instead of SourceForge
7286
Add cellular information tests
7324
Fix LED_RED mapping on NUCLEO_F429ZI
7247
Tools: Check compiler version
7320
Update mbed-coap to version 4.5.0
7323
Improve serial performance for NRF52 series
7341
Cellular: improved observing of disconnect for callbacks.
7330
Clean-up targets.json
7351
STM32 files with MBED astyle rules
7344
LoRaWAN: Fixing transport of fatal TX timeout event
7353
build_api script : separate PeripheralPins.o
7354
Fix error history related comments
7356
Fix tool crashing when lines end with cr(not crlf)
7361
STM32 : get serial RX/TX active state
7355
Remove semicolon at the end of #define
7313
NRF_52840: Fix us ticker counter size
Using this release
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.9.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.9.1
We are pleased to announce the Mbed OS 5.9.1 release is now available.
Summary
In this release, we have added support for the following new target:
- Wio 3G
Uvisor has been updated to v0.31.1 to fix an issue where the thread code was not functioning correctly.
For Nordic devices, we have added the ability to configure some of the key settings of the softdevice parameters. This allows the user to control the range of functionality in the softdevice as well as the RAM consumption. In particular, the ability to control these values is critical to enable the use of the 16K nrf51 devices.
We have added support for the mbed_start_application for Cortex-M23 devices.
There were a number of issues found with the asynchronous DNS provided as part of the EMAC network driver subsystem released in Mbed OS 5.9.0. These have now been fixed.
We have also fixed a bug where a hard fault was possible in the Nanostack EMAC, if packet reception occurred during initialisation.
Cmsis/rtx has been updated for Cortex-A to fix a multiple interrupt problem in RTX5. This was particularly affecting GR-PEACH/GR-LYCHEE.
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
7098
[Wio 3G] Adding platform
Fixes and Changes
6968
Test build: Reduce include command length
6928
Cellular: Fixed con-disc sequence can now be called multiple times.
6947
EFM32PG12_STK3402 - Correct wrong Expansion-Header pin namings
6965
Cellular: Unit tests fixes
6970
Fixes to EFM32 port
6984
EFM32 IRQ handling fix
6991
EFM32: make mbed_rtx.h depend on families instead of targets
7011
Fixed float-abi linker option for CCES exporter.
7014
Add check for _interface
7020
Add STM32L433RC to IAR exporter definitions
7022
Fix array overflow in gpio configuration code for NRF5x
7033
Cellular: Fix AT URC handler not to dismiss incoming chars
7034
Fix redeclaration of type name "bool_t" for Renesas
7016
Corrected asynchronous DNS functionality
7054
gethostbyname must reject empty name
7005
LoRa: Add greentea tests for LoRaRadio API
7031
Nuvoton: Adhere to reworked RTC spec to release with Mbed OS 5.9
7039
FPGAIO: Add MISC IO initialization support
7027
Fix possible bug with SysTimer
6803
Wise 1510 uart config
7007
AStyle: Fix astyle indentation
7052
Cellular: BC95 socket creation to fail on missing socket id in the re
6987
STM32 ADC update
7075
BLE: Replace Serial with RawSerial in Cordio H4 Transport Driver
7032
Update cmsis/rtx for Cortex-A
7062
DISCO_F413ZH : map SPI3 to WIFI module
6022
nrf5x: Enable asserts -> mbed_error
6848
Check that no GPL licence inside code
6515
Only schedule mbed_ticker interrupt if queue->head is changed
7095
Fixing some coverity issues
7081
Fix mbed_crc_ctor is missing in some MbedCRC constructor
7143
STM32 : few targets does not support LPTICKER
7136
error: fix undeclared memcpy
7111
Python 3 makefile export issue
7124
Tool: Use TerminalNotifier in singletest
6860
Nordic BLE: Allow configuration of softdevice parameters
6949
Support mbed_start_application for Cortex-M23
7120
Fixed DNS resolution in case all sendto operations fail
7067
Add ISM43362 driver support for STM32 wifi DISCO boards
7173
Make Nanostack C++ constructor initialise Nanostack
7167
Add show full path option to armc6 linker
7147
Upgrade uvisor to v0.31.1
7141
Kinetis EMAC: Make number of buffers configurable
7121
Nanostack EMAC - avoid initialisation race
6978
Support default tz_module in event loop thread for M23/M33
6938
LoRaWAN: Style and bug fixes
7164
Fix NVStore README file (changed APIs)
7160
Fixed ppp_lwip_disconnect hangs when connection failure.
7159
Add targets to Greentea EMAC tests
7150
Nordic: Fix nrf sections on ARMCC
7106
STM32: Replace HAL_GetTick
7103
Greentea test updated for NXP lpc17xx
7097
cellular: random socket port number
7088
STM32F76x: Add support of dual bank flash mode
6948
STM32 ETH : remove TX RX locking interrupt perforation
7084
Cellular: Enable AT debug also when mbed-trace is disabled
7179
Fix USB on Kinetis devices
7119
NSAPI: Use IPv6 conversion routines from frameworks
7176
Fix data aligment problem at STM32F4 hash write
7182
Cellular: Disable Greentea tracing to consume less memory
7161
Correct PPPCellularInterface::get_gateway()
7151
Fixes for RZ_A1H issue 6543
7166
BLE: fix pairing for misconfigured devices (deny pairing correctly)
6935
Ticker test improvement
6831
Add HAL CRC test and header file
7131
New mdot bootloader
7139
Fix greentea test failure on Renesas Cortex-A9 targets
7117
Fix compile error with MBED_MEM_TRACING_ENABLED and ARMC6
7123
BLE: check flags to make sure the IRK has been stored before retrieving it
7102
Adding cellular tests
6962
Cellular: release resources in state machine.
7194
Increased LWIP main worker thread stack size for debug builds
7202
Corrected casting issue with an assert within the error_handling test
7196
Tools: Remove second header when every bl config param is used
7195
Cellular: Semaphore wasn't released in easycellular release build
7128
Fix flash_program_page API in LPC boards
7036
tests-mbed_hal-sleep fix
Using this release
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.9.1".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
mbed-os-5.9.0
We are pleased to announce the mbed OS 5.9.0 release is now available.
Summary
Mbed OS 5.9 is releasing device statistics APIs, which allow you to gather critical device information. This is a first step toward giving you power to remotely diagnose the health of IoT devices deployed in the field. Mbed OS 5.9 focuses on mainlining and increasing adoption of low power features, such as the microsecond ticker, low power timer, sleep manager and real time clock APIs. Power consumption is one of the most important design requirements for IoT devices. Meeting the power budget is becoming challenging as the systems today include more sensors, faster responses and more connectivity. With the introduction of and improvements to key low power features, such as the microsecond ticker, low power timer, sleep and real time clock APIs, meeting tight power requirements and designing low power systems becomes straightforward.
This release also continues our efforts to add comprehensive documentation for Mbed OS. Our ongoing efforts in this area include adding documentation to our connectivity, RTOS and storage APIs, as well as information about our configuration system.
In addition, this release contains many minor fixes and enhancements and brings support for 135 target development boards. In the release note below, we summarize some of the key updates to Mbed OS that are part of the Mbed OS 5.9.0 release.
Core OS
Device statistics APIs
A major challenge in deploying and managing remote IoT devices is monitoring the overall health of the system. Identifying individual mis-performing devices can be challenging when many devices are deployed, and the cost of sending a technician to test devices in the field is very high. We are releasing device statistics APIs in Mbed OS 5.9 to enable device analytics on Mbed OS platforms. Our vision is to continue developing the APIs that provide information about the device and system health and to develop APIs that enable transmission of device health information over the network, so you can remotely monitor the health of your IoT device. The device statistics APIs in the Mbed OS 5.9 release are well-defined APIs that you can use to retrieve OS statistics and device information, such as memory usage, Thread information, stack usage data and runtime CPU load information. The implementation of these APIs is modularized, and it provides multiple APIs for each category. You can enable these separately using build time configuration. For more information, please visit https://os.mbed.com/docs/v5.9/reference/mbed-statistics.html.
Low power features
The Mbed OS 5.9.0 release mainlines several low power features to enable long battery life and reduces power consumption to solve key challenges for embedded devices. The low power features were developed over the past few Mbed OS releases and adopted by Mbed Partners. Many platforms now support these features.
-
Tickless RTOS scheduler: In tickless operation, you don’t have to make the tradeoff between the high frequency timing interval, which consumes more power, and the low frequency timing interval, which results in suboptimal time keeping. The scheduler schedules the next timer tick in response to the next event rather than the fixed timer tick. For more information, please visit https://os.mbed.com/docs/v5.9/reference/tickless.html.
-
Improvements to the microsecond ticker and low power timer: Tickers or timers are hardware timers that track small amounts of time. Mbed OS supports two types of tickers, the high-resolution microsecond ticker and the low power ticker. We have made several improvements to tickers. For example, our ticker now returns native value and configuration data, and the Mbed OS driver is responsible for frequency conversion. For more information, please visit https://os.mbed.com/docs/v5.9/reference/microsecond-ticker.html.
-
Improvements to sleep modes: To save power, Mbed OS goes in sleep modes during idle loop. The sleep modes turn off the system clock when peripherals relying on it are not in use and saves power. We are making several improvements to sleep modes to enhance their functionality. We have APIs to demonstrate the peripheral status during sleep mode. The device must be able to wake up from specified sources. For sleep mode, it is any interrupt, and for deep sleep mode, it is watchdog, low power ticker or GPIO. For more information, please visit https://os.mbed.com/docs/v5.9/reference/power-management.html.
-
Real time clock: The phrase "real time" differentiates this clock from a typical digital clock, which generates electrical pulses but doesn’t keep track of seconds or minutes. The real time clock enables the system to track time in human units. Usually, it continues to count over system resets, and the date and time remain correct even after you reset the system. RTC is often supplied with a dedicated battery to keep track of time during power loss. We have improved the real time clock support in Mbed OS. It now continues to keep counting during software reset, sleep modes and shutdown mode. Also, the improved accuracy is now below 100 ms. Please visit https://os.mbed.com/docs/development/v5.9/rtc.html for more information.
Improvements in error codes and error handling
We are improving our error codes and error reporting infrastructure to ease development by enabling a standard way to describe, debug and communicate error scenarios. Improved error handling implementation provides features such as standardized error code and error status definitions, error handling APIs for error construction, error reporting with thread context, the ability to retrieve previous errors and the ability to save errors to the file system. We designed the error reporting APIs to be used from any context, such as ISR or Threads. The implementation also provides mechanisms for extending the error status definitions to report application specific errors and to extract information from error status values. For more information, please visit https://os.mbed.com/docs/v5.9/reference/error-handling.html.
Connectivity
Ethernet MAC API (EMAC)
We have introduced a new EMAC API to bring unified support for Wi-Fi and Ethernet interfaces and make drivers independent of underlying network stacks. The new changes make it possible to use the same driver with both Nanostack and LWIP Stack. Working closely with our Silicon partners, the new EMAC feature is already available on boards and modules from Nuvoton, NXP, Realtek, Renesas, ST and u-blox.
Security
Update to Mbed TLS 2.10.0
Mbed TLS 2.10.0 provides support for the ARIA cipher and cipher suite for TLS (RFC-6209). Mbed TLS also contains optimizations to reduce code size or RAM, including an option for smaller AES tables. In addition, it contains many security and bug fixes over Mbed TLS 2.7.1, which was included with Mbed OS 5.8. You can access the Mbed TLS feature at https://github.com/ARMmbed/mbed-os/tree/master/features/mbedtls.
Targets and tools
Thanks to our Partners’ hard work, Mbed OS 5.9 added 14 new target platforms and now supports 135 target platforms. We’ll continue to add targets in our biweekly patch releases as Partners work with us on support.
Mbed CLI update and Python 3 support
We have updated all Mbed OS tools to be compatible with both Python 2 and Python 3 environments. This gives greater flexibility on system requirements because previous installations of Mbed OS required the use of Python 2. You can now choose which Python environment fits your needs. Our tools are backward compatible with all current and previous versions of Mbed OS for Python 2. It is only compatible with Mbed OS 5.9 and later for Python 3.
We have also added a built-in serial terminal feature to Mbed CLI. You can invoke the serial terminal using the “mbed sterm” command. For more information, please visit https://os.mbed.com/docs/v5.9/tools/debugging.html#serial-terminal
Known issues
We publish Mbed OS as a collection of modules on GitHub. Issues are raised in the specific repositories and then tracked internally. The purpose of this document is to provide a single view of the outstanding key issues that have not been addressed for this release. As such, it is a filtered and reviewed list based on priority and potential effect. Each item summarizes the problem and includes any known workarounds, along with a link to the GitHub issue (if applicable). We welcome any comments or proposed solutions.
For more information about an issue, contact us on the forum.
Handshake Messages are not fragmented as per MaxFragmentLength Extension Negotiation.
- Description: "Once a maximum fragment length other than 2^14 has been successfully
negotiated, the client and server MUST immediately begin fragmenting
messages (including handshake messages) to ensure that no fragment
larger than the negotiated length is sent. " In Mbed TLS only the application data is fragmented and the handshake messages are not. - Workaround: Disable MaxFragmentLength Extension Negotiation.
- Reported Issue: Mbed-TLS/mbedtls#387
- Priority: MAJOR
IP addresses in the X.509 certificate subjectAltNames
- Description: Parsing IP addresses in the X.509 certificate subjectAltNames is not supported yet. In certificate chains relying on IP addresses in subjectAltNames a
BADCERT_CN_MISMATCH
error is returned. - Workaround: merge branch https://github.com/ARMmbed/mbedtls/tree/iotssl-602-san-ip into your copy of Mbed TLS before building the application. It is still in EXPERIMENTAL stage, use it on your own responsibility!
- Reported Issue: Issue reported by a customer in email.
- Priority: MAJOR...
mbed-os-5.8.6
We are pleased to announce the Mbed OS 5.8.6 release is now available.
Summary
This is the last patch release for mbed-os-5.8.
We have updated mbed-coap to version 4.4.4.
This fixes a hardfault which was occurring during reconnection retry with Thread.
We have fixed an issue with the Cordio BLE stack using the H4 UART transport. The H4 stack was previously calling Serial::writeble() in interrupt context, attempting to obtain a lock on a mutex, which is illegal in this context and was causing the stack to fault.
When trying to build REALTEK_RTL8195AM with IPv6 support enabled, the build would fail. This has now been fixed.
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
6939
NOT_SUPPORTED error was not supported any more in test_api.py script
6952
STM32 ETHERNET : Allow user defined Ethernet PHY init functions
6951
STM32 SPI: fix NSS pin configuration
6896
Export folder needs to not ignore .mbed files.
6931
STM32 : PeripheralPins.c and PinNames.h files alignment
6947
EFM32PG12_STK3402 - Correct wrong Expansion-Header pin namings
6970
Fixes to EFM32 port
6984
EFM32 IRQ handling fix
7011
Fixed float-abi linker option for CCES exporter.
7020
Add STM32L433RC to IAR exporter definitions
7034
Fix redeclaration of type name "bool_t" for Renesas
6803
Wise 1510 uart config
7056
fix realtek_rtl8195am IPv6 build fails update
6987
STM32 ADC update
7075
BLE: Replace Serial with RawSerial in Cordio H4 Transport Driver
7062
DISCO_F413ZH : map SPI3 to WIFI module
7082
Update mbed-coap to version 4.4.4
Using this release
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.8.6".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
mbed-os-5.8.5
We are pleased to announce the Mbed OS 5.8.5 release is now available.
Summary
In this release we have updated:
-
mbed-coap to version 4.4.3.
This fixes an error where the registration time cannot be set if the server does not use the
max age option. -
STM32F3 to STM32CubeF3 V1.9.0
This updates,
CubeF3: from V1.7.0 to V1.9.0
HAL driver: from V1.4.0 to 1.5.0
CMSIS device: from V2.3.1 to V2.3.2
We have fixed a couple of LoRaWAN bugs:
-
rx_config() incorrectly returned a physical layer datarate value when an index to datarate table
should be returned. -
Fixed region 2(AU915) failed to compile due to a typo in the code.
A couple of bugs in the BLE module have also now been fixed:
-
6760 Missing type definition for public_key_t
When compiling the Mbed Cloud Client on a BLE target the GenericSecurityManager failed to
compile due to a missing type definition for public_key_t. -
6806 BLE::GenericGattClient::DiscoveryControlBlock terminate() called twice.
This caused a hard fault.
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
6797
Fix compile error with DirectSerial in serial-less build
6793
tools: Pass app-config to get_config
6768
Nano 100: Lower HEAP size for IAR
6769
Move subtract basepath into the resources class
6773
Enlarge timer thread stack size for Cortex-M23/M33
6728
Fix issue template - simplified version
6610
Stm32 eth remove tx rx locking interrupt perforation
6805
tools: Reorder test configuration priority
6814
GenericGattClient: Fix discovery termination.
6743
BLE: Conditional compilation of H4 driver
6742
BLE: Update cordio porting guide
6645
mbed_wait_api: add comments to warn the func will lock deep sleep
6809
Mbed Stats: Assert if NULL pointer passed as arg
6849
Add missing semicolon to NRF51 critical_section implementation
6817
GenericSecurityManager: Fix crypto_toolbox_f4 signature.
6845
Remove obsolete OS_IDLE_THREAD_STACK_SIZE from NRF52
6852
Fix for issue #5308 - RTC set/get time issue on NCS36510
6879
Build mbed-os-example-lora only for lora targets
6864
FlashIAP: Fix problem of programming source buffer not aligned to 4
6838
export: Fix invalid config header path in Sw4STM32
6883
Update mbed-coap to version 4.4.3
6885
BL mode: Prevent jump address conflicts
6832
STM32F3: Update with STM32CubeF3 V1.9.0
6865
fix greentea-client, require a character input between K-V pairs
6919
tools: Add explicit target for NVStore example
6940
NVStore - remove Thread.h include
6846
Lora: Fix rx datarate
6829
LoRaWAN: Fixed region 2(AU915) to compile
Using this release
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.8.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.8.4
We are pleased to announce the Mbed OS 5.8.4 release is now available.
Summary
In this release we have updated the SDK TPM driver for the KW41Z. This fixes an issue
where certain instances of the TPM are missing some registers.
We have also updated the EFR32 15.4 driver. This includes,
- Updates driver library to v2.3.1 (2018q1) for bugfixes and convenience functions
- Provides library in correct format (2-byte wchar_t flag) for compiling with ARMCC (bug 6695) uncovered by PR6577
- Reverts to using a statically-allocated packet buffer since malloc is not thread-safe (and the asserts have been turned on)
The STM32L0 has been updated with CubeL0 V1.10.0. This includes,
- CubeL0: from V1.7.0 to V1.10.0
- HAL driver: from V1.7.0 to 1.8.2
- CMSIS device: from V1.7.0 to V1.7.2
There was an issue when compiling arm assembler in uvision where the error,
"command too long for buffer" was being observed. This was found to be due to the
assembler adding a large number of include paths to the command line to try and
capture every possible location for a header file. We have fixed this by changing the
arm compiler behaviour to match that of IAR and dropping the include paths.
We have added bootloader support for NUCLEO_F411RE.
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
6690
ADI: Enable bootloader for EV_COG_AD3029LZ and EV_COG_AD4050LZ
6686
Remove automatic I2C stop after each read
6683
Add IAR export and nvstore page size fix for TMPM46B
6669
make PR type box list "fancier" without making it a github tasklist
6666
STM32L0: Update with CubeL0 V1.10.0
6611
Uninitialized variable warning in UARTSerial at -O3
6602
requirements: add future
6540
Prevent compiling with unsupported compilers
6718
Modifying echo test to be driven more from the device.
6727
Update URL that points at a blank page.
6723
STM32 RTC Init minor update
6735
LPC546XX: Add check for GPIO IRQ
6701
Update to EFR32 15.4 driver
6671
Update doxygen options rules to not strip code comments
6745
Clarify mesh configuration values.
6734
LPC54XXX: Set the pin function to Digital mode
6733
Fix compiler warnings for Maxim platforms
6644
Fix build tool with ARMC6/ARMv8M
6756
Re-enable flash clock test for NRF52 but with higher tolerance
6787
KW41Z: Update SDK TPM driver
6786
Moved stats test to platform folder
6785
KL82Z: Fix clock selection for PWMOUT driver
6780
resolve LWIP compiler warning
6778
Add support for open drain leds
6774
littlefs: Fix issue with trailing dots in file paths
6762
Fix compile error with MBED_MEM_TRACING_ENABLED and ARMC6
6740
Lora: Fix max tx power check
6729
Add bootloader support for NUCLEO_F411RE target
6713
Drop include paths for ARM assembler
Using this release
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.8.4".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.