Feature releases of Mbed OS are made available on a roughly quarterly basis. We release patch releases every two weeks. The latest version is always available through our development tools and on GitHub.

Latest stable release:

  • mbed-os-5.9.4

    Downloads: zip tar.gz

    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 wrapsbrk 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

    Downloads: zip tar.gz

    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

    Downloads: zip tar.gz

    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

    Downloads: zip tar.gz

    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

    Downloads: zip tar.gz

    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: https://github.com/ARMmbed/mbedtls/issues/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

    Mismatch of root CA and issuer of CRL not caught

    • Description: The x509_crt_verifycrl() function ignores the CRL, when the CRL has an issuer different from the subject of root CA certificate.
    • Workaround: Make sure that the issuer of the CRL and the root CA certificate's subject are the same before passing them to x509_crt_verifycrl().
    • Reported Issue: Reported by a partner.
    • Priority: MAJOR

    Mbed TLS causes stack overflow in Mbed OS targets

    • Description: The stack memory usage of some Mbed TLS features is higher than 4 KB, which may cause stack overflow errors when running in constrained embedded environments with mbed OS which are particularly limited in RAM.
    • Workaround: The amount of stack required is very dependent on the application, and what features of the library it chooses to use. Obviously more intensive, demanding tasks may not be possible on more limited, constrained devices, so we recommend designing for the limitations of the target device, or choosing a device suitable for your application.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-tls/issues/14
    • Priority: MAJOR

    Commissioner does not retransmit message when it receives retransmission

    • Description: There are two issues with DTLS handshake retransmission. Firstly, the joiner fails to correctly parse received records because it does not correctly handle queued retransmissions received. Secondly, the commissioner may cause a deadlock as it does not retransmit certain records after it receives retransmission as instructed in RFC6347 Section 4.2.4.
    • Workaround: There is no known workaround.
    • Reported Issue: https://github.com/openthread/openthread/pull/1207
    • Priority: MAJOR

    Self Test Failure with Some Hardware Accelerators

    • Description: Most HW acceleration engines (if not all) require the parameters to be from contiguous memory. All the self tests use test vectors that are defined in the .bss section, which means these are not contiguous. This causes the self test to possibly fail, when implementing HW accelerted engines.
    • Workaround: There are no known workarounds
    • Reported Issue: Reported by the development team.
    • Priority: MAJOR

    uVisor does not support nested interrupts

    • Description: When running an application with uVisor enabled, nested interrupts are not supported.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/345
    • Priority: Major

    On ARMv7-M targets supporting uVisor, the RTOS runs with the same privilege of uVisor

    • Description: The current architecture of uVisor and of RTX require the RTOS to run with the same privilege of uVisor. As such, the RTOS is considered as trusted.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/235
    • Priority: Major

    Realtek RTL8195AM does not define flash algorithms for uvision

    • Description: No flashing support in uvision for Realtek RTL8195AM
    • Workaround: Use drag-n-drop programming
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/4651
    • Priority: Minor

    Traceback occurs when ran with factory default firmware on Realtek RTL8195AM

    • Description: When running mbed-ls on the Realtek board a traceback happens
    • Workaround: Version of mbedls in Mbed OS does not have this fix. Workaround is to install mbedls from master until a release is made.
    • Reported Issue: https://github.com/ARMmbed/mbed-ls/issues/276
    • Priority: Major

    Export project to Keil - device not present

    • Description: cmsis-pack-manager assumes that all information is stored in a device tag. According to the official CMSIS Pack specification however this is not the case. cmsis-pack-manager needs to be updated to index by variant as well as device. We currently do not know how many devices are affected by this issue.
    • Workaround: In this case manual selection of the device and flash programming algorithm may be required.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-cellular/issues/41
    • Priority: Major

    OnboardCellularInterface used incorrectly

    • Description: This example invokes methods on OnboardCellularInterface that are not part of the CellularBase abstract class. This means it may not work if OnboardCellularInterface is not a PPPCellularInterface.
    • Workaround: None
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-cellular/issues/54
    • Priority: Major

    WiFi connection fails with client compiled by IAR IDE

    • Description: Mbed connector client example programs do not connect to api.connector.mbed.com when built in the IAR Embedded Workbench IDE. It works when you build using Mbed CLI.
    • Workaround: Do not export mbed connector example for IAR Embedded Workbench.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-client/issues/355
    • Priority: Major

    Client fails to connect via UDP when binary is compiled by Online Compiler

    • Description: using UDP fails when binary is compiled with Online compiler but works if compiled with mbed-cli GCC_ARM .
    • Workaround: Use TCP based connections
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-client/issues/357
    • Priority: Major

    Realtek RTL8195AM - CMSIS-RTOS error: ISR Queue overflow

    • Description: Realtek RTL8195AM does not maintain a long running connection to Mbed device connector. The error manifests as an ISR Queue overflow.
    • Workaround: None
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/5640
    • Priority: Major

    Makefile export fails to build larger project in Windows

    • Description: Make will fail with the error: make (e=87): The parameter is incorrect.
    • Workaround: Possible workarounds are 1) Use Linux instead 2) Follow advice here, https://stackoverflow.com/questions/12598933/ndk-build-createprocess-make-e-87-the-parameter-is-incorrect
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/6335
    • Priority: Minor

    Online exports of projects overriding mbed-os configuration fail

    • Description: Exports from the online compiler of projects that override mbed-os configuration do not work
    • Workaround: Export offline using Mbed CLI
    • Reported Issue: https://github.com/ARMmbed/mbed-os/pull/6428
    • Priority: Major

    NXP LPC17xx targets do not have Ethernet driver

    • Description: Ethernet driver interface was refactored for Mbed OS 5.9. LPC17xx is not yet ported.
    • Workaround: Wait for Mbed OS 5.9.1
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-sockets/issues/12
    • Priority: Major

    ARM_CM3DS_MPS2 targets do not have Ethernet driver

    • Description: Ethernet driver interface was refactored for Mbed OS 5.9. ARM_CM3DS is not yet ported.
    • Workaround: no
    • Reported Issue: -
    • Priority: Major

    Nanostack Border router does not build for Nucleo F429ZI

    • Description: Ethernet driver interface was refactored for Mbed OS 5.9. Nanostack border router was not refactored, so new versions of F429ZI drivers are not yet in use.
    • Workaround: wait for fix in the Border Router application
    • Reported Issue: https://github.com/ARMmbed/nanostack-border-router/issues/113
    • Priority: Major

    BLE Security Manager initializes cryptographic hardware on NRF52840

    • Description: The CC310 Cryptocell hardware is initialized when using the BLE Security Manager on NRF52840; if the application is already using mbedTLS prior to this initialization it might yield undefined behaviour
    • Workaround: Do not use the BLE Security Manager on NRF52840 if mbedTLS should be used by the application, or make sure it is initialized first and that mbedtls_platform_setup()/mbedtls_platform_teardown() are not called subsequentially
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/7069
    • Priority: Major

    Exporting to GCC in Windows does not work with Python 3

    • Description: Exporting projects to GCC makefiles in Windows does not work when using Python 3.
    • Workaround: Wait for Mbed OS 5.9.1
    • Reported Issue: https://github.com/ARMmbed/mbed-cli/issues/694
    • Priority: Major

    Ublox ODIN W2 crashing with latest client

    • Description: Ublox ODIN W2 board is often crashing when using Mbed Cloud Client. Root cause unclear.
    • Workaround: Wait for fix
    • Reported Issue: Internal issues: ONME-3665, ONME-3672, ONME-3692
    • Priority: Major

    All NRF52832 based devices (e.g. NRF52_DK) have sleep/deepsleep functionality disabled.

    • Description: sleep/deepsleep functionality will be enabled in Mbed OS 5.9.1 release
    • Workaround: Wait for Mbed OS 5.9.1 (fix available here https://github.com/ARMmbed/mbed-os/pull/7073)
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/7168
    • Priority: Major

    Cortex-A release and develop profiles for ARMCC build fail

    • Description: Bug in CMSIS ARMCC header file causing ARMCC builds with -O3 to fail (release and develop profiles are affected)
    • Workaround: use develop profile for ARMCC or wait for Mbed OS 5.9.1
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/7065
    • Priority: Major

    Fixes and changes

    7030 Fix lwIP PPP glue

    7023 Add new examples to example list for CI.

    7019 Made lwip memory configuration more specific for NXP targets

    7015 Fix build for MBT_ODIN_W2 and MBED_CONNECT_ODIN when using WiFi

    7012 Enable DeviceKey class reference for Doxygen

    7009 Bring in improved HAL APIs to master

    7003 Add devicekey example to examples list

    7000 Add warning about FEATURE_UVISOR being deprecated

    6993 CPU Stats test - Increased wait time to allow device to sleep

    6983 Standardized Error Handling and Error Codes

    6981 Remove ns_event_loop_thread_start() from NDInterface and ThreadInterface connect()

    6960 LoRaWAN: Message flags correction

    6959 Remove unused ITM implementation from NRF51 series

    6932 BLE privacy, signing, persistent security database

    6927 Cellular: AT debugging improved

    6917 Travis: Quick name-fix for warnings reported by Astyle

    6910 LoRaWAN: Adding acquisition of metadata, backoff and a cancel_send() API

    6905 Lora: Remove obsolete FEATURE_COMMON_PAL flags

    6901 events: Introduce API to query how much time is left for delayed event

    6892 LoRaWAN: Wrong type of message check

    6886 Corrected iteritems py2/3 compatability in test_api.py

    6882 lwIP: Enable TCP out-of-order processing

    6878 Add low power timer fallback for platforms without RTC

    6876 Nanostack release for Mbed OS 5.9

    6875 Lora: Fix battery_level callback

    6866 fatfs: Add erase disk to format

    6863 Update Mbed TLS to version 2.9.0

    6862 Fastmodels support: add FVP_MPS2 targets to mbed os

    6857 CPU Statistics

    6847 Merge feature-emac branch into master

    6839 Lora: fix AU915 build

    6833 mbed test: add argument --ignore to allow passing in mbedignore patterns

    6826 Reorganize SoftDevices for NRF52 series

    6823 tools: Remove long-deprecated build_everything.py

    6821 System stats - API addition

    6819 Remove example update scripting from tools

    6808 LoRa: State machine work

    6800 Lora: Fix LoRaMacCrypto asserts

    6798 Fix bug in MBR for NRF52 series

    6796 Fix us_ticker for NRF52 series

    6795 Thread stats API

    6794 Cryptocell 310 support

    6792 Cellular: Add dynamic alloc and destruction to easycellular

    6791 Add POSIX fcntl flag support

    6784 Add common define MBED_ALL_STATS_ENABLED to enable all statistics

    6781 tools: Refactor notification API

    6779 [MAX32625PICO] Add new platform

    6772 littlefs: Map LFS_ERR_CORRUPT to EILSEQ

    6771 Fix UART initialization for NRF52

    6765 Cellular: Fix AT Handler compile warning

    6757 Implement BufferedBlockDevice

    6750 LoRaWAN: Memory corruption due to band mishandling

    6749 Add platform setup and teardown calls to mbedtls tests

    6748 nrf5x: Fix assert test on SERIAL_RESERVED_CHAR_MATCH

    6747 Support RTOS-less secure image build with Cortex-M23/M33

    6746 Fix vector table relocation for NRF52

    6744 Cellular: Changed ATHandler yield to wait

    6741 Lora: Split add_mac_command() into separate methods

    6721 Fix bug in Nordic SDK 14.2 I2C driver

    6720 Fix bug in Nordic SDK 14.2 SPI driver

    6717 Fix NRF52 SPI pin initialization

    6711 Cleanup TARGET_NRF5 and TARGET_NRF5x

    6708 Add Hardware CRC HAL API specification

    6702 Cellular: Fix to prefer IPv6 single stack with fallback to IPv4

    6700 mbr: Added assertions for overlapping partitions

    6698 Make poll() use RTOS tick count

    6696 CM3DS Maintenance Pull Request: Cleaning

    6693 Make event queue use RTOS tick count

    6692 Lora: Remove singleton pattern

    6691 Cellular fixes

    6682 Fixed cellular unittests

    6677 Cellular: fixed null pointer bug in cellular fsm

    6665 Greentea netsocket more tests

    6663 Use SingletonPtr in Nanostack HAL

    6657 add ncs36510 fib and trim generation

    6654 Add missing carriage returns to fault handler

    6653 Stop lwIP using us_ticker

    6642 Device key implementation

    6632 cellular: Error messages

    6630 Support secure/non-secure flash IAP for Cortex-M23/M33

    6629 Cellular: add plmn for CellularConnectionFSM

    6628 Lora: Make automatic uplink message configurable

    6627 Nanostack hal timer shortcut

    6626 Cellular: Separated context activation in CellularConnectionFSM.

    6595 Fix typo with NVStore

    6592 Updates tools to be runnable in Python 3

    6590 AStyle addition to travis

    6588 [IOTCELL-741] Separating public data structures

    6587 LoRa: Internal include paths corrected

    6586 Lora: Introduce new receive API which returns port and flags

    6577 Get rid of FEATURE_COMMON_PAL and FEATURE_NANOSTACK

    6570 Cellular: add detach from the network

    6569 Lora: small fixes

    6566 LoRa: Stack cleanup

    6559 Implement FlashSimBlockDevice - flash simulated block device over RAM

    6547 Update Nordic NRF52 based targets to SDK 14.2

    6536 Add handling for synchronized low power tickers

    6534 Update idle loop to reduce calls to suspend

    6530 Exclude files like .main.cpp from builds

    6496 standard non-blocking NetworkInterface::connect

    6486 Thread class tz

    6483 CMSIS: Add TrustZone functions

    6480 NVStore: add the allocate_key API (instead of set_alloc_key)

    6441 Disable all deprecated exporters

    6440 Remove supertarget

    6433 Enabl-able Python 3 tools testing in Travis CI

    6427 Added SerialWireOutput to mbed namespace

    6418 Add an option to use LowPowerTimer for poll

    6411 Stack refactoring

    6408 Add overloaded get_erase_size API with address parameter to BlockDevice

    6402 Renaming Ublox library for mbed cellular framework

    6388 NVStore: key management enhancements

    6336 fatfs: Update error code mapping

    6309 Peek API to view data of buffer without popping

    6279 LoRa refactoring

    6273 Update cmsis/rtx to version 5.3

    6270 Add parameter in tools settings to show error/warning as Link

    6239 Interrupt in pin mode

    6238 Remove windup behavior from break_dispatch

    7132 Tool: Use TerminalNotifier in Mbed 2 release

    7092 Additional fixes for running Python 3 in Windows

    7089 BLE fixes (SM whitelist creation, Nordic scatter file fix, missing TLS initialisation)

    7078 Windows pytest fixes

    7074 Remove redundant Cryptocell libraries

    7072 Edit warning about FEATURE_UVISOR being deprecated

    7070 set the tolerance to 5% if NO_SYSTICK is enabled

    7060 UBLOX_C027: init us_ticker in the target initialization

    7059 OS version not update in mbed_stats

    7053 Fix RTOS-less build failed with cmsis/RTE_Components.h

    7050 Fix for filename capture not working

    7035 tests-mbed_hal-common_tickers: Fix increment test case implementation

    6914 build: fix notifier typo and passing to builds API

    7144 Add configuration options to enable CMAC in mbedtls by default

    7135 Update Mbed TLS to version 2.10.0

    Testing

    We designed Mbed OS to significantly reduce cost and time for embedded software development by providing a production-quality toolset and code. We are committed to delivering high-quality code working across all supported boards and platforms. To ensure all the features of code meet our quality control requirements, we have built an automated testing environment and processes that perform rigorous testing on every line of code. The continuous integration framework is a highlight of our testing framework.

    Continuous integration framework:

    The continuous integration framework ensures that every new feature and change in Mbed OS is tested, so that:

    • For every new feature, we create tests that we then deliver to our partners. For every board to be Mbed Enabled, we need our partners to successfully conduct these tests.
    • Partners must test the changes on their boards before submitting pull requests (PRs) on GitHub.
    • Once the PR is submitted, the Mbed OS gatekeepers manually review the code to ensure it meets the coding guidelines and code standards.
    • Once approved by gatekeepers, the code goes through the automated test infrastructure, which tests the submitted code across multiple platforms using three toolchains: IAR, ARM and GCC.
    • During the testing phase, we select the combination of boards and devices that support a variety of peripherals, MCU cores and features for maximum coverage.
    • To ensure the Mbed OS code is compatible with all the IDEs, we test that the code is exporting properly to all the compilers.
    • We merge the PRs only if the all the above procedures are successful.

    Below are the summary results for testing conducted for Mbed OS 5.9.0:

    • Total test time is 28,182 hours on actual development boards.

    • We have added 208 new test cases since the Mbed OS 5.8.0 release to test new and existing features on Mbed OS. The number of total test cases is 1,024.

    • The total number of binaries built since the Mbed OS 5.8.0 release is 40,561,560.

    We plan to share more details about testing processes, such as our out-of-box testing coverage and system testing, in upcoming release blogs.

    Using the release

    Arm Mbed CLI

    When you create a new program, Mbed CLI automatically imports the latest Mbed OS release. Each release includes all the components: code, build tools and IDE exporters. If you want to update your Mbed OS version or existing program to Mbed OS 5.9.0, run the CLI command mbed update mbed-os-5.9

    Arm Mbed Online Compiler

    When you create a new program, the Mbed Online Compiler automatically uses the latest Mbed OS release. If you want to update your Mbed OS version, right click on mbed-os library, and press update.

    You can also fetch the latest version of the Mbed OS 5.9 release from the mbed-os GitHub repository using the branch “mbed-os-5.9”.

  • mbed-os-5.8.6

    Downloads: zip tar.gz

    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

    Downloads: zip tar.gz

    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

    Downloads: zip tar.gz

    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.

  • mbed-os-5.8.3

    Downloads: zip tar.gz

    We are pleased to announce the Mbed OS 5.8.3 release is now available.

    Summary

    This release adds new target support for MTB_ADV_WISE_1530, USI WM-BN-BM-22 and MAX32620C with the MAX32620FTHR platform.

    mbed-coap has been updated to version 4.4.2. This contains a fix for the issue where CoAP UDP retransmission does not work for blocks after the first one for requests (Eg. registration POST).

    On the LPC4088 there was an issue where the chip would hardfault just after a power-cycle. This has been fixed in this release.

    We have fixed an issue with the RTL8195AM, which wouldn't compile in the online IDE due to its post-build script. We have refactored our tools to use pyelftools which removes the problem.

    We have included IAR export support for STM32L496AG and STM32L151CC. We have also added support for a Code::Blocks project file exporter.

    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

    6503 [MAX32620C] Add new target

    6511 Add new target USI WM-BN-BM-22

    6601 Add new target MTB_ADV_WISE_1530

    Fixes and Changes

    6561 Stm32 deep sleep clock

    6481 Code::Blocks project file exporter

    6553 Correct armc6 detection logic for STM32L4

    6509 Add an NV_SEED test to the config adjustment script

    6572 cellular: ATHandler send delay

    6505 remove MODULE_UBLOX_ODIN_W2 from targets.json

    6544 add ADC_AN0-2 mapped on PA_0-2

    6550 Remove MPS2 M1

    6564 Travis: Fix rate-limit issue with Github requests

    6567 DISCO_F769NI: set clock_source to USE_PLL_HSE_EXTC

    6169 CM3DS Maintenance Pull Request: TRNG support (3/4)

    6619 PR template: fix tick definition

    6600 [IOTCELL] Setting up channels for AU915

    6618 Update mbed-coap to version 4.4.2

    6634 Add iar export support for STM32L151CC

    6625 rtl8195am - fix excessive compiler warnings

    6620 Cellular: fixed athandler unit tests.

    6613 Macro expansion results in a constant boolean expression

    6609 STM32 PCD negative numbers issue

    6608 Rework us_ticker and rtc_api/lp_ticker

    6606 Fix I2C master

    6605 Rework us_ticker and rtc_api/lp_ticker | Fix compiler warning for spi_api

    6599 STM32 compilation warning issues

    6598 LPC4088: Fix hardfault occuring after power-cycle

    6541 Add mbed-os 5 build support for LPC11C24

    6466 Nuvoton: Fix issues with SPI

    6468 Fix deep sleep implementation

    6510 Adding missing @deprecated to function inline documentation

    6580 Cleanup get_config (mbed compile --config)

    6607 Improve SPI block write

    6621 Use pyelftools for Realtek post-build script

    6637 Add IAR export for STM32L496AG

    6647 Fix MCUXpresso LPC I2C driver

    6648 ADI: Add BUTTON pin names for EV_COG_AD4050LZ and EV_COG_AD3029LZ

    6603 Optional hardware flow control for STDOUT

    6651 rtl8195am - Fix more compiler warnings

    6221 LPC546XX: Add TRNG support

    6660 Enable flow control in Greentea

    6614 Macro expansion leads to a bare expression

    6652 Cellular: Updated doxygen for deprecated API's.

    6604 littlefs: Fix some issues with lookahead trust

    6658 Allow library configs to override target configs

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.8.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.8.2

    Downloads: zip tar.gz

    We are pleased to announce the Mbed OS 5.8.2 release is now available.

    Summary

    This release adds new target support for RAK811 and Toshiba TMPM46B.

    We have included a new patch version (4.4.1) of mbed-coap. This brings fixes for the following:

    • Block wise messaging call-backs not working logically
    • Allow TCP+TLS transport method to send larger messages without blockwising.

    We have also added an update to the drivers for STM32L1:

    • CubeL1: Updated from V1.6.0 to V1.8.1
    • HAL driver: Updated from V1.2.0 to 1.3.1
    • CMSIS device: Updated from V2.2.0 to V2.2.3

    We have enabled tickless mode on Silicon Labs targets and added support for the v3.0 pin map on the NUMAKER_PFM_M487 platform.

    There are a couple of significant issues which have been fixed in this release:

    • Deep sleep was not unlocking properly in the Timeout class.
    • UARTSerial output not working properly on the REALTEK_RTL8195AM platform,causing the device to crash 6358.

    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

    5902 Added Support for Toshiba TMPM46B

    6043 add support for the RAK811

    Fixes and Changes

    6415 rtl8195am: fix LogUART Tx interrupt crash

    6450 Realtek: serial - line ending fix

    6428 Avoid incorrect config errors on export with many --source

    6424 Nuvoton: Support M487 v3.0 pin map

    6416 lwIP: fix some IPv6 errors, eg TCP keepalive

    6313 Add missing Doxygen descriptions for Nanostack

    6487 Minimize the size of uvision include paths

    6373 flash: add docs for user defined data

    6467 KL82Z: Update the clock selection method for LPUART module

    6488 Fix initial SP for new Silicon Labs targets on ARMCC

    6413 LPC176X: Fix flash program size

    6394 Nuvoton: Fix us_ticker/lp_ticker

    6475 Enable tickless mode on Silicon Labs targets

    6494 [BLE] Fixed inconsistent casing issue for SecurityDb

    6512 Move Mbed 5 support check so that it affects the exporters

    6518 Inrease thread stack size to 1024 bytes in NVStore test for NRF52

    6533 Fix deep sleep locking for Timeout class

    6527 Test line-ending problems

    6528 Update mbed-coap to version 4.4.1

    6531 Fix doxygen comments to reflect the deprecated functions

    6490 ADI: Fix EV_COG_AD3029LZ and EV_COG_AD4050LZ us_ticker_fire_interrupt() minimal time interval

    6442 Add test for MbedCRC.h

    6524 Fix IPv4 address parsing due to not-so-portable scanf modifier

    6557 LoRa: Fixed cflist decoding issue

    6497 STM32L1: Update ST HAL driver to CubeL1 V1.8.1

    6552 Error on invalid mbed_lib JSON

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.8.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.8.1

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.8.1 release is now available.

    Summary

    This release adds new target support for DISCO_L496AG, VK_RZ_A1H, Laird BL652 and STEVAL-3DP001V1.

    We have included updates to mbed-coap covering versions 4.3 and 4.4.

    The SDK driver for LPC546XX has been updated to version 2.3.

    There was a problem with the REALTEK RTL8195AM post build script not working in the online compiler, 5976 , this has now been fixed.

    A number of updates have been added to the Cellular functionality, including the addition of an internal callback API and ATHandler improvements.

    We have added iar export functionality for MTB_ADV_WISE_1510 and flash support for LPC54114 and LPC546XX.

    There are also a number of other bug fixes and test enhancements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    6102 Add support for STEVAL-3DP001V1 board

    6164 Adding Laird BL652 as new target

    6379 DISCO_L496AG: Add new platform

    6245 Update for VK_RZ_A1H

    Fixes and Changes

    6153 Correct exporter clean behavior

    6191 Simplify json-to-dict utility

    6189 LPC546XX: Update SDK driver to version 2.3

    6246 C030 platform I2C initialisation fix

    6228 Nuvoton: Rework us_ticker/lp_ticker with one H/W timer

    6143 Correct mbed export with multiple --source params

    6146 Correct gcc m33 floating point handling

    6173 Modifies error text reported from RTX from 'underflow' to 'overflow'

    6268 Unittests fixed

    6202 Fix max32625mbed

    6235 mcu_lpc546xx: move "release_versions" to children and fix clock

    6263 Clarify intention between comparison to zero and the shift operation

    6286 Small typo fixes in readme.md files

    6271 Allow build profiles to omit language entries

    6226 rtl8195am: fix ARM section error

    6257 Fix for Crash dump formatting issues and adding more info to crash dump

    6290 Cellular tests: fix power mgmt stub

    6287 MCUXpresso_MCUS: Apply K64F us_ticker fix across all MCU's

    6315 EFM32: make gpio interrupts faster by offloading expected pin state check to user

    6314 Cellular: ATHandler write improvements.

    6311 mts_mdot_f411re: Fix for Multi-Tech mDot IAR linker script

    6310 MCUXpresso: Fix test failures seen with ci-test shield

    6303 [ATCmdParser]: Align process_oob() to vrecv()'s newline handling

    6300 Fixes to LoRa PHY

    6288 Fix macro definition of iodefine_typedef for RZ_A1H

    6274 events: Added note about immediate firing of periodic events

    6198 Flash support: Add flash support for LPC54114 & LPC546XX

    6149 Fix typos in the files

    5106 Timeout & LowPowerTimeout tests

    6092 mbed-mesh-api: add JSON help

    6292 rtl8195am - improve credentials handling

    6345 Cellular: Fixed sms unit tests.

    6329 Cellular: add callback API

    6361 Convert option list to unicode

    6359 NVStore: add comments in header file for Doxygen formatting sake.

    6346 Fix for #6252

    6353 STM32 RTC init

    6354 Enable iar export option for MTB_ADV_WISE_1510

    6114 Remove mbed 2 builds from Travis

    6326 rtl8195am : fix gpio toggle slow

    6264 Deprecated warnings for feature/netsocket/cellular

    6372 Fix doxygen for ITM HAL

    6367 ADI: Fix on chip flash minimal programmable unit size

    6216 Correct Realtek post-build script to work in the online compiler

    6192 Correct syntax for mbed export in Py3

    6356 Add include search path when preprocessing assembly files for uvision and make_armc5 exports

    6340 Disables flash clock and cache test

    6291 Cellular: BC95 echo test fixes

    6370 STM32 LPTICKER : optimize RTC wake up timer init

    6363 dir seek fixed - dptr was not updated before checking

    6350 Cellular: update attach test

    6338 littlefs: Fix issue updating dir struct when extended dir chain

    6333 Corrected lwip adaptation TCP flagging

    6330 NUCLEO_L433RC_P: fix pins definitions

    6392 Nuvoton: Remove unnecessary UART INT in UART DMA transfer

    6344 armcc - remove fromelf output before regenerating one

    6168 CM3DS Maintenance Pull Request: Memory changes (2/4)

    6378 equeue: Added profiling reports to Travis

    6368 Sort out volatiles in the atomic functions

    6348 Fix PR template

    6399 STM32L4 ADC Internal Channel : correct sampling time

    6412 STM32L4 ADC correct internal channel management

    6377 Replace runtime strip_path function with compiler intrinsic equivalents

    6419 Correct get_config imports

    6437 Nuvoton: Fix NVSTORE test failed

    6434 Modified apt-get retry logic with Travis CI retry feature

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.8.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.8.0

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.8.0 release is now available.

    Summary

    Mbed OS 5.8 focuses on Mbed Enabled modules to reduce development cost, time and risk and provide go-to-market value compared to traditional chip down designs. We are continuing our focus on low power with our sleep/deep sleep profiling tool, with which you can identify objects that are stopping entry into low power modes. The 5.8 release continues to strengthen Arm's connectivity portfolio with an updated LPWAN stack and updated cellular stack with support for IoT-ready NB-IoT and CAT-M1 technologies. We have also launched the closed alpha developer trial of Mbed Studio, a free desktop IDE designed specifically for Mbed OS.

    In addition, this release contains many minor fixes and enhancements and brings support for 121 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.8.0 release.

    Mbed Enabled modules

    Time to market and going to production are key challenges for IoT products. Many IoT products rely on modules to reduce time and cost because modules provide integration, certification and ease of going from prototyping to production. We have expanded the Mbed Enabled program to include production modules preverified to support Mbed OS and associated connectivity protocols. The program provides a simple entry point to the marketplace, with mass production quality modules running high-quality, open source software and supporting a diverse suite of connectivity drivers and protocols.

    The Mbed Enabled Module program launched in February 2018 during Embedded World and Mobile World Congress where, along with our lead partners, we exhibited a range of mass production modules. For a list of modules currently available, please visit os.mbed.com/modules.

    Core OS and storage

    Sleep/Deep sleep profiling tool

    Reducing power consumption is a key challenge for embedded devices. Sleep and deep sleep modes are some of the most used mechanisms to reduce power consumption. To better enable the use of sleep and deep sleep functions, you need to know which specific objects are blocking the device from entering sleep. The sleep/deep sleep profiling tool helps you determine what specific peripherals are blocking you from entering low power modes. The tool uses that information to optimize your system design to reduce power consumption when deployed. For more information on how to use this feature, please visit https://os.mbed.com/docs/v5.8/reference/power-management.html.

    Generation of crash dump in fault exceptions

    A fault exception occurs because of an error during normal or exception processing. There are several reasons for occurrence of fault exceptions. Some of the common reasons are execution of an undefined instruction, attempted load or store to an unaligned address and execution of an instruction from a never execute (XN) memory address. When system crashes or hard faults occur, a lack of crash information can make it difficult to triage the problem further. The system can appear to hang if there are no indications of fault exceptions. In such cases, the only way to find more information on the crashes is to reproduce the issue with an attached debugger to find the location and cause of the crash. Reproducing the issue can take longer if it is an intermittent or rare issue. Mbed OS has a new feature that generates crash dump in fault exceptions. Capturing the system context at the time of exception and emitting it through the serial port (or other mechanisms) provides valuable information, so you can triage the fault exceptions. For more information on how to use this feature, please visit https://os.mbed.com/docs/v5.8/tutorials/analyzing-mbed-os-crash-dump.html.

    New drivers and platform APIs

    In the Mbed OS 5.8.0 release, we have also added several new drivers and platform APIs. Two of the notable additions are the System_Reset and NVStore APIs.

    System_Reset: This API is the official Mbed OS API to reset the processor and most of the subsystem. After the reset call, the processor and most components reset, but it does not affect the debug subsystem. For more information, please visit https://os.mbed.com/docs/v5.8/reference/power-management.html

    MbedCRC class: The Mbed CRC class provides software CRC generation algorithms. We support precomputed ROM tables for 8/16-bit CCITT, 16-bit IBM and 32-bit ANSI polynomials. For more information, please visit https://os.mbed.com/docs/v5.8/reference/mbedcrc.html

    NVStore: NVStore is a lightweight module that stores data by keys in the internal flash for security purposes. For each item key, the NVStore module provides the ability to set the item data or get it. Newly added values are added to the end of the existing data, superseding the previous value that was there for the same key. The NVStore module ensures that power failures don't harm existing data during any operation. For more information, please see https://os.mbed.com/docs/v5.8/reference/nvstore.html

    Connectivity

    The cellular stack now supports NB-IoT and CAT-M1.

    Cellular is enabling connectivity without complicated setup using a gateway. For IoT use cases, power and cost are more significant considerations than data throughput. This is where NB-IoT and CAT-M1 come in. Cellular IoT aims for simpler, low-cost modems tailored for slower, periodic transmissions and is expected to deliver better signal penetration to support devices located deep inside buildings.

    Mbed OS version 5.8 supports cellular-based low power, wide area technologies (CAT-NB1 and CAT-M1).  Mbed OS cellular APIs are designed to ensure that applications use modems and modules in consistent ways. For more information, please visit https://os.mbed.com/teams/mbed_example/code/cellular-example/

    LoRaWAN Stack: LoRaWAN is a low-power wide-area network technology that combines kilometers of range with low power consumption, a great fit for Internet of Things devices. Arm is continuing its investment in LoRaWAN by adding a native LoRaWAN stack to Mbed OS 5.8. The stable, well-tested and (EU) precertified stack makes it easy for device manufacturers to add long-range connectivity to their IoT devices. For more information, please visit https://os.mbed.com/docs/v5.8/reference/lorawan.html

    Upcoming APIs and Features

    Mbed OS thrives on the large ecosystem and support from leading silicon vendors. Mbed OS has several MCU targets and 121 development boards currently supported and Mbed Enabled. Adoption of Mbed OS APIs by the ecosystem ensures that you have a seamless experience. This section indicates what will be in the upcoming releases from the Mbed OS team, enabled by Silicon and Device Partners. To know more, please visit https://os.mbed.com/forum/upcoming-features/

    Mbed Studio

    One of the key pieces of feedback that we received is that you’d like to see desktop tools, allowing you to write applications easily on top of Mbed OS. For that reason, we decided to develop a desktop tool, Mbed Studio, that supports application development, building, debugging and, in the future, a great level of integration with our web services. With Mbed Studio, we're targeting application development as the focus, bringing together our command-line tools and utilities into an environment that allows you to begin quickly with a single installer. We currently provide desktop command-line tools and utilities, such as pyOCD and Mbed CLI, which you can use to build custom environments or for CI. However, we wanted to make the experience easier for users who are looking for a simple way to program and debug with Mbed. We now are almost ready to open Mbed Studio for closed alpha. If you’d like to volunteer as an alpha tester for Mbed Studio, please register your interest at https://os.mbed.com/studio/

    USB device stack

    One of the key peripherals used in embedded devices is USB. Many devices need the USB device peripheral to support connecting their devices to a USB host, such as a computer. We are adding USB device support to Mbed OS, which allows you to enable the functionality of USB devices. This is available on a feature branch at https://github.com/ARMmbed/mbed-os/tree/feature-hal-spec-usb-device/hal

    PSA Secure Partition Manager

    We are adding a Platform Security Architecture (PSA) Secure Partition Management (SPM). SPM comes with a set of IPC APIs used to exchange data between secure partitions. The PSA IPC API Null implementation lays the groundwork for future hardware-based Secure Partition isolation. Although the code is still experimental, you can try it early on at feature branch at https://github.com/ARMmbed/mbed-os/tree/feature-spm

    Targets and tools

    Thanks to our Partners’ hard work, Mbed OS 5.8 added 18 new target platforms and now supports 121 target platforms. We’ll continue to add targets in our biweekly patch releases as partners work with us on support.

    Mbed CLI v1.5 update

    We have added the repository caching feature to Mbed CLI to minimize traffic and reduce import times. Mbed CLI now caches repositories by storing their indexes under the Mbed CLI user config folder. Compared to a fully checked out repository, indexes are significantly smaller in size and number of files and contain the whole revision history of that repository. This allows Mbed CLI to quickly create copies of previously downloaded repository indexes and pull or fetch only the latest changes from the remote repositories. This dramatically reduces network traffic and download times, especially for big repositories such as mbed-os. For more information, please visit https://os.mbed.com/docs/v5.8/tools/working-with-mbed-cli.html#repository-caching

    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.

    Misused variable in x509_crt_verify_top()

    • Description: A bug in the X.509 module can potentially lead to two possible vulnerabilities if the application code has been configured to trust certain unusually formed certificates.
    • If the chosen Certificate Authority (CA) certificate does not use DER compliant encoding, but does use DER compliant encoding in an issued certificate (or the adversary manages to get such a certificate signed by the CA), then the maximum path length limit can be overstepped by one, and CRL, time and verification-callback checks will be omitted for the said certificate.
    • If the X.509 Distinguished Name of the chosen CA certificate has more than 11 components, then a remote attacker may be able to trigger a buffer overread. This could potentially crash the application on some platforms.
    • Workaround: Only use standard DER compliant certificates, and use a CA that has an X.509 distinguished name with fewer than 11 components. Note: The overwhelming majority of Certificate Authorities have distinguished names with fewer than 11 components.
    • Reported Issue: https://github.com/ARMmbed/mbedtls/issues/825
    • Priority: MAJOR

    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: https://github.com/ARMmbed/mbedtls/issues/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 the EXPERIMENTAL stage; use it on your own responsibility!
    • Reported Issue: Issue reported by a customer through email.
    • Priority: MAJOR

    Mismatch of root CA and issuer of CRL not caught

    • Description: The x509_crt_verifycrl() function ignores the CRL when the CRL has an issuer different from the subject of root CA certificate.
    • Workaround: Make sure that the issuer of the CRL and the root CA certificate's subject are the same before passing them to x509_crt_verifycrl().
    • Reported Issue: Reported by a Partner.
    • Priority: MAJOR

    Mbed TLS causes stack overflow in Mbed OS targets

    • Description: The stack memory usage of some Mbed TLS features is higher than 4 KB, which may cause stack overflow errors when running in constrained embedded environments with Mbed OS, which are particularly limited in RAM.
    • Workaround: The amount of stack required depends on the application and what features of the library it chooses to use. More intensive, demanding tasks may not be possible on more limited, constrained devices, so we recommend designing for the limitations of the target device or choosing a device suitable for your application.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-tls/issues/14
    • Priority: MAJOR

    Commissioner does not retransmit message when it receives retransmission

    • Description: There are two issues with DTLS handshake retransmission. First, the joiner fails to correctly parse received records because it does not correctly handle queued retransmissions received. Second, the commissioner may cause a deadlock as it does not retransmit certain records after it receives retransmission as instructed in RFC6347 Section 4.2.4.
    • Workaround: There is no known workaround.
    • Reported Issue: https://github.com/openthread/openthread/pull/1207
    • Priority: MAJOR

    Self test failure with some hardware accelerators

    • Description: Most HW acceleration engines (if not all) require the parameters to be from contiguous memory. All the self tests use test vectors that are defined in the .bss section, which means these are not contiguous. This causes the self test to possibly fail when implementing HW accelerated engines.
    • Workaround: There is no known workaround.
    • Reported Issue: Reported by the development team.
    • Priority: MAJOR

    uVisor does not support nested interrupts

    • Description: When running an application with uVisor enabled, nested interrupts are not supported.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/345
    • Priority: Major

    On ARMv7-M targets supporting uVisor, the RTOS runs with the same privilege of uVisor

    • Description: The current architecture of uVisor and of RTX require the RTOS to run with the same privilege of uVisor. As such, the RTOS is considered trusted.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/235
    • Priority: Major

    Realtek RTL8195AM does not define flash algorithms for uvision

    • Description: No flashing support in uvision for Realtek RTL8195AM.
    • Workaround: Use drag-and-drop programming.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/4651
    • Priority: Minor

    Traceback occurs when run with factory default firmware on Realtek RTL8195AM

    • Description: When running mbed-ls on the Realtek board, a traceback happens.
    • Workaround: Version of mbedls in Mbed OS does not have this fix. Workaround is to install mbedls from master until a release is made.
    • Reported Issue: https://github.com/ARMmbed/mbed-ls/issues/276
    • Priority: Major

    Export project to Keil - device not present

    • Description: cmsis-pack-manager assumes that all information is stored in a device tag. According to the official CMSIS Pack specification, however, this is not the case. cmsis-pack-manager needs to be updated to index by variant, as well as device. We currently do not know how many devices are affected by this issue.
    • Workaround: In this case, manual selection of the device and flash programming algorithm may be required.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-cellular/issues/41
    • Priority: Major

    OnboardCellularInterface used incorrectly

    • Description: This example invokes methods on OnboardCellularInterface that are not part of the CellularBase abstract class. This means it may not work if OnboardCellularInterface is not a PPPCellularInterface.
    • Workaround: There is no known workaround.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-cellular/issues/54
    • Priority: Major

    Wi-Fi connection fails with client compiled by IAR IDE

    • Description: Mbed connector client example programs do not connect to api.connector.mbed.com when built in the IAR Embedded Workbench IDE. They work when you build using Mbed CLI.
    • Workaround: Do not export the Mbed connector example for IAR Embedded Workbench.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-client/issues/355
    • Priority: Major

    Client fails to connect using UDP when the Mbed Online Compiler compiles the binary.

    • Description: Using UDP fails when the binary is compiled with Online compiler but works if compiled with mbed-cli GCC_ARM .
    • Workaround: Use TCP-based connections.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-client/issues/357
    • Priority: Major

    Realtek RTL8195AM - CMSIS-RTOS error: ISR Queue overflow

    • Description: Realtek RTL8195AM does not maintain a long running connection to Mbed device connector. The error manifests as an ISR Queue overflow. This works for the K64F, so it should work for the Realtek TRL8195AM.
    • Workaround: There is no known workaround.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/5640
    • Priority: Major

    Failure to flash for MTB_ADV_WISE_1570 target

    • Description: It is not possible to flash binaries built for the MTB_ADV_WISE_1570.
    • Workaround: There is no known workaround.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/6252
    • Priority: Major

    Makefile export fails to build larger project in Windows

    • Description: Make will fail with the error: make (e=87): The parameter is incorrect.
    • Workaround: Possible workarounds are 1) Use Linux instead 2) Follow advice here, https://stackoverflow.com/questions/12598933/ndk-build-createprocess-make-e-87-the-parameter-is-incorrect
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/6335
    • Priority: Minor

    Fixes and changes

    5363 Add support and tests for extended RTC

    5311 BLE: Add generic GAP implementation

    5633 BLE: added function converting error codes into strings

    5578 CircularBuffer class modification and test

    5559 Fix for default test config file

    5748 Fix PR5578

    5621 CriticalSectionLock class improvement

    5457 Network interface: Add status callback register

    5784 RTC test: fix __result variable

    5768 Added statvfs API to get storage statistics

    5313 Cordio: Pal Gap implementation

    5802 RTC time conversion test - reduce test execution time.

    5346 Add Critical Section HAL API specification

    5597 critical: fix set exclusive access if not yet defined

    5201 Test set for critical section

    5789 Add tests for critical section HAL API

    5926 bd: Add sync function to the block device API

    5925 bd: Add get_erase_value function to the block device API

    5022 Add JSON schema based validation to mbed config script

    5998 Restrict target_overrides usage

    5852 ScopedLock implementation

    5848 Python2+3: mbed compile, mbed test --compile, python unit tests

    5571 Complete mbed_retarget FileHandle rework

    6033 Update mbed-coap to version 4.2.0

    6025 Mesh-api setters for eui64 and pskd

    5604 TESTS/NETSOCKET: Refinement of netsocket tests

    5847 Unify fault handling and add script to show faults

    6053 Nanostack release for Mbed OS 5.8

    5973 Update Mbed TLS HW acceleration partner code to new hashing API

    5666 Add exporter for Analog Devices' CrossCore Embedded Studio

    6032 Status callbacks

    6096 Generate/Link secure object file

    6049 Nuvoton: Rework RTC

    6087 Integrating Mbed LoRaWAN Stack in Mbed-OS 5.8

    5956 [feature-hal-itm] Instrumented Trace Macrocell HAL API for SWO debug output

    6076 Remove ticker interface initialization while Ticker creation.

    6141 Verifying datarate bug fix

    6163 Revert "Update Mbed TLS HW acceleration partner code to new hashing API"

    6154 Tools: Let unicode error messages through

    6160 Fix issue 6150

    6140 FlashIAP driver modifications

    6120 fatfs: Update error code mapping

    6170 CM3DS Maintenance Pull Request: Driver updates (4/4)

    6186 Eventloop in main thread to master

    6185 nanostack-hal: add alternative critical section implementation

    6166 Make APN lookup the default behaviour for PPPCellularInterface

    6167 CM3DS Maintenance Pull Request: Bug fixes (1/4)

    5911 CRC class implementation

    5548 Tests for SysTimer (the idle loop timer for tickless mode)

    6240 Improve invalid configuration error messages

    5950 Reserve and Render header in managed BL mode

    6230 Add system_reset call

    6179 littlefs: Update to version 1.3

    5900 Add NVStore (A.K.A SOTP) feature

    6188 BLE: Security Manager

    6210 Update Mbed TLS to version 2.7.1

    6142 Add optional tracing to sleep manager lock/unlock

    6251 Fixed Thread Commissioning issue in CoAP service

    6082 Mbed OS cellular connectivity

    6341 Add lorawan and nvstore examples for testing

    6328 MIMXRT: define PullUp default value

    6327 Cellular doxygen updates

    6323 fatfs: Revert "Update error code mapping"

    6304 Add lorawan and nvstore examples for testing

    6301 Cellular tests: fixed cellular greentea tests by adding timeout

    6285 Improve json schema and schema errors

    6280 NVStore: Enclose header file with DOXYGEN_ONLY option as well

    6275 NRF52: Customize STDIO pins from config system

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.8.0".

    If you need any help with this release, please visit our support page, which provides reference links and details of our support channels.

  • mbed-os-5.7.7

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.7.7 release is now available.

    Summary

    We have added support for the following new targets in this release, Laird BL652, STEVAL-3DP001V1, UBLOX_C030_R410M and OSHChip.

    The SDK driver for the LPC546XX family has been updated to version 2.3.

    We have added TRNG support for NRF52832.

    To improve the raising of pull requests we have simplified the required header. As before, a detailed description is required, but we now have a check box list from which the originator needs to select just one option. This indicates the impact of the pull request. E.g. Fix, new feature etc. This will help to ensure that the pull request targets the correct release.

    There are also a number of bug fixes.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    5892 add OSHChip as an mbed target

    5957 C030 R410M Target Added

    6102 Add support for STEVAL-3DP001V1 board

    6164 Adding Laird BL652 as new target

    Fixes and Changes

    6116 Add TRNG for NRF52832

    6197 Revert "Added pretty bar printing for compile output"

    6287 MCUXpresso_MCUS: Apply K64F us_ticker fix across all MCU's

    6177 littlefs: Fix handling of root as target for create operations

    5046 TimerEvent tests

    6193 ODIN MTB LEDs Fix

    6172 Use SRAM2 32Kbytes on STM32L475 / L476 and L486 devices

    6217 STM32 RTC : update free function

    6189 LPC546XX: Update SDK driver to version 2.3

    6229 Fix a bug using ELF as output extension

    6209 Platform: Improve mbed_sleep.h

    6214 Build issue for M33 core

    6227 Nuvoton: Add I2C & Serial Pin Name

    6225 Flash test: fix the time over a longer range

    6231 pull request: add required info

    5993 Work around Arm Compiler 6 stdvector perfomance cliff

    6246 C030 platform I2C initialisation fix

    6228 Nuvoton: Rework us_ticker/lp_ticker with one H/W timer

    6146 Correct gcc m33 floating point handling

    6173 Modifies error text reported from RTX from 'underflow' to 'overflow'

    6202 Fix max32625mbed

    6235 mcu_lpc546xx: move "release_versions" to children and fix clock

    6263 Clarify intention between comparison to zero and the shift operation

    6271 Allow build profiles to omit language entries

    6226 rtl8195am: fix ARM section error

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.7.7".

    If you need any help with this release please visit our support page, which provides reference links and details of our support channels.

  • mbed-os-5.7.6

    Downloads: zip tar.gz

    We are pleased to announce the Mbed OS 5.7.6 release is now available.

    Summary

    In this release we have updated the ST HAL driver for STM32F7 with CubeF7 v1.10.0 and the ST HAL driver for STM32F4 with CubeF4 v1.19.0.

    We have also added support for Nuvoton M487 ECP Crypto H/W accelerator, SERIAL_ASYNCH for STM32F429ZI, 220MHz core speed on LPC54628 and the use of LPUART in stop mode for STM32L0/4.

    For lwIP we have enabled EMAC IPv6 support.

    How you write and erase the flash on the NRF52 changes depending on whether the SoftDevice is enabled or not. We have added a runtime check to ensure the correct flash function is selected.

    There are also a number of bug fixes.

    Known Issues

    6003 mbed-os-example-wifi hangs on ODIN-W2

    This will be fixed in the mbed-os-5.8 release.

    Contents

    Ports for Upcoming Targets

    There are no new targets supported in this release.

    Fixes and Changes

    6050 lwip: enable EMAC IPv6 support

    6047 Fix NVIC Wrapper include for Renesas

    6042 DISCO_F303VC : STDIO pins correction and alignment with STM32 family

    6035 Fix serial pins and a typo for ODIN MTB

    6018 fix compiler warning

    5941 STM32L0/4 Enable use of LPUART in stop mode

    6058 Ble: fix size function in advertising_data_t and address_t.

    6051 add few files to gitignore list

    6070 remove magic calibration value for HSI in ST's targets

    6074 fatfs: Remove extra MBR block

    6083 tools: build: fix handing of "--stats-depth"

    6063 STM32F7: Update ST HAL driver with CubeF7 v1.10.0

    6009 fix for issue "serial example callback not working"

    6095 mbr: Add note about limitations

    6000 Prevent detect_targets.py tool script from crashing on known targets

    6068 Fix for issue #6054 - interrupts scheduled in the past.

    6099 gnuarmeclipse exporter uses mBed instead of proper casing

    6045 RTX changes pulled in from d20b8aa

    6029 RTX5: Pre-processor defines used for assembly

    6112 STM32F4: Update ST HAL driver with CubeF4 v1.19.0

    6088 STM32F429ZI add SERIAL_ASYNCH

    6113 remove unused variable / resolve compiler warning

    6048 Nuvoton: Rework us_ticker and lp_ticker

    6110 equeue: Removed RTOS dependencies with RTOS not present

    6118 equeue: Add note about using global event queues in irq

    6135 tests-events-timing: print debug info only in case of failure

    6117 UBLOX C030: I2C avoid any RTOS waits

    6115 NRF5x: Fix error_t conflict with gcc std>=gnu++11

    5915 Simplify and Improve error/warning parser for gcc_arm

    6121 Avoid blowing away .mbedignore files in exporters

    6123 Correct sector scraping in arm-pack-manager

    6126 Modified 'apt-get update' to loop until successful

    5812 M487: Support ECP H/W accelerator

    6041 STM32 STDIO pin redefinition

    6055 K64F lp ticker driver - calculation bug fix.

    6046 littlefs: Fix incorrect lookahead population before ack

    6093 NETSOCKET MBED_EXTENDED_TESTS json configuration

    6124 Make NRF52 flash work with SoftDevice

    6125 Add quotes around MBED_BOT parameter

    6139 LWIP PBUF_POOL_BUFSIZE increased to fit also IPv6 header

    6078 Pull request template update

    6145 Correct single file excludes for some exporters

    6156 retarget: Fix path behaviour without leading slash

    6147 LPC546XX: Add support for 220MHz core speed available on LPC54628

    6162 sleep_manager_racecondition test fix for devices with low CPU clock

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.7.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.7.5

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.7.5 release is now available.

    Summary

    In this release we have added support for the following new targets :

    Laird BL600, STM32L082CZ and CMWX1ZZABZ-078 module, STM32L443RC and WISE-1510 module, GR-LYCHEE,
    iMXRT1050 EVK NINA B1 MTS xDOT (MTB) WISE-1570 (MTB/MCB)

    It should also be noted that a couple of other targets have been renamed to bring them inline with the target naming convention:

    CMWX1ZZABZ_078 renamed to MTB_MURATA_ABZ WISE_1510 renamed to MTB_ADV_WISE_1510

    Anybody using the old names will need to update them.

    There were some functions that were missing in STM32L4 CUBE HAL drivers to enable/disable UART Clock in Stop Mode. These have now been added.

    5921 reported that all the public overloads of nsapi_dns_query_multiple() were broken. They are documented as returning the number of addresses found on success, however, the function was always returning NSAPI_ERROR_OK, i.e. zero. This is now fixed.

    We have added bootloader support for STM32F7, flash support for K82F and new tests for FileHandle and Transaction class.

    There are also a number of bug fixes.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    5857 Registration GR-LYCHEE board as a new mbed board

    5904 add support for STM32L443RC & WISE-1510

    5905 add support for the murata's module CMWX1ZZABZ-078 based on STM32L0

    5996 Adding LAIRD_BL600 MTB

    5826 NXP: Add support for MIMXRT1050_EVK

    5837 Adding MTB ublox NINA-B1 as a new target

    5975 Adding MTB_MTS_XDOT as a new target

    6013 Add MTB_ADV_WISE_1570 target

    Fixes and Changes

    5951 STM32 NUCLEO F413ZH and L433RC : STDIO configuration

    5945 Correct return value of nsapi_dns_query_multiple

    5933 Add OpenOCD 5x launch file to e2 studio and update naming

    5929 Add pretty bars for compile output

    5901 Netbeans Exporter Bugfix

    5947 STM32L4 : add missing ST HAL UART functions

    5818 Enforce sector alignmnent for managed bootloader builds

    5936 STM32 : set all PinMap structures as weak

    5982 Wise 1510: fix a silent conflict with PR #5947

    5630 Fix #5079. Support of call to mbedtls_x_finish without calling mbedtls_x_update

    5962 STM32: Fix usart irq index

    5909 Let libraries, targets configure bootloader

    5990 Correct SW4STM32 supported check

    5964 VS Code exporter: do not overwrite existing (launch|settings|tasks).json

    5984 EFM32: make peripherals conditional

    5987 Pre-processor common macro addition

    5994 allow use of external memory as heap with TOOLCHAIN_GCC_ARM

    5972 STM32F7: Add bootloader support (new trial)

    6012 STM32 SPI ASYNC - Add FIFO flush before transfer

    5419 Add absolute millisecond tick count to RTOS classes

    5876 lpc546xx and ff_lpc546xx: create parent object MCU_LPC546XX

    6026 Update uvisor-tests.txt to disable EFM32 in Jenkins

    5895 Add FileHandle tests

    5797 ARMC5+6: Specify CPU for ARM scatter file preprocessor

    6007 Take OUTPUT_EXT into account in managed bl

    6004 STM32L476/486: Improve SRAM usage for IAR

    6001 Corrects intermittent CLion exporter issue with cmake build directory

    6015 Add missing flash device feature to the K82F board

    6017 Correct auto-sizing last region of bl

    5914 Add Transaction class unit test.

    5970 RZ_A1LU: Fix TRNG function

    6027 rename MURATA type ABZ & WISE 1510 to their expected name

    6030 M33: -march not required if -mcpu is set

    5971 Ticker tests fix

    6036 DISCO_L072CZ_LRWAN1: move target folder

    6031 M23: Fix CThunk error on Cortex-M23

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.7.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.7.4

    Downloads: zip tar.gz

    mbed OS 5.7.4 release

    We are pleased to announce the mbed OS 5.7.4 release is now available.

    Summary

    This patch release includes new target support for the MTS Dragonfly, EMW3166 and VBLUno51 targets.

    We have created several bug fixes and new tests for our embedded file system.

    We added two new exporters, which allow users to use CMake with CLion and GCC with NetBeans.

    We have made several USB improvements to NXP targets.

    We released CoAP 4.1.1, along with an update to Thread commissioning.

    This release also includes our many bug fixes and test enhancements.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    5809 Add MTB MXChip EMW3166

    Fixes and Changes

    5831 Increase clock tolerance in Flash HAL test

    5808 ESP8266 Test Config and fixes for tests tcp_echo/tcp_hello_world

    5829 Fix: Sector/Size overflow from uint32_t

    5824 DISCO_F407VG : alignment with other STM32

    5787 STM32: Add support of Flash API for STM32F2 devices

    5760 Add notes about ISR safety to RTOS doxygen

    5749 STM32 LOWPOWERTIMER : introduce LPTIM feature

    5731 mesh-api documentation removal

    5623 Clarify TCPSocket::recv() and UDPSocket::recvfrom() documentation.

    5456 platform: make C++ allocation wrappers log the correct caller address

    5727 Add presentation format descriptor support for nRF5x

    5855 Allow overriding of DCDC settings per target

    5846 littlefs: Fix block addr overflow

    5854 Fix for Silicon Labs RTC

    5795 STM32 STDIO pins number are now configurable

    5791 STM32 CAN: fix wrong ID and MASK filter

    5862 STM32 LPT optimisation

    5867 BLE: Fix inclusion of BLE.h (case)

    5880 Nuvoton: Add gpio_is_connected

    5858 RTL8195AM - move region headers to 0xb000 and 0xc000

    5870 NSAPI: Add Nanostack multicast membership support

    5761 littlefs: Fix issue with immediate exhaustion and small unaligned storage

    5819 Add COMMON folder for tests

    5836 Thread commissioning fix

    5882 Add MTB MTS_Dragonfly as a new target.

    5877 Kinetis USB improvements and fixes

    5878 LPC USB stability fixes

    5800 Some enhancements for the USBHost feature and small bug fix

    4719 mbed Enabled certificate for the VBLUno51 board

    5532 Exporter for Netbeans GCC_ARM

    5889 Provide fix for issue #5835 - Tickers update should be atomic

    5866 RTX idle: sleep without locked deep sleep fix

    5864 CoAP v4.1.1

    5821 STM32F7: Add bootloader support

    5896 STM32LX : HAL_RCC_OscConfig update in PLL configuration

    5898 Remove RTC as a supported peripheral for NCS36510

    5894 STM32: fix serial 7bit data format

    5890 RZ_A1H: cmsis nvic include fix

    5844 ST-DISCO_L475VG_IOT01A: Improve SRAM use for IAR toolchain

    5903 STM32F407 : correct ARM scatter file

    5932 Revert "STM32F7: Add bootloader support"

    5937 Update CMSIS pack

    5938 MTB_XX : STDIO configuration

    5934 NUCLEO_F401RE : PeripheralPins file update

    5928 littlefs: Set specific hash for littlefs-fuse testing in Travis

    5920 Fix issue with MBED_11 test (mbed2)

    5918 NXP LPC4088: Add missing SPI SSEL pin to Pinmap

    5913 Add missing EFM32 HAL flash init/deinit function calls

    5912 CriticalSectionLock: fixing missing include

    5910 fix typos in lint.py

    5907 STM32F0: fix issue with usarts sharing the same irq vector

    5874 USB fixes and improvements

    5942 Remove tickless assert for tick count

    5476 add cmake exporter for CLion use

    5087 Add RTC time test.

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.7.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.7.3

    Downloads: zip tar.gz

    We are pleased to announce the Mbed OS 5.7.3 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 of issues deep in the GattClient logic (improper queueing and order of operations). It was deemed more efficient to re-write the implementation than try to patch the previous version. As well as fixing the 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 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.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    5740 Adding MTB ublox ODIN W2 as a new target.

    5608 NUCLEO_F413ZH: Add support for the NUCLEO-F413ZH board

    Fixes and Changes

    5776 STM32: Add support of Flash API for STM32F0 and STM32F1 devices

    5253 Add missing device_name for targets with bootloader

    5435 Tests for wifi emac interface

    5570 STM32 UART init update

    5595 fix nordic critical section

    5606 Enable tickless on nRF52840

    5673 mem_trace tests refactoring

    5697 STM32: Add support of Flash API for STM32F3 devices

    5703 AD: Fix ADC driver

    5737 lp_timer test : add a minimum delta value

    4925 NUC472/M487: Refine code with mbed TLS crypto alternatives

    5651 ff_lpc546xx: add enet, change led1 and led3 pins

    5708 Add minimal debug info to release and develop profiles.

    5747 STM32 : Fix issue to exit deepsleep when RTC has not been initialized

    5775 Correct memap path handling on windows

    5782 littlefs: Fix positive seek bounds checking

    5794 Commit to fix the Online compiler issue for ARM mbed-os on REALTEK_RT

    5807 Simple typo fix in the README.md

    5792 STM32F0 : ST CUBE version update to V1.9.0

    5739 BLE: Nordic pal client implementation

    5722 Fix bug allowing SPI::abort_transfer to incorrectly unlock deep sleep mode

    5721 Fix bug allowing I2C::abort_transfer to incorrectly unlock deep sleep mode

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.7.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.7.2

    Downloads: zip tar.gz

    Mbed OS 5.7.2 release

    We are pleased to announce the Mbed OS 5.7.2 release is now available.

    Summary

    We have added a new example program, mbed-os-example-filesystem which covers both FAT and LittleFS filesystems.

    The GR-PEACH target was previously removed from the supported targets due to incompatibility with cmsis 5 fixes. These have been fixed and the target has now been reinstated.

    We have added IAR export support for EV_COG_AD3029LZ, EV_COG_AD4050LZ and bootloader support for MK24F1.

    There are also a number of other bug fixes to the firmware and tests.

    Known Issues

    None

    Contents

    Ports for Upcoming Targets

    None

    Fixes and Changes

    5720 Add memory barriers to STM32F7xx Ethernet

    5745 K64F Ethernet: avoid using NULL thread during init

    5734 Build failed as code section was not included in map.

    5736 Allow 6LoWPAN applications to leave out channel specification.

    5756 Add mbed-os-example-filesystem to examples list

    5693 Enable IAR export for EV_COG_AD3029LZ and EV_COG_AD4050LZ

    5691 Nordic add app_start config system support for NRF52840 for bootloader

    5628 Reregistration GR-PEACH as mbed support board

    5681 Adding bootloader support to MK24F1 target

    5755 Fix for #5676 make.py generates duplicate file entries in link_files.txt

    5743 Greentea wifi test cases - disconnect done as teardown after each connect

    5614 platform: fix mem_trace trace level guard

    5617 STM32: USBHost clean-up

    5733 Access to serial device is allowed when DEVICE_SERIAL is defined

    5723 Remove destruction of WiFi interface in test runs

    5613 Added init for ODIN EVK LEDs to be off by default

    5770 Renesas: fix cmsis lib build

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.7.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.7.1

    Downloads: zip tar.gz

    mbed OS 5.7.1 release

    We are pleased to announce the mbed OS 5.7.1 release is now available.

    Summary

    This patch release includes new target support for the STM NUCLEO_L433RC-P board.

    Silicon Labs' sleep management HAL has been updated with better MBed RTOS interoperability. Additionally, ST brought several improvements to their Low Power Timer HAL.

    Analog Devices updated their EV_COG_ADx0xxLZ boards, bringing ARMC6 compiler support.

    Several new Ethernet and WiFi tests have been added, along with enhancements to the mbed-os testing infrastructure. We have also added a number of other bug fixes.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    5591 Support the STM NUCLEO_L433RC-P board

    Fixes and Changes

    5627 ADI: Add ARMC6 compatible code

    5610 STM32 - CAN - Fix RTR position bit in TX mailbox register

    5605 [TESTS/NETWORK] Split Wi-Fi test for secure & unsecure tests

    5598 Remove unnecessary inclusion of an internal RTX header

    5581 Remove custom Silicon Labs sleep management

    5577 REALTEK_RTL8195AM Wifi driver - adds check of credentials validity

    5576 Ethernet tests update

    5567 STM32: Add USB Device on DISCO_F413ZH

    5489 Correct pack_* members to refer to PACK files

    5469 Unity framework : add float support in error print

    5459 STM32 Low Power Timer feature updates

    5678 Add caching of apt-get + pip to .travis.yml

    5667 STM32: Fix CAN3

    5657 Correct typo? in e2studio exporter code

    5648 Add SingletonPtr test

    5635 Protect local static object construction in ARMCC

    5729 Travis: define matrix builds for mbed 2 jobs

    5687 Statically allocate ARMCC required mutex objects

    5715 Fixed call to deprecated get_details_txt

    5707 Add IAR exporter for STM32L475VG (mcu of DISCO_L475VG_IOT01A)

    5698 STM32 : correct compilation issue with USE_FULL_ASSERT macro

    5677 C030 Battery Charger Voltage Fix

    5670 Nanostack EFR32 flag fix

    5649 Fix greentea test mbed-os-tests-netsocket-connectivity

    5644 Readme updates for style and branding

    5587 Fix fatal parameter error when deleting/terminating Thread object

    5568 Greentea Wifi testcase fixes

    5470 Add device_name for TB_SENSE_12.

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.7.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.7.0

    Downloads: zip tar.gz

    Mbed OS 5.7.0 release

    We are pleased to announce the Mbed OS 5.7.0 release is now available.

    Summary

    The Arm Mbed OS 5.7.0 release helps to further simplify the internet of things (IoT) and embedded product development with the addition of several new features, such as the high-integrity embedded file system, which provides power loss resilient operation and maximizes the life of the external memory block device by implementing wear leveling techniques. The release also includes an open-source mesh networking stack, which is IPv6, 6LoWPAN and one of the only two open-source certified Thread networking stacks.

    This release also continues our efforts to add comprehensive documentation for Mbed OS. Our ongoing efforts in this area include adding documentation about contributing and using our platform, drivers, RTOS, connectivity and storage APIs, as well as information about our tools. This release also includes improvements to the user experience of our documentation.

    In addition, this release contains many minor fixes and enhancements and brings support for 103 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.7.0 release.

    Core OS and storage

    High-integrity embedded file system

    Mbed OS introduces a robust, high-integrity embedded file system, which prevents risks of serious data loss due to power loss and significantly improves the life of external block memory by implementing dynamic wear leveling algorithms. Some of the key features are:

    Power loss resilience - The high-integrity embedded file system works consistently through random power failures. During file system operations, the storage on disk is always kept in a valid state. Also, to protect failure, in case of updating a file, the original file remains unmodified until the file is closed or sync is called.

    Wear awareness - The high-integrity embedded file system considers write errors reported by the underlying block device and uses dynamic wear leveling to manage blocks that go bad during the lifetime of the file system.

    Support to SPI NOR Flash and SD cards – We specifically designed it to work on SPI NOR flash and SD cards.

    Along with the traditional FAT file system, the high-integrity embedded file system enhances the storage portfolio of Mbed OS by providing robust and power resilient operation. More information on the high-integrity embedded file system is available at https://os.mbed.com/docs/v5.7/reference/littlefilesystem.html and is currently in early release.

    New drivers and platform APIs

    In the Mbed OS 5.7.0 release, we have also added several new drivers and platform APIs. One of the notable additions includes the ConditionVariable class.

    ConditionVariable class: The ConditionVariable class provides a mechanism to safely wait for or signal state changes. A common scenario when writing multithreaded code is to protect shared resources with a mutex and then release that mutex to wait for a change of that data. If you do not do this carefully, this can lead to a race condition in the code. A condition variable provides a safe solution to this problem by handling the wait for a state change, along with releasing and acquiring the mutex automatically during this waiting period. For more information, please visit https://os.mbed.com/docs/v5.7/reference/conditionvariable.html

    Connectivity

    Open-source mesh networking stack

    We’ve invested many years of effort in building a robust and scalable mesh networking stack, which runs on the 802.15.4 radios. Some of the key principles of this technology are an ability to self-heal the mesh routing and also optimize for low power. The mesh stack has many uses, and the key features are:

    • IPv6/6LoWPAN for 2.4GHz and subGHz.

    • Thread® 1.1 certified for interoperability in connected home applications.

    • Mesh link establishment (MLE) for safe, dynamic and reconfigurable radio link establishment.

    • RPL routing protocol.

    The IPv6 and 6LoWPAN components are Apache 2.0 licensed, and the Thread extensions are under a BSD 3-clause license. Mbed OS applications can use the Mesh and Socket APIs. To use the mesh stack, check the example application mbed-os-example-mesh-minimal. More information on the open-source mesh networking stack is available at https://os.mbed.com/docs/v5.7/tutorials/mesh.html#nanostack

    Upcoming features

    Mbed OS thrives on the large ecosystem and support from leading silicon vendors. Mbed OS has several MCU targets and 103 development boards currently supported and Mbed Enabled. Adoption of Mbed OS APIs by the ecosystem ensures that you have a seamless experience. This section indicates what will be in the upcoming releases from the Mbed OS team and enabled by silicon and device Partners. To know more, please visit https://github.com/ARMmbed/mbed-os/

    LoRaWAN

    We are adding a LoRaWAN API to Mbed OS to enable building LoRaWAN end points with the integrated Mbed OS stack. We will integrate the LoRaWAN stack as part of Mbed OS and provide developers an easy way to connect and use LoRaWAN technology. We will test the integrated stack with several modules to enable fast product integration.

    QuadSPI

    A quad SPI driver enables multiple I/O SPI devices capable of supporting increased bandwidth or throughput from a single device. Some of the advantages of quad SPI include high speeds and that it requires few pins. Several MCUs and memory vendors are adding support for Quad SPI, and it is popular among the use cases that need high bandwidth, such as multimedia, richer graphics and other data-intensive content needing external memory.

    Watchdog

    We are looking to add a watchdog API to Mbed OS to detect and recover from system malfunctions during remote management operations, such as updating the device firmware. The initial watchdog use cases that would be supported are; setting the watchdog, feeding the watchdog, reading the current watchdog status and reading the MCU reset reason.

    MicroSecond and LowPower Ticker

    Power consumption is one of the most important design requirements for IoT devices. Meeting the power budget is becoming challenging because systems today include more sensors, faster responses and more connectivity. We are looking to add a low-power timer with lower accuracy to Mbed OS, which would help to enable the tickless mode and save power. We are also looking to add a unified 64-bit time stamp, allowing devices to seamlessly handle different widths of timers. We plan to enable better low-power performance by adding the feature to turn off the time when the time is not in use.

    RTC

    The real-time clock (RTC) keeps track of the current time in computers and embedded devices. We are looking to update the RTC API to specify behavior that enables it to survive reset and provide the true time.

    Targets and tools

    Thanks to our partners’ hard work, Mbed OS 5.7 added 10 new target platforms and now supports 103 target platforms. We’ll continue to add targets in our biweekly patch releases as partners work with us on support.

    Testing

    We designed Mbed OS to significantly reduce cost and time for embedded software development by providing a production-quality toolset and code. We are committed to delivering high-quality code working across all supported boards and platforms. To ensure all the features of code meet our quality control requirements, we have built an automated testing environment and processes that perform rigorous testing on every line of code. The continuous integration framework is a highlight of our testing framework.

    Continuous integration framework:

    The continuous integration framework ensures that every new feature and change in Mbed OS is tested, so that:

    • For every new feature, we create tests that we then deliver to our partners. For every board to be Mbed Enabled, we need our partners to successfully conduct these tests.

    • Partners must test the changes on their boards before submitting pull requests (PRs) on GitHub.

    • Once the PR is submitted, the Mbed OS gatekeepers manually review the code to ensure it meets the coding guidelines and code standards.

    • Once approved by gatekeepers, the code goes through the automated test setup, which adds code to Mbed OS for testing and builds examples across all the platforms, such as IAR, ARM and GCC.

    • During the testing phase, we select the combination of boards and devices that support a variety of peripherals, MCU cores and features for maximum coverage.

    • To ensure the Mbed OS code is compatible with all the IDEs, we test that the code is exporting properly to all the compilers.

    • We merge the PRs only if the all the above procedures are successful.

    Following is the summary of results for testing conducted for Mbed OS 5.7.0:

    • Total test time is 10,125 hours on actual development boards. Time almost doubled because we are testing nightly on every PR.

    • We have added 111 new test cases since the Mbed OS 5.6.0 release to test new and existing features on Mbed OS. The number of total test cases is 423.

    • We performed 566,440 example builds since the Mbed OS 5.6.0 release.

    • The total number of binaries built is 17,869,800 since the Mbed OS 5.6.0 release.

    We plan to share more details about testing processes, such as our out-of-box testing coverage and system testing, in upcoming release blogs.

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

    Title: 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: https://github.com/ARMmbed/mbedtls/issues/387
    • Priority: MAJOR

    Title: 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 an EXPERIMENTAL stage; use it at your own responsibility!
    • Reported Issue: Issue reported by a customer in email.
    • Priority: MAJOR

    Title: Mismatch of root CA and issuer of CRL not caught

    • Description: The x509_crt_verifycrl() function ignores the CRL when the CRL has an issuer different from the subject of root CA certificate.
    • Workaround: Make sure that the issuer of the CRL and the root CA certificate's subject are the same before passing them to x509_crt_verifycrl().
    • Reported Issue: Reported by a partner.
    • Priority: MAJOR

    Title: Mbed TLS causes stack overflow in Mbed OS targets

    • Description: The stack memory usage of some Mbed TLS features is higher than 4 KB, which may cause stack overflow errors when running in constrained embedded environments with Mbed OS that are particularly limited in RAM.
    • Workaround: The amount of stack required depends on the application and what features of the library it chooses to use. More intensive, demanding tasks may not be possible on more limited, constrained devices, so we recommend designing for the limitations of the target device or choosing a device suitable for your application.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-tls/issues/14
    • Priority: MAJOR

    Title: Commissioner does not retransmit message when it receives retransmission

    • Description: There are two issues with DTLS handshake retransmission. First, the joiner fails to correctly parse received records because it does not correctly handle queued retransmissions received. Second, the commissioner may cause a deadlock because it does not retransmit certain records after it receives retransmission as instructed in RFC6347 Section 4.2.4.
    • Workaround: There is no known workaround.
    • Reported Issue: https://github.com/openthread/openthread/pull/1207
    • Priority: MAJOR

    Title: Self Test Failure with Some Hardware Accelerators

    • Description: Most HW acceleration engines (if not all) require the parameters to be from contiguous memory. All the self tests use test vectors that are defined in the .bss section, which means these are not contiguous. This causes the self test to possibly fail when implementing HW accelerated engines.
    • Workaround: There are no known workarounds.
    • Reported Issue: Reported by the development team.
    • Priority: MAJOR

    Title: uVisor does not support nested interrupts

    • Description: When running an application with uVisor enabled, nested interrupts are not supported.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/345
    • Priority: Major

    Title: On ARMv7-M targets supporting uVisor, the RTOS runs with the same privilege of uVisor

    • Description: The current architecture of uVisor and of RTX require the RTOS to run with the same privilege of uVisor. As such, the RTOS is considered trusted.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/235
    • Priority: Major

    Title: Realtek RTL8195AM does not define flash algorithms for uvision

    • Description: No flashing support in uvision for Realtek RTL8195AM.
    • Workaround: Use drag-and-drop programming.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/4651
    • Priority: Minor

    Title: Traceback occurs when ran with factory default firmware on Realtek RTL8195AM

    • Description: When running mbed-ls on the Realtek board, a traceback happens.
    • Workaround: Version of mbedls in Mbed OS does not have this fix. Workaround is to install mbedls from master until a release is made.
    • Reported Issue: https://github.com/ARMmbed/mbed-ls/issues/276
    • Priority: Major

    Title: Export project to Keil - device not present

    • Description: cmsis-pack-manager assumes that all information is stored in a device tag. According to the official CMSIS Pack specification, however, this is not the case. cmsis-pack-manager needs to be updated to index by variant as well as device. We currently do not know how many devices are affected by this issue.
    • Workaround: In this case, manual selection of the device and flash programming algorithm may be required.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-cellular/issues/41
    • Priority: Major

    Title: Wi-Fi connection fails with client compiled by IAR IDE

    • Description: Mbed connector client example programs do not connect to api.connector.mbed.com when built in the IAR Embedded Workbench IDE. They work when you build using Mbed CLI.
    • Workaround: Do not export the Mbed connector example for IAR Embedded Workbench.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-client/issues/355
    • Priority: Major

    Title: Client fails to connect via UDP when binary is compiled by Online Compiler

    • Description: Using UDP fails when binary is compiled with Online compiler but works if compiled with mbed-cli GCC_ARM .
    • Workaround: Use TCP based connections.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-client/issues/357
    • Priority: Major

    Title: Online Compiler error for the Realtek RTL8195AM board

    • Description: Compiling programs in the online IDE for the Realtek RTL8195AM fail with Error L6236E No section matches selector - no section to be FIRST/LAST.
    • Workaround: None. There is a pending pull request to fix this, which will come in a subsequent patch release.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-blinky/issues/102
    • Priority: Major

    Title: Realtek RTL8195AM - CMSIS-RTOS error: ISR Queue overflow

    • Description: Realtek RTL8195AM does not maintain a long-running connection to Mbed device connector. The error manifests as an ISR Queue overflow. This works for the K64F, so it should work for the Realtek TRL8195AM.
    • Workaround: None.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/5640
    • Priority: Major

    Contents

    Ports for upcoming targets

    No new ports in this release

    Fixes and changes

    5060 BLE: Cordio port

    5113 STM: I2C: Configure pins in OpenDrainNoPull by default (no pullup)

    5200 Extend nRF51 AnalogIn voltage range to 3.6 V

    5210 STM32: Add ADC calibration for L4, F1, F3 devices

    5238 Include doxygen from test directories

    5028 Update ticker to map closely to hardware

    5325 Add fix for Timer test - provide missing get_info ticker interface

    5365 Remove redundant ISR test

    5385 SlicingBD: Replace second constructor with default parameter

    5369 Add API to set ticker IRQ handler

    5088 UARTSerial: Add flow control and format APIs

    5410 BLE: Deprecate GapEvent

    5158 RTOS: Add empty and full functions to Mail and Queue

    5393 Deprecate CallChain and InterruptManager

    5428 Shrink RTOS classes

    5426 BLE: Fix initialization of GattHVXCallbackParams in Nordic port

    3648 Add ConditionVariable to Mbed RTOS

    5328 equeue: Add config option to use different timer classes

    5295 BLE: Gap platform abstraction layer

    5058 CircularBuffer(): Get available transactions

    5471 Increase flash program granularity on Realtek RTL8195AM

    5342 Update CMSIS/RTX with Cortex-A support

    5508 Fix and add test for ConditionVariable

    5485 Platform: Allow copy of noncopyable objects

    5475 BLE: Update heart rate service definition

    5392 Improve BLE docs

    5296 BLE: Generic access service abstraction layer

    5196 Add IPv4 and IPv6 multicast implementation for UDPSocket

    5407 Python script to add CMSIS/RTX changes in mbed-os

    5299 BLE: Generic event filter

    5513 STM32: Initialize ADC peripheral for each AnalogIn object creation

    5528 Use retarget defines when possible

    5549 BLE gatt server doc update

    5561 Definition for stat was missing in header file

    5466 Make POSIX-like writes write everything when blocking

    5511 Nanostack OSS release for mbed-os-5.7

    5583 Remove pointless null check in operator delete

    5601 Update ODIN drivers to v2.3 RC1

    5596 Make LDREX/STREX CAS functions strong

    5593 BLE: Fix greater than or equal to comparison in GattCharacteristic

    5592 BLE: Fix GattServer::write on Nordic targets.

    5490 Upgrade ChanFs to R0.13a

    5300 BLE pal event queue

    5602 Nanostack release v704

    5538 Integrate littlefs into Mbed OS

    5675 Update Cortex-A build errors

    5685 Export: Fix link in gettingstarted template

    5688 Mesh fix for Mbed OS 5.7 OOB

    5704 Fixed LWIP k64f ethernet driver IPv6 multicast groups

    5701 BLE doxy fixes

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.7.0".

    If you need any help with this release, please visit our support page, which provides reference links and details of our support channels.

  • mbed-os-5.6.6

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.6.6 release is now available.

    Summary

    This patch release includes new target support for the SAKURAIO_EVB_01 board.

    We've included an upgrade to the Silicon Labs HAL. This upgrades the version of emlib in mbed to v5.3.3. Additionally it enables the use of USART3, USART4 and USART5 for both serial and SPI (important for using TB_SENSE_12's IMU). It also fixes a number of compiler warnings.

    There is an upgrade of the Silicon Labs radio driver to v2.1.1. This upgrades the RAIL library (on which the Nanostack driver is based) making it run more efficiently alongside an RTOS. The binary should now be fully AAPCS-compliant (no more ambiguity on enum size), so should work across all toolchains and the upgrade also lays the foundation for potential BLE enablement on EFR32

    We've added USB Device support for DISCO_F429ZI, bootloader support for DISCO_F429ZI and ENET support for LPC546XX.

    There was an issue where dir_rewind and dir_seek were not working as expected for the FAT filesystem (https://github.com/ARMmbed/mbed-os/issues/5440). This has now been fixed.

    Finally we've adjusted our thread tests to enable them to be run on devices with a small RAM footprint.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    5397 add target SAKURAIO_EVB_01.

    Fixes and Changes

    5503 FATFileSystem: provide working dir_rewind and dir_seek

    5512 DISCO_L072CZ_LRWAN1 can use LSE from LORA module

    5518 STM32F407VG: Fix RTC

    5323 malloc test refactoring

    5483 heap_and_stack test refactoring

    5516 lpc546xx: fix adc

    5521 STM32: Add USB Device on DISCO_F429ZI

    5525 Fixed: errno update failure with IAR8.x

    5535 NUCLEO_L432KC: Fixed async serial

    5539 Prevent traceback when memap fails to parse

    5553 Nuvoton: fix lpticker interrupt

    5454 Nuvoton: TRNG_Get support 32 bytes unalignment

    5360 threads test adjust to run on devices with small RAM

    5526 Fixed mutex assert in armcc fopen and related memory leak

    5616 Support bootloader for DISCO_F429ZI

    5611 Realtek RTL8195AM A3 fix

    5609 LPC546XX: Add ENET support

    5585 Fix issue with timer timebase on EFR32

    5589 Nordic: Set handle of user description descriptors.

    5584 Upgrade to Silicon Labs HAL

    5580 DISCO_F746NG: add usp_speed configuration

    5579 Upgrade Silicon Labs radio driver to v2.1.1

    5565 STM32: SPI 3 wires mode not supported in SPI slave

    5550 Fix bug in K64F trng_api.c

    5531 RTL8195AM - refactor bootloader and fota support

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.6.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.6.5

    Downloads: zip tar.gz

    mbed OS 5.6.5 release

    We are pleased to announce the mbed OS 5.6.5 release is now available.

    Summary

    This patch release includes new target support for the following boards:

    NUCLEO_L496ZG_P L-Tek FF-LPC546XX Mbed Connect Cloud board ADI EV-COG-AD4050LZ RedBear BLE Nano 2 ADI EV-COG-AD3029LZ

    There was a workaround that went into mbed-os-5.6.4 for STM32 F767 rev A devices, to address an issue where the Ethernet peripheral had problems on the RMII interface. This workaround turned out to be an incomplete solution, that has now been corrected for this release.

    We've added bootloader support for DISCO_L475VG_IOT01A and HEXIWEAR, CAN3 support for STM32 and initial cryptographic acceleration support for the Silicon Labs family.

    We've made some quality improvements by extending the test set for Ticker class, updating the BLE BatteryService documentation and fixing a number of broken test cases.

    We have also added a number of other bug fixes.

    Known Issues

    There are no new known issues with this release.

    Contents

    Ports for Upcoming Targets

    5424 NUCLEO_L496ZG_P support

    5344 add new target L-Tek FF-LPC546XX

    5305 New Target: Mbed Connect Cloud board

    5144 Add support for ADI EV-COG-AD4050LZ platform.

    5231 Add support for RedBear's BLE Nano 2

    5137 Add support for ADI EV-COG-AD3029LZ platform

    Fixes and Changes

    5291 Add RealTek WiFi test configuration

    5394 ONSEMI: Fix a few issues related to I2C

    5445 test: realtek net config default to none

    5463 STM32F412 IAR linker file issue

    5455 STM32 Flash 2MB GetSector fix

    5453 Increase flash size on Realtek RTL8195AM

    5436 STM32: Extend Ethernet RMII workaround

    5430 malloc test: change stack array to two dimensional array

    5428 Shrink RTOS classes

    5425 RtosTimer tests update

    5422 Add bootloader support for DISCO_L475VG_IOT01A

    5270 Fix for Nanostack threading on EFR32 devices

    5390 ncs36510: fire interrupt correct timer fix

    5372 Doxygen comments fixes

    5370 event queue test: fix out of memory for NUCLEO_F070RB

    5322 LPC1768: Fix ETHMEM_SECTION placement for ARM

    5319 Remove build warnings in LWIP

    5432 HEXIWEAR: define HEXIWEAR target to support bootloader.

    5464 Fix lockup issue for REALTEK_RTL8195AM

    5473 Reorganize defines for firmware updates on Realtek RTL8195AM

    5474 Limit size of equeue for sigio netsocket test

    5510 M487/NUC472/NANO130: fix TRUE/FALSE redefinition

    5505 STM32: HAL smartcard, fix memory corruption in Receive

    5499 Remove mbed-cloud-client-example-internal.

    5486 STM32: Add support of CAN3

    5487 Fix bug for issue: initial pin value not retained

    5482 DISCO_L072CZ_LRWAN1: HSE clock configuration improvement

    5472 BLE: Update BatteryService documentation.

    5452 ONSEMI: Fix I2C issues

    5403 Provide fixes for Timer and LowPowerTimer tests.

    5261 Extends test set for Ticker class

    4825 Silicon Labs: Add cryptographic acceleration support

    5335 Fix for configurable network driver tests

    5547 Revert Shrink RTOS classes

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.6.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.6.4

    Downloads: zip tar.gz

    mbed OS 5.6.4 release

    We are pleased to announce the mbed OS 5.6.4 release is now available.

    Summary

    This patch release includes new target support for LPC1769 and NUCLEO_L496ZG.

    There was an issue on the NUCLEO F767ZI (5294) where 'Error -3004' was returned while trying to establish a socket connection. We have added a workaround to fix this issue. A full solution will be available in a later revision of STM32 F767 MCUs.

    A number of tests, (race, semaphore, mail and malloc) for the NUCLEO_F070RB were failing with 'out of memory' errors. These have been fixed. We have also improved our RTOS testing by adding a new MemoryPool test.

    IAR exporter support has been added for TMPM066 and FLASH hal support has been added for DISCO_L475VG_IOT01A and DISCO_L072CZ_LRWAN1.

    We have also added a number of other bug fixes and tool improvements.

    Known Issues

    The following list of known issues apply to this release:

    Contents

    Ports for Upcoming Targets

    5025 LPC1769 port

    4650 NUCLEO_L496ZG: Add new Platform

    Fixes and Changes

    5354 Activate FLASH hal support on 2 STM32 boards

    5179 STM32: TRNG: remove call to deprecated HAL_RNG_GetRandomNumber

    5188 NUCLEO_F207ZG: Analogout improvement

    5260 RTL8195AM - Fix IAR ielftool zero-padding issue

    5317 Tools: Check for toolchain and core support for Arm Compilers

    5340 MCUXpresso: Fix issue of ticker interrupt incorrectly firing

    5347 MCUXpresso: Fix LPTimer issue when using multiple timeout objects

    5324 doxygen: Change FileSystemHandle group to platform

    5352 Fix us_ticker collision and race for RTL8195AM

    5327 STM32: Remove compilation warnings

    4936 Add MemoryPool test.

    5320 Fix ethernet API build warnings for LPC4088

    5332 Improve domain handling and status checking of updated examples.

    5375 ChainingBlockDevice: fix changing blocks address

    5376 mail test: fix out of memory problem for NUCLEO_F070RB

    5377 semaphore test: fix out of memory problem for NUCLEO_F070RB

    5415 Remove include from assember in makefile exporter

    5359 Support TMPM066 in IAR export

    5379 race test: fix out of memory problem for NUCLEO_F070RB

    5391 Copy edit pull_request_template.md

    5395 Resolve doxygen warning in filesystems docs

    5047 Test set for LowPowerTicker class

    5373 fs: Correct errno when not finding a mounted filesystem

    5399 STM32F4/STM32L4: remove MSP template file

    5338 malloc test: fix out of memory problem for NUCLEO_F070RB

    5400 Beetle BLE: Fix variable length GATT attribute

    5405 Ensure Thread stack is 8 byte aligned

    5409 BLE: Update iBeacon documentation.

    5411 STM32: Ethernet: Workaround for STM32_F767 revA

    5413 Collect build artifacts, disable cleanup

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.6.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.6.3

    Downloads: zip tar.gz

    mbed OS 5.6.3 release

    We are pleased to announce the mbed OS 5.6.3 release is now available.

    Summary

    This patch release includes new target support for the SILICA_SENSOR_NODE.

    We have included an update of the uVisor to v0.31.0. This provides a new static debug box, along with some stability enhancements.

    There is an update of the u-blox ODIN-W2 binaries to 2.2 rc1, bringing a fix for a major issue, where a new instance of the OdinWiFiInterface manipulates the system event queue, in such a way that a previous configuration is lost (5211). It also contains an update for RED compliance.

    We have added bootloader support for Lpc1768, NUCLEO_F446RE and K66F. We've also added exporter support for the NUCLEO_L486RG.

    In Mbed OS 5.6.2 there was an issue where the default lwIP pbuf pool size was configured to be too small to hold a single DTLS handshake flight, thus causing some connections to fail during the handshaking phase. We have now made this user configurable by adding pbuf-pool-size, pbuf-pool-bufsize and mem-size to the mbed_lib json file for the lwIP interface.

    To further improve our code quality, we have increased our test coverage, adding: Functional Wifi tests A low power timer test Timer class test Rtostimer tests

    There are also a number of other fixes which are listed below.

    Known Issues

    None

    Contents

    Ports for Upcoming Targets

    5104 add support for SILICA_SENSOR_NODE platform

    Fixes and Changes

    5038 Lpc1768 bootloader support

    5077 Added interface version information to mbed detect command.

    5084 Allow exporters for NUCLEO_L486RG

    5199 Add quotes to preprocessor path on export

    5212 Merging changes from ATParser towards parser unification

    5255 Prevent use of deleted ticker in Ticker test

    5019 Fix an incorrect comment in ticker API

    5157 NUC472/M453/M487/NANO130: Add updates for Nuvoton targets

    5161 Implement functional Wifi tests

    5192 Moved STDIO_UART defines for UBLOX_EVK_ODIN_W2

    5232 RTL8195AM - Fix and cleanup mbed_rtx.h

    5229 Fix documentation of BLE GattCharacteristic

    5272 Fix echo test handshake and reduce uart load

    4898 Enable crypto HW acceleration for STM32F437xG platforms

    4971 Add test for Timer class.

    5086 Sleep: Disallow sleep for targets turning off the systick clock at sleep entry

    5147 Test: deepsleep() API replacement

    5187 nRFx: Use us ticker for I2C timeout

    5216 Avoid wait_ms() spin

    5074 Add Low Power Timer test.

    5223 Fix analogin scaling for EFM32 target

    5224 Fix branch updates and make Linux compatible

    5228 Add bootloaderd support to NUCLEO_F446RE target

    5247 Add profile argument to mbed-os example build tools

    5250 lwIP: Add memory configs to JSON

    5252 Enable MPL by default for 6LoWPAN-ND.

    5263 STM32: Fix analogout structure/variable wrong initialization

    5264 Error if OS tickrate is changed

    5269 STM32: Initialize RTC structures at init phase.

    5287 Updated u-blox ODIN-W2 binaries to 2.2 rc1

    5288 STM32: Add alternate pins on NUCLEO 32pins boards

    5289 STM32: RTC: Call irq_handler whenever interrupt fires

    5292 Update HeapBlockDevice example

    5275 uVisor: Upgrade to v0.31.0

    5337 Add additional note on the HeapBlockDevice constructor block parameter

    5315 Fix behaviour of empty .mbedignore

    5246 Remove debug print from memap IAR impl

    5243 Basic test refactoring

    4989 add flash iap and bootloader support to K66F

    4947 Rtostimer tests

    5042 RTL8195AM - Respect Toolchains paths in post bulid script.

    5081 Extends test set for EventFlags class

    5278 Move heap_and_stack tests to TESTS/mbed_bootstrap

    5326 Remove redundant ISR test.

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.6.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.6.2

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.6.2 release is now available.

    Summary

    This patch release includes an update for Nanostack to v6.2.2, bringing with it some TCP protocol improvements.

    There were a couple of issues found with deepsleep in mbed-os-5.6.1:

    1) deepsleep being left locked unintentionally,

    2) deepsleep locks not being properly released by the timer class.

    These have now been fixed.

    The K66F has been updated to SDK 2.2 providing necessary updates for the DSPI HAL and Flash HAL drivers.

    In BLE, a flush method has been added to the UART service giving the ability to force send the buffer contents.

    A number of filesystem issues have been fixed including:

    1) adding missing retarget definitions that were available for GCC but not for ARM/IAR compilers,

    2) a fix to fstat to enable seek and related functions to work correctly,

    3) a fix for the case where a directory was not left in an openable state when a previous open operation had failed.

    There are also a number of other fixes which are listed below.

    Known Issues

    There are no known issues applying to this release.

    Contents

    Ports for Upcoming Targets

    None

    Fixes and Changes

    4959 e2 studio exporter update

    4994 missing includes for filesystem.cpp (build with VisualGDB fails)

    5166 Force preprocessing of asm for make_armc5

    5165 Platform: Replace non throwing versions of new operator.

    5197 Fix LPC54114 vector table size

    4961 Check for mbed 5 support on export

    4979 STM32: USBDevice files clean-up

    4982 Update K66F to SDK 2.2

    5016 Fix cellular APN_db.h lookup.

    5032 mts targets: fix debug() usage

    5095 Release deep sleep lock in destructor of Timer class

    5177 PWMOut: lock deesleep addition

    5027 cb: Fix uninitialized memory used for equality check

    5026 STM32: Lock / Unlock flash for each operation

    5171 STM32L432KC: increase RAM size from 48k to 64k

    5183 fs: Fix dir open during failure condition

    4990 Add flush to the BLE UART Service

    5045 Ticker class description update - small interval warning

    5050 RZ_A1H: Correct CAN Message ID and recetption rate in extended mode

    5062 InterruptIn: Use NULL callback by default

    5099 Move clock() function from mbed_rtc_time.cpp to mbed_retarget.cpp.

    5193 Omit libraries and tests from tools coverage numbers

    4795 Add configurable network driver tests

    5066 UARTSerial: Avoid readable() ambiguity

    5148 Enable deepsleep for LowPowerXXX objects

    5006 Extends test set for Ticker class

    5029 Adjust whitespace in Odin PinNames file to fit verbose LED pin mappings

    5033 Mapped lwip buffer error to nsapi no memory error

    5052 Support VK_RZ_A1H with ds5 & e2studio exporters

    5078 Enable access to kernel tick information in ISR

    5141 LPC54608: Swap LED pin connections to match naming on the board

    5152 Kinetis RTC HAL: Allow writing 0 to the seconds register

    5176 EFM32: fix fire interrupt (set flags)

    5182 tools/toolhains - Test for flag passing in constructor

    5089 STM32 : Disable HSE XTAL choice from the default clock source

    5098 Doxygen comment fix for Thread class

    5105 Cortex-M33: Add RTX5 context switcher files

    5130 STM32: Freeze master timer on stop/breakpoint

    5194 Ensure us_ticker is initialized before it is used

    5207 NRF5x: Don't allocate GPIOTE in DigitalIn

    5208 STM32F7 : Fix RTC Wake Up Timer issue

    5162 Change LPC54608 to LPC546XX to include support for LPC54608/18/28

    5242 Fix LowPowerTimer and nightly builds

    5249 Nanostack v6.2.2

    5220 Fix deep sleep lock bugs

    5203 fs: Fix fstat retarget for regular files

    5237 examples: remove eddystone ble examples

    5240 Add retry to handle git clone failure

    5204 fs: Add missing retarget definitions for ARM/IAR

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.6.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.6.1

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.6.1 release is now available.

    This release includes new target support for the L-TEK FF1705, a critical workaround to issue #5079 (MD5, SHA1 and SHA256 hardware acceleration not working for STM32F439xI), plus numerous bug fixes to improve the code quality and stability.

    Known Issues

    The following list of known issues apply to this release:

    5145 make_armc5 exporter does not support NUCLEO_F767ZI, NUCLEO_F401RE and DISCO_L476VG

    Contents

    Ports for Upcoming Targets

    4973 Add new target: L-TEK FF1705

    Fixes and Changes

    4980 Stm32 flash update

    5138 Fix redefinition of mbed TLS error codes

    5143 RTL8195AM - Fix us_ticker porting

    4932 Fix STM32 CAN reset to not lose context

    5061 Travis: Fix requirements install

    5018 Fix use of AES_ALT on STM32F439 for example-tls-client

    5080 mbedtls: Disable MD5, SHA1, SHA256 HW ACC for STM32F439xI

    5096 Remove direct use of us and lp ticker from tests

    4983 bd: Tweaked block device API to fit SD cards and FTLs better

    5000 flash: add note about program size

    4993 LPC1768 IAP Fix

    4684 Add thread terminate hook

    4968 Add bootloader support for NXP FRDM-KW24D

    4965 Add heap stats for IAR

    4779 Fixed sw4stm32 exporter

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.6.1".

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.6.0

    Downloads: zip tar.gz

    About this release

    The Arm Mbed OS 5.6.0 release helps to further simplify the internet of things (IoT) and embedded product development with the addition of several new features, such as tickless RTOS scheduler support to enable long periods of low-power sleep and IPv6 support to cellular stack to provide enhanced web connectivity. The release also adds several new drivers and platform APIs, support for IAR Embedded Workbench v8.1 and hardware security enhancements. In addition, this release contains many minor fixes and enhancements and brings support for 93 target development boards. In the release note below, we summarize some of the key updates to Mbed OS as a part of the Mbed OS 5.6.0 release.

    One additional change you may have noticed is developer.mbed.org is now os.mbed.com. We have updated our URL for consistency across the website. The community should experience no significant changes or issues due to this change because all redirects are in place.

    Core OS

    Tickless RTOS Scheduler

    Power consumption is one of the most important design requirements for IoT devices. Meeting the power budget is becoming very challenging as the systems today include more sensors, faster responses and more connectivity. Mbed OS introduces the Tickless RTOS Scheduler to help achieve the design of low power systems.

    Support Tickless Operation: In tickless operation, you don’t have to make a tradeoff between high-frequency timing interval, which consumes more power, and low-frequency timing interval, which results in suboptimal time keeping, because the scheduler schedules the next timer tick in response to the next event rather than a fixed timer tick.

    Integration with Mbed OS: The Tickless RTOS Scheduler is integrated in the native OS and based on the low power ticker. The Tickless RTOS Scheduler is already integrated in the Ticker API. The specifications are released to help other boards support the implementation of the low power timer and Tickless scheduler. We are working with Mbed silicon partners to enable support for the Tickless Scheduler on all Mbed Enabled boards.

    Support for Arm Cortex-M23 and Cortex-M33 devices

    Connected devices are growing at a fast pace, and according to Gartner, there will be more than 20 billion connected devices by 2020. As the number of IoT devices grows, the devices are becoming an increasingly attractive target for cybercriminals. Security is becoming one the most important product requirements for IoT devices. Arm has announced Arm Cortex-M23 and Cortex-M33 processor architecture, which includes TrustZone for Armv8-M and provides hardware-enforced isolation between trusted and untrusted resources while maintaining the efficient exception handling and determinism that have been the hallmark of all Cortex-M processors.

    Mbed OS 5.6.0 release provides initial support for Arm Cortex-M23 and Cortex-M33 based devices. This release includes support for RTX and tools for GCC only. This release is an instrumental step in supporting upcoming Arm Cortex-M23 and Cortex-M33 MCUs. You will benefit from support for Arm Cortex-M23 and Cortex-M33 as the new development boards including those processors start to come out.

    New drivers and platform APIs

    In the Mbed OS 5.6.0 release, we have also added several new drivers and platform APIs. Following are some of the notable additions.

    CriticalSectionLock Class: CriticalSectionLock class enables the code to run with interrupts disabled. More information is available in the API.

    DeepSleepLock Class: DeepSleepLock class enables the code to run with deep sleep locked. More information is available in the API.

    Mbed_error: Mbed_error prevents recursion if error is called again. More information is available in the API.

    NonCopyable Class: NonCopyable class allows the creation of classes whose objects cannot be constructed using a copy constructor or assigned to another. It forces the classes copy constructors to be private. More information is available in the API.

    Apart from the features described above, Mbed OS 5.6.0 also includes several new features, improvements in current APIs and HAL specification to ensure cross platform support of all APIs. You can find all the changes on GitHub.

    Connectivity

    Cellular stack now supports IPv6 along with previous IPv4

    Cellular connectivity is widely used for connecting IoT devices. It is prominent in mobility, such as smart cars, and devices operating in remote areas, such as oil fields. According to Ericsson, 10% of all IoT devices by 2021 will be connected by cellular connectivity.

    Mbed OS already includes the cellular point to point stack with IPv4 connectivity, and in Mbed 5.6.0, we are releasing cellular stack supporting IPv6. IPv6 is being widely adopted because it allows almost unlimited (3.4*10^38) addresses, and IPv4 only allows up to 4.3 billion addresses. More information is available in the cellular documentation.

    Security

    Update to Mbed TLS 2.6.0

    Mbed TLS is an open source, portable, easy to use, readable and flexible SSL library. It enables you to include cryptographic and SSL/TLS capabilities in your embedded products.

    The Mbed OS 5.6.0 release supports the latest release of Mbed TLS 2.6.0. The Mbed TLS 2.6.0 fixes an authentication bypass issue in SSL/TLS. More Mbed security information is available in the security documentation.

    Targets and tools

    Thanks to our partners’ hard work, Mbed OS 5.6 adds eight new target platforms and now supports 93 target platforms. We’ll continue to add targets in our biweekly patch releases as partners work with us on support.

    Support for IAR Embedded Workbench for Arm v8.1

    Mbed OS 5.6.0 enables initial support to IAR Embedded Workbench for Arm v8.1, which is the latest IAR compiler to support Arm MCUs. Although the default compiler version for IAR remains 7.8.x, you can also build the codebase using IAR 8.1 (builds without dependencies on archives). The current support for IAR Embedded Workbench for Arm v8.1 is limited only to the Mbed CLI tool, and we plan to migrate to the IAR Embedded Workbench for Arm v8.1 as a default IAR toolchain in Mbed OS release 5.7.0.

    Support for Arm Compiler 6

    Mbed OS 5.6.0 adds early support for the latest and most efficient version of the Arm compiler, the Arm Compiler 6. This version is based on the LVVM framework, optimized to best use hardware features. You can read about the Arm Compiler 6. The current support for Arm Compiler 6 is limited only to the Mbed CLI tool, and we plan to migrate to Arm Compiler 6 as a default in Mbed OS release 5.7.0.

    Testing

    Mbed OS is designed to significantly reduce cost and time for embedded software development by providing production quality code and toolset. We are committed to delivering high-quality code working across all supported boards and platforms. To ensure that all the features of the code meet our quality control requirements, we have built an automated testing environment and processes that perform rigorous testing on the code. Following are some of the highlights of our testing framework.

    Continuous integration framework:

    The continuous integration framework is designed to make sure that every new feature and change in Mbed OS is tested to ensure:

    • For every new feature, we create tests that we then deliver to our partners. For every board to be Mbed Enabled, we need our partners to successfully conduct these tests.
    • Partners test the changes on their board before submitting a Pull Request (PR) on GitHub.
    • Once the PR is submitted, then the gatekeepers manually review the code to make sure it meets all the coding guidelines and code standards.
    • Once approved by gatekeepers, the code goes through the automated test setup where code is added to Mbed OS for testing and examples built across all the platforms, such as IAR, ARM and GCC.
    • During the testing phase, we select the combination of boards and devices that support a variety of peripherals, MCU cores and features to select maximum coverage.
    • To make sure that the Mbed OS code is compatible with all the IDEs, we test that the code exports properly to all the compilers.
    • We merge the PR only if the all the above is successful.

    Following are the summary results for testing conducted for Mbed OS 5.6.0. - Total test time is 5,770 hours on actual development boards. - We have added 94 new test cases since the Mbed OS 5.5.0 release to test new and existing features on Mbed OS. The number of total test cases is 312. - We performed 361,440 example builds since the Mbed OS 5.5.0 release. - The total number of binaries built is 12,826,080 since the Mbed OS 5.5.0 release.

    We plan to share more details about testing processes, such as our out of box testing coverage and system testing, in upcoming release blogs.

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

    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: https://github.com/ARMmbed/mbedtls/issues/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 at your own responsibility!
    • Reported Issue: Issue reported by a customer in email.
    • Priority: MAJOR

    Mismatch of root CA and issuer of CRL not caught

    • Description: The x509_crt_verifycrl() function ignores the CRL when the CRL has an issuer different from the subject of root CA certificate.
    • Workaround: Make sure that the issuer of the CRL and the root CA certificate's subject are the same before passing them to x509_crt_verifycrl().
    • Reported Issue: Reported by a partner.
    • Priority: MAJOR

    Mbed TLS causes stack overflow in Mbed OS targets

    • Description: The stack memory usage of some Mbed TLS features is higher than 4 KB, which may cause stack overflow errors when running with Mbed OS in constrained embedded environments, which are particularly limited in RAM.
    • Workaround: The amount of stack required depends on the application and what features of the library it chooses to use. More intensive, demanding tasks may not be possible on more limited, constrained devices, so we recommend designing for the limitations of the target device or choosing a device suitable for your application.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-tls/issues/14
    • Priority: MAJOR

    Commissioner does not retransmit message when it receives retransmission

    • Description: There are two issues with DTLS handshake retransmission. First, the joiner fails to correctly parse received records because it does not correctly handle queued retransmissions received. Second, the commissioner may cause a deadlock as it does not retransmit certain records after it receives retransmission as instructed in RFC6347 Section 4.2.4.
    • Workaround: There is no known workaround.
    • Reported Issue: https://github.com/openthread/openthread/pull/1207
    • Priority: MAJOR

    Self Test Failure with Some Hardware Accelerators

    • Description: Most HW acceleration engines (if not all) require the parameters to be from contiguous memory. All the self tests use test vectors that are defined in the .bss section, which means these are not contiguous. This causes the self test to possibly fail, when implementing HW accelerated engines.
    • Workaround: There are no known workarounds
    • Reported Issue: Reported by the development team.
    • Priority: MAJOR

    uVisor does not support nested interrupts

    • Description: When running an application with uVisor enabled, nested interrupts are not supported.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/345
    • Priority: Major

    On ARMv7-M targets supporting uVisor, the RTOS runs with the same privilege of uVisor

    • Description: The current architecture of uVisor and of RTX require the RTOS to run with the same privilege of uVisor. As such, the RTOS is considered as trusted.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/235
    • Priority: Major

    Mesh networking applications fail to compile with IAR on non-secure platform

    • Description: If the target has no defined hardware entropy module, then Mbed TLS support is disabled on the build time. This leads to compilation warnings on some Nanostack related modules and compilation failure when using IAR toolchain.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-mesh-minimal/issues/91
    • Priority: Major

    UARTSerial asserts if debug is enabled

    • Description: UARTSerial attempts to claim a mutex from interrupt context. If debug is not enabled, this fails silently, and the driver works as intended. If debug is enabled, the system stops in the assert.
    • Workaround: Turn off the debug build.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/4537
    • Priority: Major

    Link in GettingStarted.html generated by mbed export is incorrect

    • Description: The link generated by mbed export in the file GettingStarted.html is out of date.
    • Workaround: Navigate to the correct document by going to the Handbook and selecting "Third party development tools" in the "Development tools and aids" section.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/5149
    • Priority: Minor

    Assembling fails for make_armc5 exporter in Windows upon update of Mbed OS

    • Description: After updating Mbed OS on Windows and exporting to make_armc5, the assembler will complain of Invalid line start and Unknown opcode __FPU_PRESENT.
    • Workaround: Remove the mbed-os directory, and recreate it from the upstream mbed-os Git repo.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/5145
    • Priority: Minor

    Realtek RTL8195AM does not define flash algorithms for uvision

    • Description: No flashing support in uvision for Realtek RTL8195AM.
    • Workaround: Use drag-and-drop programming.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/4651
    • Priority: Minor

    Ublox EVK ODIN W2 serial baud rate mismatch

    • Description: The default serial port produces incorrect output.
    • Workaround: None.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-wifi/issues/58
    • Priority: Major

    The default address (ff03::1) cannot work for multicast

    • Description: The default address works with Thread but not 6LoWPAN.
    • Workaround: None.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-mesh-minimal/issues/130
    • Priority: Major

    Ports for upcoming targets

    4631 Add new target NUMAKER_PFM_NANO130

    Fixes and changes

    This is the full list of changes available in this release.

    4518 Add new target in mbedtls importer Makefile for mbedtls tests

    4644 Ticker: add fire interrupt now function

    4814 Merge lwip 2.0.2 stable

    4809 STM32: Align HAL & US tickers

    4517 Add cpp API for CMSIS OS 2 EventFlags

    4908 fs: Add FileSystem::reformat

    4920 Modify LED error sequence to be more recognisable

    4960 Nanostack update for mbed-os-5.6

    5003 Move Cortex specific RTX behind TARGET_CORTEX

    4962 platform: add CriticalSectionLock

    4843 fatfs: Add lower bound to block sizes

    4911 Support cellular IPv4v6 dual stack in LWIP

    4907 Update uVisor to v0.30.0

    4580 Use EventFlags instead of Semaphores

    4406 mbed_events.h: Add ability to request a shared event queue

    5037 Revert "Adjusting Stack size Allocation (IAR, LPC176x)"

    5030 Export uVision linker flags so that bootloader projects build correctly

    4912 Add sleep manager API

    4916 Add mcuxpresso exporter

    5055 Travis: fix the latest breakage - use group:

    4991 Add tickless to some mbed-os devices

    5012 STM32_us_ticker_16b: keep code to cope with past event

    4938 Update IAR to version 8

    5063 Fixing lp ticker and sleep manager tests

    4875 Initial support for Cortex M-23/M-33 devices.

    4987 Update mbed TLS to version 2.6.0

    5073 use gcc assembly for arm 6

    4949 NEW TOOLCHAIN: Add the ARMC6 Compiler

    5093 Disable response files on export

    5090 Correct long call macros for ARMC6

    5111 Emit dependency information with ARMC6

    5069 Changed error print to assert

    5107 mbed_rtx_idle: uVisor: Don't attempt to sleep

    5122 update server name to os.mbed.com

    5103 Parse libraries with memap-arm

    5116 Separate string literal from macro

    5132 Fix MBED_ VERSION

    5091 Correct booting on Nordic devices with ARMC6

    5094 ARMC6 support for Cortex-M23

    5044 Realtek_RTL8195AM fix for debug profile

    5125 Refactor memap for speed

    The upgrade should be generally transparent to developers using the Mbed OS RTOS APIs, but please report in the forums or contact us at support@mbed.com if you have any issues in this area.

    Using the release

    You can fetch the latest version of the Mbed OS 5.6 release from the mbed-os GitHub repository using this branch.

  • mbed-os-5.5.7

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.5.7 release is now available.

    This release includes an update for mbed-coap to version 4.0.10, bootloader support for DISCO_L476VG and a critical workaround for 'STM32F439xI-family AES hardware acceleration occasionally produces incorrect output (#4928)' (achieved by disabling AES acceleration by default). There are also numerous bug fixes and code enhancements.

    Known Issues

    The following list of known issues apply to this release:

    Contents

    Ports for Upcoming Targets

    Fixes and Changes

    4977 disable -f option for assembly files for IAR

    4944 STM32: F1 GPIO: Enable AFIO clock

    4950 M487: Support USB device/host

    4951 UBLOX_EVK_ODIN_W2- add BUTTON1/2 definitions

    4954 Fix ISR powerdown in mbed_application.c

    4934 mbedtls: STM32F439xI: Don't enable AES acceleration by default

    5001 Update mbed-coap to version 4.0.10

    4933 test: fix stats depth variable scope

    4963 K66F,KW24D,K22F,K64F: Fix NVIC_NUM_VECTORS value

    4939 Fix crashes on boot on some Kinetis devices

    4929 STM32F4: Increase ADC sample time for VREF

    4945 Extends test set for Mail class

    4975 Stm32 spi 3 wires mode support

    4992 Fix BLE API docs

    4995 Add LED color remapping definitions to Odin target

    4996 Reduce K64F Ethernet driver to 1 thread

    4997 Correct LWIP_DEBUG definition

    5013 MTS targets: Don't use any printf() calls when NDEBUG is defined

    4924 Adjust Stack size Allocation (IAR, LPC176x)

    4776 Remove use of internal RTX types

    4881 [STM32F401xE] Freeze master timer on stop/breakpoint

    4984 Unify mbed OS tools testing style with what's used in mbed-ls, htrun, greentea

    4665 Enable sdram usage of REALTEK_RTL8195AM

    4958 Add bootloader support for DISCO_L476VG

    5055 Travis: fix the latest breakage - use group:

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.5.7".

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.5.6

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.5.6 release is now available.

    This release includes support for new targets NUMAKER_PFM_M487 and TOSHIBA TMPM066, an update of mbed-coap to version 4.0.9, plus numerous bug fixes to improve code reliability.

    Known Issues

    The following list of known issues apply to this release:

    4928 AES hardware acceleration not working for STM32F439xI

    Ports for Upcoming Targets

    4608 Support Nuvoton's new target NUMAKER_PFM_M487

    4840 Add Support for TOSHIBA TMPM066 board

    Fixes and Changes

    4801 STM32 CAN: Fix issue with speed function calculation

    4808 Make HAL & US tickers idle safe

    4812 Use DSPI SDK driver API's in SPI HAL driver

    4832 NUC472/M453: Fix several startup and hal bugs

    4842 Add call to DAC_Enable as this is no longer done as part

    4849 Allow using of malloc() for reserving the Nanostack's heap.

    4850 Add list of defines to vscode exporter

    4863 Optimize memory usage of wifi scan for REALTEK_RTW8195AM

    4869 HAL LPCs SPI: Fix mask bits for SPI clock rate

    4873 Fix Cortex-A cache file

    4878 STM32 : Separate internal ADC channels with new pinmap

    4392 Enhance memap, and configure depth level

    4895 Turn on doxygen for DEVICE_* features

    4817 Move RTX error handlers into RTX handler file

    4902 Using CMSIS/RTX Exclusive access macro

    4923 fix export static_files to zip

    4844 bd: Add ProfilingBlockDevice for measuring higher-level applications

    4896 target BLUEPILL_F103C8 compile fix

    4921 Update gcc-arm-embedded PPA in Travis

    4926 STM32L053x8: Refactor NUCLEO_L053R8 and DISCO_L053C8 targets

    4831 Remove excessive use of printf/scanf in mbed_fdopen/_open

    4922 bug fix: xdot clock config

    4935 STM32: fix F410RB vectors size

    4940 Update mbed-coap to version 4.0.9

    4941 Update of MemoryPool.h header file.

    Using this release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.5.6".

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.5.5

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.5.5 release is now available.

    This release includes: - mbedTLS SHA1 and SHA256 hw acceleration for NUCLEO_F756ZG - Crypto HW acceleration for UBLOX_EVK_ODIN_W2 - Updating mbed-coap to version 4.0.8 - Bootloader support for the UBLOX_C030 and NUCLEO_F412ZG platforms - Numerous bug fixes and enhancements to improve the stability and functionality of the code.

    Known Issues:

    • None

    Ports for Upcoming Targets:

    • None

    Fixes and Changes:

    • 4623 Improve management handling of multiple instances of analogin ojects
    • 4398 MAX326xx: BLE updates, fixed sleep, open-drain LEDs
    • 4158 NUCLEO_F756ZG / mbedTLS_SHA1 hw acceleration
    • 4750 Enable crypto HW acceleration for UBLOX_EVK_ODIN_W2
    • 4162 NUCLEO_F756ZG/mbedtls: Add hw acceleration for SHA256
    • 4690 test: add us ticker test
    • 4752 RTOS: Queue tests & docs rework
    • 4835 Add bootloader support for the UBLOX_C030 platforms.
    • 4854 NUCLEO_F412ZG add flash driver and bootloader support
    • 4868 STM32F437: remove flash api implementation
    • 4805 K64F: Update the DSPI SDK driver to support the new API to change DUM
    • 4695 F756/F439: add mbedtls md5 hash feature
    • 4833 Updating mbed-coap to version 4.0.8
    • 4822 fix unresolved linker msg: __wrap_
    • 4828 Enhancement - exporter/cdt
    • 4836 mbed exporter: Add IAR support for various NXP platforms
    • 4851 STM32F4_HAL_MMC erase command check is wrong. == has higher precedence than &
    • 4852 SAM_CortexM0P uses uninitialized memory in i2c and uses out of bounds array in pwmout
    • 4857 DISCO_L475VG_IOT01A: Add support of USBHost
    • 4859 Add copyright header to all tests
    • 4813 Dual Flash and Hex file support on NCS36510

    Using the release

    You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.5.5".

    Please feel free to ask any questions or provide feedback on this release on the forum. You can also contact us at support@mbed.org.

  • mbed-os-5.5.4

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.5.4 release is now available. This release includes 3 new targets: LPCXpresso54114, LPCXpresso54608 and VBLUno52.

    Here is a full list of all changes and fixes in this release...

    Ports for Upcoming Targets

    4290 Add mbed support for LPCXpresso54114 & LPCXpresso54608 boards

    4765 Add support for the VBLUno52 board

    Fixes and Changes

    4620 Extend tests for RTOS Thread class

    4640 STM32L1 Flash API and xDot bootloader support

    4664 STM32: Fix the CAN initializing to the wrong frequency

    4676 Correctly enable / disable InterruptIn Edges detection

    4682 Test: RTOS: Semaphore: Rework tests

    4687 STM: cleanup mbed_rtx.h file

    4708 Enable greentea testing on CM3DS_MPS2 target

    4733 Prevent double define in very old builds

    4718 Toolchain: Add a note about weak functions and header files

    4732 Correct DAC pin assignment

    4727 Update UART3 pins for UBLOX_C030 platform.

    4745 WIZnet W7500*: Remove support for RTC

    4751 Remove redundant ODIN-W2 target folder

    4662 BLE/HRM : Fix #4661

    4740 STM32 : Clock source selection in json config file (PR2)

    4696 Max32630 UART: Fix IRQ dispatching and CTS/RTS line configuration

    4615 Add set_baud() method to UARTSerial().

    4706 Fix inconsistent mbed-trace dummy defines and original function declarations

    4721 REALTEK_RTL8195AM: FlashIAP read and address scope

    4717 STM32: Remove i2c_read() and i2c_write() redirects to HAL_I2C_IsDeviceReady()

    4726 Update ATCmdParser example code

    4731 Boot: Make ARMC library mutexes dynamic

    4734 Avoid data loss with serial interrupt used at high baudrates

    4754 Resolve TLS handshake failing issue for REALTEK_RTL8195AM

    4756 Fix #4613: remove duplicated startup files for MICRONFCBOARD

    4762 DISCO_L475VG_IOT : pin update

    4764 STM32F0 : remove unavailable pins

    4774 Add support for runtime test specification

    4775 Fix non-portable defines

    4778 Add AES HW encryption for NUCLEO_F756ZG in mbedtls

    4782 mbed-hal: Fixed flash test

    4793 STM32 I2C : correct async issue

    4794 NUCLEO_F767ZI : boot issue with GCC

    4714 Expose SystemCoreClock via cmsis.h to support new CMSIS/RTX

    4744 Allow user to set default transfer byte for block read

    4807 LPC MCUXpresso: fix write_fill argument for block write function

    4742 Deprecate unsupported exporters

    4729 RTOS: Mutex: Rework tests

    4715 Nanostack+mbed-client libservice update

    4738 ONME-3113: Fix GCC_ARM and ARM compiler warnings from mbed-mesh-api

    4755 Bluepill: hse config fix

    4790 Improve documentation for memory stat ops

    4800 Fix infinite calling loop

    4804 Copy static files only

    Using the release

    You can fetch the mbed OS 5.5.4 release from the mbed-os GitHub repository, using the tag "mbed-os-5.5.4". Please feel free to ask any questions or provide feedback on this release here, or to contact us at support@mbed.org.

  • mbed-os-5.5.3

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.5.3 release is now available. This release includes only bugfixes.

    Here is a full list of all changes and fixes in this release...

    Fixes and Changes

    4446 Customer port verification tests for cellular

    4531 Update branching option to branch from another branch.

    4672 Cellular: not-supported error if MODEM_ON_BOARD not defined

    4468 Put quotes around include files

    4685 Rename runnig_thread to running_thread in rtx_mutex

    4163 STM32L486RG/mbedtls: add aes hw acceleration

    4659 Add the correct startup s file in TARGET_STM32F767

    4215 Add script to lint targets.json

    4711 added the missing verbose=verbose to printout the command line correctly at build_api.py

    4710 Correct a typo in the github issue template

    4636 Double escape defines in gnuarmeclipse export

    4635 _acquire() function added & removed duplication in format/freq calls

    4548 Resolve Warnings for mbed-os-examples

    4547 Sort the config parameters before printing them

    4546 Fix bad test print and move locks for printf into macro.

    4599 Update timing tests to be robust

    4720 FlashIAP: Add explicit read function to flash_api.h

    4525 Improve the startup code on the STM32F070

    4561 fatfs: Add full support for multiple fs volume prefixes

    4674 Fix LED4 for UBLOX_EVK_NINA_B1

    4749 tools: fix toolchain extend inc paths

    4747 Remove unused header files includes for REALTEK_RTL8195AM

    4736 NRF52832: Extend idle thread stack size to 512 bytes.

    4707 STM32: serial: use proper macro to check interrupt

    4699 STM32L0 : internal ADC channels

    4694 DISCO_L475VG_IOT01A: typo corrections in PeripheralPins.c

    4693 Nordic: Fix multiple defined symbol.

    4691 STM32: F4: Increase ADC sampling time for VBAT

    4677 Increase default PPP stack size from 512 bytes to 768 bytes.

    4668 DISCO/NUCLEO_F429ZI: Enable all alternate functions and pins

    4667 Update and mute debug messages of REALTEK_TRL8195AM

    4666 Fix timing issues found in "Flash - clock and cache test"

    4652 fatfs: Fix unaligned access in disk_ioctl

    4592 [ONME-3089] - Adjust lowpan ND interface connect timeout

    4634 Fix the issue #4357: NRF52 doesn't support simultaneous use of I2C and SPI.

    4725 Parse and use custom targets in exporters

    Using the release

    You can fetch the mbed OS 5.5.3 release from the mbed-os GitHub repository, using the tag "mbed-os-5.5.3". Please feel free to ask any questions or provide feedback on this release here, or to contact us at support@mbed.org.

  • mbed-os-5.5.2

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.5.2 release is now available. This release includes new target support for DISCO_F413ZH and VBLUno51 and an update for the STM32F7 cube from v1.6.0 to v1.7.0. It also includes SHA256 and SHA1 hw acceleration support for NUCLEO_F439ZI, USB Device for DISCO_L072CZ_LRWAN1, plus a number of fixes to mbed OS and tools to improve stability and functionality.

    Here is a full list of all changes and fixes in this release...

    Ports for Upcoming Targets

    4410 DISCO_F413ZH: Add new platform

    4629 Add support for VBLUno51 board

    Known Issues

    Due to a dependency of stm32f413 on a later patch version of IAR which are currently not available in our CI systems, IAR export support for this platform is not available for this release.

    4697 IAR: remove stm32f413 from definitions

    Fixes and Changes

    4578 Turn off "browse information" in Uvision template

    4616 Fix unresolved include of mbed_config.h in Eclipse

    4375 Stm32 spi : use LL API to improve performances

    4401 STM32 : Add USB used pins in PinNames.h files

    4520 Update link in CONTRIBUTING.md

    4103 Add extra_targets.json support to build tools

    4390 Nucleo-F070RB It doesn't work when use internal clock

    4405 DISCO_L072CZ_LRWAN1: PC_13 definition missing in PinNames.h fix

    4426 Improve directory scanning performance

    4538 Avoid lock collision b/w SerialBase & UARTSerial

    4552 NUCLEO_F767ZI: Add missing IAR definitions

    4557 Enable I2C and Analogin drivers for CM3DS_MPS2 target

    4572 DISCO_L072CZ_LRWAN1: Add support of USB Device

    4157 NUCLEO_F439ZI/mbedtls: add SHA1 hw_acceleration

    4422 STM32F4 set HSE timeout value to 100ms

    4594 Introduce mbed::NonCopyable traits

    4598 Fix style issues in IAR exporter

    4604 cmain IAR: add mbed main

    4607 bd: Fix missing init in MBRBlockDevice

    4603 STM32 : mbed_overrides.c is common for all families

    4638 DISCO_L475VG_IOT01A: Fix startup files for cmsis5

    4610 STM32 : targets.json file simplification

    4647 Remove hardcode UART pins definitions for nRF52832 SoC

    4646 RTX: Fixed RTXv5 mutex owner list handling.

    4625 Update STM32F7 cube from v1.6.0 to v1.7.0

    4421 STM32 : Clock source selection in json config file

    4559 fatfs: Remove unused fat_filesystem_set_errno function

    4571 events: Adopt osEventFlags from RTX 5

    4577 XDOT_L151CC: enable HSI after waking from stop mode so ADC functions

    4601 rtos: Fix MemoryPool and Queue destructor

    4632 STM32: fix us ticker set event timestamp double ISR possibility

    4641 Increase L0 ADC sample time

    4656 Correct comments in flash api for STM32 L0 targets

    4671 retarget: fix microlib for mbed 2

    4529 Manage multiple instances of analog out

    4565 Add FlashIAP support for REALTEK_RTL8195AM

    4159 NUCLEO_F439ZI/mbedtls: add SHA256 hw_acceleration

    Using the release

    You can fetch the mbed OS 5.5.2 release from the mbed-os GitHub repository, using the tag "mbed-os-5.5.2". Please feel free to ask any questions or provide feedback on this release here, or to contact us at support@mbed.org.

  • mbed-os-5.5.1

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.5.1 release is now available. This release includes a fix for a critical issue found in mbed-os-5.5.0: 4584 Introduction of RTX/CMSIS 5 has broken semaphore signaling. We have fixed the issue by reverting behavior to how it was in RTX/CMSIS 4.

    The release also includes support for CM3DS_MPS2 and DISCO_L475VG_IOT01A targets, an update to the u-blox ODIN-W2 driver binaries and bug fixes that improve the stability of the tools and codebase.

    Known issues

    The following list of known issues applies to this release:

    4605: Timing tests are unstable on the ARM_BEETLE_SOC

    Here is a full list of all changes and fixes in this release.

    Ports for upcoming targets

    4414: Enable CM3DS_MPS2 target

    4242: DISCO_L475VG_IOT01A: Add new target

    Fixes and changes

    4545: Filter support with a white list of post-bin hooks in uvision

    4544: Export static files from mbed export

    4542: Issue #4528 K82F: Initialize the UART clock inside the board file

    4530: Enable verbose builds when running example build tests

    4516: Check for correct library naming in Travis CI

    4510: u-blox: Rearrange ODIN target

    4502: STM32: serial: Clear Overrun flag if it is set when checking if readable

    4562: fatfs: Fix initialization of block device in mount/unmount functions

    4504: Add reporting of reserved heap in Greentea

    4554: Fix NUCLEO_L476RG linker scripts

    4563: Increase background stack size to fix overflow

    4364: Add C API for Greentea client

    4540: Support app config option for export

    4541: Fix a bug in print_large_string

    4579: Fix semaphore in RTOS

    4444: Resolve lwIP init twice issue

    4523: Check Ethernet before including lwipopts_conf.h

    4337: Platform support for new CellularInterface in UBLOX_C027 and UBLOX_C030_U201

    4567: Update u-blox ODIN-W2 driver binaries to 2.1 rc1

    Using the release

    You can fetch the mbed OS 5.5.1 release from the mbed-os GitHub repository by using the tag "mbed-os-5.5.1".

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.5.0

    Downloads: zip tar.gz

    The mbed OS 5.5 release upgrades to the latest version of CMSIS, paving the way for support of the latest ARM compilers, ARMv8-M Architecture based MCUs and lower power RTOS modes. It also introduces cellular connectivity, embedded storage and hardware security enhancements to further simplify development of connected, managed IoT devices. In addition, this release contains many minor fixes and enhancements and brings target platform support up to 85 targets.

    Core

    mbed OS 5.5 upgrades to the latest CMSIS version, CMSIS5, including the enhanced CMSIS-RTOS2 kernel. This is a significant step in our roadmap to enable support for the latest generation of compilers (ARM GCC Embedded 6, ARM Compiler 6 and IAR Embedded Workbench 8), support for v8-M architecture cores and introduction of low power tick-less RTOS and deep sleep modes.

    The release includes many general enhancements and fixes, and upstreams those that have been maintained within the mbed OS codebase itself. The upgrade should be generally transparent to developers using the mbed OS RTOS APIs, but please report in the forums or contact us at support@mbed.com if you have any issues in this area.

    The file system infrastructure now supports SPI NOR Flash devices, a low-cost, external storage solution. Developers commonly use it in IoT devices to store firmware update images, device credentials and configuration information and to cache data for later syncing to the cloud. You can use the SPI NOR Flash storage with all mbed Enabled platforms, and it is the recommended storage medium for devices requiring firmware update capabilities.

    The release also includes a standard in-application flash programming API, FlashIAP, and first partner implementations. This component supports the upcoming mbed Cloud Update service capability, available to licensees, that manages device firmware update campaigns across fleets of devices.

    Connectivity

    mbed OS 5.5 introduces improved support for cellular connectivity modules, including standard integration through a built-in PPP network interface.

    A Linux-based Thread Access Point reference that uses the Thread border router is now available.

    Our new native mbed OS BLE stack has reached our Early Partner Release milestone. This allows use of BLE transceivers with any mbed Enabled MCU and provides stack consistency across different BLE hardware. Based on this, we will be working with the first mbed Partners to enable support for their BLE transceivers and SoCs using this stack, planning to provide first access to developers in the 5.6 release. Partners interested in supporting BLE transceivers or SoCs with this stack should contact their Partner Enablement Team representatives.

    Security

    mbed OS cryptography incorporates mbed TLS 2.5 and the completion of internal APIs for enabling hardware entropy and symmetric and asymmetric cryptographic acceleration. Many partners are implementing and landing support for acceleration on their target platforms and are seeing significant performance increases. Partner acceleration will land in patch releases as we work with partners to complete security audits and mainline these contributions.

    uVisor updates address several performance and usability issues reported since the last release. Secure boxes on devices with an ARMv7-M MPU now use less memory and provide more user-friendly configuration options.

    uVisor now also supports the new ARMv8-M architecture, including the TrustZone for ARMv8-M security extensions. Support for this architecture is still experimental and is currently only accessible through a feature branch in mbed OS.

    Targets

    Thanks to our partners’ hard work, mbed OS 5.5 now supports 85 target platforms.

    We'll continue to add targets in our biweekly patch releases as partners work with us on support.

    Fixes and changes

    4315: Add support for ubirch boards https://github.com/ARMmbed/mbed-os/pull/4315

    3906: uVisor: Fix 'publish' and core libs dependencies https://github.com/ARMmbed/mbed-os/pull/3906

    3738: fix STM USB config after L4 ,F4, F7 file tree changes https://github.com/ARMmbed/mbed-os/pull/3738

    3867: Filesystem: Revert deprecation of FileHandle https://github.com/ARMmbed/mbed-os/pull/3867

    3996: Check in algo generation code https://github.com/ARMmbed/mbed-os/pull/3996

    3995: Move target related code into it's own directory https://github.com/ARMmbed/mbed-os/pull/3995

    3997: Move contents of project_api to export/init.py https://github.com/ARMmbed/mbed-os/pull/3997

    3998: Remove dead code in tools https://github.com/ARMmbed/mbed-os/pull/3998

    3848: USBAudio: writesync with 1 sample jitter capability. https://github.com/ARMmbed/mbed-os/pull/3848

    3994: Use OUTPUT_EXT to pick binary type https://github.com/ARMmbed/mbed-os/pull/3994

    4015: DISCO_L053C8: Add support of USB Device https://github.com/ARMmbed/mbed-os/pull/4015

    3987: thread link configuration bypass flag in mesh-api https://github.com/ARMmbed/mbed-os/pull/3987

    4013: Fix a small bug in subtract_basepath https://github.com/ARMmbed/mbed-os/pull/4013

    4100: Edit the README and add Travis CI badges https://github.com/ARMmbed/mbed-os/pull/4100

    4125: STM32 USB configuration file move https://github.com/ARMmbed/mbed-os/pull/4125

    3993: Added list options for --supported command https://github.com/ARMmbed/mbed-os/pull/3993

    4097: Debug build flag + change to sleep behavior in debug mode https://github.com/ARMmbed/mbed- os/pull/4097

    3991: events: Fix zero wait condition in non-rtos semaphore https://github.com/ARMmbed/mbed-os/pull/3991

    4175: [NRF52840]: Remove unwanted nRF5 SDK's app_timer libarary. https://github.com/ARMmbed/mbed- os/pull/4175

    4179: uVisor: Fix copy of quick-start doc in exporter script https://github.com/ARMmbed/mbed-os/pull/4179

    4167: Replace deprecated import and correct typo in c_blob_mbed.tmpl https://github.com/ARMmbed/mbed- os/pull/4167

    4048: Make LWIP options configurable https://github.com/ARMmbed/mbed-os/pull/4048

    4111: [drivers] Update doxygen errors https://github.com/ARMmbed/mbed-os/pull/4111

    4199: USB: bus reset for KL25Z fix, USBSerial update https://github.com/ARMmbed/mbed-os/pull/4199

    3988: Enable USB capabilities on NUCLEO_F446RE https://github.com/ARMmbed/mbed-os/pull/3988

    4212: Maxim USB library update https://github.com/ARMmbed/mbed-os/pull/4212

    4210: USB: Added support for the logo key to the keyboard https://github.com/ARMmbed/mbed-os/pull/4210

    4155: Thread sec policy https://github.com/ARMmbed/mbed-os/pull/4155

    4110: Add --build-data switch to mbed compile and test https://github.com/ARMmbed/mbed-os/pull/4110

    4233: [platform] Update doxygen comments https://github.com/ARMmbed/mbed-os/pull/4233

    4169: [NXP LPC176X] flash_api.c implementation https://github.com/ARMmbed/mbed-os/pull/4169

    4186: Filesystem: Include '.' and '..' in directory iteration https://github.com/ARMmbed/mbed-os/pull/4186

    4259: Add error check in Stream constructor https://github.com/ARMmbed/mbed-os/pull/4259

    4248: Fixed STM32 USB Device support for mbed Classic https://github.com/ARMmbed/mbed-os/pull/4248

    4298: Remove FLASH capabilities for the ARCH_PRO https://github.com/ARMmbed/mbed-os/pull/4298

    4306: Remove unsupported net libraries https://github.com/ARMmbed/mbed-os/pull/4306

    4307: Remove ARM7 support and targets https://github.com/ARMmbed/mbed-os/pull/4307

    4313: Remove and cleanup old code in the tools https://github.com/ARMmbed/mbed-os/pull/4313

    4235: Nanostack libservice https://github.com/ARMmbed/mbed-os/pull/4235

    4284: LWIP random library and TCP sequence number improvements https://github.com/ARMmbed/mbed- os/pull/4284

    4291: USBHost : fix build for TARGET_STM https://github.com/ARMmbed/mbed-os/pull/4291

    4312: BEETLE: Remove unused and conflicting systick https://github.com/ARMmbed/mbed-os/pull/4312

    4316: Remove Cortex A boards as Cortex-A it is not supported in CMSIS5/RTX2 https://github.com/ARMmbed /mbed-os/pull/4316

    4319: Enable CMSIS_VECTAB_VIRTUAL for Nordic platforms https://github.com/ARMmbed/mbed-os/pull/4319

    4317: Reduce test overhead in preperation for CMSIS 5 https://github.com/ARMmbed/mbed-os/pull/4317

    4325: Decode STDERR from compiler https://github.com/ARMmbed/mbed-os/pull/4325

    4311: Disable lwIP checksum-on-copy https://github.com/ARMmbed/mbed-os/pull/4311

    4274: NSAPI - Don't send trailing garbage in DNS queries https://github.com/ARMmbed/mbed-os/pull/4274

    4202: Add support for Unmanaged Bootloader https://github.com/ARMmbed/mbed-os/pull/4202

    4185: Include mbed_debug.h in mbed.h https://github.com/ARMmbed/mbed-os/pull/4185

    4385: Allow examples to specify which repo source to use for testing https://github.com/ARMmbed/mbed- os/pull/4385

    4381: Fix vscode intellisense engine to 'Tag Parser' https://github.com/ARMmbed/mbed-os/pull/4381

    4340: Thread med support https://github.com/ARMmbed/mbed-os/pull/4340

    4333: Adjust Thread interface connect timeout https://github.com/ARMmbed/mbed-os/pull/4333

    4165: fix #3863 Add an mbed API that allows the init of the CAN at the bus frequency https://github.com/ARMmbed/mbed-os/pull/4165

    4351: STM32L4 cube update from v1.5.0 to v1.8.0 https://github.com/ARMmbed/mbed-os/pull/4351

    4345: Nanostack update https://github.com/ARMmbed/mbed-os/pull/4345

    4331: Have objects depend on their respective compiler invocations https://github.com/ARMmbed/mbed-os/pull/4331

    4328: Remove unwanted (and unused anymore) NRF5_SDK13 BLE port https://github.com/ARMmbed/mbed-os/pull/4328

    4299: STM32F4 cube update from v1.12.0 to v1.16.0 https://github.com/ARMmbed/mbed-os/pull/4299

    4230: Usb host msd block device https://github.com/ARMmbed/mbed-os/pull/4230

    4329: Fix for #3863: STM Check can sync error https://github.com/ARMmbed/mbed-os/pull/4329

    3936: bd: Add MBR block device for standard storage partitioning https://github.com/ARMmbed/mbed-os/pull/3936

    4377: Disable Cortex-A in tooling for better error messages https://github.com/ARMmbed/mbed-os/pull/4377

    4321: Update mbed TLS to version 2.5.0 https://github.com/ARMmbed/mbed-os/pull/4321

    4403: mbed: version macros are not defined on master https://github.com/ARMmbed/mbed-os/pull/4403

    4402: Stm32 f2 cube sdk update to v1.6.0 https://github.com/ARMmbed/mbed-os/pull/4402

    4119: Cellular feature br https://github.com/ARMmbed/mbed-os/pull/4119

    4388: Deprecate config store and related libraries https://github.com/ARMmbed/mbed-os/pull/4388

    4207: spi: Add SPI block-write to C++ and HAL for performance https://github.com/ARMmbed/mbed-os/pull/4207

    4178: [NRF52840]: SecurityManager::getAddressesFromBondTable https://github.com/ARMmbed/mbed-os/pull/4178

    4413: Fix a bug in dependency handling https://github.com/ARMmbed/mbed-os/pull/4413

    4094: [HAL] Add support for 64 bit us timestamp https://github.com/ARMmbed/mbed-os/pull/4094

    4415: Disallow building of mbed OS 2 + RTOS, and remove mbed OS 5 support for Cortext-A https://github.com/ARMmbed/mbed-os/pull/4415

    4411: Adding APIs to namespace mbed https://github.com/ARMmbed/mbed-os/pull/4411

    4427: tests: remove ticker test https://github.com/ARMmbed/mbed-os/pull/4427

    4387: Allow target attribute overrides in app config and pick toolchain with default_toolchain https://github.com/ARMmbed/mbed-os/pull/4387

    4294: Update CMSIS-Core and RTX to version 5 https://github.com/ARMmbed/mbed-os/pull/4294

    4431: Restore mbed OS 5.4 mbed_lwip_ function prototypes https://github.com/ARMmbed/mbed-os/pull/4431

    4389: Assert that mutexes and prints are not use in interrupt or critical context https://github.com/ARMmbed/mbed-os/pull/4389

    3972: FAT: Add support for block sizes of 512-4096 bytes https://github.com/ARMmbed/mbed-os/pull/3972

    4438: Add REALTEK_RTL8195AM to mbed-os https://github.com/ARMmbed/mbed-os/pull/4438

    4087: LocalFileSystem: Repair the FileSystemLike hooks https://github.com/ARMmbed/mbed-os/pull/4087

    4295: Update uVisor to v0.28.1 https://github.com/ARMmbed/mbed-os/pull/4295

    4436: Issue#4250: Fix USB driver for Kinetis devices https://github.com/ARMmbed/mbed-os/pull/4436

    4420: Update CONTRIBUTING.md https://github.com/ARMmbed/mbed-os/pull/4420

    4368: MTS_DRAGONFLY_F411RE/MTS_MDOT_F411RE: add IAR to post_binary_hook toolchains https://github.com/ARMmbed/mbed-os/pull/4368

    4365: Fix i2c communication with pcf8574 on stm32 targets of f1, f2, f4 and l1 families https://github.com/ARMmbed/mbed-os/pull/4365

    4455: mbed-coap fixes https://github.com/ARMmbed/mbed-os/pull/4455

    4454: Warning fixes https://github.com/ARMmbed/mbed-os/pull/4454

    4451: Fix typo in test code https://github.com/ARMmbed/mbed-os/pull/4451

    4439: Proper fix for 1fa30b7403176349557d6aea2f02a2075aa6f03b https://github.com/ARMmbed/mbed-os/pull/4439

    4430: utest optimization: Allow case data structure to be put in ROM. https://github.com/ARMmbed/mbed-os/pull/4430

    4424: Fix corner cases in STM32 16bit tickers https://github.com/ARMmbed/mbed-os/pull/4424

    4423: NUCLEO_F412ZG: Remove hal_conf file from NUCLEO_F412ZG https://github.com/ARMmbed/mbed-os/pull/4423

    4417: STM32: Fix 32-bit us ticker interrupt scheduling https://github.com/ARMmbed/mbed-os/pull/4417

    4216: STM32s Serial: Correct handling of parity bits https://github.com/ARMmbed/mbed-os/pull/4216

    4453: Safely initialize RTC on kinetis devices https://github.com/ARMmbed/mbed-os/pull/4453

    4425: Doxygen template and CI to not produce warnings and errors https://github.com/ARMmbed/mbed-os/pull/4425

    4449: Fix semaphore usage on lpc1768 emac https://github.com/ARMmbed/mbed-os/pull/4449

    4493: Fix typo that used 16kB for stack. https://github.com/ARMmbed/mbed-os/pull/4493

    4434: Doxygen EventQueue updates to not produce warnings and errors [DOC Changes Only] https://github.com/ARMmbed/mbed-os/pull/4434

    4496: Fix typo in tools code to handle bootloader builds https://github.com/ARMmbed/mbed-os/pull/4496

    4469: 17q2 l4 bootloader - Rebase https://github.com/ARMmbed/mbed-os/pull/4469

    4474: STM32 L0: Add Flash API support - Rebase https://github.com/ARMmbed/mbed-os/pull/4474

    4501: Fix compilation for NCS36510 RF driver. https://github.com/ARMmbed/mbed-os/pull/4501

    4499: Fix rtc api time conversion https://github.com/ARMmbed/mbed-os/pull/4499

    4497: Silicon Labs: Add TRNG support https://github.com/ARMmbed/mbed-os/pull/4497

    4495: NRF52840: TRNG support https://github.com/ARMmbed/mbed-os/pull/4495

    4494: Use absolute paths for bootloader binaries https://github.com/ARMmbed/mbed-os/pull/4494

    4480: rtc_time: Fix incorrect return value when the calendar is not available. https://github.com/ARMmbed/mbed-os/pull/4480

    4471: [Silicon Labs] Fix compile warnings and ticker test failure https://github.com/ARMmbed/mbed-os/pull/4471

    4482: [Silicon Labs] Bugfix for bootloader on Pearl and Mighty Gecko - Rebase https://github.com/ARMmbed/mbed-os/pull/4482

    4489: mbed sdk boot: fix gcc sw init hook attribute https://github.com/ARMmbed/mbed-os/pull/4489

    4481: Add bootloader support stm32f439xI - Rebase https://github.com/ARMmbed/mbed-os/pull/4481

    4476: Add TRNG support for KW41Z https://github.com/ARMmbed/mbed-os/pull/4476

    4473: [Silicon Labs] Enable dynamic heap with ARMCC https://github.com/ARMmbed/mbed-os/pull/4473

    4441: lwip - fix typo and cleanup coding style https://github.com/ARMmbed/mbed-os/pull/4441

    4450: Doxygen template https://github.com/ARMmbed/mbed-os/pull/4450

    4508: Doxygen combined HAL, RTOS, and features/Framework updates to not produce warnings and errors [DOC Changes Only] https://github.com/ARMmbed/mbed-os/pull/4508

    4511: Fix Cortex-M0 devices https://github.com/ARMmbed/mbed-os/pull/4511

    4445: Fixes for exporter issues https://github.com/ARMmbed/mbed-os/pull/4445

    4475: Silicon Labs: Add bootloader support https://github.com/ARMmbed/mbed-os/pull/4475

    4477: Silicon Labs: Fix bug with SPI MISO and CS handling https://github.com/ARMmbed/mbed-os/pull/4477

    4484: STM32L4 Flash support https://github.com/ARMmbed/mbed-os/pull/4484

    4466: Clean up dead classes in retarget layer https://github.com/ARMmbed/mbed-os/pull/4466

    4509: NRF52840: enabled SdBlockDevice capability https://github.com/ARMmbed/mbed-os/pull/4509

    4503: mbed sdk boot: copy vectors addition https://github.com/ARMmbed/mbed-os/pull/4503

    4506: Disable error trapping for mbed 2 builds https://github.com/ARMmbed/mbed-os/pull/4506

    4513: Disabled lwip ethernet ipv6 multicast filter for STM boards https://github.com/ARMmbed/mbed-os/pull/4513

    4472: Silicon Labs: Add flash API support https://github.com/ARMmbed/mbed-os/pull/4472

    4519: Fix mktime test https://github.com/ARMmbed/mbed-os/pull/4519

    4448: Add mbed-os-example-cellular to release data https://github.com/ARMmbed/mbed-os/pull/4448

    4369: Increase DHCP timeout, and rework networking tests logic https://github.com/ARMmbed/mbed-os/pull/4369

    4470: Flash API support using the MCUXpresso drivers https://github.com/ARMmbed/mbed-os/pull/4470

    4490: tests: Reintroduce ticker test. https://github.com/ARMmbed/mbed-os/pull/4490

    4483: Improve error messages for bootloader build errors https://github.com/ARMmbed/mbed-os/pull/4483

    4487: Resolve Realtek device small code space issue https://github.com/ARMmbed/mbed-os/pull/4487

    4536: STM32 - fix bug where sockets stop receiving data https://github.com/ARMmbed/mbed-os/pull/4536

    4543: Fix STM32 crashes on boot due to unset VTOR https://github.com/ARMmbed/mbed-os/pull/4543

    4566: Fix mbed2 failures https://github.com/ARMmbed/mbed-os/pull/4566

    Known Issues

    mbed TLS accepts certificates that use weak signature algorithms

    • Description: mbed TLS accepts X.509 certificates that use the following signature algorithms: md4WithRSAEncryption, md5WithRSAEncryption and sha1WithRSAEncryption. These algorithms are considered weak or unsafe due to the hashing algorithms used.
    • Workaround: For mbed TLS 2.1 and above, the default mbed TLS profile for mbedtls_x509_crt_verify() excludes all these weak algorithms and is safe to use. There are no known workarounds for mbed TLS 1.3.
    • Reported Issue: Received via email.
    • Priority: Critical

    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: https://github.com/ARMmbed/mbedtls/issues/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. Certificate chains relying on IP addresses in subjectAltNames return a BADCERT_CN_MISMATCH error.
    • 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

    Mismatch of root CA and issuer of CRL not caught

    • Description: The x509_crt_verifycrl() function ignores the CRL when the CRL has an issuer different from the subject of the root CA certificate.
    • Workaround: Make sure that the issuer of the CRL and the root CA certificate's subject are the same before passing them to x509_crt_verifycrl().
    • Reported Issue: Reported by a partner.
    • Priority: Major

    mbed TLS causes stack overflow in mbed OS targets

    • Description: The stack memory usage of some mbed TLS features is higher than 4 KB, which may cause stack overflow errors when running in constrained embedded environments with mbed OS, which are particularly limited in RAM.
    • Workaround: The amount of stack required is dependent on the application and what features of the library it chooses to use. More intensive, demanding tasks may not be possible on more limited, constrained devices, so we recommend designing for the limitations of the target device or choosing a device suitable for your application.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-tls/issues/14
    • Priority: Major

    Commissioner does not retransmit message when it receives retransmission

    • Description: There are two issues with DTLS handshake retransmission. First, the joiner fails to correctly parse received records because it does not correctly handle queued retransmissions received. Second, the commissioner may cause a deadlock because it does not retransmit certain records after it receives retransmission as instructed in RFC6347 Section 4.2.4.
    • Workaround: There is no known workaround.
    • Reported Issue: https://github.com/openthread/openthread/pull/1207
    • Priority: Major

    uVisor does not support nested interrupts

    • Description: When running an application with uVisor enabled, nested interrupts are not supported.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/345
    • Priority: Major

    On ARMv7-M targets supporting uVisor, the RTOS runs with the same privilege as uVisor

    • Description: The current architecture of uVisor and of RTX require the RTOS to run with the same privilege as uVisor. As such, the RTOS is considered trusted.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/uvisor/issues/235
    • Priority: Major

    mbed-os-example-client linking fails in ARMCC for Realtek board

    • Description: mbed-os-example-client takes more flash space than reserved for Realtek board. For it to link properly, more code has to move to SDRAM, which is not yet implemented or tested.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/4462
    • Priority: Major

    Mesh networking applications fails to compile with IAR on unsecure platform

    • Description: If the target has not defined a source of hardware entropy, then mbed TLS support is disabled. This leads to compilation warnings on some Nanostack related modules and compilation failure when using IAR toolchain.
    • Workaround: There is no available workaround at the moment.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-mesh-minimal/issues/91
    • Priority: Major

    UARTSerial asserts if debug is enabled

    • Description: UARTSerial attempts to claim a mutex from interrupt context. If debug is not enabled, this fails silently, and the driver works as intended. If debug is enabled, the system stops in the assert.
    • Workaround: Turn off the debug build.
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/4537

    Introduction of RTX/CMSIS 5 has broken semaphore signalling

    • Description: RTX 5 reduced the semaphore count limit from UINT16_MAX to the arbitrary value 1024 and added an assert that would halt if the semaphore count exceeded this limit. This is especially problematic for applications that are using the semaphore for signaling. In RTX 4, the semaphore was the only library-friendly mechanism available for signaling, and in RTX 5 it is still the only option for the C++ layer. This breaks a number of the higher-level APIs.
    • Workaround: None
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/4584
    • Priority: Critical

    Using the release

    You can fetch the latest version of the mbed OS 5.5 release from the mbed-os GitHub repository using the branch “mbed-os-5.5”.

    Please feel free to ask any questions or provide feedback about this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.4.7

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.4.7 release is now available. This release includes a flash API and IAR exporter for nRF52840 plus a number of bug fixes to improve the stability of the code base.

    Known issues

    There are no known issues for this release.

    Fixes and changes

    4284: Improve LWIP random library and TCP sequence number

    4334: Revert partially "Remove Cortex A support from CMSIS/RTOS"

    4395: Allow generic core exports to UVision

    4282: Flash API nRF52840

    4383: #4354 Fix MOTE_L152RC GPIO Write

    4382: Update cmain.S license

    4332: Fix for blockwise observation failure

    4303: Enable IAR exporter for nRF52840

    4324: STM32F3: Remove dependence on a specific flash vector table location

    4393: Race tests: Fix conditional check for MBED_RTOS_SINGLE_THREAD being defined

    4368: MTS_DRAGONFLY_F411RE/MTS_MDOT_F411RE: Add IAR to post_binary_hook toolchains

    4455: Make mbed-coap fixes

    Using the release

    You can fetch the mbed OS 5.4.7 release from the mbed-os GitHub repository, using the tag "mbed-os-5.4.7". Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.4.6

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.4.6 release is now available. This release includes new target support for DISCO_L072CZ_LRWAN1 and RO359B. There is an update of the u-blox ODIN driver to v1.3 rc2 and an update of the STM32 F1 STM32 cube (SDK) to v1.5.0. There are also a number of bug fixes and tool enhancements to improve the quality and stability of the codebase.

    Known issues

    There are no known issues for this release.

    Ports for upcoming targets

    4256: DISCO_L072CZ_LRWAN1: Add a new platform

    4302: [RO359B] Add platform

    Fixes and changes

    4270: ODIN: Disable sleep because it's not compatible with Wi-Fi driver

    4238: lwIP - power up EMAC before reading its settings

    4149: STM32F3: Handle USB ISTR and endpoint registers correctly

    4276: Avoid 03/05 intel-hex records for Nordic devices

    4289: LPC4088: Add "LPC4088Code.binary_hook" to the white list of the embit

    4309: Limit ISR stack to 4k on NUCLEO-F429ZI

    4308: Fix NVIC_SetVector type in HAL for MAX32630FTHR

    4226: [WIZnet][W7500] Add support for mbed OS 5

    4241: [NUC472/M453] Fix serial error with sync/async calls interlaced

    4245: [nRF5 + nRF52840]: Merge nRF52840 to [NRF5] sources

    4272: STM32 NUCLEO boards with Ethernet connector: Solve conflict with D11 arduino pin

    4286: Remove unsupported Coide exports

    4293: Remove duplicate optimization flags in IAR export

    4296: Update STM32 HAL f1 v1.5.0

    4305: Increase STM32 timeout for SPI transfers

    4310: Fix RAM vector table for NCS36510

    4314: Fix timeout units in events timing test

    4263: STM32F4xx: Consider all DMA ready/busy states in conditionals

    4338: u-blox ODIN driver v1.3 RC2 for mbed OS 5

    4353: Add static to nRF5 SDK11 macro definition

    4366: Move duplicated AnalogIn and PwmOut to nRF52 directory

    Using the release

    You can fetch the mbed OS 5.4.6 release from the mbed-os GitHub repository, using the tag "mbed-os-5.4.6". Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.4.5

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.4.5 release is now available. This release includes exporter support for Visual Studio Code and Qt Creator Generic project, LWIP support for LPC4088, some tool updates, plus a number of bug fixes and enhancements to improve the quality of the codebase.

    Fixes and changes

    4059: [Silicon Labs] Rename targets

    4115: Add support for Qt Creator Generic project export and associated Makefile

    3915: Add Visual Studio Code exporter

    4205: [Tests] Race test - add NOT_SUPPORTED for single threaded environment

    4187: [NCS36510] Reduce default heap size allocated by IAR to 1/4 of RAM

    4145: [Test] Add nanostack to examples.json file

    4093: [Update.py] New feature - update a branch instead of a fork, and make general improvements

    4225: Fix missing device_name for xDot, and remove progen

    4243: [Config] Add new line to config header file

    4251: Fix C++11 build error with u-blox EVK-ODIN-W2

    4236: [STM32] Fix warning related to __packed redefinition

    4224: Add mbed new . output to export

    4190: LPC4088: Enable LWIP feature

    4136: Change behavior when bootloader is specified but does not exist

    3881: Remove debug links to printf/exit in NDEBUG builds

    4260: Inherit Xadow M0 target from LPC11U35_501

    4249: Add consistent button names across targets

    4254: Remove unused variable in TARGET_NXP/lpc17_emac.c

    Using the release

    You can fetch the mbed OS 5.4.5 release from the mbed-os GitHub repository, using the tag "mbed-os-5.4.5".

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.4.4

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.4.4 release is now available. This release includes a reworking of the internal ADC channels code for numerous STM boards, a new callback API for CAN, support for the bootloader and FlashIAP for NUC472/M453, plus numerous core software and tools bug fixes to improve and further stabilize the codebase.

    Fixes and changes

    4008: [NUC472/M453] Support bootloader and FlashIAP

    4102: Add SCL and SDA defs for I2C[0-2]; redefine I2C_[SCL,SDA] to I2C2

    4106: Fix a scoping typo in toolchains

    4118: [STM32F4] Rework internal ADC channels

    4126: [STM32F4] Remove SERIAL_TX and SERIAL_RX from available pins

    4069: Update gnuarmeclipse to preprocess linker scripts

    4107: Allow configuration of artifact name in app config

    4122: Fix compiler warning in mbed_retarget.cpp

    4123: Update CAN to new Callback API

    4148: Revert "STM32F4 Internal ADC channels rework"

    4152: [STM32F4] Rework internal ADC channels

    4074: [Silicon Labs] Update pinout

    4133: [U-BLOX_C030] Default XTAL is now 12MHz onboard. Option to use Debug 8MHz

    4141: Fix mbed_board.c compiler warning

    4168: Generate GNU ARM Eclipse .mbedignore file with jinja2

    4170: Fix include paths for Windows builds

    4173: Fix Traceback in CMSIS export

    4142: [EFM32] Fixed pwmout_all_inactive being inversed

    3888: [Tools] Add new examples

    4016: [NRF5] Fix rtc overflow-while-set-timestamp issue

    4031: [STM32] Increase IAR heap size for big RAM targets

    4129: Remove old filesystem test

    4137: [MCUXpresso] Update ARM linker files to eliminate reserving RAM for stack and heap

    4150: Move config system into its own folder and refactor header generation

    4171: Fix typo in lpcxpresso exporter template

    4172: Fail IAR exports without linker scripts with NotSupportedException

    4176: [STM32L4] Rework internal ADC channels

    4184: [Events] Remove strict-aliasing warning

    4192: Fix gcc [-Wsign-compare] warning

    4154: [STM32F7] Rework internal ADC channels

    4174: [NRF52840] Fix rtc overflow-while-set-timestamp issue

    4180: [UBLOX_C030] Create target hierarchy for the specific versions of the C030 board

    4153: [STM32F2] Rework internal ADC channels

    Using the release

    You can fetch the mbed OS 5.4.4 release from the mbed-os GitHub repository, using the tag "mbed-os-5.4.4".

    Please feel free to ask any questions or provide feedback on this release on the forum or to contact us at support@mbed.org.

  • mbed-os-5.4.3

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.4.3 release is now available. This release includes new target support for nRf52840 and UBLOX_C030. There are also a number of bug fixes to improve the stability of the code and improvements to the tools.

    Ports for upcoming targets

    3841: Add nRf52840 target

    3992: Introducing UBLOX_C030 platform

    Fixes and changes

    3951: [NUCLEO_F303ZE] Correct ARDUINO pin

    4021: Fix a macro to detect when RTOS was in use for the NRF52840_DK

    3979: [KW24D] Add missing SPI defines and Arduino connector definitions

    3990: [UBLOX_C027] Construct a ticker-based wait, rather than calling wait_ms(), in the C027 board startup code

    4000: Add some type checking of configs

    4003: Fix OBOE in async serial tx for NRF52 target, fix #4002

    4012: [STM32] Correct I2C master error handling

    4020: [NUCLEO_L011K4] Remove unsupported toolchain files

    4046: [USBHOST] Fix device disconnection from hub during hub port reset

    4049: [Tools] Turn off page alignment of sections

    4065: [K66F] Move bss section to m_data_2 Section

    4014: [Issue 3763] Reduce heap allocation in the GCC linker file

    4030: [STM32L0] Reduce IAR heap and stack size for small targets

    4060: [lpc1768] Remove invalid use of IP_SOF_BROADCAST_RECV option

    4070: Elide adding regions to profile when empty

    4072: Remove superfluous space

    4085: Fix mbed-cli issue #468 and add LPCTargetCode.lpc_patch to POST_BINARY_WHITELIST

    4101: Modify semihost_disabledebug() to support more interface FW revs

    4109: [NUCLEO_L476RG] Make minor serial pin update

    3911: [IAR exporter] Extend debugger settings template with modifiable options needed for Nordic targets

    3982: [Ticker] Fix kl25z bug for handling events in the past

    4112: Only link in LPC17xx ethernet ISR as needed

    4098: Raise error when mbed_app.json is bad

    Using the release

    You can fetch the mbed OS 5.4.3 release from the mbed-os GitHub repository, using the tag "mbed-os-5.4.3".

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.4.2

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.4.2 release is now available.

    This release includes support for the new target EFM32PG12, some driver updates for NUC472/M453, an update for STM32 to Cube version v1.6.0 and TLS hw acceleration (AES ECB) for NUCLEO_F439ZI. There are also bug fixes and improvements to the tools and mbed-os core.

    Ports for upcoming targets

    3934: [Silicon Labs] Update to HAL and devices

    Fixes and changes

    3691: [TLS/hw acceleration] AES ECB for NUCLEO_F439ZI

    3827: Correct return values for I2C::write(int, const char*, int, bool)

    3862: Trap earlier when a Thread instance is reused

    3869: [NCS36510] Default range changed from 0 to 950mV - ADC

    3893: [STM32F7] Update STM32 Cube version v1.6.0

    3895: Use PATH env variable when GCC found in PATH

    3917: Fix mistake register setting in serial_format()

    3931: ARM Pack Manager improvements

    3927: [DELTA_DFBM_NQ620] Add RC calibration setting and revise mbed_overrides.c

    3747: bd: Add randomness to block device test and more debug friendly output

    3918: [NUC472/M453] Support unique locally administered MAC address and other driver updates

    3920: Adjust heap size to work for both tls-client and mbed-client

    3924: Don't set the build_dir to anything on export

    3933: #3593 Add template entry to fix exported project build error

    3953: OS2 tests minor updates for STM32

    3969: [NUCLEO_F302R8] Add missing PB_8/PB_9 CAN pins

    3975: [NSAPI/lwIP] Free held netbuf on close

    3976: mbed-coap error fixes merge to mbed OS

    3968: [Greentea] Fix test code mbed-os-tests-mbed_hal-flash

    3949: Fix C declaration of dir functions and types

    3922: Fix/improve error parsing from API messages

    3939: Update mbed trace

    Using the release

    You can fetch the mbed OS 5.4.2 release from the mbed-os GitHub repository, using the tag "mbed-os-5.4.2".

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.4.1

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.4.1 release is now available.

    This release includes an update of mbed TLS to version 2.4.2, bringing essential and critical security patches, including a fix for CVE-2017-2784. For core mbed OS, there are a number of bug fixes to improve the stability of the code and improvements to the tools.

    Fixes and changes

    3716: fix for issue #3715: correction in startup files for ARM and IAR, alignment of system_stm32f429xx.c files

    3741: STM32 remove warning in hal_tick_32b.c file

    3780: STM32L4 : Fix GPIO G port compatibility

    3831: NCS36510: SPISLAVE enabled (Conflict resolved)

    3832: lwip: Increase timeout on network tests with python projects

    3836: Allow to redefine nRF's PSTORAGE_NUM_OF_PAGES outside of the mbed-os

    3840: STM32: gpio SPEED - always set High Speed by default

    3844: STM32 GPIO: Typo correction. Update comment (GPIO_IP_WITHOUT_BRR)

    3846: STORAGE: removal of unsupported tests having ported to sd-driver repository

    3850: STM32: change spi error to debug warning

    3860: Define GPIO_IP_WITHOUT_BRR for xDot platform

    3875: Add post-build hook white-list to exporters

    3880: DISCO_F469NI: allow the use of CAN2 instance when CAN1 is not activated

    3897: Ignore FuzzyWuzzy warnings

    3898: Prevent underflow in heap size calculation

    3913: [NRF51822] Fix reference to sleep in hal_patch override

    3795: Fix pwm period calc

    3828: STM32 CAN API: correct format and type

    3842: TARGET_NRF: corrected spi_init() to properly handle re-initialization

    3843: STM32L476xG: set APB2 clock to 80MHz (instead of 40MHz)

    3852: Ignore build directory from scan resources

    3866: bd: Fix missing const attributes on functions

    3879: NUCLEO_F446ZE: Add missing AnalogIn pins on PF_3, PF_5 and PF_10.

    3877: Update mbed TLS feature to mbedtls-2.4.2

    3902: Fix heap and stack size for NUCLEO_F746ZG

    3864: Fix mbed 2 builds

    3829: can_write(): return error code when no tx mailboxes are available

    Using the release

    You can fetch the mbed OS 5.4.1 release from the mbed-os GitHub repository, using the tag "mbed-os-5.4.1".

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.4.0

    Downloads: zip tar.gz

    This is the release note for ARM mbed OS 5.4.0. It summarizes the major enhancements in this version.

    You can find the mbed OS 5.4.0 release on GitHub.

    About this release

    mbed OS 5.4.0 incorporates functionality you can use to prepare for the upcoming mbed Cloud device management services. This includes bootloader and filesystem infrastructure and the certified Thread 1.1 stack for developers. In addition, this release contains many minor fixes and enhancements and brings target platform support up to 74 targets.

    The following sections provide more details about this release.

    Core

    mbed OS 5.4 adds flexible filesystem support to address the needs of IoT applications requiring storage within the end node. This release already includes a FAT filesystem implementation for removable media, such as SD cards, and future releases will add embedded flash filesystems and encryption.

    The filesystem is integrated with the C standard libraries of the ARM, IAR and GCC compilers. It is available for use across all mbed Enabled platforms.

    The release also includes early access to the mbed OS bootloader, so partners can add support for their targets' flash controllers. This forms part of the support for the upcoming mbed Cloud Update service, which allows managing device firmware update campaigns.

    To read the documentation, see file system and bootloader.

    Connectivity

    mbed OS 5.4 uses the recently certified mbed Thread 1.1 stack to provide solutions for building end nodes and border routers.

    A Linux-based Access Point reference that uses the Thread border router is also available.

    The mbed OS LoRaWAN APIs are available for partner feedback and integration.

    Security

    The mbed crypto libraries in mbed TLS include all the internal partner APIs and documentation for enabling hardware entropy and symmetric and asymmetric cryptographic acceleration. Partners are working on implementations for their target platforms, and a partner workshop will support them. We expect support for the first set of targets in 5.5.

    Upcoming

    The feature branch work on our CMSIS5 and CMSIS-RTOS2 upgrade is nearing completion, so testing will begin soon after the release of 5.4. We are aiming for inclusion on mainline for 5.5.

    Throughout the year, we also plan a program of upgrading supported compilers to ensure the latest features and fixes from the different ARM compilers are available to developers; this will mean supporting ARM GCC Embedded 6, ARM Compiler 6 and IAR Embedded Workbench 8.

    If you would like to be involved in helping test any of these upgrades to help minimize the effect on developers, please contact us.

    Targets

    Thanks to our partners’ hard work, mbed OS 5.4 now supports 74 target platforms.

    We will continue to add new targets in our biweekly releases as partners introduce support.

    Fixes and changes

    Please see the mbed-os GitHub repository referenced below for a full list of changes introduced in this release.

    Known Issues

    Online IDE does not support multiple binary production

    • Description: Compiling an application with bootloader only produces the standalone application binary. It should produce the composite binary.

    • Workaround: Use mbed CLI.

    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-bootloader-blinky/issues/4

    • Priority: MAJOR

    mbed TLS causes stack overflow in mbed OS targets

    • Description: The stack memory usage of some mbed TLS features is higher than 4 KB, which may cause stack overflow errors when running in constrained embedded environments with mbed OS, which are particularly limited in RAM.

    • Workaround: The amount of stack required depends on the application and what features of the library it chooses to use. More intensive, demanding tasks may not be possible on more limited, constrained devices, so we recommend designing for the limitations of the target device or choosing a device suitable for your application.

    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-tls/issues/14

    • Priority: MAJOR

    mbed TLS DTLS renegotiation checks also compare record epoch value

    • Description: The TLS renegotiation routines execute after the DTLS record sequence number for incoming or outgoing messages has exceeded a user-defined period. According to the RFC 6347 Section 4.3.1, the record sequence is a 6 byte unsigned integer, but the mbed TLS function ssl_check_ctr_renegotiate() compares 8 bytes. The additional 2 bytes correspond to the record epoch value, which may result in the incorrect execution of the renegotiation routines.

    • Workaround: There is no known workaround for this issue.

    • Reported Issue: https://github.com/ARMmbed/mbedtls/issues/687

    • Priority: MAJOR

    mbed TLS server does not check that TLS_FALLBACK_SCSV is the last cipher suite

    • Description: An mbed TLS server does not check that the TLS_FALLBACK_SCSV value is the last element in the cipher suites part of the ClientHello message. Note that RFC7505 Section 4 states that placing the SCSV at that position is a SHOULD for the client. However, the server behavior description in RFC7505 Section 5 does not prescribe anything regarding the location of the TLS_FALLBACK_SCSV in the ClientHello.

    • Workaround: There is no known workaround for this issue.

    • Reported Issue: https://github.com/ARMmbed/mbedtls/issues/810

    • Priority: MAJOR

    mbed TLS commissioner does not retransmit message when it receives retransmission

    • Description: There are two issues with DTLS handshake retransmission. First, the joiner fails to correctly parse received records because it does not correctly handle queued retransmissions received. Second, the commissioner may cause a deadlock because it does not retransmit certain records after it receives retransmission as instructed in RFC6347 Section 4.2.4.

    • Workaround: There is no known workaround.

    • Reported Issue: https://github.com/openthread/openthread/pull/1207

    • Priority: MAJOR

    Using the release

    You can fetch the mbed OS 5.4.0 release from the mbed-os GitHub repository using the tag “mbed-os-5.4.0”.

    Please feel free to ask any questions or provide feedback about this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.3.6

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.3.6 release is now available.

    This release includes a number of bug fixes to improve stability.

    Fixes and Changes

    3590: [NUC472/M453] Export IAR project and other bugfixes

    3740: STM32L4 HAL update for RTC Wake Up Timer

    3739: STM32F7 : remove multiple HSE_VALUE define value

    3759: STM32: spi_frequency table index fix

    3760: Fix #3756 for 64 bytes transfers

    3779: NCS36510: Fix the sporadic semaphore timing issue

    3806: NXP KL43Z/KL27Z: fix spi format bits check

    3814: NCS36510: I2C idle delay of 1us

    3803: Bug fix of initial value of interrupt edge in "gpio_irq_init" again

    Using the release

    You can fetch the mbed OS 5.3.6 release from the mbed-os GitHub repository, using the tag "mbed-os-5.3.6".

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.3.5

    Downloads: zip tar.gz

    We are pleased to announce that the mbed OS 5.3.5 release is now available.

    Fixes and Changes

    3432: Target STM USBHOST support

    3181: NUCLEO_F207ZG extending PeripheralPins.c: all available alternate functions can be used now

    3624: Fix Stack stats by running the test command with "-DMBED_HEAP_STATS_ENABLED=1"

    3626: NUCLEO_F412ZG : Add USB Device +Host

    3628: Fix warnings

    3629: STM32: L0 LL layer

    3632: IDE Export support for platform VK_RZ_A1H

    3642: Missing IRQ pin fix for platform VK_RZ_A1H

    3653: Adding fatal error detection to toolchains

    3661: [Exporters] Add core to uvision exporter template

    3664: Fix ncs36510 sleep definitions

    3655: [STM32F4] Modify folder structure

    3657: [STM32L4] Modify folder structure

    3658: [STM32F3] Modify folder structure

    3685: STM32: I2C: reset state machine

    3689: Updated to allow for new directory structure for mbed-dev source.

    3718: Fixing uvisor defines to fix build issues

    3692: uVisor: Standardize available legacy heap and stack

    3621: Fix for #2884, LPC824: export to LPCXpresso, target running with wron

    3649: [STM32F7] Modify folder structure

    3669: Adding case insensitive 'error' detection

    3695: Enforce device_name is valid in targets.json

    3717: Add IAR export support for NUCLEO_F207ZG

    3723: NCS36510: spi_format function bug fix

    3727: Fix access before variable defined bug in test_api

    3708: [NUC472/M453] Fix USB EP setting error in USBAudio

    Using the release

    You can fetch the mbed OS 5.3.5 release from the mbed-os GitHub repository, using the tag "mbed-os-5.3.5".

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.3.4

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.3.4 release is now available.

    This release includes:

    • New target support for DISCO_F769NI, DELTA_DFCM_NNN50 and MAX32630FTHR.
    • Miscellaneous tool updates and fixes.

    Known Issues

    No known issues for this release.

    Ports for Upcoming Targets

    3571: DISCO_F769NI introduction

    3605: Add DELTA_DFCM_NNN50 platform

    3640: [MAX32630FTHR] Adding new platform

    Fixes and Changes

    3397: Add uVisor support for the DISCO_F429ZI

    3573: fix failing RTC initialization for MTS_DRAGONFLY_F411RE

    3575: Dev stm factorize gpio

    3584: STM32: make PeripheralPins.h a common file

    3583: STM32F7 Cube FW new release v1.5.1

    3534: Turn on debugging by default when exporting. Remove optimizations for IAR and Uvision

    3560: Refactor scan resources to account for base_paths

    3574: Fix invalid assert in exporters

    3578: Target system - Inherit names from target parents

    3586: Linking to latest

    3587: Fixing toolchain executable not found error for build.py

    3588: arm-pack-manager - fix tracebacks

    3594: Allow user overrides of LINKER_SCRIPT Make variable

    3599: K22F: Enable TRNG

    3600: [toolchains] Refactor sys libs

    3603: Delete testing_mbed_OS_5.md

    3604: Renaming test_env.cpp in greentea to avoid warning

    3608: Exporters: make jinja engine strict

    3612: tests: Fix error on MacOS for udp_dtls_handshake test

    3613: README: Build info; Docs version updated

    3614: STM32: make PortNames.h a common file

    3617: EFM32GG: Fix GCC_ARM linker script

    3618: STM32: Move types definitions to a common file

    3601: Clean export dir

    3630: Delete mbed_targets.md

    3631: F3 CUBE update V1.7.0

    3635: STM32 I2C : Fix bug in i2c_byte_read function

    3651: Max32630 - fix LED4

    Using the release

    You can fetch the mbed OS 5.3.4 release from the mbed-os GitHub repository, using the tag "mbed-os-5.3.4".

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.3.3

    Downloads: zip tar.gz

    We are pleased to announce that the mbed OS 5.3.3 release is now available.

    This release includes numerous fixes to code and tools (listed below).

    Known Issues

    There are no known issues for this release.

    Fixes and Changes

    3470: [RZ/A1H]Support RTX v4.80 for Cortex-A and a few Malloc API

    3488: Dev stm i2c v2 unitary functions

    3492: Fix #3463 CAN read() return value

    3503: [LPC15xx] Ensure that PWM=1 is resolved correctly

    3504: [LPC15xx] CAN implementation improvements

    3513: NUCLEO_F412ZG - Add platform in RTOS tests + build_travis

    3514: [NUC472/M453] Remove Tab in USB HAL

    3518: Preventing app_config from clobbering CLI macros

    3526: lwip - Fix static IP address issues with IPv4

    3531: Correctly format include paths for eclipse export

    3537: Remove default -m and -i options for project.py

    3538: Remove deprecated clean argument

    3539: NUCLEO_F412ZG - Add support of TRNG peripheral

    3540: STM: SPI: Initialize Rx in spi_master_write

    3438: K64F: Add support for SERIAL ASYNCH API

    3521: Repair the Emblocks exporer and rename to EmBitz

    3550: events - Fix overflow of timeout on STM32F4

    3559: exporters - group by directories in prj root

    3519: MCUXpresso: Fix ENET driver to enable interrupts after interrupt handler is set

    3528: Modify update command to directly edit the mbed-os.lib files for each example

    3532: Eclipse debug fixes (build w/ DEBUG=1 and load symbols)

    3544: STM32L4 deepsleep improvement

    3546: NUCLEO-F412ZG - Add CAN peripheral

    3547: Add support for ethernet-only configuration with Nanostack.

    3551: Fix I2C driver for RZ/A1H

    3562: Alphabetize UVision groups

    3558: K64F UART Asynch API: Fix synchronization issue

    3563: LPC4088 - Fix vector checksum

    3567: Dev stm32 F0 v1.7.0

    3577: Fixes linking errors when building with debug profile

    Using the release

    You can fetch the mbed OS 5.3.3 release from the mbed-os GitHub repository, using the tag "mbed-os-5.3.3".

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.3.2

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.3.2 release is now available.

    This release includes:

    • New target support for UBLOX_EVK_NINA_B1.
    • A rename of the KSDK2 package to MCUXpresso.
    • CAN support for the DISCO_F303VC.
    • A number of bug fixes and improvements.

    Ports for Upcoming Targets

    3459: Target: Add new target UBLOX_EVK_NINA_B1

    Fixes and Changes

    3430: Fix ci shield eeprom test

    3381: STM32F1 : map ST HAL assert into MBED assert

    3389: STM32F2 : map ST HAL assert into MBED assert

    3390: STM32F3 : map ST HAL assert into MBED assert

    3402: nsapi - Fixed open/close issue in Socket

    3410: STM32L4 : map ST HAL assert into MBED assert

    3422: Enable CAN on DISCO_F303VC

    3428: Change slave address in I2C master slave asynch test

    3442: Dev stm i2c f1

    3450: Correctly filtering examples in test script

    3460: KSDK I2C: Update the return value to match the API documentation change

    3478: Delete TESTING.md

    3477: Delete COMMITTERS.md

    3479: Delete Toolchain_Profiles.md

    3480: Delete config_system.md

    3481: Delete memap.md

    3339: USB audio callback rx and tx

    3472: [RZ/A1H]Fix TTB setting of RO_DATA area

    3439: Remove unused arguments from detect targets

    3451: Rename KSDK2 to MCUXpresso. This is the new name of this package

    3469: Remove invalid thread::start example

    3391: STM32F4 : map ST HAL assert into MBED assert

    3454: STM32: Refactor lp_ticker.c + rtc_api.c + sleep.c + rtc_api_hal.h files

    3457: [ONME-2844] Supporting non-blocking connect()

    3458: [ONME-2844] Avoid option level collisions

    3484: Limiting the thread stack for parallel threads test

    3486: Move clean functionality out of the export api

    3493: Delete events.md

    3494: Delete ignoring_files_from_build.md

    3476: Removing default toolchain paths

    3489: NUCLEO_F103RB - Correct CAN and PWM alternate-functions

    3405: Repair the transmit mailbox (0,1,2) empty interrupt flag not clear BUG

    3473: Stm32f7 ethernet fix for IAR issue #3387

    3475: Delete BUILDING.md

    3483: Improve error message when exporting for make without a linker script

    3490: Fix deprecated Thread ctor usage in RTOS tests

    3502: MCUXpresso I2C: Handle 0 byte write

    3500: Update mbed-client-c version 3.0.4

    3365: [NUC472/M453] Support USB device

    Using the release

    You can fetch the mbed OS 5.3.2 release from the mbed-os GitHub repository, using the tag "mbed-os-5.3.2".

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.3.1

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.3.1 release is now available.

    This release includes target support for FRDM-KW41 and mbed Enabled Maker board with NINA-B1 and EVA-M8Q. There are also bug fixes and tool fixes. Please see below for a list of the changes.

    Ports for Upcoming Targets

    3241: Add support for FRDM-KW41

    3291: Add mbed Enabled Maker board with NINA-B1 and EVA-M8Q

    Fixes and Changes

    3062: TARGET_STM :USB device FS

    3114: Fix issue with unrecognized uvision file types

    3213: STM32: Refactor us_ticker.c + hal_tick.c files

    3274: Pass toolchain path info to subprocesses

    3283: Remove remaining references to Curl from ARM pack manager

    3288: Dev spi asynch l0l1

    3289: Bug fix of initial value of interrupt edge in "gpio_irq_init" function.

    3302: STM32F4 AnalogIn - Clear VBATE and TSVREFE bits before configuring ADC channels

    3305: Support building mbed_critical.c with C++ compiler

    3320: STM32 - Add ADC_VREF label

    3321: no HSE available by default for NUCLEO_L432KC

    3352: ublox eva nina - fix line endings

    3322: DISCO_L053C8 doesn't support LSE

    3345: STM32 - Remove TIM_IT_UPDATE flag in HAL_Suspend/ResumeTick functions

    3309: [NUC472/M453] Fix CI failed tests

    3157: [Silicon Labs] Add support for EFR32MG1 wireless SoC

    3301: I2C - correct return values for write functions (docs) - part 1

    3303: Fix #2956 #2939 #2957 #2959 #2960: Add HAL_DeInit function in gpio_irq destructor

    3304: STM32L476: no HSE is present in NUCLEO and DISCO boards

    3318: Register map changes for RevG

    3330: Fix project profile parsing

    3336: Squashed 'features/FEATURE_LWIP/lwip-interface/lwip/' changes from d7

    3349: [Exporters] Fix generic ARM CPU target in uvision

    3350: [Exporter docs] index.json update instructions

    3317: NUCLEO_F429ZI has integrated LSE

    3312: K64F: SPI Asynch API implementation

    3324: Dev i2c common code

    3331: Enabled example export building for more examples

    3347: USB_4 : test OK with IAR ,GCC_ARM(limitation to ARM not needed)

    3355: IAR export will not fail in the absence of a CMSIS pack

    3362: Increase stack size in malloc test for Cortex-A

    3369: Add CAN2 missing pins for connector CN12

    3377: STM32 NUCLEO-L152RE Update system core clock to 32MHz

    3378: K66F: Enable LWIP feature

    3382: [MAX32620] Fix serial readable function.

    3399: NUCLEO_F103RB - Add SERIAL_FC feature

    3409: STM32L1 : map ST HAL assert into MBED assert

    3416: Rename i2c_api.c for STM32F1 targets to fix IAR exporter

    3368: CFSTORE fixes for building with DEBUG trace enabled

    3348: Fix frequency function of CAN driver.

    3366: NUCLEO_F412ZG - Add new platform

    3379: STM32F0 : map ST HAL assert into MBED assert

    3385: Remove deprecated flags args

    3393: ISR register never re-evaluated in HAL_DMA_PollForTransfer for STM32F4

    3408: STM32F7 : map ST HAL assert into MBED assert

    3411: STM32L0 : map ST HAL assert into MBED assert

    3413: Deduplicate IAR exporter templates and enable a few more targets

    3414: Remove unnecessary absolute paths from IAR and ARM compilers

    3415: [make exporters] Add quotes to echo statements

    3424: STM32F4 - FIX to add the update of hdma->State variable

    3427: Fix stm i2c slave

    3429: Fix stm i2c fix init

    3434: [NUC472/M453] Fix stuck in lp_ticker_init and other updates

    3436: Fix network echo test host scripts for Mac

    Using the release

    You can fetch the mbed OS 5.3.1 release from the mbed-os GitHub repository, using the tag "mbed-os-5.3.1". Please feel free to ask any questions or provide feedback on this release on the forum or to contact us at support@mbed.org.

  • mbed-os-5.3.0

    Downloads: zip tar.gz

    This is the release note for mbed OS 5.3.0, summarizing the major enhancements in this version.

    You can find the mbed OS 5.3.0 release on GitHub.

    About this release

    This release makes available early versions of key new features we are working on in development branches, alongside many enhancements and bug fixes to our stable release codeline. These new features will be of particular interest to partners and developers who would like to observe and contribute to their development ahead of them being made generally available.

    The new feature developments made available are:

    You can follow our development of these features - and contribute to them - by working with the feature branches linked above.

    In addition, the main mbed OS 5.3 release includes a number of fixes since 5.2 and now supports 70 target platforms.

    The following sections provide more details of these and other changes in this release.

    Core

    A first functional integration of the next generation CMSIS5 libraries, including the new CMSIS-RTOS2 RTOS kernel. This upgrade is integrated under the mbed OS Peripheral and RTOS APIs such that it will have little or no impact on developers, but provides important enhancements that can be taken advantage of internally.

    These enhancements include:

    • Primitives and integration points for supporting TrustZone for Cortex-M and mbed uVisor
    • Improved RTOS kernel
    • Support for ARM Compiler 6
    • Many patches and modifications that mbed OS had made to CMSIS4 and CMSIS-RTOS now incorporated directly in to the CMSIS5 and CMSIS-RTOS2 codebases

    This allows tracking of the latest CMSIS5 development, and will be brought in to the mainline release when it is ready. Impact on end developers when this happens should be very limited, but open up further opportunities for mbed OS functionality and portability.

    Security

    Building on the Hardware Entropy work in mbed OS 5.2, mbed OS 5.3 adds the integration points for implementing Hardware Acceleration on different target platforms. This support extends to both Symmetric and Asymmetric encryption operations, and when implemented for a target will transparently provide benefit for developers directly or indirectly using functions that rely on TLS/DTLS or other Cryptographic operations.

    Partners looking to provide implementations for their targets should contact their ARM Partner Enablement representative for guidance, such that support can be made available for developers using their platforms in future mbed OS releases.

    Connectivity

    New LoRaWAN APIs are introduced to provide native development support for LoRaWAN applications on any mbed Enabled LoRa hardware. These APIs are available for partners and developers to analyze and help refine whilst the full mbed OS LoRaWAN stack is integrated, ahead of making it available as part of our mainline release. In particular, please contact us if you have an interest in LoRa and LoraWAN as a module manufacturer, OEM product developer or network provider.

    Wi-Fi support has also been further improved, with built in support for both the u-blox ODIN-W2 and Espressif ESP8266 modules. Look out for further partner support, which will become available in patch releases.

    Targets

    Thanks to our partners’ hard work, mbed OS 5.3 supports 70 targets platforms.

    We will continue to add new targets in our bi-weekly releases as partners introduce support.

    Fixes and Changes

    Please see the mbed-os GitHub repository referenced below for a full list of changes introduced in this release.

    Known Issues

    [Beetle] BLE scan doesn't work on BLE.

    • Description: On the beetle board, BLE scanning doesn't work and the scan procedure will never report any advertisement even if the procedure has been successfully launched.
    • Workaround: None
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/3400

    Odin Ethernet requires configuration

    • Description: The default network interface for the Odin is Wi-Fi.
    • Workaround: Make Ethernet the default interface by removing “EMAC” from “device_has” in targets.json
    • Reported Issue: https://github.com/ARMmbed/mbed-os/issues/3419

    sockets do not work for NUCLEO_F746ZG using IAR toolchain

    NUMAKER_ PFM_NUC472 does not work with uvision

    mbed TLS causes stack overflow in mbed OS targets

    • Description: The stack memory usage of some mbed TLS features is higher than 4 KB, which may cause stack overflow errors when running in constrained embedded environments with mbed OS which are particularly limited in RAM.
    • Workaround: The amount of stack required is very dependent on the application, and what features of the library it chooses to use. Obviously more intensive, demanding tasks may not be possible on more limited, constrained devices, so we recommend designing for the limitations of the target device, or choosing a device suitable for your application.
    • Reported Issue: https://github.com/ARMmbed/mbed-os-example-tls/issues/14

    DTLS renegotiation checks also compares record epoch value

    • Description: The TLS renegotiation routines are executed after the DTLS record sequence number for incoming or outgoing messages has exceeded a user-defined period. According with the RFC 6347 Section 4.3.1 the record sequence is an 6 byte unsigned integer, but the mbed TLS function ssl_check_ctr_renegotiate() compares 8 bytes. The additional 2 bytes correspond to the record epoch value, which may result in the incorrect execution of the renegotiation routines.
    • Workaround: There is no known workaround for this issue.
    • Reported Issue: https://github.com/ARMmbed/mbedtls/issues/687

    Using the release

    You can fetch the mbed OS 5.3.0 release from the mbed-os GitHub repository, using the tag “mbed-os-5.3.0”.

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.2.3

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.2.3 release is now available.

    This release includes a number of fixes and additional tests, along with adding I2C_ASYNCH capability for NUCLEO_F410RB and DISCO_F469NI, and support for a single UART shared by multiple serial objects on NUC472/M453.

    Known Issues

    3314: TLS handshake fails using WiFi in mbed OS 5.2.3

    Fixes and Changes

    3087: Update pack-derived files, and add safely test to uVision exporter

    3113: Add static assert macro

    3127: Fixed the issue about push/pop of VFP register.

    3176: Modifying micro:bit pin names to mirror micro:bit edge connector

    3202: Fix arithmetic error in rtos-based wait

    3205: [Exporter tests] Export only

    3207: Add mbed OS version macros

    3208: [example tests] Adding a clone and a deploy step to allow optimizations in CI.

    3206: [Exporter/compile tests] Examples test filters

    3010: Add .hpp to list of Uvision Exporter extensions

    3160: Fix wrong index at LPC43xx tx end ring assignment

    3247: WiFi: Minor fixes to docs and includes

    3232: nsapi - Fix missing NSAPI_UNSPEC check in gethostbyname for ip literals

    3222: [Export - Make] Add message that informs the user which hex to flash

    3220: rtos - Mark the RtosTimer class as deprecated

    3217: Add I2C_ASYNCH capability for DISCO_F469NI

    3211: [NUC472/M453] Support single UART shared by multiple serial objects and other updates

    3198: NUCLEO_F410RB: Add I2C_ASYNCH capability

    3194: Update K64 sdk drivers

    3191: Fix lwip_mac_address buffer overflow and set_ip_bytes out of bound access

    3188: [Exporters] Append targets to scan list for exporting tests

    3159: User trim values for NCS36510

    3243: Fix make exporters compilation

    3229: [Tools - Toolchains] Allow dependency parsing to fail, gracefully continuing

    3231: STM32F3: DISCO_F303VC - Add missing UART and ADC pin muxing options

    3233: K20xx Calculate PWM clock relative to bus clock

    3237: Added back USART 6 pins

    3248: test i2c slave: use standard Arduino pins for NUCLEO_F411RE

    3250: Change MBED_DEPRECATED def order to support Keil 4

    3253: Fix default polarity on LPC43XX PWM driver

    3257: Baudrate in test spec

    3258: Prevent process pool inside of process pool when building tests

    3065: nsapi - Remove assertions on same-thread send/recv

    3238: Dev i2c stm32f4hal

    3244: callback - Relax type-deduction in callback class

    3251: Dev stm32l0 cube v1.7.0

    3252: [NORDIC - NRF51 - MBED 2] Fix non handled RTC IRQ

    3262: Add API which cleans Dcache in IAR compiler.

    Using the release

    You can fetch the mbed OS 5.2.3 release from the mbed-os GitHub repository, using the tag "mbed-os-5.2.3".

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.2.2

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.2.2 release is now available.

    This release includes support for new targets: Sara-N, MAX32625, FRDM-K82F and k22512.

    Other key highlights are:

    • Implementation of the API for serial port flow control in NRF51 targets.

    • Support for 6LoWPAN PAN ID filter added to mbed mesh API configuration.

    • Updated u-blox ODIN-W2 drivers.

    • A number of bug fixes and tool improvements.

    Known issues in this release

    There is currently a DNS resolution failure in Thread mode. This causes a failure in the mbed-os-example-client and will be fixed in a subsequent release. This can be worked around by reverting to mbed-os-5.2.0.

    Ports for Upcoming Targets

    3011: Add u-blox Sara-N target.

    3099: MAX32625

    3151: Add support for FRDM-K82F

    3177: New mcu k22512 fixing pr 3136

    Fixes and Changes

    2990: [tools] Parallel building of tests

    3008: NUCLEO_F072RB: Fix wrong timer channel number on pwm PB_5 pin

    3013: STM32xx - Change how the ADC internal pins are checked before pinmap_

    3023: digital_loop tests update for STM32

    3041: [nRF5] - added implementation of API of serial port flow control configuration.

    3092: [tools + tests] Adding parallelized build option for iar and uvision exporters

    3084: [nrf5] fix in Digital I/O : a gpioe pin was uninitialized badly

    3009: TRNG enabled. TRNG APIs implemented. REV A/B/C/D flags removed. Warnings removed

    3139: Handle [NOT_SUPPORTED] exception in make.py

    3074: Target stm init gcc alignement

    3140: [tests] Replacing getchar with RawSerial getc in greentea-client

    3158: Added support for 6lowpan PAN ID filter to mbed mesh api configuration

    2988: Update of can_api.c fixing #2987

    3175: Updating IAR definition for the NCS36510 for IAR EW v7.8

    3170: [tests] Preventing test from printing before Greentea __sync

    3169: [Update of #3014] Usb updates

    3143: CFStore fix needed for the Cloud Client

    3135: lwip - Fix memory leak in k64f cyclic-buffer overflow

    3048: Make update.py test compile examples prior to updating mbed-os version.

    3162: lwip/nsapi - Clean up warnings in network code

    3161: nsapi - Add better heuristic for the default record of DNS queries

    3173: [Exporters] Add a device_name to microbit entry in targets.json

    3072: i2c_loop tests update for STM32

    2958: Allowing mbed_app.json files to be discovered for tests.

    2969: [nRF52] - switch irq priorities of driver handlers to the lowest level

    3078: lwip: Allow several configuration macros to be set externally (bis)

    3165: Add address type checks to NanostackInterface

    3166: nsapi_dns: Provide 2 IPv6-hosted default servers

    3171: [tools] Fixing project.py -S printing problem

    3172: [Exporters] New export-build tests

    3184: #3183 Compiler warning in trng_api.c with K64F

    3185: Update tests to fix build failures. Also make the code similar to oth

    3104: [NuMaker] Support CAN and fix PWM CLK error

    3182: Exporter documentation

    3186: MultiTech mDot - add back SPI3 pins

    3187: [Export-Make] Use internal class variable for resolving templates in makefiles

    3195: [Exporters - Make-based] Quote the shell call in mkdir and rmdir

    3204: [Export build-test] Directory traversal error

    3189: [Exporters - Make-based] Force make exporter to search PATH for compilers

    3200: Using Popen for uVision and unifying the structure of the build function

    3075: nsapi - Add standardized return types for size and errors

    3221: u-blox odin w2 drivers update

    Using the release

    You can fetch the mbed OS 5.2.2 release from the mbed-os GitHub repository, using the tag "mbed-os-5.2.2".

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.2.1

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.2.1 release is now available.

    Fixes and Changes

    2966: Add kw24 support

    3068: MultiTech mDot - clean up PeripheralPins.c and add new pin names

    3089: Kinetis HAL: Remove clock initialization code from serial and ticker

    2943: [NRF5] NVIC_SetVector functionality

    2938: InterruptIn changes in NCS36510 HAL.

    3112: events - Remove unused variable warning in ndebug builds

    2953: nsapi - Fix leftover bytes from suffix during ipv6 parsing

    3108: Fix sleep function for NRF52.

    3076: STM32F1: Correct timer master value reading

    3085: Add LOWPOWERTIMER capability for NUCLEO_F303ZE

    3093: [SDFileSystem] Enable / Disable serial debug.

    3097: Arm-Pack-Manager Remove pycurl dependency

    3046: [BEETLE] Update BLE stack on Beetle board

    3005: New build profile and docs

    3122: [Silicon Labs] Update of Silicon Labs HAL

    3022: OnSemi RAM usage fix

    3121: STM32F3: Correct UART4 and UART5 defines when using DEVICE_SERIAL_ASYNCH

    2897: nsapi - Standardize support of NSAPI_UNSPEC

    3024: analog_loop tests update for STM32

    3142: Targets- NUMAKER_PFM_NUC47216 remove mbed 2

    Using the release

    You can fetch the mbed OS 5.2.1 release from the mbed-os GitHub repository, using the tag "mbed-os-5.2.1".

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.2.0

    Downloads: zip tar.gz

    This is the release note for mbed OS 5.2.0, summarizing the major enhancements in this version.

    You can find the mbed OS 5.2.0 release on GitHub.

    About this release

    This release builds on the significant enhancements that came in mbed OS 5.1 to add the following headline features:

    • WiFi SoCs and Modules – mbed OS now supports flexible integration for different SoC, Module and Network Processor WiFi architectures, opening up fully integrated platforms as development targets. As part of this work, the IP stack has also been upgraded to the latest LwIP version (2.0), bringing support for both IPv4 and IPv6 to Ethernet and WiFi targets.

    • Hardware Entropy – mbed OS now supports integration of Hardware Entropy sources, essential for strong platform security. Partners with targets containing True Random Number Generators (TRNGs) have already been integrating support so developers will be able to automatically take advantage of enhanced security.

    • Memory Profiling - mbed OS core components and tools have received a number of enhancements to allow memory footprint tracking and analysis. This includes runtime tools for tracking of dynamic memory utilisation and heap information, and stack checking to trap stack over-runs.

    mbed OS 5.2 also extends target support to over 60 target platforms.

    The following sections provide more details of these and other changes in this release.

    Core

    An Events library is now part of the core platform, providing simple primitives for scheduling one-time or repeating events. The library can act as a drop-in scheduler, provide synchronization between multiple threads, or just act as a mechanism for moving events out of interrupt contexts.

    We have added dynamic memory profiling features, allowing tracing the maximum heap usage at runtime, as well as invoking callbacks on each memory operation for more sophisticated annotation. Statistics, including current and maximum bytes allocated and the number of allocations, give visibility of the dynamic memory behavior that can be used in test regression scripts, alongside the existing static memory footprint analysis information.

    Security

    A portable HAL adds support for strong hardware entropy sources such as on-chip True Random Number Generators (TRNGs). These are used as part of the entropy pool the security functions of mbed OS rely on, ensuring each platform uses the maximum hardware-based security it can provide.

    Cipher-based Message Authentication Code (CMAC) support is added, and used in the mbed OS Thread stack.

    The version of mbed TLS integrated within mbed OS has been upgraded to the latest version (2.4.0). For more details, see the mbed TLS 2.4.0 release note.

    Connectivity

    We have introduced support for different WiFi hardware architectures, enabling mbed OS to run on integrated WiFi SoCs and modules as well as work with companion WiFi network processors. This provides hardware design flexibility, and opportunities for significant BOM and complexity reduction, by running mbed OS on the WiFi modules themselves.

    The developer-facing WiFi APIs use the existing mbed OS socket interfaces (used by all IP networking) and network control features. The APIs bring up an interface, including setting the security credentials, scanning for available network access points and to read the signal strength (RSSI) for the current active connection.

    This release introduces support for the u-blox ODIN-W2 integrated WiFi module. We are actively working with a number of other WiFi partners that will be introducing support for their WiFi targets in forthcoming patch releases.

    The core IP stack used in mbed OS for Ethernet and WiFi has been upgraded to LwIP 2.0, bringing support for both IPv4 and IPv6. This complements our mesh networking stack, already optimised for providing 6LoWPAN and Thread networking support for 2.4GHz and Sub-GHz 802.15.4 radios.

    Services

    The mbed Device Connector Client is now delivered as a separate module that will be updated as new mbed device management services are introduced.

    Tools and workflow

    The mbed CLI tool has had numerous updates and improvements. For more details, see the mbed CLI repository.

    The tools now support toolchain profiles, in particular to enable simple debug and release configurations.

    The Online IDE now supports git and GitHub repositories, so you can use both mercurial and GitHub distributed version control systems.

    The export mechanism supporting project generation for different toolchains and IDEs has been redeveloped to be more versatile and scalable, and now uses CMSIS-Packs for target information. When exporting to MDK and IAR, the corresponding target CMSIS-Packs must be available. Known issues include limited target coverage, needing additional configuration steps in IDEs to have projects fully functional, and exporters for Make may have linking errors where archives are used. We will be working with our silicon and tools partners to improve target coverage and project generation in future patch releases.

    mbed Enabled

    The mbed Enabled program continues to provide compliance criteria and technical requirements for boards, on-board interfaces and end products. It is unchanged for mbed OS 5.2, but we expect to introduce stricter requirements for Hardware Entropy support in future releases.

    The following resources are available:

    Targets

    Thanks to our partners’ hard work, mbed OS 5.2 has been extended to support over 60 targets.

    We will continue to add new targets in our bi-weekly releases as partners introduce support. If you are a partner, please see details in the Partner Portal.

    Known Issues

    • UBLOX_EVK_ODIN_W2 - mbed-os-example-client - no connection established when using WiFi.
    • ARM_BEETLE_SOC does not support IAR and uVision export.
    • ARCH_PRO does not flash in uVision (missing flash algorithm).
    • NUCLEO_F401RE export for uVision is not supported.
    • UBLOX_EVK_ODIN_W2 - The WiFi driver on u-blox ODIN-W2 enables a range of weak cryptographic primitives in mbed TLS to support legacy protocols. This can make the TLS connection vulnerable too, and could be subject to a downgrade attack. It is therefore not recommended to use mbed TLS on this platform for production use.

    Getting Started

    To get started with this release, see the Handbook.

  • mbed-os-5.1.5

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.1.5 release is now available.

    This release includes extended IAR support, uVisor on Beetle and fixes to the exporting process.

    Ports for Upcoming Targets

    2669: Added u-blox C029 target

    2707: [EFM32] Add IAR support for remaining Silicon Labs targets

    2819: MultiTech xDot platform support - 09.26.2016

    2827: include MultiTech xDot in mbed 5 releases

    Fixes and Changes

    2648: Disable RTOS tests for STM32 8K targets

    2522: Add CThunk for CM7

    2682: classic mbed: bugfix can loop test

    2518: Enable uvisor on Beetle

    2685: Replace vendor specific register usage in stm32f4_emac.c with basic register

    2688: Avoid type collision by renaming callback variable

    2561: lwip - Add checks for invalid state of network

    2571: STM32F7 - Add asynchronous serial

    2612: Fixed bug on memap (non-default output path)

    2616: STM32F3xx - Add Serial Flow Control pins + enable it

    2619: NUCLEO_L152RE - Add Serial Flow Control

    2620: NUCLEO_F429ZI - Add SERIAL_FC macro

    2659: Fix exported project file group naming

    2665: nsapi - Add equality operators to SocketAddress class

    2666: [EFM32] Microsecond ticker optimization

    2671: tools-exporters! - Globally add a gettingstarted.html

    2672: [EFM32] Fix exporter to pull root path

    2674: tools - Correct adding repo_files

    2675: Revise checking toolchain path

    2681: STM32F0xx - Add support of ADC internal channels

    2687: [NRF5] Add fs_data symbol in data secton for gcc

    2696: Add device_has to all nrf51 devices

    2697: tools-exporters! - disable inclusion of repo-dirs in zips by default

    2703: TARGET_NRF5: Changed 'serial_baud' implementation to support special baud rates.

    2704: DISCO_L476VG: add SPI nicknames

    2710: Remove "lib" and "lib64" from the mbed-OS .gitignore file: they do no

    2721: tools - Add documentation about profiles to the toolcahins

    2723: KSDK serial_api.c: Fix assertion error for ParityEven

    2735: Fixing archived library builds for IAR

    2463: [STM32L0] Add asynchronous serial

    2572: Fix STM32F407VG target name and LPC11U6X linker errors

    2698: DELTA_DFBM_NQ620 target

    2722: lwip - Fixed error code on disconnect TCP socket

    2731: [TARGET_STM] IPV4 feature hal files factorisation

    2542: Dev spi asynch stm32f4

    2614: Change default uvision exporter to uvision5

    2640: [NUCLEO_F072RB-NUCLEO_F070RB] RTOS issues

    2650: STM32F3 - Add low power timer

    2662: Update CONTRIBUTING.md

    2744: FEATURE_IPV4/TESTS: result status could be wrong

    2754: New exporter build tests

    2757: Refactor Target and Config away from global variables

    2852: Release - Update custom target handling

    2415: [STM32F0] Add asynchronous serial

    2585: Added support for ADC only pins in LPC43xx

    2622: [STM32F4] Add asynchronous I2C

    2719: Updated ARM linker scripts for Kinetis platforms that use SDK 2.0

    2727: Serial init timeout: increase default value

    2728: Added ethernet and enabled IPV4 feature for the EVK-ODIN-W2/C029 target

    2739: STM32 / IPV4: #2685 has been forgotten with #2731

    2747: [LPC11U68] Fix pin interrupt select offset

    2751: STM32L0xx - Add Serial Flow Control

    2753: [NUCLEO_F767ZI] Add CAN capability

    2759: STM32F0 - Add low power timer

    2763: STM32L1 - Add low power timer

    2764: STM32L4 - Add low power timer

    2771: STM32L4 - Update deepsleep implementation

    2775: Update KSDK SDHC driver for K64F & K66F

    2788: Print percent complete when building

    2792: [NUCLEO_F303ZE] MBED-OS5 capability

    2779: [NUCLEO_F103RB] RTOS tests update

    2712: Fixing constant cleaning when compiling tests

    2762: STM32L0 - Add low power timer

    2761: STM32F7 - Add low power timer

    2800: Removed --no_static_destruction from IAR IDE flags

    Using the release

    You can fetch the mbed OS 5.1.5 release from the mbed-os GitHUb repository, using the tag "mbed-os-5.1.5". Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.1.4

    Downloads: zip tar.gz

    We are pleased to announce the mbed OS 5.1.4 release is now available.

    This release includes many minor enhancements and fixes, adds some target HAL ports in preparation for upcoming new targets (ST Disco F769NI, Delta DFBM NQ620, MTM mtconnect 04S, ST Nucleo f303ze), and some early additions for runtime heap memory tracking features we're working on that we'll share more on soon.

    Changes and fixes

    2442: Malloc heap info

    2487: Runtime dynamic memory tracing

    2607: Fix uvisor memory tracing

    2393: [tools] Prevent trace-backs from incomplete args

    2588: Timing tests drift refactor

    2245: Refactor export subsystem

    2548: Nucleof303ze

    2545: Added define guards for SEQUENTIAL_FLASH_JOURNAL_MAX_LOGGED_BLOBS so

    2575: tools-config! - Allow an empty or mal-formed config to be passed to the config system

    2130: stm32 : reduce number of device.h files

    2419: [STM32F1] Add asynchronous serial

    2521: [NUCLEO_F207ZG] Add MBED5 capability

    2538: STM32F4xx - Add support of ADC internal channels (Temp, VRef, VBat)

    2562: Fix GCC lazy init race condition and add test

    2576: Add smoke test that builds example programs with mbed-cli

    2578: Fix double free in NanostackInterface

    2583: github issue and PR templates

    2587: add PTEx pins as option for SPI on Hexiwear - for SD Card Interface

    2601: Adding ON Semiconductor copyright notice to source and header files.

    2613: Correctly providing directories to build_apis

    2643: Fix thread self termination

    2651: Use lp_timer to count time in the deepsleep tests

    2584: Set size of callback irq array to IrqCnt

    2582: [GCC_CR] fix runtime hang for baremetal build

    2580: lwip - Add check for previously-bound socket

    2579: lwip - Fix handling of max sockets in socket_accept

    2514: Updated FlexCan and SAI SDK drivers

    2504: [Disco_F769NI] adding new target

    2559: [utest]: Allow the linker to remove any part of utest if not used

    2657: [MAX326xx] Removed echoing of characters and carriage return.

    2654: DELTA_DFBM_NQ620 platform porting

    2645: NUCLEO_F446ZE - Enable mbed5 release version

    2634: Updated USBHost for library changes

    2633: Updated USBDevice to use Callback

    2630: Test names not dependent on disk location of root

    2624: CFSTORE Bugfix for realloc() moving KV area and cfstore_file_t data structures not being updated correctly

    2623: DISCO_L476VG - Add Serial Flow Control pins + add SERIAL_FC macro

    2617: STM32F2xx - Enable Serial Flow Control

    2615: [MTM_MTCONNECT04S] Added support for MTM_MTCONNECT04S

    2597: [HAL] Fixed "intrinsic is deprecated" warnings

    2596: [HAL] Improve memory tracer

    2594: Fix TCPServer constructor

    2589: [NUC472] Fix heap configuration error with armcc

    2593: Add app config command line switch for test and make

    2604: Tools - Fix fill section size variation

    2678: Fixing NCS36510 compile on Linux

    Using the release

    You can fetch the mbed OS 5.1.4 release from the mbed-os GitHub repository, using the tag "mbed-os-5.1.4".

    Please feel free to ask any questions or provide feedback on this release on the forum, or to contact us at support@mbed.org.

  • mbed-os-5.1.3

    Downloads: zip tar.gz

    The mbed OS 5.1.3 release is now on GitHub.

    New targets

    • KL27Z_IAR
    • MAX32620HSP_ARM_STD
    • MAX32620HSP_GCC_ARM
    • MAX32620HSP_IAR
    • NCS36510_ARM_STD
    • NCS36510_GCC_ARM
    • NCS36510_IAR

    Changes in the version

    • Added support for NSAPI_REUSEADDR to the lwip interface.
    • STM32F3 family : Add and enable asynchronous serial, plus tests.
    • STM32L4 family : Add and enable asynchronous serial, plus tests.
    • Fixing issue where GCC fails to report compile errors when non-verbose.
    • Add ethernet and IPV4 support for: NUCLEO_F207ZG, NUCLEO_F429ZI, NUCLEO_F767ZI, DISCO_F746NG.
    • RZ_A1H - Enable SPI1 on pins P6_4 to P6_7.
    • KL27Z : SPI driver bug fixes and Improvements, ARM linker file update.
    • STM32F4, STM32F7 families : Add entropy functions, documentation, code improvements, fix build issues.
    • HEXIWEAR: Update I2C pin mapping, Add support to create KDS projects.
    • LWIP - fix recv blocking send on accepted sockets.
    • SingletonPtr bugfixes.
    • Beetle: Implement sleep API.
    • uVisor: Update to v0.20.1-alpha, minor documentation update.
    • STM32F3 : fix RTOS IAR test, RTOS GCC_ARM test.
    • nrf5x : Introduce uart hardware flow control configuration.
    • K64F/K22F: Implement HAL lp_timer API.
    • Ticker: Move ticker initialisation to object creation time.
    • STM32F4 : remove printf from pwmout
    • NXP : Fix multiple definition errors in GCC_CR build, fix linker errors.
    • Add TOOLCHAIN_GCC_CR support.
    • STM32L1 family : Add and enable asynchronous serial, plus tests.
    • mbed-client : Fix Bootstrap and Connector functionality.
    • NUC472 : Fix Ethernet wrong INT status in RX_Action.
    • RTX_CM_lib.h : fix compiler warning.
    • NUCLEO : Use GCC small build for 64K flash STM32.
    • STM32F2 family : Add and enable asynchronous serial, plus tests.
    • uvisor : Move page heap after uVisor private data, update page allocator.
    • K64F: Revert to hardcoded stack pointer in RTX .
    • dns-query : Internal API change , documentation, Added support for multiple results and ipv6.
    • Add support for implementation-provided DNS servers.
    • Adopted netconn_gethostbyname in the lwip interface.
    • Restructured nsapi_dns.h to have clear separation between C/C++ .

    Tool fixes

    • Tests: New ones added and some updates to existing.
    • RTOS:
      • K64F: Revert to hardcoded stack pointer in RTX.
      • Adding NCS36510 support.
      • Add MAX32620 target support.
      • Fix implicit declaration of function 'atexit'.

  • mbed-os-5.1.2

    Downloads: zip tar.gz

    The mbed OS 5.1.2 release is now on GitHub.

    • RTOS - fix stack for K64F, NRF52 armcc, NRF51:
    • Main thread stack checking enabled.
    • Fix heap limit checking and make memory regions explicit.
    • Deprecate macro - add since argument.
    • Override new and delete operators to trap errors.
    • Maxim - I2C and DAC bugfixes.
    • STM - STM32F4 - serial flow enablement, enable async serial.
    • pwm and analog definition clean-up.
    • Nordic - NRF51 - fix for overflow in the ticket.

  • mbed-os-5.1.1

    Downloads: zip tar.gz

    The mbed OS 5.1.1 release is now on GitHub.

    • RTOS - fix joining a terminated thread.
    • K64F name fix for cmsis and hal.

  • mbed-os-5.1.0

    Downloads: zip tar.gz

    This is the release note for the mbed OS 5.1.0 release. It summarises the major changes in this version of mbed OS, as well as the requirements for partners looking to support this release on development platforms.

    The mbed OS 5.1.0 release is on GitHub.

    About this release

    This release marks significant changes and enhancements that have accelerated features of our roadmap, opened up the applicability of mbed OS to many more IoT use cases, and unlocked compatibility with our mbed OS 2 "Classic" ecosystem.

    Version summary

    The headline changes in this release are:

    • RTOS - mbed OS now incorporates an RTOS. This much-requested feature provides native thread support to the OS and applications, simplifying development and integration of complex and robust application components like networking stacks. It also enables both blocking and non-blocking design patterns. The RTOS requires very limited system overhead.
    • Tooling - we have simplified the tooling and introduced native support for building and testing across the ARM Compiler 5, ARM GCC Embedded and IAR compiler toolchains. A command line interface script (mbed CLI) now drives the established mbed OS 2 build system to build the OS and associated developer applications and components. Dependencies are explicitly pinned to provide full reproducibility of builds. The target and toolchain can be selected independently of each other, and we run CI on mbed OS across all these compiler toolchains on every commit. yotta is not used in this release.
    • Compatibility - the introduction of the RTOS and changes to tooling have allowed the possibility of compatibility with the mbed OS 2 ("Classic") ecosystem. We have taken this opportunity to re-base and merge the two development lines so that we now have just one platform and one set of tools. Existing partners can take advantage of investments made in mbed over the years, and both new and existing partners need to invest in only one project. Developers can benefit from all legacy components and libraries, alongside the existing and new features of mbed OS.

    These architectural changes enable merging the mbed OS 2 and mbed OS 3 codebases, websites and ecosystems, and are marked with a major revision update - mbed OS 5 (2+3=5!).

    Our mbed OS 5.0.1 was an internal version available only to partners, and mbed OS 5.1.0 is the first generally available.

    Based on these changes and the hard work of our partners, mbed OS target support is also accelerated. This release supports multiple target platforms from multiple partners, with more ports regularly made available on a newly introduced minor release tick every two weeks.

    The following sections provide more details of these and other changes in this release.

    Core

    RTOS

    mbed OS now incorporates an RTOS.

    The RTOS core is based on the widely used open-source CMSIS-RTOS RTX, providing an established kernel that can support threads and other RTOS services on very tiny devices. The RTOS primitives are always available, so that drivers and applications can rely on features such as threads, semaphores and mutexes. The RTOS is initialised ahead of entering the main() thread, enabling components to rely on RTOS facilities even if the core application is single threaded.

    The implementation is based on CMSIS-RTOS RTX 4.79.0, and we will be tracking and contributing to the development of CMSIS-RTOS releases, allowing us to pick up support for new versions and architectural features such as TrustZone for Cortex-M.

    The MINAR eventing-only scheduler is not included in this release. An alpha version of a more flexible event scheduler library is available, supporting the same design patterns within RTOS threads and components. This library will be merged and managed as part of the core OS codebase once it reaches release maturity.

    Drivers and support libraries

    There is now driver support for a wide range of standard MCU peripherals across the extended target platforms:

    • DigitalIn, DigitalOut, DigitalInOut
    • InterruptIn
    • PortIn, PortOut, PortInOut
    • BusIn, BusOut, BusInOut
    • AnalogIn, AnalogOut
    • PwmOut
    • I2C, I2CSlave
    • SPI, SPISlave
    • Serial

    Improved API documentation is now available here.

    These drivers have been internally upgraded to integrate thread safety logic, while maintaining compatibility with the mbed OS 2 APIs. This has been done within the generic components of the drivers to avoid changes to the different HAL implementations.

    A new Callback class supersedes FunctionPointer (still supported) to provide a more flexible and neater syntax for capturing and calling static function and class member callbacks. It now uses the same class regardless of the number of arguments on the callback.

    C libraries

    The C libraries provided with each of the supported toolchains have been integrated into mbed OS, including implementation of thread safety support.

    Security

    uVisor

    uVisor has been upgraded to support the RTOS.

    We have made the modifications CMSIS required to allow uVisor to hook interrupts. These will be upstreamed to future CMSIS releases.

    uVisor now includes a disabled mode for ARMv7-M and ARMv6-M architectures that maintains code compatibility even when uVisor is not present or active, enabling a smooth software upgrade path as platforms introduce support for uVisor.

    Crypto

    The crypto libraries now support:

    • An insecure NULL entropy mode to simplify support during development.
    • A HAL API for providing strong entropy sources based on a hardware TRNG.
    • A reasonable strength entropy source based on non-volatile storage.

    mbed TLS

    We have integrated version 2.3.0 of mbed TLS, providing TLS and DTLS support for services.

    See the mbed TLS 2.3.0 release note.

    Please note, applications using mbed TLS on boards that have not yet implemented hardware entropy support must use the NULL ENTROPY configuration to build. However, please be aware that no security will be offered by mbed TLS in those cases.

    Connectivity

    The sockets API has been revised to support:

    • Multiple stacks
    • Multiple interfaces
    • Synchronous and asynchronous APIs

    We have successfully applied this to Ethernet, 6LoWPAN Mesh and WiFi interfaces.

    We've introduced an 802.15.4 MAC HAL to enable simplified porting of the 6LoWPAN and Thread stacks to different 802.15.4 radios. This release includes ports for multiple transceivers.

    We have released a 6LoWPAN Border Router reference application and an associated Linux-based Access Point example that demonstrates 6LoWPAN nodes connecting via an Access Points to the mbed Device Connector service. A development Thread Border Router is also available to mbed Partners.

    We've extended our Bluetooth Low Energy (BLE) API to support user-defined scheduling policies. This maintains compatibility with mbed OS 2 BLE applications, while allowing developers to take advantage of the RTOS to design more efficient solutions. The Bluetooth API is now supported across multiple vendor silicon, covering both SoC and MCU plus Transceiver chipset arrangements.

    Services

    mbed OS integrates the latest mbed Cloud Client, providing connectivity and management services from mbed Device Connector.

    See the mbed Device Connector site.

    Tools and workflow

    We've reworked the tools and workflows to address feedback from previous releases on the use of yotta and the desire for backward compatibility with mbed OS 2 (“Classic”). In this release we build the OS, components and applications using modified versions of the mbed OS 2 build scripts.

    mbed CLI

    You can use a new top level command line interface (mbed CLI) to drive the build, package management and test scripts. It is also a natural integration point for IDEs.

    See the mbed CLI repository.

    Dependencies

    This release does not use yotta; applications depend instead on a single mbed OS repository where all dependencies are pinned, making applications reproducible and simplifying development and management.

    See the mbed OS repository.

    Code compatibility and toolchain support

    Code is compatible with c99/C++03, and doesn't use any C++11 or C++14 features.

    We now support building and testing across multiple toolchains (ARM Compiler 5, GCC ARM Embedded, IAR). Supporting these three toolchains is a requirement for partner ports.

    The build tools now emit static RAM and FLASH sizes and a top level breakdown on every build.

    Exporting to Third Party IDEs

    We support generation of project files to enable opening mbed OS projects in Keil MDK, IAR Workbench and other environments. This is useful for development and launching debug sessions, and can be achieved from mbed CLI or the mbed Online Compiler.

    mbed Enabled

    We've formalised the mbed Enabled program, providing versioned compliance criteria and technical requirements for boards, on-board interfaces and end products.

    The following resources are available:

    Targets

    Thanks to our partners' hard work, including an onsite workshop, the mbed OS 5.1 release already supports the following targets:

    We will add new targets in our bi-weekly releases as partners introduce support. If you are a partner, please see details in the Partner Portal.

    Getting Started

    To get started with this release, see the Handbook.