Skip to content

Releases: ARMmbed/mbed-os

mbed-os-5.7.1

27 Dec 17:51
2b4ff78
Compare
Choose a tag to compare

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

20 Dec 14:57
Compare
Choose a tag to compare

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

Read more

mbed-os-5.6.6

06 Dec 18:12
5f65721
Compare
Choose a tag to compare

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

23 Nov 15:45
182bbd5
Compare
Choose a tag to compare

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

08 Nov 17:18
78474a5
Compare
Choose a tag to compare

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

25 Oct 16:44
Compare
Choose a tag to compare

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

11 Oct 15:39
Compare
Choose a tag to compare

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

02 Oct 17:26
Compare
Choose a tag to compare

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

27 Sep 20:51
Compare
Choose a tag to compare

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

Read more

mbed-os-5.5.7

15 Sep 17:45
Compare
Choose a tag to compare

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