Releases: ARMmbed/mbed-os
mbed-os-5.7.1
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
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...
mbed-os-5.6.6
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
(#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
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
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
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
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:
-
deepsleep being left locked unintentionally,
-
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:
-
adding missing retarget definitions that were available for GCC but not for ARM/IAR compilers,
-
a fix to fstat to enable seek and related functions to work correctly,
-
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
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 [email protected].
mbed-os-5.6.0
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 ...
mbed-os-5.5.7
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 [email protected].