Bot releases are hidden (Show)
Published by mbedmain about 4 years ago
We are pleased to announce the Mbed OS 6.2.1 release is now available.
In this Mbed OS 6 patch release we have added support for the following new targets:
Note the original M252 platform has been renamed to NUMAKER_IOT_M252.
We have continued to progress our restructuring of the Mbed OS file hierarchy.
A number of changes have been added for PSOC64. These include:
The STM32WB drivers have been updated to CUBE V1.7.0.
We've updated the MTS_DRAGONFLY_F411RE bootloader to work with Mbed OS 6.
And finally, as we continue to develop the new set of tools for Mbed OS 6 we will no longer be accepting PRs with changes to the existing tools.
There are no new known issues with this release.
13392
Adding Samsung Bioprocessor S1SBP6A target
13382
M252: Support custom board
13358
Add CYTFM_064B0S2 4343W Target
13447
psoc64: Update TF-M release image
13420
Updating with new links and correct branding
13419
PSOC6: update BSP startup code to match psoc6pdl-1.6.1
13418
Update PSoC64 TFM release package.
13414
Refactor NFC directory structure
13410
Refactoring \lorawan --> moving it inside \connectivity.
13409
Move BlueNRG-MS driver into connectivity/drivers/ble/FEATURE_BLE
13408
Fix memory leak in DNS cache
13404
Restructure cryptocell
13401
Added error checking to can_filter() for Classic CAN
13392
Adding Samsung Bioprocessor S1SBP6A target
13390
Fix cancel connect
13386
PSoC6: update to psoc6pdl-1.6.1
13385
Restructure Mbed TLS
13382
M252: Support custom board
13379
Fix baremetal nightly test build issue
13377
Move nanostack rf driver from features to connectivity
13374
Fixed ThisThread flag_wait_any functions (fix #13360)
13371
Restructure lwipstack directory
13366
Fix IAR assembler errors on except.S
13365
BLE streamlining
13363
Refactoring \nanostack --> moving it inside \connectivity.
13362
TESTS: update tests and fixing time drifting tests in rtos folder
13358
Add CYTFM_064B0S2 4343W Target
13357
Move emac-drivers from features into connectivity directory
13356
Drivers directory restructuring
13351
Fix MTS_DRAGONFLY_F413RH drag and drop failure
13349
travis: Reject changes to tools
13337
Fix Mbed TLS + TF-M integration issues
13335
Restructure netsocket directory
13333
Events directory restructuring
13332
Nuvoton: Update M252 target name
13330
Remove doubly defined symbol from mbed_lib.json
13326
Adding NUCLEO_F429ZI to AWS example
13325
Nuvoton: Revise the pin name of M263A button
13323
Travis: fix scandcode failure
13317
Fixed doxygen for Kernel::Clock::time_point argument
13314
Storage system_storage
directory restructure
13307
Restructure storage kvstore directory
13306
Include mbed_assert.h in Queue
13304
STM32WB update drivers version to CUBE V1.7.0
13301
Remove MTS_DRAGONFLY_F411RE post binary hook that adds the bootloader
13300
Restructure storage filesystem directory
13298
Refactoring \platform directory
13294
Update MTS_DRAGONFLY_F411RE bootloader to work with mbed 5 & 6
13293
BLE Fix read and write callbacks for descriptors not firing if characteristic is not readable or writable
13284
Refactor PPP library
13283
BLE: Cordio bugfix fixed size writes under size must be allowed
13279
TESTS: removed mbed OS 6 unsupported target in examples test
13276
MASTER - LICENSE.md - clarify filesystem licensing
13273
Restructure storage blockdevice directory
13264
Moving around a few items within \rtos
13261
Refactor cellular directory structure
13255
Move mbed-coap to connectivity/libraries
13254
Move nanostack-libservice into connectivity/libraries
13253
Allow unit tests defined anywhere in mbed-os
13244
Move storage from features into mbed-os root directory
13234
Move drivers from components to connectivity
13229
STM32 custom target: create MCU_STM32xx for each family
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-6.2.1".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by adbridge about 4 years ago
We are pleased to announce the Mbed OS 5.15.5 release is now available.
This is the latest support release from the Mbed OS 5.15 branch.
This release adds non-PSA support to Mbed OS 5.15 via the new target NU_M2354_NPSA_S/NS. The M2354 is Nuvoton's Cortex-M23 based, TrustZone enabled chip and is an upgraded version of the M2351.
The Wi-SUN Interface APIs have been improved by the addition of the following API calls:
The release also includes:
plus a number of other bug fixes.
This section lists specific changes which are part of this release and may
need special attention.
The target name for Nuvoton's M252 board is resolved to NUMAKER_IOT_M252 from NUMAKER_M252KG (https://github.com/ARMmbed/mbed-os-tools/pull/220). This PR is backport of #13332 to mbed-os 5.15 to also synchronize this change.
Removing unused pins from SDP-K1 board support package.
M2354 is Nuvoton's Cortex-M23 based, TrustZone enabled chip and is an upgraded version M2351. This PR tries to add non-PSA support into Mbed OS 5.15.
Implemented
-info_get API for Wi-SUN router to get RPL information.
-info_get API for Wi-SUN BR to get RPL information.
-routing_table_get API for Wi-SUN BR.
This is upstreaming PR https://github.com/ARMmbed/mbed-os/pull/13084.
This PR is backport of #12991 into Mbed OS 5.15 to refine EMAC error handling of bus error on both of M487 and NUC472 platforms.
New include to ws_management_api.h file to include fhss_config.h
There are no new known issues with this release.
13381
Nuvoton: Update M252 target name (5.15)
13373
Adding QSPI support to SDP-K1 board support package.
13342
Support for Olimex STM32-E407 bootloader
13338
Cleaning up SDP-K1 board support package.
13320
Updating targets.json file for SDP-K1 board.
13275
5.15 - LICENSE.md - clarify filesystem licensing
13245
Nuvoton: Add new target NU_M2354_NPSA_S/NS
13184
Nordic NRF52 GPIO API: Fix failure to clear the field 'skip_gpio_setup' in a local
13164
ESP8266: Avoid duplicate data sends (5.15)
13151
[mbed-os-5.15] Added Wi-SUN Interface APIs
13150
Nuvoton: Support EMAC bus reset as while bus err (5.15)
13147
Ws management API missing lib
13114
Fix issue #13023, CAN constructor ignores passed speed.
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.15.5".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by adbridge over 4 years ago
We are pleased to announce the Mbed OS 6.2.0 release is now available.
This release mainly provides updates for some of the connectivity protocols that Mbed OS supports, specifically BLE and WiSUN.
For BLE, we've updated the Cordio stack to version 20.05, which is the latest 5.2 specification qualified version. We've also made some changes to the BLE Security Manager to better support the handling of identity addresses when privacy is enabled.
For Wi-SUN, we've made API updates to the border router support we offer for Wi-SUN networks. A border router is a network gateway between a wireless 6LoWPAN mesh network and a backhaul network. It controls and relays traffic between the two networks and, in this release, we've added additional APIs to allow developers to access routing table data from border routers.
The other major change is to upgrade the version of the Arm Compiler to the latest 6.14 version as part of our commitment to track the latest stable versions of the compilers we support.
This section lists specific changes which are part of this release and may
need special attention.
Upgrade the version of TF-M shipped within Mbed OS to version 1.1 (TF-Mv1.1 a6b336c1509f) with patches to support the integration of Mbed OS and TF-M from https://github.com/ARMmbed/trusted-firmware-m/tree/dev/feature-dualcore (52261ca41663).
Please refer to the TF-M releases notes for information on what's contained in the TF-M release. https://ci.trustedfirmware.org/view/TF-M/job/tf-m-nightly/lastStableBuild/artifact/docs/trusted-firmware-m/build/install/doc/user_guide/html/docs/reference/changelog.html
None.
Implements iterators for the Span class to be compatible with std::span.
This makes it possible, among other things, to use range based for loops on a span.
Implemented
-info_get API for Wi-SUN router to get RPL information.
-info_get API for Wi-SUN BR to get RPL information.
-routing_table_get API for Wi-SUN BR.
This is upstreaming PR https://github.com/ARMmbed/mbed-os/pull/13084.
This adds a new Security DB type for BLE Security Manager. This is optional and disabled by default. The presence of filesystem and kvstore DBs is now set in the mbed_lib.json file with the default values retaining the current setup.
Requires preceding PR: https://github.com/ARMmbed/mbed-os/pull/13037
(so ignore the first commit)
--flash
argument.None
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 section 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.
BADCERT_CN_MISMATCH
error is returned.x509_crt_verifycrl()
function ignores the CRL, when the CRL has an issuer different from the subject of root CA certificate.x509_crt_verifycrl()
.MBEDTLS_SSL_ENCRYPT_THEN_MAC
enabled in mbedtls/config.h
and enable the Encrypt-then-MAC extension (RFC7366) on the peers side.In addition to regular Pull Request test and Nightly test, we also ran a branch test on mbed-os 6.2.0-RC1
Results for the tests we run on CI (PR, Nightly, Branch):
We have the following issues on the test jobs:
In the mbed OS 6.2.0 release. we are testing the following toolchains:
The following toolchains have been dropped since the mbed OS 5.15.0 release
In mbed OS 6, the compilation test targets scope has not changed and remains all mbed OS enabled targets.
Greentea test targets have been changed slightly:
At the time of the mbed-os 6.2.0 release, we run the greentea tests on the following 8 targets:
In mbed OS 6.2.0 release,there are 92 coverity issues.
Test Code Coverage been tracked and information is published on COVERALLS
No change from mbed-os-6.1.0
13291
Update TF-M for ARM_MUSCA_B1
13285
Use a different key to sign Non-secure image for ARM_MUSCA_B1 target
13263
psa: Update TF-M for ARM_MUSCA_B1
13258
Fix deprecated warning messages in Cypress code
13257
Remove invalid unicode characters from mesh-api/mbed_lib.json
13252
Implements iterators for the Span class to be compatible with std::span
13247
GreenTea: Fix inconsistency of Greentea KV message
13237
STM32 custom target: Add missing information in arm pack manager for bootloader
13230
Fix duplication of KW41Z Nanostack driver
13227
Revert "Fix kv parsing bug in greentea client."
13225
BLE remove unused CYW4343X file
13224
ADV_WISE TLS config duplication
13223
PSoC Targets: Increase greentea sync timeout
13222
STM32 PWM : avoid glitch after duty cycle change
13221
STM32 ANALOGOUT and DEEPSLEEP
13219
STM32WB RNG: enable use from both M4 and M0+ cores
13217
Feature cordio update 20 05
13213
Reduce LED use in automatic CI tests
13210
Fix hal-sleep/sleep_manager Tests on Cypress Targets
13207
TEST: update NRF52840_DK with correct FPAG configuration
13206
Usb device init: wait_us fix
13205
LWIPStack: set sockets non-blocking
13199
TEST: Update kvstore tests with shorter timeout
13198
Cypress: Update WHD to version 1.91.2
13191
Fix ordering in adjust config.sh
13188
TEST: Add spif-driver support for baremetal test build
13180
Update mbed-coap to version 5.1.6
13174
tests-mbed_timing_fpga_ci_test_shield-watchdog update with clock accuracy
13173
STM32L4: I2C init parameters for L4+ MCU
13172
Cypress: Fix internal JIRA. Add check if cybsp_init() is successful
13171
Re-enable AWS example, limit targets
13152
Add Wi-SUN Interface APIs
13038
BLE: Add KVStore Security DB
13011
Always build both .hex and .bin files
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-6.2.0".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by adbridge over 4 years ago
We are pleased to announce the Mbed OS 6.1.0 release is now available.
The major feature we introduce in this release aims to improve your experience with Arm’s Platform Security Architecture when used in conjunction with Mbed OS. Platform Security Architecture, or PSA, is an Arm- led framework for securing IoT devices. In Mbed OS we support PSA in conjunction with the TF-M (www.trustedfirmware.org) project, and we have made major changes in how we integrate TF-M into Mbed in this release, with the overall goal of simplifying how Mbed users consume it. The main change is that we now support building the Secure side binary directly, using the latest supported TF-M version for the target and linking that into the Mbed build.
We are working with our silicon partners to assist them in migrating their PSA platforms to support this change,
This section lists specific changes which are part of this release and may
need special attention.
The Musca A1 target hasn't been Mbed Enabled nor considered supported in 6.0.
Although support exists in Mbed OS 5.15 and 6.0, it is not officially supported and hence removed.However, it continues to be available in 5.15.
NA - continues to be available in the mbed-os-5.15 branch.
Switch to the mbed-os-5.15 branch.
Save RAT selection to modem's permanent memory.
This avoid unnecessary changing of RAT on every reboot if it is different than the default saved in modem's permanent memory.
Since Mbed OS 6.0, secure build is not supported yet. Remove it from master temporarily.
For non-TF-M support (NU_PFM_M2351_NPSA_S/NS), go to mbed-os-5.15 branch and Mbed OS 5.15 release.
For TF-M support (NU_PFM_M2351_S/NS), this needs M2351 integrated into TF-M repo first.
Expect M2351 TF-M support can come back into master after integration with TF-M is finished.
M2351 non-TF-M targets NU_PFM_M2351_NPSA_S/NS are removed from Mbed OS 6.0. Its support is kept on Mbed OS 5.15.
Removed the unused variable and the redundant const
return from set_ip_addr()
function to fix compilation warnings.
With these changes, no more compilation warning get reported during the build.
None.
Fixed the Chrono compilation warning in EMAC drivers by using Chrono based time argument in EventQueue call_every() API call.
With these changes, no more compilation warning get reported during the build.
This is final PR to add Cypress new secure boot target CY8CKIT_064B0S2_4343W to mbed-os.
This PR also includes update of psoc6pdl and psoc6cm0p libraries for Cypress targets.
Configuration of mbed-os CI need to be updated per new post build hooks.
PSoC 64 secure BSP post-build hook (cysecuretools image signing)
expects the HEX file with start address 0x10000400 (first KB of
internal FLASH is reserved for MCUboot headers area).
In order to get the correct HEX file produced by ARM fromELF tool,
the ELF file should allocate LR_IROM1 starting from address
0x10000400, not 0x10000000. Otherwise the generated HEX file
allocates rows at addresses 0x10000000 ~ 010000400 and the
final application image is not signed correctly.
Fixes https://github.com/ARMmbed/mbed-os/issues/13058.
Fix TARGET_CY8CPROTO_064_SB and TARGET_CYESKIT_064B0S2_4343W signed HEX image generation with TOOLCHAIN=ARM.
ST Cube drivers version is updated from V1.6.0 to V1.8.0,
which is the latest official version from:
https://www.st.com/en/embedded-software/stm32cubef1.html
@ARMmbed/team-st-mcd
ST Cube drivers version is updated from V1.5.0 to V1.7.0,
which is the latest official version from:
https://www.st.com/en/embedded-software/stm32cubeh7.html
@ARMmbed/team-st-mcd
Nanostack release v12.3.0 to master branch
Nanostack v12.3.0 contains bug fixes and stability improvements to the Wi-SUN protocol stack.
802.15.4 RF drivers has been updated to match functionality in Nanostack v12.3.0.
This is upstream of PR: #13079
Wi-SUN protocol stack is more stable and is scaling to larger number of devices.
Mesh applications that are using Wi-SUN protocol can define S2LP RF driver PIN configuration in the application configuration file.
In tools/config/__init__.py
a reference comparison (is
) was used to compare a variable with a string literal, but a value comparison (==
) should be used instead.
This shows up as a python warning during compilation. Python documentation is here for the obsolete Python 2.7, the minimum supported version (by the Python foundation) 3.5, and the latest 3.9.
This will remove the warning emitted during compilation with the cli (and probably elsewhere).
This should fix any potential issues if cpython and friends decide to change how string caching works.
None.
Allow setting of Wi-SUN certificates after disconnect for the reconnection.
Support changing of certificates when stack is already running.
Fixes the following bug https://github.com/ARMmbed/mbed-os/issues/12798
This only extends the usability of the API allowing new way to use the interface
No Actions
Prevent singleton lock if the RTOS is not yet ready.
lp_ticker is used during the RTOS initialization process.
ST lp_ticker implementation calls sleep functions
which in turn attempts to print to the console when sleep tracing
is enabled. Console initialization attempts to lock the singleton mutex.
fixes https://github.com/ARMmbed/mbed-os/issues/11497
fixes https://github.com/ARMmbed/mbed-os/issues/12593
To test:
mbed-os-example-blinky
.mbed compile -t <TOOLCHAIN> -m <ST_TARGET> -f --sterm -DMBED_SLEEP_TRACING_ENABLED
.Sleep tracing can be enabled with ST boards.
N/A
Deprecates (in doxygen only) MBED_STATIC_ASSERT
and MBED_STRUCT_STATIC_ASSERT
macros as these uses are now provided with the built-in static_assert
(or for C without <assert.h>
: _Static_assert
).
Cuts down the number of MBED_STATIC_ASSERT
and MBED_STRUCT_STATIC_ASSERT
macro definition #if
cases to just C++ or not C++.
If static_assert
is not recognized by the compiler, it implies it is before either C11 or C++11. I do not consider this a breaking change as C11 and C++14 are now the minimum supported language versions.
These changes also clean up some of the code documentation as well.
This should only go in v6.0.0, so no issues assuming at least C11 or C++14 are used.
Since the MBED_STATIC_ASSERT
and MBED_STRUCT_STATIC_ASSERT
macros are deprecated, users should use static_assert
going forward as these could eventually be removed.
adjust-config.sh
scriptThe Mbed TLS import script is quite fragile, and depends on certain lines to be present in the files it adjusts to be able to do the modifications it needs to to allow Mbed TLS to build within Mbed OS.
This commit changes the adjust-config.sh
script to look for a the end of the config.h
file, defined as #endif /* MBEDTLS_CONFIG_H */
rather than the include line for "check_config.h"
.
That's because the inclusion of "check_config.h"
is being removed upstream in Mbed TLS to fix another issue, which you can see here.
I recommend to the maintainers that they put in their backlog to remove or replace these scripts. They were added as a temporary measure some years ago, and were never updated.
This change should work with the current Mbed OS source, but critically, the change is necessary to allow a future version of Mbed TLS to work.
None.
ALT1250 supports tac info in registration status, so this commit enables the feature.
CellularNetwork::get_registration_params
can now return cell info.
Replace the Mbed implementation of PSA with the implementation from TrustedFirmware-M (TF-M).
PSA is and continues to be provided as an experimental feature (under FEATURE_EXPERIMENTAL_API). The PSA implementation provided by TF-M is not guaranteed to provide the same functionality or API as the previous Mbed PSA implmementation being replaced.
v8-M NS targets are now the only v8-M targets supported in Mbed OS for PSA platforms, as the TF-M build system outputs the S binary that Mbed OS consumes as-is. As such, targets like ARM_MUSCA_A1_NS
have been renamed to ARM_MUSCA_A1
(although old names are temporarily provided for backwards compatibility).
How targets enable PSA has changed. Please refer to features/FEATURE_PSA/supporting_psa_in_mbed-os.md for updated instructions on adding PSA to your target as a new target porting person.
Modify the operation of setting qspi frequency when calling Octo controller in qspi_api.c.
Because the value of hospi->Init.ClockPrescaler has been subtracted 1 in stm32l4xx_hal_ospi.c.
N/A
N/A
Timer
and LowPowerTimer
are a little more flexible, and slightly optimised.
n/a
This is port of https://github.com/ARMmbed/mbed-os/pull/12878 to Mbed OS master.
Added NS filesystem API module to mbed-os Nanostack HAL. Module provides kv_store interface for the Nanostack. Feature is disabled by default on .json configuration.
None
None
This is port of https://github.com/ARMmbed/mbed-os/pull/12766 to Mbed OS master.
Added network, physical layer, MAC and FHSS statistics to Wi-SUN interface. There are new functions to enable/disable and read the statistics.
None
None
This is port of https://github.com/ARMmbed/mbed-os/pull/12657 to Mbed OS master.
Added get/validate/set functions for following Wi-SUN mesh interface configuration options:
None
None
Add a macro for adding bitwise operators to enum class
types.
This addition is necessary to use bitwise operators on enum class
(scoped enums) introduced in C++11.
Without this macro, either the whole boilerplate would have to be written to take advantage of C++ namespaces and scope, or a C style, visible-to-the-world enum would need to be used.
This:
enum class MyEnum {
HasNose = (1 << 0),
HasEars = (1 << 1),
HasFur = (1 << 2)
};
inline constexpr MyEnum operator |( T lhs, T rhs)
{
return (MyEnum) (
static_cast<std::underlying_type<MyEnum>::type>(lhs) |
static_cast<std::underlying_type<MyEnum>::type>(rhs));
}
inline constexpr MyEnum operator &( T lhs, T rhs)
{
return (MyEnum) (
static_cast<std::underlying_type<MyEnum>::type>(lhs) &
static_cast<std::underlying_type<MyEnum>::type>(rhs));
}
...
// Repeat for ~, ^=, |= overloads
...
inline MyEnum& operator &= (T & a, T b) { \
a = a & b; \
return a; \
}
becomes
MBED_SCOPED_ENUM_FLAGS(MyEnum) {
HasNose = (1 << 0),
HasEars = (1 << 1),
HasFur = (1 << 2)
};
Now, using the enum class
allows for scope and bitwise operation:
MyEnum cat = MyEnum::HasNose | MyEnum::HasEars | MyEnum::HasFur;
MyEnum neighbor = MyEnum::HasNose | MyEnum::HasEars;
The only impact is if the macro is used. If the macro is unused, standard enum class
definitions are unaffected by the bitwise operators. If the macro is used, the implementing code becomes more concise (and hopefully readable), and the DRY principle is realized.
Regarding code size, the operations should be no different than if written out with static_cast
calls.
In the future, standard C enum
bit flags could be converted over to enum class
for better scoping and collision avoidance.
If a scoped enum bit flag is desired, include the header and use. Otherwise, none.
For calculating real-world parameters (eg: ohms, amps) from ADC readings, it is often useful to know the actual voltage represented by the ADC's numerical output. This functionality can indeed be abstracted elsewhere, but I think it makes sense to put this in the ADC API itself.
As it stands, the AnalogIn
API only provides a normalized output and leaves the application up to calculate the actual voltage based on the system's ADC reference.
This PR adds the ability for the user to configure a default ADC Vref by overriding target.default-adc-vref
. Additionally, an AnalogIn
instance's reference voltage can be set at runtime in case multiple ADC references are possible in the target (in the case of multiple ADC peripherals or internally configurable ADC references such as in the case of Nordic chips).
Since this PR only extends the AnalogIn API, there should be no impacts on existing users.
None
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 section 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.
BADCERT_CN_MISMATCH
error is returned.x509_crt_verifycrl()
function ignores the CRL, when the CRL has an issuer different from the subject of root CA certificate.x509_crt_verifycrl()
.MBEDTLS_SSL_ENCRYPT_THEN_MAC
enabled in mbedtls/config.h
and enable the Encrypt-then-MAC extension (RFC7366) on the peers side.In addition to regular Pull Request test and Nightly test, We also ran a branch test on mbed-os 6.1.0-RC1
Results for the tests we run on CI (PR, Nightly, Branch):
We have the following issues on the test jobs:
In mbed OS 6.1.0 release. we are testing following toolchains:
The following toolchains have been dropped from the mbed OS 5.15.0 release
In mbed OS 6, the compilation test targets scope has not changed, remains all mbed OS enabled targets.
Greentea test targets have been changed slightly:
At the time of the mbed-os 6.1.0 release, we run the greentea tests on the following 9 targets:
In mbed OS 6.1.0 release,there are 94 coverity issues.
Test Code Coverage been tracked and information is published on COVERALLS
No change from mbed-os-6.0.0
13128
Add support for Embedded Planet target Atlas
12482
NUCLEO_G474RE: Add new platform
13175
psa: Remove not needed TF-M ITS KVStore adapter
13165
Remove Musca A1 target
13158
WIFI: Add NSAPI_PRESENT macro in the WicedInterface
13149
Cellular: ALT1250: Store RAT to permament memory
13148
M2351: Remove from master
13144
Fix esp8266 driver compilation warning
13143
STM32H7: correct Ethernet issue in baremetal
13142
EMAC: Fix Chrono compliation warnings
13135
Restore MTS_MDOT_F411RE bootloader binary
13130
Cypress: us_ticker fixes
13128
Add support for Embedded Planet target Atlas
13122
Cypress: Add target CY8CKIT_064B0S2_4343W, update psoc6pdl, psoc6cm0p
13119
Move target implementations of NanostackRfPhy into nanostack-interface
13118
Replaced rtos profile with full profile
13117
Fix compliation warnings
13115
MIMXRT1050_EVK: Add USB support
13100
Fix BOOT_HEADER_SIZE allocation in ARM scatter files (#13058)
13098
Cellular: Fix CellularContext destructor memory leak
13095
STM32: MCU_STM32 supports rtos and bare-metal profiles
13093
UNITTESTS: Fix TestPPPInterface::get_interface_name
13091
STM32 baremetal support step3/3 (F2/F4)
13090
STM: move us_ticker_defines.h include
13089
Add a coverage_patterns kwarg to ARM_MICRO
13086
STM32F1 update drivers version to CUBE V1.8.0
13083
STM32H7 update drivers version to CUBE V1.7.0
13082
Nanostack release v12.3.0 to master
13081
Reinstate post build hooks for legacy targets
13077
Python reference equality changed to value equality
13073
STM32H7: FPGA tests support
13070
add mbed-os-example-aws to the example list
13069
Cellular: Fix unittest for CellularNetwork
13066
mergify: add release type
13064
nxp: fix vector redefinition from CMSIS
13060
BLE: fix direct advertising on Cordio
13055
BLE: RF tester commands (and Cordio unhandled command complete)
13053
STM32 more information in README file
13052
BLE: fix conn params update
13048
Allowed to set Wi-SUN certificates in DISCONNECTED state
13047
NRF: Migrate ARM Compiler 5 feature re-locate zero initialized variables
13046
Use std::chrono based functions
13045
CYESKIT_064B0S2_4343W: Remove parentheses from arduino pins
13044
NRF: fix implicit declarations
13043
NRF serial: Use nrf_uarte_event_t enum to avoid implicit conversion
13042
Ensure all overridden virtual functions are marked with override
13041
Cordio: put parentheses to correct order of precedence in ternary expressions
13040
BLE: Add tx power control to cordio HCI driver
13039
BLE: remove limitation in the Cordio to update adv payload
13037
BLE: Fix privacy and signing handling in Security Manager
13036
STM32_gen_PeripheralPins.py script v1.12
13035
Fix capacity check when service data are added to BLE advertising payload
13034
ST boards: Fix sleep tracing
13030
Fix ThisThread::get_name definition
13022
STM32: add weak TargetBSP_Init function
13019
Documentation update - MBRBlockDevice::partition type parameter
13016
tests-mbed_hal-rtc patch to match IAR compilation issue
13015
Force callback non-trivial for IAR
13014
DISCO_H747I_CM4 is supporting now hex format
13013
Cellular: Fix packet data registration after CREG
13009
Add support for the Telit ME310 module
13002
Deprecate MBED_STATIC_ASSERT and MBED_STRUCT_STATIC_ASSERT for built-in keyword
13001
STM32 baremetal support step2 (L1/L4/WB)
12998
Fix Mbed TLS adjust-config.sh
script
12996
STM32F412 bypass PLL configuration when already done by bootloader
12992
STM32 baremetal support step1 (F0/F1/F3/H7/L0)
12991
Nuvoton: Support EMAC bus reset as while bus err
12988
OS timer uses LPTICKER by default, then USTICKER
12985
Update CYSBSYSKIT_01
12983
Mutex::unlock - decrement _count inside lock
12979
stack_size_unification test: set expected stack sizes from config
12973
Cellular: Enable tac info for ALT1250
12966
DRAGONFLY_F413RH: Update power on and power off functionality
12955
Replace Mbed PSA with TF-M PSA
12937
Modify the operation of setting qspi frequency when calling Octo controller
12905
Timer: minor revisions
12900
Added kv store adaptation to nanostack file interface
12899
Added Wi-SUN statistics interface
12898
Add new configuration parameters to Wi-SUN network interface and Border Router class
12824
Optimise fault handler assembly
12772
Add enum class flag definition to platform
12751
STM32WB: enable USB Device
12747
STM32 MBEDTLS support with HW crypto
12615
FPGA UART test cases addition with 7 and 9 bits data length
12482
NUCLEO_G474RE: Add new platform
12471
Extend AnalogIn API: read_voltage
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-6.1.0".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by adbridge over 4 years ago
We are pleased to announce the Mbed OS 5.15.4 release is now available.
In this latest partner and customer support release from the 5.15 branch, there are a number of important fixes and updates. The highlights are as follows:
Nanostack release v12.3.0
** Bug fixes and stability improvements to the Wi-SUN protocol stack.
** 802.15.4 RF drivers have been updated
Mbed TLS upgraded from 2.21.0 to 2.22.0.
** Stand alone version of Mbed Crypto removed and reintegrated into Mbed TLS.
A number of Wi-SUN updates
For full details of these and other fixes in this release please see the contents list below.
This section lists specific changes which are part of this release and may
need special attention.
None
There are no new known issues with this release.
No new target support
13080
[mbed-os-5.15] Nanostack release v12.3.0
13072
[mbed-os-5.15] Allowed to set Wi-SUN certificates in DISCONNECTED state
13033
[Mbed OS 5.15] Upgrade to Mbed TLS 2.22.0
13031
Mbed OS 5.15: Warn on unrecognised error
12986
M2351: Enable non-PSA minimal secure build (5.15)
12972
Alt1250 enable tac info for registration status (mbed 5.15)
12970
Nuvoton: Refine more on watchdog HAL (5.15)
12969
Nuvoton: Fix watchdog reset failure on meeting Hard Fault (5.15)
12934
[mbed-os-5.15]Add possibility to configure Mesh MAC neighbourtable size.
12933
Backport Arm C static RAM fix to Mbed OS 5.15 (#12462) (Mbed OS 5.15)
12895
Added kv store adaptation to nanostack file interface (Mbed OS 5.15)
12894
Nanostack: Add config for Wi-SUN device type (Mbed OS 5.15)
12893
Add Wi-SUN statistics interface (Mbed OS 5.15)
12892
Add new configuration parameters to Wi-SUN network interface and Border Router class (Mbed OS 5.15)
12882
[Mbed OS 5.15] Add getsockopt option to read network property
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.15.4".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by adbridge over 4 years ago
We are pleased to announce the Mbed OS 6.0.0 release is now available.
The Arm Mbed team is delighted to announce the release of Mbed OS 6, our first major release in almost four years. We have invested heavily to add the features required for today’s IoT devices, and to back those features up with state of the art tooling to simplify development of IoT and embedded products.
This release includes:
There have also been some significant changes to our BLE offering, as summarised below.
#12674, #12676, #12742, #12730
We have removed all deprecated APIs in BLE and adjusted other APIs to resolve dependencies on the deprecated ones. We have also removed target-specific stacks that are incompatible with the latest APIs.
Item | Change | Migration |
---|---|---|
SoftDevice stack | Superseded/Removed | * For nRF52* targets, please use the Cordio stack, which is already enabled by default.* nRF51* targets will be unsupported in future Mbed OS releases. |
Maxim stack | Removed | BLE feature on Maxim targets is disabled until an updated version becomes available. |
Non-SIG services based on third-party standard:DFUService UARTService EddystoneConfigService EddystoneService URIBeaconConfigService iBeacon
|
Removed | If needed, you can take services from Mbed OS 5.15 and update the code, or implement your own based on specifications. |
Legacy APIs in BLE.h
|
Superseded | See functions marked with MBED_DEPRECATED() in Mbed OS 5.15's BLE.h for migration advice in comments. |
Legacy APIs in GattCharacteristic.h
|
Superseded | See functions marked with MBED_DEPRECATED_SINCE() in Mbed OS 5.15's GattCharacteristic.h for migration advice in comments. |
Legacy APIs in GattClient.h
|
Superseded | See functions marked with MBED_DEPRECATED() in Mbed OS 5.15's GattClient.h for migration advice in comments. |
Legacy APIs in SecurityManager.h
|
Superseded | See functions marked with @deprecated in Mbed OS 5.15's SecurityManager.h. Applications should implement the SecurityManager::EventHandler interface and register it with SecurityManager::setSecurityManagerEventHandler(...) . |
Legacy APIs in Gap.h
|
Superseded | See functions marked with MBED_DEPRECATED_SINCE() in Mbed OS 5.15's Gap.h for migration advice in comments. |
Gap::getMinAdvertisingInterval() Gap::getMinNonConnectableAdvertisingInterval() Gap::getMaxAdvertisingInterval()
|
Removed | The values are constant and target-agnostic. Use ble::adv_interval_t::min() and ble::adv_interval_t::max() . |
Gap::getDeviceName() Gap::getAppearance()
|
Removed | Device Name and Appearance are set by the application, which should already know the values. |
Gap::setDeviceName() Gap::setAppearance()
|
Superceded | Use AdvertisingDataBuilder to add Device Name and Appearance to the payload, then apply the payload with Gap::setAdvertisingPayload() . |
Gap::getPreferredConnectionParams() Gap::setPreferredConnectionParams()
|
Removed (temporarily) | We plan to move them to GattServer in the future. |
BLEProtocol::AddressType_t BLEProtocol::AddressBytes_t
|
Superseded | Replaced by ble::peer_address_type_t ble::own_address_type_t ble::address_t To decide which ones to use, see the functions you want to call. |
Gap::Whitelist_t BLEProtocol::Address_t
|
Changed | Replaced by ble::whitelist_t where each item on a whitelist is ble::whitelist_t::entry_t .This is used byGap::setWhitelist() SecurityManager::generateWhitelistFromBondTable() . |
Gap::ConnectionParams_t |
Superseded | The latest GAP API requires full-fleged ble::ConnectionParameters . |
ble::central_privay_configuration_t |
Typo fixed | Renamed to ble::central_privacy_configuration_t . |
This release has been tested and is known to fully support the following compilers:
Other versions of the compilers may not work as expected.
This section lists specific changes in this release that may need special attention.
Removed automatic creation of the Root of Trust when DeviceKey::generate_derived_key(...)
API is used.
You must generate or inject the key before the first use of the DeviceKey
API.
DeviceKey is not automatically generated anymore. This might impact test application that expect the key to be present, but do not explicitly generate it.
Application developers must be aware that if their device does not have Root of Trust permanently injected, which is usually true in the development phase, they must generate a key before the first use of the DeviceKey
API. Two options exist for key generation:
DeviceKey::device_generate_root_of_trust()
DeviceKey::device_inject_root_of_trust(...)
string_to_pdp_type
is only used in CellularContext
classes, and having the conversion method in CellularContext means it can also be used to check the non-standard Non-IP PDP type string.
None, if the application uses existing cellular classes. If you have implemented your own CellularContext
class, then see Migration actions required below.
Classes deriving from CellularContext
must implement a new function:
virtual const char *get_nonip_context_type_str() = 0;
This API has already been implemented in AT_CellularContext though, so the current code does not change.
Moves BlockDevice configurations used by SystemStorage as BlockDevice defaults. This makes it possible to use the defaults to execute littlefs filesystem tests.
Adds SPIF/QSPIF/SPIFReduced- and SDBlockDevice specific app configs for making it possible to run the aforementioned tests.
Remove the immediate-start constructors deprecated in Mbed OS 5.1.
Code using the old constructors will no longer compile.
Code using immediate-start Thread
constructors must be changed to use the Thread::start
method.
Mbed OS has been carrying the unsupported
directory for a long time, to give users a form of USB stack. This is no longer needed, since Mbed OS has its own implementation of USB.
As the name suggest the 'unsupported' directory was not supported, but as it was there the community was free to use any of the functionality in it. So in theory it is a breaking change, even if the code was never properly supported.
Removed functionality was never supported and its use was not recommended. If you used USB device mode, please port your code to use the supported version from the Drivers directory. If you need any other features please consider contributing them to Mbed.
Cellular: Refactor cellular variable visibilities:
_property_array
from CellularDevice_impl
methods to protected.This can potentially be a breaking change, but none of the existing Mbed OS cellular targets required any changes.
If you want to use a cellular variable marked as private, inform @ARMmbed/mbed-os-wan and we can review the case.
cmd_start()
(and destructor) method(s) devirtualised because it was not needed.cmd_start()
(and destructor) method(s) devirtualised because it was not needed.Visibility of some methods has been changed in ATHandler. This should not cause any issues if they were not used (as they shouldn't have been).
If the include path has been used correctly for ATHandler.h there are no cahnges needed.
SocketAddress::operator== did not check the port number. Adding this check can be considered as a breaking change. All greentests and unitests were checked and fixed.
The app_offset and header_offset parameters have always been a part of the target configuration parameters. However, they were intercepted by the tools and never exposed to the application. The new FOTA (update client next generation) functionality requires these parameters in the code as well. So this PR adds them to the targets.json file. The only result of this PR is the addition of these two macros into the code.
Note that the tools already expose the macros APPLICATION_ADDR and HEADER_ADDR having the same values. However, these macros are only available when the application is built with the bootloader. If it isn't, these macros aren't available, hence this PR.
This change is required for new FOTA client.
"__aeabi_assert"
function from Microlib boot code file to mbed_retarget file so that it can be available for both RTOS Microlib and bare metal to resolve the undefined symbol linker issue.__MICROLIB
. This is required in order to build an RTOS application with Microlib.These changes deprecate the uARM toolchain.
As uARM toolchain is deprecated, you need to redefine a supported_c_libs configuration with "small" for arm toolchain on the target in targets.json to enable Microlib support, for example:
"supported_c_libs": {
"arm": ["std", "small"],
"gcc_arm": ["std", "small"],
"iar": ["std"]
}
You also need to change the scatter file to the 2-region memory model see more info.
Instead of -t uARM, use default_lib with "small" in mbed_app.json configuration for ARMC6 toolchain.
This file was not needed; should be part of DSP. The functionality is part of the library provided
by CMSIS.
I would like to test this, for all devices. This header file should be removed in 6.0.0 as we do not provide DSP library. Thus I set this as Major update.
Fixes #12054
Applications should use CMSIS DSP package. As the order of includes is not defined in our tools, this might cause an error - hard to tell which CMSIS math header was actually included. The removed math header we used in this code base was an older version.
Use CMSIS DSP release (not part of Mbed OS at the moment) - the header file CMSIS math is included there.
For consistency with std::shared_ptr
, and mbed::Callback
, and as a
potential optimisation aid, give SharedPtr
a distinct constructor for
nullptr
.
Optimise clearing by adding nullptr
overload.
The added nullptr
overload means SharedPtr(NULL)
or SharedPtr(0)
will no longer work; you must use SharedPtr(nullptr)
or SharedPtr()
.
C++17 standardised [[fallthrough]]
for switch
statements to suppress compiler warnings. Provide access to it, or compiler-specific alternatives.
MBED_FALLTHROUGH
attribute added to mbed_toolchain.h
- a portable equivalent for C++17's [[fallthrough]]
.
None
NVStore: already deprecated implementation removal.
People are advised to use KVStore.
No migration path available.
FunctionPointer
has been removed.FunctionPointer
will no longer compile.FunctionPointer
users should switch to Callback
.Removed CellularBase and AT_CellularBase from cellular stack and updated both code and unittests accordingly. Cellular drivers in Mbed OS have been updated.
APN lookup and SMS features are now disabled by default.
Earlier cellular device properties were handled in AT_CellularBase class. After this change, they are correctly handled in the AT_CellularDevice class. The properties are always modem specific and must therefore be handled in the AT_CellularDevice class, which is common for all contexts using it.
CellularBase has been completely removed so those using it must now switch to use CellularInterface instead.
Disabling SMS will save ~4,5kB and APN lookup about ~2kB
Cellular modem drivers must be updated (done for targets in Mbed OS) by removing references to CellularBase.
CellularBase must be changed to CellularInterface if still in use. (It was already typedef'ed so no other changes needed)
If the application needs SMS or APN lookup, they need to be enabled in mbed_app.json
(cellular.use-apn-lookup: true or cellular.use-sms: true).
TDBStore
no longer requires Flash based block device.
SlicingBlockDevice
does no longer accepts both parameters as zero, or size as zero. SlicingBlockDevice(block, 0,0)
used to create a block device that took up the whole block device. There is no sense in doing this, and it has most probably been a programming error if used. Therefore, the constructor now does MBED_ASSERT()
if both parameters, start
and stop
point to the same value. Effectively this prevents creating a slice that has size of zero, or takes the full block device.
You can no longer create a SlicingBlockDevice that has size of zero, or take the full size of the underlying block device.
No migration required for code that uses SlicingBlockDevice as intended.
Add the UnbufferedSerial class to provide unbuffered I/O access.
Use it instead of RawSerial. See documentation section for more details.
The MbedCRC
class has been improved and optimised.
We've added a global JSON configuration drivers.crc-table-size
controlling table usage, and individual uses can be size-optimised via template parameters. However, some changes are backwards-incompatible.
POLY_32BIT_REV_ANSI
has been removed - the same result can be obtained via POLY_32BIT_ANSI
.POLY_16BIT_IBM
had errors - this has been corrected, but CRC results will be different from the previous software calculation (but will match any hardware calculation)Add ability to enable Minimal printf using configuration parameter.
A new configuration parameter target.printf_lib
has been added to enable it.
Convenient and familiar way to configure Mbed OS.
Deprecated methods in Callback
removed.
Some code that was generating deprecation warnings will no longer compile at all.
Callback(arg, func)
with the reversed Callback(func, arg)
attach
with simple assignment, such as callback = func;
or callback = { func, arg };
Added getaddrinfo interface for multiple DNS addresses. It uses the existing nsapi_dns_query_multiple functions.
Sync and async versions added to the interface, so dependent libraries need to be rebuilt.
New members are added to the network interface:
-getaddrinfo
-getaddrinfo_async
Both of them allocate space for results.
The function gethostbyname is unchanged, but the gethostbyname_async/getaddrinfo_async callback result parameter now contains the number of DNS records found instead of NSAPI_ERROR_OK =0, so a definition of a new callback for getaddrinfo_async is not needed.
Test cases for sync/async added added to DNS test folder.
SYNCHRONOUS_DNS_MULTI_IP
ASYNCHRONOUS_DNS_MULTI_IP
The Arm Compiler 5 is no longer supported, so we removed the deprecate warning and added the exception in the build tool to stop building with ARM compiler 5.
With these changes, Arm compiler 5 build fails.
Upgrade the environment to use Arm Compiler 6 see documentation
This PR adds the function set_random_address
to the HCIDriver
class. It allows drivers writer to set the Random Static Address of the controller without using the deprecated API Gap:: setAddress .
This PR supersedes #12235 .
This commit removes multi ATHandler
support from cellular. This has not been used and causes unnecessary complexity and memory consumption.
Memory statistics of mbed-os-example-cellular with NRF52840_DK + BG96:
GCC:
Total Static RAM memory (data + bss): 29360(+296) bytes
Total Flash memory (text + data): 130660(-832) bytes
ARM:
Total Static RAM memory (data + bss): 261554(+8) bytes
Total Flash memory (text + data): 127573(-1193) bytes
IAR:
Total Static RAM memory (data + bss): 25479(+296) bytes
Total Flash memory (text + data): 102418(-527) bytes
The RAM increase is because ATHandler
is no longer created with a new -operator, and is instead a member of AT_CellularDevice
, so the image tool is able to count it. Actual total RAM consumption has decreased thanks to removing the variables.
Major changes:
AT_CellularDevice
owns the default FileHandle
and shares it with AT -classes.CellularContext::configure_hup()
. It can no longer be configured via CellularDevice
.CellularContext::configure_hup()
. CellularDevice::enable_hup() and context creation with BufferedSerial handle removed. Cellular will now automatically enable and disable HUP when switching between AT and PPP mode.CellularDevice::create_context()
no longer takes FileHandle
as parameterCellularDevice::get_file_handle()
removed. ATHandler::get_file_handle(
) can be used instead.Cleanup the Cellular API by removing empty default implementations and making them pure virtual.
Targeted for release-version 6.0.0.
CellularDevice
will have to have implementation for the new pure virtual methods:clear()
get_context_list()
CellularContext
do not have to have implementation for:get_netmask()
get_gateway()
nsapi_error_t NetworkInterface::get_netmask(SocketAddress *)
{
return NSAPI_ERROR_UNSUPPORTED;
}
nsapi_error_t NetworkInterface::get_gateway(SocketAddress *)
{
return NSAPI_ERROR_UNSUPPORTED;
}
See Impact of changes section.
target.default_lib
to target.c_lib
as it is more meaningful. These changes are done only for MBED OS 5 targets and in the build tool.With these changes, target.default_lib
attribute is no longer being supported.
target.c_lib
is the new attribute used for C library selection. The choice remains unchanged("std" or "small"
)Disable coverage report filtering because of poor results.
e.g. mbed test --unittests -r Socket --coverage html
g
This command will run all unittests with names containing Socket
and then create coverage report with the same scheme, filtering all source files with names containing Socket
.
The problem is that coverage report will be correct only when filtered test name will be the same as corresponding source file name (to be covered) - the same (-r) pattern is used to filter both test names and source file names used in coverage report
Due to described problems it was decided to disable coverage report filtering.
-r
will only filter test names and pattern won't be passed to coverage report generator.
Removes deprecated API's under hal/storage_abstraction
and the folder itself. Only target which had implemented the functionality was K64F and the implementation gets removed with this PR.
Removes deprecated storage_abstraction API.
Migration not possible. Developers who were relying on this API should study Mbed OS Storage documentation.
Instead of defining which classes can access state machine, CellularStateMachine
class is now "a normal" CPP class with public API.
This is potentially a breaking change but as CellularStateMachine
is only used internally there shouldn't be any impact.
None, internal change
Cellular: Remove deprecated CellularDevice::stop()
Removed method CellularDevice::stop()
CellularDevice::shutdown()
should be used instead.
Fixes https://github.com/ARMmbed/mbed-os/issues/11982 (some routers fail to work with the UDPSocket-approach, but are proved to work when ESP uses its embedded hostname resolution AT command).
The feature is disabled by default and can be enabled in mbed_app.json with "esp8266.built-in-dns": true
. When enabled then the synchronous hostname resolution will use the ESP's CIPDOMAIN
AT command, but asynchronous resolution will keep on using the UDPSockets as before (no point rewriting the nsapi_dns). Also caching does not work.
I tested with the netsocket-dns testsuite. Obviously caching tests often fail, but if lucky I can get 15/16 passes.
@zhiyong80, please verify if this works with your router.
None, until user enables the esp8266.built-in-dns
option.
Implement the BufferedSerial
class to replace UARTSerial
. BufferedSerial
is UARTSerial
renamed to convey the original purpose of the class. Also remove usage of UARTSerial
in Mbed OS Core diretories
Upgrade to Mbed TLS 2.20.0d1 and Mbed Crypto 3.0.0d0.
What behavior changes are being made?
For security and NIST SP 800-90A compliance reasons, CTR DRBG now grabs a nonce from the entropy source if needed to provide the maximum security strength. A previously unused-before-seeding member of the CTR DRBG context, mbedtls_ctr_drbg_context::reseed_counter
, is used to hold the number of bytes the user has requested to include from the nonce via mbedtls_ctr_drbg_set_nonce_len()
, or -1
to indicate that the entropy nonce length was not set explicitly. This means applications that were depending on a reseed_counter
value of 0
to mean "not yet seeded" will need to instead handle errors from calls to mbedtls_ctr_drbg_seed()
.
What is being deprecated?
A few PSA Crypto asymmetric cryptography functions and macros, key usage definitions, and error code definitions have been renamed to better reflect their operation and to improve readability.
Why is this being deprecated?
The PSA Crypto API continues to develop as it heads towards its 1.0 release. Mbed Crypto 3.0.0d0 implements more of PSA Crypto 1.0b3 than was implemented in Mbed Crypto 2.x, and this brings along some API deprecations.
Mbed Crypto includes backwards compatibility macros (by way of psa/crypto_compat.h
) to provide source-level backwards compatibility, although it's recommended to stop using the deprecated APIs as soon as you are able to.
To avoid using deprecated APIs, users of PSA Crypto should update to the new version of API.
Old | New |
---|---|
psa_asymmetric_sign() |
psa_sign_hash() |
psa_asymmetric_verify() |
psa_verify_hash() |
PSA_ASYMMETRIC_SIGNATURE_MAX_SIZE() |
PSA_SIGNATURE_MAX_SIZE() |
PSA_ASYMMETRIC_SIGN_OUTPUT_SIZE() |
PSA_SIGN_OUTPUT_SIZE() |
PSA_KEY_USAGE_SIGN |
PSA_KEY_USAGE_SIGN_HASH |
PSA_KEY_USAGE_VERIFY |
PSA_KEY_USAGE_VERIFY_HASH |
PSA_ERROR_UNKNOWN_ERROR |
PSA_ERROR_GENERIC_ERROR |
PSA_ERROR_OCCUPIED_SLOT |
PSA_ERROR_ALREADY_EXISTS |
PSA_ERROR_EMPTY_SLOT |
PSA_ERROR_DOES_NOT_EXIST |
PSA_ERROR_INSUFFICIENT_CAPACITY |
PSA_ERROR_INSUFFICIENT_DATA |
PSA_ERROR_TAMPERING_DETECTED |
PSA_ERROR_CORRUPTION_DETECTED |
Remove various Thread
methods that were deprecated in Mbed OS 5.10
Code using the old methods will no longer compile
Uses of the following removed Thread
methods need to be replaced:
Thread::signal_set
-> Thread::flags_set
Thread::signal_clr
-> ThisThread::flags_clear
Thread::signal_wait
-> ThisThread::flags_wait_xxx
Thread::wait
-> ThisThread::sleep_for
Thread::wait_until
-> ThisThread::sleep_until
Thread::yield
-> ThisThread::yield
Thread::gettid
-> Thread::get_id
or ThisThread::get_id
Thread::attach_idle_hook
-> Kernel::attach_idle_hook
Thread::attach_terminate_hook
-> Kernel::attach_thread_terminate_hook
Add the hal_reset_reason_get_capabilities()
function to the ResetReason HAL API to skip the unsupported reason values during HAL & driver tests.
Fixes #11792.
Updated tests:
tests-mbed_hal-reset_reason
,tests-mbed_drivers-reset_reason
.Extend the ResetReason HAL API with the hal_reset_reason_get_capabilities()
function. Unsupported reason values are skipped during the greentea tests.
A default, weak implementation is provided. Every target has to override this weak implementation to provide the correct reset_reason_capabilities_t
.
For GCC we're being cautious by passing the -fno-delete-null-pointer-checks
. This option prevents some optimisation opportunities, so removing it can reduce code size.
One particular optimisation loss occurs in Callback
where a test similar to this occurs:
extern void myfunc();
inline void foo(void (*fnptr)())
{
if (fnptr) {
do A;
} else {
do B;
}
};
foo(myfunc);
With -fno-delete-null-pointer-checks
, the compiler does not assume that &myfunc
is non-null, and inserts the "null check" - seeing if the address is 0. But performing that test of the address is incorrect anyway - if myfunc actually could be at address 0, we'd still want to doA.
Anyway, we do not have an equivalent option enabled for either Clang or IAR, and we have performed clean-ups avoiding issues with apparently-null vector tables in Clang already, for example #10534.
Therefore it should(TM) be safe to remove the option for GCC. We do not have general data or code at address 0, only vectors are likely to be there, so it does not make sense to be globally restricting code generation for that.
Will reduce image size. Particularly when Callback
is in use. Increased optimisation may require code adjustments, exposing undefined behaviour
If code fails, address undefined behaviour. Eg this null check may now be removed:
int foo(int *ptr)
{
int a = ptr[0];
if (!ptr) { // may be optimised out - compiler can assume non-null because already accessed
return -1;
}
return bar(a);
}
Correct to:
int foo(int *ptr)
{
if (!ptr) {
return -1;
}
int a = ptr[0];
return bar(a);
}
Added an lto
build profile extension for ARMC6
toolchain.
-flto
to common
flags,--lto
& --lto_level=Oz
to ld
flags.Product: ARM Compiler 6.11 Professional Component: ARM Compiler 6.11 Tool: armclang [5d3b4200]
Mbed OS branch | commit SHA | RAM (data + bss) | Flash (text + data) | build time | details |
---|---|---|---|---|---|
mbed-os-5.14.1 | 679d248 |
206047 | 39168 | 739.53 | blinky-679d248.txt |
armc6_build-enable_lto_for_release | c6a655f |
205848 | 36601 | 610.81 | blinky-c6a655f.txt |
Mbed OS branch | commit SHA | RAM (data + bss) | Flash (text + data) | build time | details |
---|---|---|---|---|---|
mbed-os-5.14.1 | 679d248 |
252457 | 361038 | 828.68 | ccexample-679d248.txt |
armc6_build-enable_lto_for_release | c6a655f |
251580 | 329505 | 835.21 | ccexample-c6a655f.txt |
mbed-os-example-blinky
cd $(mktemp -d)
git clone [email protected]:ARMmbed/mbed-os-example-blinky.git
cd mbed-os-example-blinky/
git checkout mbed-os-5.14.1
git clean -dxff && git reset --hard
# Define Mbed OS rev
# 1. mbed-os-5.14.1
echo 'https://github.com/ARMmbed/mbed-os/#679d24833acf0a0b5b0d528576bb37c70863bc4e' > mbed-os.lib
# 2. LTO branch on top of mbed-os-5.14.1
echo 'https://github.com/fkjagodzinski/mbed-os/#d7df3e673144232d3e162de19ec13f0472d725c6' > mbed-os.lib
mbed deploy
cd mbed-os/ && git log --oneline -1 && cd ..
time -p mbed compile -t ARM -m K64F --profile mbed-os/tools/profiles/release.json
# More details
mbed compile -t ARM -m K64F --profile mbed-os/tools/profiles/release.json --stats-depth=100
mbed-cloud-client-example
cd $(mktemp -d)
git clone [email protected]:ARMmbed/mbed-cloud-client-example.git
cd mbed-cloud-client-example/
git checkout 4.0.0
git clean -dxff && git reset --hard
cp ../mbed_cloud_dev_credentials.c .
# Define Mbed OS rev
# 1. mbed-os-5.14.1
echo 'https://github.com/ARMmbed/mbed-os/#679d24833acf0a0b5b0d528576bb37c70863bc4e' > mbed-os.lib
# 2. LTO branch on top of mbed-os-5.14.1
echo 'https://github.com/fkjagodzinski/mbed-os/#d7df3e673144232d3e162de19ec13f0472d725c6' > mbed-os.lib
mbed deploy
cd mbed-os/ && git log --oneline -1 && cd ..
time -p mbed compile -t ARM -m K64F --profile mbed-os/tools/profiles/release.json
# More details
mbed compile -t ARM -m K64F --profile mbed-os/tools/profiles/release.json --stats-depth=100
Removed RtosTimer deprecated class.
Breaking change: RtosTimer has been deprecated since Mbed OS 5.2 and it is removed now.
Use EverntQueue as it provides similar functionality with the additional features to handle deferring other events to multiple contexts.
Modified Mutex lock() and unlock() APIs to returnvoid
as return status value deprecated.
Breaking change: Mutex lock()
and unlock()
methods return status value have been deprecated since Mbed OS 5.9, so changed the return value to void
.
Use Mutex void lock()
, void unlock()
methods.
Removed Mutex deprecated API.
Breaking change: Mutex lock(uint32_t millisec)
method have been deprecated since Mbed OS 5.10 and its removed now.
Use Mutex lock
, trylock
, trylock_for
methods.
Update the version of Mbed Crypto provided by Mbed OS to version 3.0.1.
For details of this update see the documentation here:
https://github.com/ARMmbed/mbed-crypto/releases/tag/mbedcrypto-3.0.1
Removed FileSystemLike deprecated APIs.
Breaking change: FileSystemLike opendir
and open
methods have been deprecated since Mbed OS 5.5 and they are removed now.
Use open(FileHandle **file, const char *filename, int flags)
and open(DirHandle **dir, const char *path)
methods.
Removed DirHandle deprecated APIs.
Breaking change: DirHandle closedir
, readdir
, rewinddir
, telldir
and seekdir
methods have been deprecated since Mbed OS 5.4 and they are removed now.
Use DirHandle close
, read
, rewind
, tell
and seek
methods.
Removed mbed power management deprecated API.
Breaking change: deepsleep
API has been deprecated since Mbed OS 5.6 and it is removed now.
Use sleep()
Removed mbed interface deprecated API.
Breaking change: mbed_error_vfprintf API has been deprecated since Mbed OS 5.11 and it is removed now.
Use mbed_error_vprintf()
.
Removed FileHandle deprecated APIs.
Breaking change: FileHandle lseek
, fsync
, and flen
methods have been deprecated since Mbed OS 5.4 and they are removed now.
Use FileHandle seek()
, sync()
, and size()
methods.
CallChain is never intended for public use and its no longer used in Mbed OS, therefore, it is removed.
Breaking change: CallChain class and its methods have been deprecated since Mbed OS 5.6 and they are removed now.
None
Removed the CriticalSectionLock deprecated APIs.
Breaking change: CriticalSectionLock lock
and unlock
methods have been deprecated since Mbed OS 5.8 and they are removed now.
Use the static methods CriticalSectionLock::enable()
and CriticalSectionLock::disable()
.
Removed ATCmdParser deprecated APIs.
Breaking change: ATCmdParser setTimeout, setDelimiter, and dubugOn methods have been deprecated since Mbed OS 5.5.0 and they are removed now.
Use set_timeout()
, set_delimiter()
, and debug_on()
attach
with callback
APIBreaking change: Ticker attach and attach_us methods with cv-qualifiers have been deprecated since Mbed OS 5.1 and they are removed now.
Use attach(callback(obj, method), t)
and attach_us(callback(obj, method), t)
Removed InterruptIn deprecated APIs.
Breaking change: InterruptIn rise and fall methods with cv-qualifiers have been deprecated since Mbed OS 5.1 and they are removed now.
Use rise(callback(obj, method))
and fall(callback(obj, method))
Removed InterruptManager class as it was deprecated since Mbed 5.6.
All users of InterruptManager class will need to modify their application.
The interrupt handlers need to be attached directly using specific drivers, for example, Application handler can use one of the Ticker/Timer/Timeout classes for clock-related interrupts.
The Ethernet
is no longer supported, so removed header and cpp files and its dependency.
Breaking change: The Ethernet object is removed as it has been deprecated in the previous feature releases.
Use NetworkInterface instead, for more details have a look at our documentation here
Use override
and final
where appropriate, and eliminate unnecessary
virtual
.
Fix up get_ip_address
following string-based API removal (#11942).
Some other C++11 simplifications.
Marking as breaking change as it fixes up a previous breaking change.
No new impact.
No new migrations
Use override
and final
where appropriate, and eliminate unnecessary
virtual
.
Fixes some mismatches in string-based API removal (#11942)
Some other C++11 simplifications.
Reduces code size.
Marking as breaking change because it fixes up some work in a previous breaking change.
No new implications.
No new actions.
Add the gpio_get_capabilities()
function to the GPIO HAL API to skip the unsupported input pull modes when testing with the FPGA-CI-test-shield.
Updated tests:
tests-mbed_hal_fpga_ci_test_shield-gpio
.Extend the GPIO HAL API with the gpio_get_capabilities()
function. Unsupported input pull modes are skipped during the greentea tests.
A default, weak implementation is provided. Every target has to override this weak implementation to provide the correct gpio_capabilities_t
.
The blockdevice is not needed by the bootloader. Removes SPIFReducedBlockDevice fully.
Applications relying to SPIFReducedBlockDevice are forced to switch to SPIFBlockDevice. This comes at a cost of ROM and RAM usage.
Applications need to switch on SPIFBlockDevice
When dealing with EEPROMs without a 16 bit adressing, the current
implementation does not work, as it writes a 16 bit address to the chip.
This may cause undefined behaviour.
This change adds a new constructor argument to enable this new eight-bit
mode. It defaults to false to not break existing code.
This constructor argument should actually never be necessary to manually
set, except when dealing with cheap devices.
An example for such a device is the Hua Hong NEC K24C02. Datasheet.
Added a new optional argument at the end of all existing constructors.
None, as the new constructor argument is optional and at the end.
The default value does not change functionality in existing code.
Removed CAN deprecated APIs.
With these changes, CAN attach
APIs with cv-qualifiers sources are removed and this is the breaking changes for the user
Use attach(callback(obj, method), type)
This PR enables minimal-printf library for all builds. That means that all calls to printf family (including snprintf) will be handled by the minimal-printf library. Main reason for the change are substantial ROM savings that can reach up to 20k. The below table shows result for simple RTOS blinky example in two variants (explicitly calling printf and without) for two boards and three profiles:
Minimal-printf library supports most of the basic usecases:
* %d: signed integer [h, hh, (none), l, ll, z, j, t].
* %i: signed integer [h, hh, (none), l, ll, z, j, t].
* %u: unsigned integer [h, hh, (none), l, ll, z, j, t].
* %x: unsigned integer [h, hh, (none), l, ll, z, j, t], printed as hexadecimal number (e.g., ff).
* %X: unsigned integer [h, hh, (none), l, ll, z, j, t], printed as hexadecimal number (e.g., FF).
* %f: floating point (enabled by default).
* %F: floating point (enabled by default, treated as %f).
* %g: floating point (enabled by default, treated as %f).
* %G: floating point (enabled by default, treated as %f).
* %c: character.
* %s: string.
* %p: pointer (e.g. 0x00123456).
If your application requires more advanced functionality you'll have to revert to using standard library version.
If your application requires advance features of printf family calls, you'll either simplify it or switch to the standard C library version. To do so modify your application configuration in mbed_app.json
file to override the parameter target.printf_lib
with the value std
as shown below:
"target_overrides": {
"*": {
"target.printf_lib": "std"
}
}
Remove the deprecated string-based APIs. This is a breaking change, targeted for mbed-os-6.0
.
The APIs were deperecated in mbed-os-5.15, see https://github.com/ARMmbed/mbed-os/pull/11914. Their internal usage was given up in https://github.com/ARMmbed/mbed-os/pull/11941.
The following API functions are being removed:
TCPServer (whole class is deprecated already)
TCPSocket::connect(const char *host, uint16_t port);
TLSSocket::connect(const char *host, uint16_t port);
DTLSSocket::connect(const char *host, uint16_t port)
InternetDatagramSocket::sendto(const char *host, uint16_t port, data, size);
InternetSocket::bind(const char *address, uint16_t port);
L3IP:add_ipv4_multicast_group(const char *address);
L3IP:add_ipv6_multicast_group(const char *address)
L3IP:remove_ipv4_multicast_group(const char *address);
L3IP:remove_ipv6_multicast_group(const char *address)
NetworkInterface::get_ip_address()
NetworkInterface::get_netmask()
NetworkInterface::get_gateway()
NetworkInterface::set_network(const char *ip_address, const char *netmask, const char *gateway)
NetworkStack::get_ip_address()
NetworkStack::get_ip_address_if()
Applications using the old APIs will not compile.
Users are expected to use their SocketAddress
-based counterparts and explicitly call gethostbyname()
if DNS address resolution is needed.
Add a build profile extension with the link-time optimizer enabled for GCC_ARM toolchain.
The minimal required version of the GCC_ARM
is now the GNU Arm Embedded Toolchain Version 9-2019-q4-major. Earlier GCC_ARM
versions can cause various issues when the -flto
flag is used, e.g. a platform specific error during the final link stage on Windows hosts with GCC8.
The noinline
attribute has to be used for every function that must be placed into a specific section (specified with a section(".section_name")
attribute). In general, when a function is considered for inlining, the section
attribute is always ignored. However, with the link-time optimizer enabled, the chances for inlining are much higher because the inliner works across multiple translation units. As a result, the output sections' sizes change compared to a non-lto build. This may lead to a section ".section_name" will not fit in region "region_name"
type errors.
The common
flags defined for the GCC_ARM
toolchain are now appended to the ld
flags during a mbed-cli build. Previously, the common
flags were appended only to asm
, c
and cxx
flags. Having the same flags for the compiler and the linker is required when using the link-time optimizer (which is the case for the lto
build profile extension). Any options unrecognized by the linker should be moved from common
to asm
, c
or cxx
.
Chrono changes "optimised" Timeout::handler
in a way that broke users who rescheduled the timeout during their attached callback.
Attempted optimisation is less necessary now that platform.callback-nontrivial
is set to false by default - that setting reduces overhead of copying the Callback
to almost nothing.
Fixes #12940.
Chrono conversions inadvertantly changed the core timed sleep routine used by the RTOS idle to use OsTimer::update_and_get_tick()
instead of OsTimer::get_tick()
.
Correct this, and expand/clarify documentation and naming to try to prevent recurrence.
Another minor fix observed while inspecting code - OsClock
can't just use milliseconds
, it should match the period of OsTimer
, which theoretically can be different.
Fixes #12920.
This is another of a series of PRs (others https://github.com/ARMmbed/mbed-os/pull/12775, https://github.com/ARMmbed/mbed-os/pull/12810, https://github.com/ARMmbed/mbed-os/pull/12864) to remove targets that are not supported or retired as explained in recent blog post.
There are individual commits to remove targets from targets.json and files/folders for the corresponding targets.
The following targets are being removed:
Applications can reduce their ROM usage by replacing
"\r\n" by "\n".
Breaks compatibility with applications built with Mbed 2.
Update to the latest version of Mbed OS (possibly using the bare metal profile for ultra-constrained devices).
USBCDC_ECM class device uses RTOS thread APIs, so added MBED_CONF_RTOS_PRESENT conditional check to disable that class device in bare metal profile.
With these changes, except USBCDC_ECM, all the below list of USB class devices can build and works in bare metal profile.
None.
This is the third of a series of PRs (others https://github.com/ARMmbed/mbed-os/pull/12775, https://github.com/ARMmbed/mbed-os/pull/12810) to remove targets that are not supported or retired as explained in recent blog post.
There are individual commits to remove targets from targets.json and files/folders for the corresponding targets.
The following targets are being removed:
It is no longer possible to use the uARM toolchain to build binaries for the ARCH_PRO board.
Set the "target.c_lib"
configuration option to "small"
to build binaries using Microlib with the ARM toolchain.
Allow Devicekey::generate_root_of_trust()
to define key size.
By default, generate 16 byte keys, to be compatible with bootloader.
But allow user to generate 32 byte keys as well.
This fixes #12821
Default key, generated by Devicekey::generate_root_of_trust()
is now 16 bytes,
instead of 32 bytes.
If you want to generate 32 byte keys with Devicekey::generate_root_of_trust()
,
you need to explicitly supply key size as a parameter.
Remove the deprecated header files as part of the Mbed 6 cleanup.
Breaking change: Applications that include the removed files will no longer successfully build.
Include the header files recommended in each removed header file:
platform/critical.h -> platform/mbed_critical.h
platform/mbed_sleep.h -> platform/platform/mbed_power_mgmt.h
platform/rtc_time.h -> platform/mbed_rtc_time.h
platform/semihost_api.h -> platform/mbed_semihost_api.h
platform/sleep.h -> platform/mbed_power_mgmt.h
platform/toolchain.h -> platform/mbed_toolchain.h
platform/wait_api.h -> platform/mbed_wait_api.h
This is the second of a series of PRs (first https://github.com/ARMmbed/mbed-os/pull/12775) to remove targets that are not supported or retired as explained in recent blog post.
There are individual commits to remove targets from targets.json and files/folders for the corresponding targets.
The following targets are being removed:
Removing targets: Seeed Arch Link, Seeed Arch-RO359B, Seeed Arch BLE, Seeed Tiny BLE, Seeed Arch GPRS V2,Seeed Xadow M0
These targets will no longer be supported.
Introduces LittleFSv2.2 developed by @geky. Mbed OS adaption (LittleFSv1 -> LittleFSv2) is based on work done by @pilotak. The only thing the undersigned has done was to create this PR.
No additional impact
Brings in LittleFSv2 which will coexist with LittleFSv1 already found from Mbed OS. If you already a v1 filesystem you might try converting it to v2, but this isn't guaranteed to succeed. You should preferably create a new v2 filesystem instead.
This is the first of a series of PRs to remove targets that are not supported or retired as explained in recent blog post.
There are individual commits to remove targets from targets.json and files/folders for the corresponding targets.
The following targets are being removed:
Turn off callback.non-trivial
by default to save ROM space.
Follow-up to #12036. Will need at least one example changed to turn the option back on.
Callback
with a non-trivial functor, they will get a compilation error directing them to turn on platform.callback-nontrivial
."platform.callback-nontrivial": true
to your mbed_app.json
if a build error indicates that it is required - or change your code to only use trivial functors in Callback
.Deprecated APIs from Gatt and SecurityManager do not exist anymore, applications that use them will not compile until updated with current APIs.
Applications that compile without deprecation warnings on mbed-os-5.15 will continue to work. Otherwise, please fix any deprecated API usages, for example by referring to compilation warnings from mbed-os-5.15.
Add Semtech Lora radio drivers for SX1272, SX1276 and SX126x radios.
Added as subtree from original repository: https://github.com/ARMmbed/mbed-semtech-lora-rf-drivers
Enable using Lora with no additional repositories, all of them part of Mbed OS.
None
Remove FUTURE_SEQUANA
and FUTURE_SEQUANA_M0
targets. These are not supported in Mbed 6.
After the removal of FUTURE_SEQUANA targets, there are no targets remaining that use Mbed SPM. Remove Mbed SPM as well, as it is unused.
The following targets are being removed in Mbed 6:
FUTURE_SEQUANA
FUTURE_SEQUANA_M0
Please use a version of Mbed OS 5 if you require support for FUTURE_SEQUANA
or FUTURE_SEQUANA_M0
With Mbed 6, TrustedFirmware-M (TF-M) is the source of Mbed's implementation of PSA. This means Mbed 6 doesn't need to contain any code or tooling to build the v8-M or dual CPU secure binaries.
This patch set removes tooling, code, and targets that would have been used to make PSA secure binaries for v8-M or dual CPU platforms.
ARM_MUSCA_A1_S
ARM_MUSCA_B1_S
LPC55S69_NS
LPC55S69_S
HANI_IOT
NU_PFM_M2351_NS
NU_PFM_M2351_S
Use Mbed 5.15 if you require PSA targets with exporter support, or one of the removed targets. LPC55S69 and Numaker M2351 will be supported in Mbed 6 at a later date, after the targets are supported by TF-M.
Some non-Mbed-OS, pre-existing CMSIS-RTOSv2 applications depend on
CMSIS-RTOSv2 Automatic Dynamic Allocation, also known as Object-specific
memory pools. Mbed OS doesn't by default provide any memory to the
CMSIS-RTOSv2 Automatic Dynamic Allocation pool, as doing so would waste
memory if the feature is not used; even if the feature is used, as a
platform, Mbed OS can't know how many objects of which types will be
created by an application and therefore will either waste memory or not
provide enough memory in a hard to debug manner. Portable CMSIS-RTOSv2
applications depending on CMSIS-RTOSv2 Automatic Dynamic Allocation
should instead configure the memory pools themselves, as applications
know best their memory requirements.
Add Mbed configuration options which can be used by applications to
control the amounts of memory available to the CMSIS-RTOSv2 Automatic
Dynamic Allocation subsystem. This enables portable CMSIS-RTOSv2
applications, which can run on any CMSIS-RTOSv2 OS, to be able to run on
Mbed OS as well.
Signed-off-by: Devaraj Ranganna [email protected]
Signed-off-by: Jaeden Amero [email protected]
Applications written for CMSIS-RTOSv2 that use CMSIS-RTOSv2 Automatic Dynamic Allocation can now also run on Mbed OS, when the application specifies how much memory to use in their mbed_app.json
. CMSIS-RTOSv2 docs claim that Automatic Dynamic Allocation is "fully portable", and now that's at least more true than before where Mbed is concerned.
The TF-M regression tests are a concrete example of an application written making use of CMSIS-RTOSv2 Automatic Dynamic Allocation. We have an incredibly easier time running (and maintaining) those tests with Mbed OS, validating the TF-M integration with Mbed OS does not break TF-M functionality, when Mbed OS supports application-configured CMSIS-RTOSv2 Automatic Dynamic Allocation.
None
This is a preparation for more upcoming changes. The latest master updates removed deprecated functionality and these targets do not compile anymore.
Boards based on the ODIN module won't compile in Mbed OS 6.0.0.
Staying with Mbed OS version up to 5.15.x.
LegacyGap
class and implementations. Map ble::Gap
to global Gap
.LegacyGap
) to Gap
and implementations into GenericGap
.BLEProtocol::
and replace AddressType_t
with own_address_type_t
/peer_address_type_t
, AddressByte_t
with address_t
, etc.BLE::Address_t
(for accessing address types + values in whitelists) with the new equivalent whitelist_t::entry_t
.ConnectionParams_t
-> PreferredConnectionParams_t
and use it only for Generic Access Service.central_privay_configuration_t
-> central_privacy_configuration_t
Notes:
setDeviceName()
, getDeviceName()
, setAppearance()
, getAppearance()
from LegacyGap
are removed, as device name and appearance can be set via AdvertisingDataBuilder
and saved by the application. But there were previously no deprecation warnings for them.get/setPreferredConnectionParams()
are dropped from Gap
- updated versions will be added to Gatt where they should belong to.Legacy BLE Gap APIs and related type definitions are no longer available.
Some APIs have been updated to take parameters of new type definitions of address types + values.
AdvertisingDataBuilder
and internally remember their values as needed, since APIs to get/set them are removed as explained above.Removed the pre-processor directive __ARMCC_VERSION >= 6010050 and the code added for versions before 6.01.0050.
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Use Arm Compiler 6
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Use Arm Compiler 6.
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Use Arm Compiler 6.
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Use Arm Compiler 6.
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Use Arm Compiler 6.
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Use Arm Compiler 6.
Remove deprecated Netsocket Icetea tests and TCPServer
class.
TCPServer
class removedTCPSocket
can be used instead of TCPServer
Remove deprecated methods from netsocket
Deprecated methods in netsocket (since Mbed OS 5.1) are removed.
InternetSocket::attach
-> Use Socket::sigio
TCPSocket(S *stack)
-> Use default TCPSocket
constructor and call open
separately
UDPSocket(S *stack)
-> Use default UDPSocket
constructor and call open
separately
Original work: https://github.com/ARMmbed/mbed-os/pull/12468 . This PR contains also the UT fix.
nsapi_addr_t
parameter.nsapi_addr_t
inputs by constant reference rather than value.unique_ptr
to manage the text buffer.operator bool
explicit.bool
or int
or others no longer possible - any existing code which does not compile is most likely an error. (if (sockaddr)
is still fine - such "contextual conversions to bool" can use the explicit operator).SocketAddress
's constructor must be modified to use NetworkInterface::gethostbyname
or NetworkStack::gethostbyname
.BLE
namespace.DFUService
, UARTService
and beacon-related services (iBeacon, EddyStone) whose standards/stacks are externally maintained.BLE
namespace are no longer available.DFUService
, UARTService
and beacon-related services (iBeacon, EddyStone) are no longer available.BLE
namespace need to be updated to use up-to-date APIs.targets.json
.Note: Some references/macros for SoftDevice are still present in the Nordic SDK (targets/TARGET_NORDIC/*
) and not cleanly separated with other components.
mbed compile -S
outputRemoved deprecated ARMC5 reference from mbed compile -S
command output.
With these changes, mbed compile -S
will not produce any ARMC5 reference.
None.
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Use Arm Compiler 6.
Removed ARMC5 reference from Mbed OS platform.
Breaking change: The ARMC5 references are removed from platform as they have been deprecated in a previous Mbed OS release.
Use Arm Compiler 6
Removed ARMC5 reference from FEATURE_BLE.
ARM Compiler 5 is no longer supported in Mbed OS and is superseded by ARM Compiler 6
Breaking change: The ARMC5 references are removed from platform as they have been deprecated in a previous Mbed OS release.
Use Arm Compiler 6
Removed minimal-printf extension profile. Usage of minimal-printf library is enabled via the target.printf_lib
configuration parameter as described in minimal-printf README, see https://github.com/ARMmbed/mbed-os/tree/master/platform/source/minimal-printf#usage for more details.
Applications can no longer use the obsolete minimal-printf extension profile.
Usage of minimal-printf library is enabled via the target.printf_lib
configuration parameter, see https://github.com/ARMmbed/mbed-os/tree/master/platform/source/minimal-printf#usage for more details.
Removed ethernet hal deprecated APIs.
Breaking change: The Ethernet hal APIs are removed as they have been deprecated in a previous Mbed OS release.
Added the bare metal form of the RTOS API since it doesn't add any overhead (except for a little extra compilation time) and has the benefit of minimising differences between RTOS and bare metal modes.
RTOS APIs are available in bare metal mode.
None
Removed Semaphore deprecated APIs.
Breaking change: Semaphore wait
and wait_until
methods have been deprecated since Mbed OS 5.13 and are removed now.
Use Semaphore acquire
, try_acquire
, try_acquire_for
and try_acquire_until
methods.
set_ip_address
API can be used to set a static IPv4 address or IPv6 link-local address to network stack. This is needed for example in cellular use cases where device gets multiple IP addresses from cellular context.
With get_dns_server
DNS servers can be queried from NetworkInterface object
Make NonCopyable
fully operational so it gives compile errors in all build profiles.
This removes the deprecated copy operators which let code compile with a warning.
Code that copies non-copyable classes will now not compile in any profile - previously a link error would have been generated in debug profile, but other profiles would have only generated a "deprecated" warning at compile time and a debug message at runtime.
Modify code to not copy non-copyable objects. Any code doing so would have likely led to problems such as memory leaks.
Removed mbed wait deprecated APIs.
Breaking change: wait
and wait_ms
APIs have been deprecated since Mbed OS 5.14 and they are removed now.
If you wish to sleep, use ThisThread::sleep_for
(C++) or thread_sleep_for
(C). If you wish to wait (without sleeping), call wait_us
. wait_us
is safe to call from ISR context.
mbed_set_error_hook()
can only be called inside the application. Therefore it is not possible in the application to catch errors before calling mbed_set_error_hook()
.
I thought it would be simpler to create a mbed_error_hook()
function which is weak and the application can catch errors at any time.
Replace mbed_set_error_hook()
with an application specific mbed_error_hook()
implementation.
Add new API to network interface.
Property API allows application to ask network specific properties
from the InternetSocket . Queried information can be used to avoid
network congestion by adjusting transmission jitter and retry
timeouts.
Add Chronos versions of time-related APIs to RTOS classes, Ticker-related classes and EventQueue.
Kernel::Clock
, HighResClock
, LowPowerClock
and RealTimeClock
act as the Chrono clocks. (C++ standard clocks system_clock
, steady_clock
and high_resolution_clock
are not supported, due to difficulty in consistent retargetting across toolchains).
Deprecate old non-Chrono APIs.
Existing timing code will generate deprecation warnings, but there should be no functional change.
A follow-up PR will clean-up warnings in rest of code base.
Users should migrate to use Chrono-based APIs as directed by the deprecation messages
RawSerial
, Serial
, UARTSerial
deprecated classes.Breaking change: RawSerial
, Serial
, UARTSerial
classes have been deprecated since Mbed OS 6.0.0 and they are all removed now.
Use BufferedSerial and UnbufferedSerial for serial communication.
Fixes https://github.com/ARMmbed/mbed-os/issues/12192.
get_time()
function allows access to (S)NTP functionalities of ESP8266 module.
I considered using std::chrono
instead of ctime's std::tm
, but then - to convert to chrono::time_point
we'd have to go through std::tm
anyway or write our own parser, which I just managed to avoid.
Side note: using std::
introduces some warnings due to -D_LIBCPP_EXTERN_TEMPLATE(...)=
flag being used in all our compilation profiles. This flag seems obsolete and I hope I will get it removed soon.
I cannot really add any tests, as they are using WifiInterface::get_instance()
to get the interface and there is no RTTI, that would allow casting to ESP8266Interface
to call get_time()
, but I tested the function locally and it works fine.
None, other than user can check time with ESP8266Interface.
None
Non-secure core IPC, Mailbox and Interface init for TFM_DUALCPU and TFM_V8M targets
These changes concentrate on getting mbed-os(Non-secure) working with TF-M(secure)
Changes reflect towards any Cypress based TFM_DUALCPU targets and TFM_V8M targets at the moment and making it more generic in the near future.
Key changes:
We are initializing the following for TFM_DUALCPU platforms:
We are only initializing a Non-secure interface for TFM_V8M platforms.
This impacts CY8CKIT_064S2_4343W, TFM_V8M and TFM_DUALCPU targets.
Extend Callback
, and optimise it.
nullptr
overload.std::function
API.nullptr
overload means Callback(NULL)
or Callback(0)
will no longer work; users must use Callback(nullptr)
or Callback()
.Callback
with a non-trivial functor, they will get a compilation error directing them to turn on platform.callback-nontrivial
.
Mbed 2 targets are not expected to be supported on master and for the Mbed OS 6 release.
The following changes are introduced:
These targets continue to be available in the 5.15 branch.
Mbed OS 6 won't support these targets unless are re-introduced.
none
This is non trivial fix as the function is being used outside of this repository.
Tools rely on it to return list of targets for 2 or 5. As we removed release_version from many targets,
this broke the logic. To keep the logic as it was, without updating all tools out there now,
lets just return full set of targets - all are supported.
In case for Mbed 2, returning all targets does not make sense, but rather raise an exception here. Not supported. This avoids suprised. If you look at build api functions there are many checks for 2 or 5 so more
clean up needed to actually get release_version out of the tools.
This is another of a series of PRs (others https://github.com/ARMmbed/mbed-os/pull/12775, https://github.com/ARMmbed/mbed-os/pull/12810, https://github.com/ARMmbed/mbed-os/pull/12864, https://github.com/ARMmbed/mbed-os/pull/12935) to remove targets that are not supported or retired as explained in recent blog post.
The following public nRF51 targets are being removed:
This is following discussions with @MarceloSalazar
All ST targets are:
@ARMmbed/team-st-mcd
Several targets are no more available in MBED-OS6
If you are still using it,
please use mbed-os-5.15 branch
This PR adds the ability to configure the pins of the S2LP driver for any target (inside Mbed OS or custom target) using the standard mbed_lib.json
and mbed_app.json
config files.
Additionally, the MTB_STM_S2LP and MTB_STM_S2LP_CT targets are removed as are not supported in Mbed OS 6, and thus making the S2LP driver independent of targets.
Note users can continue to use the 5.15 branch.
For Mbed OS 6, it should be possible to use the default pin config without changes (apart from MTBs).
Custom pin configuration can be done as shown next.
Developers need to create a mbed_app.json
(or other json config) including the pin configuration for their target.
An example of application configuration for the S2LP driver is shown here:
https://github.com/MarceloSalazar/mbed-os-example-mesh-minimal/blob/S2LP_cleanup/configs/mesh_wisun_S2LP.json#L34-L50
"NUCLEO_F429ZI": {
"LED": "LED_RED",
"BUTTON": "USER_BUTTON",
"BUTTON_MODE": "PullDown",
"s2lp.SPI_SDI" : "PA_7",
"s2lp.SPI_SDO" : "PA_6",
"s2lp.SPI_SCLK" : "PA_5",
"s2lp.SPI_CS" : "PC_0",
"s2lp.SPI_SDN" : "PF_13",
"s2lp.SPI_GPIO0" : "PA_3",
"s2lp.SPI_GPIO1" : "PC_3",
"s2lp.SPI_GPIO2" : "PF_3",
"s2lp.SPI_GPIO3" : "PF_10",
"s2lp.I2C_SDA" : "PB_7",
"s2lp.I2C_SCL" : "PB_6",
"s2lp.provide-default" : true
}
The driver can be initialized as follow:
NanostackRfPhys2lp rf_phy(MBED_CONF_S2LP_SPI_SDI
,MBED_CONF_S2LP_SPI_SDO
,MBED_CONF_S2LP_SPI_SCLK
,MBED_CONF_S2LP_SPI_CS
,MBED_CONF_S2LP_SPI_SDN
,MBED_CONF_S2LP_SPI_GPIO0
,MBED_CONF_S2LP_SPI_GPIO1
,MBED_CONF_S2LP_SPI_GPIO2
,MBED_CONF_S2LP_SPI_GPIO3);
The Timeout
drift test uses rescheduling inside a callback, but it is currently disabled due to lack of stability. Rescheduling using relative timeouts inside the callback is a bad technique as it leads to drift, so I understand the test being disabled. It is better to use Ticker
for a periodic callback or to use Timeout::attach_absolute
.
Add a simpler test that just ensures the callback is called repeatedly - this test would detect issue #12940, and should not have stability problems.
Convert Timeout test to Chrono
Now tests only the Chrono attach(duration)
method, not the deprecated attach
and attach_us
calls.
During testing of #12425, a problem in ARM Compiler 6.13's assert
was identified. This adds a general workaround and restores original code from that PR.
(Problem will ultimately be fixed in ARM Compiler 6.15, but the workaround seems to have no downside)
Convert SDBlockDevice
to use new APIs from #12425.
Eliminate use of deprecated APIs
n/a
Convert Nanostack HAL to use new APIs from #12425.
Eliminate use of deprecated APIs
n/a
Convert ESP8266 driver wrapper to use new APIs from #12425.
Eliminate use of deprecated APIs
n/a
Follow-up adjusting #12425 , improving (in my opinion, at least) the timing for Mail
, Queue
and MemoryPool
. I think 12425 was too conservative at cleaning up the unsatisfactory state of their timing.
alloc APIs were generally inconsistent - take the opportunity to align with other APIs like Semaphore.
alloc -> try_alloc
alloc_for -> try_alloc_for
alloc_until -> try_alloc_until
In future the name alloc
can be used for an untimed blocking allocation.
To line up with MemoryPool/Mail alloc, rework naming of get/put
Queue::get -> try_get, try_get_for
Queue::put -> try_put, try_put_for
Mail::get -> try_get, try_get_for
Mail::put (no change, but assert that it works)
In the future the names get
and put
can be used for untimed blocking operations. In the interim, you have to use try_get_for(Kernel::wait_for_u32_forever)
.
Mail::put
differs in that it has always been a non-blocking call, but it can be assumed to always succeed when used correctly, because the Queue has enough room to store a pointer to every block in the MemoryPool. It could in future be made a void
return, similar to the change made to Mutex::lock
.
Existing timing code will generate deprecation warnings, but there should be no functional change.
Users should migrate to use Chrono-based APIs as directed by the deprecation messages
Fixes https://github.com/ARMmbed/mbed-os/issues/12552
I implemented the set_network
function, which configures static network address and set_dhcp
function.
This function is optional, so no greentea tests are available. I only tested on RAAS, but had no way of really allowing static IP address setting. @star297 , would you please check if this PR works for you?
New functionalities of ESP8266 are now available.
None.
Convert ESP8266 driver wrapper to use new APIs from #12425.
Eliminate use of deprecated APIs
n/a
Convert NFC code to use new APIs from #12425.
Eliminate use of deprecated APIs
This work originally revealed off-by-1000 error on timing, but that has already been fixed in #12401, so no functional change.
n/a
Covert cellular code to use new Chrono APIs from #12142
Note that documentation for random_max_start_delay config setting has
been changed to indicate that the setting is in seconds, and always has
been. No functional change.
Eliminate use of deprecated core APIs.
Some public cellular APIs now have dual Chrono and non-Chrono forms - non-Chrono not yet deprecated.
Convert DTLS wrapper to use new APIs from #12425.
Eliminate use of deprecated APIs
n/a
Convert DNS client code to use new APIs from #12425.
Eliminate use of deprecated APIs
n/a
This PR moves PSA to a FEATURE_EXPERIMENTAL_API folder. No change to feature in this folder will be considered breaking, so they can be changed in any release type.
The EXPERIMENTAL_API feature will need to be enabled after this PR to enable PSA.
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 section 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.
BADCERT_CN_MISMATCH
error is returned.x509_crt_verifycrl()
function ignores the CRL, when the CRL has an issuer different from the subject of root CA certificate.x509_crt_verifycrl()
.MBEDTLS_SSL_ENCRYPT_THEN_MAC
enabled in mbedtls/config.h
and enable the Encrypt-then-MAC extension (RFC7366) on the peers side.In addition to regular Pull Request test and Nightly test, We also ran a branch test on mbed-os 6.0.0-RC2
Results for the tests we run on CI (PR, Nightly, Branch):
We have the following issues on the test jobs:
In mbed OS 6.0.0 release. we are testing following toolchains:
The following toolchains have been dropped from the mbed OS 5.15.0 release
In mbed OS 6, the compilation test targets scope has not changed, remains all mbed OS enabled targets.
Greentea test targets have been changed slightly:
At the time of the mbed-os 6.0.0 release, we run the greentea tests on the following 9 targets:
Compared to mbed-os 5.15.0, the following targets been removed as they are not supported in mbed-os-6
In mbed OS 6.0.0 release, coverity issues increased from 49 to 94 .
Test Code Coverage been tracked and information is published on COVERALLS
mbed-OS ROM size improved for around 16K and static RAM size improved 1.5K compare to mbed OS 5.15 release. The main reason for the improvements is because we are enabled using minimal-printf by default.
12338
STM32L5 : add DISCO-L562QE board support
12286
Add new target: NUCLEO_L452RE-P
12597
Cellular: Add ALT1250 PPP cellular target
12458
Add Musca B1 target
12787
Cypress: Add CYESKIT-064B0S2-4343W
12603
Add target CYSBSYSKIT_01
12576
M487: Support custom board
12801
Add base support for STM32H745
12385
DeviceKey Root of Trust generation refactored.
12256
Update psa binaries for 6.0.0-alpha1
12238
Minimal-printf: Fix wrapping of printf functions for the ARM compiler
12236
Fix baremetal build failures
12218
tests tickers: adapt ticker_interrupt_test() test case for high frequency tickers
12217
Nuvoton: Add DEVICE_USBDEVICE detection in usbd implementation
12216
Fix dl_channel tests
12215
Cellular: Implementation of virtual get_ip_address funtion in ublox-api
12214
Cellular: Move string_to_pdp_type method to CellularContext
12202
Increase MSI clock frequency when exiting deep sleep
12200
Minor fixes for peripheral pins on Dragonfly Nano
12196
LWIP: don't pbuf_free(NULL) on socket close
12195
Corrected PPP debug trace flagging
12194
Nanostack Socket event handler fix
12193
Cellular: Move cellular event queue thread ownership to CellularDevice
12189
Removed hardcoded CY8CPROTO_062_4343W bt baudrate limit.
12188
Greentea test :Added the print in the exception handler
12186
STM serial init: Set pin function only if pin is defined (not NC)
12185
BLE: fix pointer not set to null on delete
12182
Update watchdog tests to run with bare metal profile
12181
Add DTLS in Connectivity's design document
12179
TESTS: Update testing of examples in mbed-os
12178
Fixes for LPC55S69_NS TLS tests
12176
Nuvoton: Support usbd
12175
Minimal-printf: Fix documentation as floating point is disabled by default
12173
Change size embedded in the temp_ram_page_data
12170
Nuvoton: Support dynamic heap configuration on IAR
12169
syntax error corrections - rm unnecessary semicolons
12162
CMSIS-pack update for STM32WB-family
12155
LPC11U24: Fix baremetal build and runtime error
12151
NRF5x: Fix baremetal linker error
12144
NRF52840: Use 2 region memory model for the ARM toolchain
12143
Blockdevice config changes to make it possible to run littlefs filesystem tests
12141
Thread: remove constructors deprecated in 5.1
12138
TESTS-MBED_HAL-COMMON_TICKERS no more executed
12133
Cellular: Suppress long AT traces
12132
LWIP: Remove unused MBOX configs
12131
Cellular: Fix Gemalto/Cinterion driver
12128
Remove unsupported folder
12123
Cellular: Refactor cellular variable visibilities
12122
ATHandler refactoring
12121
Serial: Deprecate the class and promote UnbufferedSerial instead
12120
ONME-4433 SocketAddress::operator== should also check port
12118
Fixed Serial ambiguity for enable_input and enable_output
12114
Cellular: Fix to not use all zero address for DNS
12113
Fix for issue #12104 (STM32 can_init_freq() ignores frequency)
12111
Microlib: Disable feof function usage in general filesystem test
12110
Moved CP Max recv len into mbed_lib.json
12109
Replace RawSerial as it has been deprecated
12108
Wi-sun network event handler update
12101
Bare metal: Retrieve error context after crash
12099
Implemented recommended fix from https://github.com/STMicroelectronic
12098
Wrong order of code fixed
12097
cypress target: fix iar warnings
12095
Update MXRT1050 to SDK 6.0
12092
Refactored away onboard_modem_api because it is not needed at all
12089
Update offloaded TLSSocket to TLSSocket design
12086
TARGET_STM: fix flash api 64bit address alignment on L4 and WB
12085
PSA setup template changes.
12083
Cellular: Add check for network congestion in BC95 driver
12081
Expose target_offset and header_offset parameters in targets.json
12080
Unittest cleanup made
12079
Coverity fixes
12078
Cellular: Add PPP/IP config flags in CellularInterface.json
12073
Unittests: fix for PRs 12051 and 11996
12071
Minimal Console: Use static pin map
12069
STM32: astyle update
12068
Enabling small C library option and deprecating uARM toolchain
12067
STM32 GPIO IRQ : add a critical section in gpio_irq_init
12065
Non-IP socket implementation for NIDD over CP
12064
Valgrind support added for unittests
12063
Move get_ip_address_if() to NetworkStack and include it in multihoming test
12061
NANO130: Support dynamic heap configuration on IAR
12057
NUC472/M487: Limit EMAC receive frame length as 1518
12055
cmsis: remove arm math
12052
fpga tests: clear uart fix
12051
Unittest configuration mechanism improved
12050
Fix TDBStore sizes for SecureStore tests
12048
SharedPtr: add nullptr constructor
12045
Netsocket test adjusted to Wisun
12044
increased qspi size for cypress integration fs tests
12043
Modify itm_api.c for EFM32 targets
12041
Add QSPI and relevant test support for target EP_AGORA
12038
Cypress: Remove qspi_frequency() call.
12037
SharedPtr: add move operations
12034
SysTimer: Suppress implicit virtual warning
12032
Add MBED_FALLTHROUGH attribute
12029
STM32F0: create STM32F091xC target
12027
Modify nsapi_dns tests to be module tests
12026
Update HAL file to Toshiba's TMPM4G9
12025
Platform: Delete an unused astyle output file
12024
ONME-4366 - Fix UBLOX_EVK_ODIN_W2 fails in emac tests due to heap mem
12020
Fix issues in setting radio access technology
12019
Cypress: rework lptimer hal
12018
STM32_EMAC cleanup
12017
NVStore: already deprecated implementation removed
12013
Add UDP ECHOTEST with connect/send/recv calls
12012
USB device HID test: remove duplicated define
12011
STMOD_CELLULAR: improve debug print
12008
Cellular: Fix ATHandler string handling
11997
Remove deprecated FunctionPointer class
11996
CellularBase/AT_CellularBase removal
11995
MCU_NRF52840 target configuration fixes
11988
Small fixes for SecureStore
11987
TDBStore refactoring
11986
Storage related test improvements and small fixes
11980
DISCO_L4R9I: update clock configuration for all clock sources
11976
LWIP system mailbox overflow fix
11975
PPPinterface: remove faulty address getter check for invalid pointer
11962
Bug in mbed_alloc_wrappers.cpp
11961
UnbufferedSerial: Introduce the class to replace RawSerial
11957
MbedCRC and CRC HAL revisions (6.0 redo)
11952
Fix for Dragonfly nano and registration for LTE-M plans
11927
Speed up unittests by not limitting Make to spawn more processes
11920
Simplify pull request template headers and instructions
11897
MbedCRC: improve init value handling and tests
11891
minimal-printf: Enable using a target configuration parameter
11880
Remove deprecated Callback methods
11878
Improve API documentation and test coverage
11866
Update pycryptodome version
11817
ESP8266 "busy s..." fix (ONME-4352)
11653
Add Getaddrinfo interface for multiple DNS adresses
11594
M2351: Pre-build secure image/lib to favor pelion application
10959
M2351: Support TFM level 1
12457
Update STM32 EMAC driver - limit RX frame length
12424
Nuvoton: Fix GPIO IRQ and RTC
12422
Cypress Asset Update
12419
Fix #12290: crash_log_parser on py3
12411
add FLASHIAP in targets.json for KVStore used in PDMC
12409
FIX: LPUART clock source selection should be left to serial driver
12408
LPC408X: Delete the ethernet_api.c files
12407
Disable restricted uart peripheral for NRF52840
12405
EthernetInterface fix detecting change of connection status on ARCH_MAX
12404
M2351: Update BSP and bugfix
12403
FPGA: Enlarge timeout with mbed_hal_fpga_ci_test_shield-i2c
12401
Remove float symbols from apps that use the NFCController class
12400
Add an exception for ARMC5 toolchain build
12399
Cellular: Delete created context if activation fails
12398
Add BlockDevice unittests and fix issues they revealed
12397
Testing: Fix buffer overflow in ATHandler_read_bytes UT test
12396
PDP Type needs to be IPV4V6
12395
I2CEEBlockdevice: fix i2c read return value
12394
Fix SDIO communication issue on Cypress 1M boards and other minor fixes
12393
Fix Musca-A1 gcc linker
12392
Fix psa_key_management_operations
12391
mergify: CI only if PR is without conflicts
12389
Update InterruptIn.h
12386
TEST: fix a bug in ATCmdParser test
12383
Fix thread_sleep_for with zero wake_delay
12382
Fix BufferedSerial visibility of private base class enum enumerators
12380
DISCO_L475VG_IOT01A: Add a list of restricted GPIO pins for testing
12379
Add STDIO UART as restricted for FPGA testing for all targets and support for restricting GPIO
12378
TEST: Refactor mbedmicro tests to use utest framework
12369
LPC1768: Fix ARM toolchain baremetal by defining 2 memory region
12368
Fix NRF52840_DK UART driver and adapt FPGA test
12366
M2351: Support GCC
12364
MIMXRT1050: Update for deep sleep latency
12363
Mergify: fix release version label
12362
TARGET_STM: L0 CUBE SPI async mode send next byte after previous one is read
12359
MXRT1050: Add bootloader support
12357
TARGET_STM32F1: don't set ADC common register when ADC doesn't support it
12356
Fix NRF51, NRF52 gpio_irq_init() function
12353
M2351: Support IAR
12350
implements i2c_free for STM
12349
Nanostack: Update Wi-SUN configuration
12345
USBMSD; NFCEEPROM; mbed_compat: Fix compiler warnings
12344
Unittests for DNS improvements
12342
LPC55S69: Fix UART & GPIO HAL to pass FPGA CI test shield tests
12341
STM32L4: Fix the UART RX & TX data reg bitmasks
12339
Cellular : add modem version in mbed trace
12338
STM32L5 : add DISCO-L562QE board support
12336
Disable write buffering on debug builds.
12335
Remove CPU usage example from CI build
12334
Update cellular drivers/tests for UBLOX_C030_R412M
12333
UDP echotests fix in case of no memory or device busy.
12332
FIX: Disable Analogin D13(PA_5) on some NUCLEO targets
12331
STM32: enable QSPI test with MX25LM51245G octo SPI
12330
Fix FAT filesystem ferror
greentea test(SD Component)
12329
AT_CellularStack: crash during TCP test
12327
Doxygen: don't extract static members
12326
Correct SysTimer absolute time calculations
12324
Fix inconsistency between mbed crc and psoc6 crc implementations.
12322
minimal-printf: README correction
12321
Ble driver set random static address
12320
ONME-3433 ESP8266 driver support for UDP get - modified ESP8266 drive
12317
MXRT1050 Flash support
12316
Fix general filesystem greentea test
12315
Add check for APPLE & MACH to fix unit tests on macOS
12312
Fix to sending IPV6 UPD packet fails IPv6 enabled in SoftAP intf
12310
Greentea DNS tests workaround.
12308
Tests: add missing mbed_trace.h multihoming header
12307
Fix the missing retrieve error context function call.
12305
Cellular: Remove support for multiple ATHandlers
12304
QSPIF: Enable QPI mode as a second option, if available
12303
Fix ARM compiler warning for microlib
12302
Remove _LIBCPP_EXTERN_TEMPLATE ARMCC compilation flag
12299
MIMXRT1050: Add Watchdog support
12297
Corrected minimal-printf README
12296
FPGA_CI_TEST_SHIELD : force all peripheral to be tested
12295
STM32H7 correct PWMOUT instances
12293
Cellular: Remove API's empty default implemetations
12292
Multiple labels need to be in an array of strings
12291
Minor optimisation to ATCmdParser unit test code
12287
Fix unittests on windows(mingw)
12286
Add new target: NUCLEO_L452RE-P
12283
STM32WB - Update CubeDriver from v1.0.0 to v1.4.0
12282
Fix for issue #12268 (SerialBase.cpp: fix initialization list)
12281
Cellular: Refactor socket_stack_init() from generic to modem specific
12280
EFM32: add UART and LEUART for EFM32GG11
12278
Rename "default_lib" to "c_lib".
12275
Fix call to sorted by providing key to sort on.
12274
mergify: enable for any pull request
12273
unittests: disable coverage report filtering
12270
BUGFIX: SFDP Sector Map Table Parameter ID LSB is 0x81
12269
mergify: add fixes to the conditions
12267
Fix UDP socket test cases
12265
Refactor unnecessary functions from cellular driver
12263
unittest: fix coverage filtering
12262
Test: Increase the UART flush delay
12261
Cellular: Fix compilation fail with APN lookup enabled
12260
Add KSZ8041 as a supported PHY for the LPC17xx series
12258
Disable the cell AUX UART by default on EP_AGORA
12257
psa: Ensure spaces before partition name comment
12254
unittest: fix ATCmdParser test segfault
12253
storage_abstraction: deprecated since Mbed OS 5.5 and now removed
12251
Cellular: Remove friend definitions from cellular state machine
12249
Cellular: Remove deprecated CellularDevice::stop()
12245
NUCLEO_WB55RG - add device name "STM32WB55RGVx"
12243
Add timer shutdown after time stop on deinit
12241
M2351: Remove LPTICKER to spare memory for non-PSA minimal secure build
12240
Cypress: add SoftAP host tests
12239
Fix DNS multiple query hints to perform both IP4 and IP6 tests
12237
STM serial free: Set pin function only if pin is defined (not NC)
12234
ESP8266: Add built-in hostname resolution handling (disabled by default)
12231
Import latest python scripts and MCUBoot image
12230
TEST: use K64F replace DISCO_L475VG_IOT01A to run some example test
12228
Need RAM and ROM size for compilation
12227
Cellular: AT + QICSGP set up APN fix
12226
target_test - assert if sectors keyword missing
12225
Fix baremetal heap and stack initialisation
12223
RZ_A1H and GR_LYCHEE: Enable bootloader support
12220
NRF5x targets: Replace UARTSerial references with BufferedSerial
12213
ESP8266: Replace UARTSerial references with BufferedSerial
12211
Cellular: Replace UARTSerial references with BufferedSerial
12210
Fix for issue #10725: disable lp-ticker for STM targets which uses RTC/LSI for lp-ticker
12209
NXP target: Replace UARTSerial references with BufferedSerial
12208
ST targets: Replace UARTSerial references with BufferedSerial
12207
Add BufferedSerial class to replace UARTSerial
12201
TARGET_STM: FW driver files refactor proposition
12199
Format targets.json
12198
uARM: Fix deprecate warning printing wrongly for GCC_ARM/IAR toolchain build
12166
NRF52840_DK: Fix baremetal linker error
12160
nRF52: Properly configure nRF SDK for nRF52-series targets
12157
ESP8266: Avoid duplicate data sends
12154
NRF51822: Fix baremetal linker error
12153
Hackathon: Increase coverage of the SPI master FPGA test
12152
Updated 113 targets with missing detect_codes
12150
Update Mbed TLS and Mbed Crypto to latest as of 2019-12-20
12142
Thread: remove methods deprecated in 5.10
12139
HAL: Add a get_capabilities() function to ResetReason API
12060
Improve reliability of KVStore general tests
12035
Preparation for Callback changes
12023
GCC: remove -fno-delete-null-pointer-checks
11904
TOOLS: enable build greentea test coverage for HW
11874
ARMC6: Add a build profile extension with the link-time optimizer enabled
11433
FPGA CI shield: Add a watchdog timing test
12611
STM32F4 UART issue when parity enabled
12601
Remove RtosTimer deprecated class
12599
Greentea kvstorage tests Cypress targets fix.
12598
Change Mutex lock and unlock APIs return value to void
12597
Cellular: Add ALT1250 PPP cellular target
12596
Remove Mutex deprecated API
12595
Fixed typo 'timout'
12590
Importer script: remove apache-2.0.txt
12583
STM32F7: baremetal profile support
12580
Reverting #12312 as it breaking current WiFI connect()->Disconnect() sequence
12571
C++11-ify NonCopyable
12567
STM32 EMAC : increase thread size when mbed-trace is enabled
12560
crypto: Update to Mbed Crypto 3.0.1
12559
DISCO_L4R9I correct LED pins
12558
Fix issue when TDBStore has varying erase sizes between areas.
12557
M487: Fix crash on WDT reset from power-down
12554
Remove FileSystemLike deprecated APIs
12553
Remove DirHandle deprecated APIs
12551
Remove mbed power management deprecated API
12550
Remove mbed interface deprecated API
12549
Remove FileHandle deprecated APIs
12548
tests-integration-net-single: fix build error
12545
threads: fix timeout (set to 25)
12543
TLSSocket: Remove deprecated connect
12540
fix for suppress 'unknown object name' messages from memap.py
12537
Minor optimization to improve readability of code
12536
Fixed typo 'thead' in thread_neighbor_class.h
12534
Remove the deprecated CallChain class and its APIs
12533
Remove CriticalSectionLock deprecated APIs
12531
Add check so that FlashIAP does not allocate memory on flash_init failure
12530
Remove reset reason from Future Sequana targets.
12529
travis: scancode ret value not cat fix
12527
Remove the deprecated ATCmdParser APIs.
12526
GCC: Fix the toolchain LTO workaround for Python 3
12525
Remove the deprecated Ticker APIs
12524
Bugfix: Concurrent SFDP header address init fixed
12521
Remove explicit include of mbedtls/config.h
12520
Fix initialization order for I2CEEBlockDevice
12519
tests-mbed_hal-sleep_manager: fix counter wraparound handling
12518
Remove InterruptIn deprecated APIs
12514
mergify: add "mergify skip" label
12511
allow reconfiguring a running watchdog
12509
EFM32: RTCC bugfix for #12374
12508
Fix minimal-printf stack overflow
12507
Cellular: release _semaphore only once
12506
Fix 2 string based IP address removal regressions
12505
travis: ignore grep return value for scancode
12502
Fixed macro error
12501
Remove the deprecated the InterruptManager APIs
12500
Remove the deprecated ethernet APIs
12499
Cellular: For ublox modem, read '@' char first then send data.
12498
TEST: update usb tests and guard them with macro
12496
EFM32: fix mbed_hal-pinmap test
12495
C++11-ify virtualisation in FileHandle + Serials
12492
Update psoc6cm0p asset to version 1.1.1.
12491
Fixed error of function 'mac_fcf_lenght'
12490
Fixed error of structure mlme_key_descriptor_t
12489
C++11-ify virtualisation in lwIP classes
12488
C++11-ify virtualisation in Nanostack classes
12487
C++11-ify virtualisation in netsocket
12484
TDBStore magic number if endian sensitive fix comment
12481
Nanostack release for Mbed OS 6
12480
Fix SPDX identifiers and licenses (excluding features and targets)
12478
M2351: Fix some minor issues
12477
HAL: Add a get_capabilities() function to GPIO API
12476
Fix build failure when target's cmsis doesn't exist
12475
Proposal to remove SPIFReducedBlockDevice
12473
Fix Freescale MCUXpresso AnalogOut
12467
Inline nsapi_create_stack(NetworkStack)
12466
MBED_STACK_STATS_ENABLED : Add stack_name information in greentea metrics
12464
STM32 EMAC : add configuration choice and connection check
12462
Fix static ram memory statistics for arm compiler
12460
Allow MISO/MOSI set to NC during SPI initialisation (fix for issue #12435)
12458
Add Musca B1 target
12454
Nuvoton: Optimize spi_master_write(...) in case of no SPI MISO pin
12453
STM32 TRACE_GROUP update
12451
STM32 : enable MBED trace for QSPI
12450
SFDP: consolidation of SFDP parsing [3/5]
12449
Add missing pins def for ARDUINO_NANO33BLE
12447
fix targets device_name with nrf51822 32K SoC
12446
Add Eight-Bit-Addressing mode to I2CEEBlockDevice.
12445
Fixed typo: 'lenght' in ip6string.h
12444
Fixed typo: 'lenght' in ns_crc.h
12443
Fixed typo: 'lenght' in coap_service_api.h
12442
Fixed typo: 'lenght' in minimal-printf
12441
CAN: fix length calculation (fixes #12311)
12440
Implement reset_reason api for cypress targets
12438
Fix CY8CPROTO_062_4343W baremetal build
12437
travis: add PR license check for missing/not-valid license files
12436
Remove GPIO pin-maps used for FPGA testing
12431
Nordic NRF52 GPIO API: Fix non-deterministic failure to configure interrupt handling
12427
Minor optimisation to mcr20a-rf-driver code
12426
SFDP: consolidation of SFDP parsing [2/5]
12421
Cypress Targets Reorganization
12420
Remove the deprecated CAN APIs.
12415
STM32H7 : add readme file for dual core use
12384
STM32WB : update BLE part with better support
12358
FIX: add cbor module in the requirement.txt
12319
Fix userallocatedevent imp
12318
SFDP: Move Sector Map Parameter Table parsing under SFDP module
12233
Enable minimal-printf by default for all builds
12206
Kvstore tests
11942
IPCore String-based API removal
11856
GCC: Add a build profile extension with the link-time optimizer enabled
12941
Correct Timeout rescheduling
12938
Correct core RTOS sleep routine timing
12935
Remove unsupported targets
12924
STM32F4 bypass PLL configuration when already done by bootloader
12919
ExhaustibleBlockDevice: revert commit 10481f2
12913
usbcdc: provide doxygen only macro for doxy builder
12889
Convert newlines on all terminal (tty) devices by default
12876
802.15.4 STM S2LP driver update
12874
nRF: use Mbed-default boot-stack-size & fix stack_size_unification test
12873
Bare metal profile: USB class device support
12872
Add the Doxygen note to non-supported RTOS kernel APIs.
12866
Update mbed-coap to version v5.1.5
12864
Remove unsupported targets
12860
STM32F7 update drivers version to CUBE V1.16.0
12855
Bare metal: Enable signals greentea test
12853
ARCH_PRO: Remove uARM tooolchain support
12852
Update mbed-coap to version 5.1.4
12850
Fix intermittent sync fail in tests-filesystem-general_filesystem
12849
TEST: Update example test
12846
Revert "Remove MTB_STM_S2LP target"
12844
Add invalid data case to tdbstore ram init
12843
enable storage tests on baremetal
12841
Drops prebuild bootloaders not supported in Mbed OS 6
12840
Musca-B1: Grant Non-Secure access for MHU0 on EXP0
12839
Nuvoton: netsocket correction of judgment errors
12833
Override c_lib to small for all targets
12830
Cellular: Fix BG96 offloaded DNS query for new API
12828
Update CYSBSYSKIT_01
12827
enable common tickers & lp_tickers hal tests in baremetal mode
12825
Turn on ARM linker --inline
12823
Allow Devicekey::generate_root_of_trust() to define key size.
12819
Cypress: Fix unitialized memory in spi_master_write
12818
Add the Doxygen note to non-supported RTOS and Driver class.
12817
Cellular: Disable AT traces when mbed-trace is disabled
12816
Baremetal: Enable Semaphore greentea test
12815
Cellular: Fix build problem if cellular.debug-at is set as null
12811
Remove deprecated Platform header files
12810
Remove unsupported targets
12804
Cellular: Check if serial is supported
12802
Nuvoton: Add 'sectors' configuration option into targets.json
12799
TDBStore: Handle odd number of sectors in block
12797
Add custom board option to STM32 pins generation script
12792
Seeed: Removing unsupported Seeed targets for OS 6
12791
Fix for IPv6 Dual Stack support
12787
Cypress: Add CYESKIT-064B0S2-4343W
12786
Baremetal: Enable kernel_tick_count greentea test
12785
Cordio: Apply Packetcraft's fix for possible SweynTooth vulnerabilities
12783
LittleFSv2: Bring in v2.2
12779
Baremetal: Enable EventFlags greentea test
12778
Add I2C api to Musca-B1 target
12775
Remove unsupported targets
12769
Fix WIFI-GET-RSSI test case failure and remove extra label from CYW9P62S1_43438EVB_01 in target.json
12768
ESP8266 Drv support baud-rate switch
12765
Update MTS_MDOT_F411RE target and remove bootloader from tools
12763
Cellular: Fix ATHandler::read_string to handle delimiter inside string
12761
Callback: Trivial default
12758
Fix: Return the correct std I/O device handle for Microlib in retarget code
12757
Update Mbed OS with Mbed Crypto merged into Mbed TLS
12755
Update astyle filtering rules for Nanostack
12754
Nanostack release for Mbed OS 6
12752
PSoC 62/63: set correct mbed_ram_start and mbed_ram_size
12748
Fix build failure due to C lib selected
12746
Removed Toshiba targets (AdBun-M066, M3H6 & M3HQ).
12745
add config option for phy media interface
12744
Change files in TARGET_SDT64B
12743
mergify: Add 5.15 rule
12742
BLE: remove deprecated APIs from Gatt and SecurityManager
12741
Add Semtech Lora radio drivers
12739
FIX: update usb device tests for deprecated API
12738
Remove Mbed SPM
12737
Remove PSA implementation for v8-M and dual CPU targets
12736
rtos: Improve CMSIS-RTOSv2 app compatibility
12735
Make MUSCA B1 and MUSCA A1 TF-M ready
12734
NUCLEO_WB55RG : enable IAR export
12733
odin targets: remove release version
12731
Testing: Fix multihoming test compilation issues
12730
BLE Gap deprecation cleanup/rework
12729
Mbedtls fixes
12728
STM32 EMAC : increase thread-stacksize
12719
FPGA CI TEST SHIELD: add test config json file
12716
M487: Update BSP
12715
RZ_A1H remove usage of ethernet hal API
12712
Fix LTO issue with minimal-printf
12711
targets:MIMXRT1050: Add QSPI flash support
12708
Remove compatibility for Arm Compiler versions prior to 6.01.0050
12706
Tests: Remove support for ARM Compiler 5
12705
mbed-client-cli: Remove support for ARM Compiler 5
12704
LWIP: propagate the apimsg->err out of netconn_apimsg()
12702
TFM: Remove ARM Compiler 5 considerations
12701
Add custom BT Firmware image for CYW9P62S1_43012EVB_01
12699
Storage: Remove support for ARM Compiler 5
12698
Drivers: Remove support for ARM Compiler 5
12696
rtos: declare vector table type as in Technical Note 11578
12694
Remove netsocket icetea tests and TCPServer
12693
USBMSD security updates
12692
EFM32G11: Add RGB LEDs to PinNames.h
12691
Replace small with std C lib if not supported by a target's toolchain
12690
STM32: solve GCC Unspecified RTOS error
12686
STM32 EMAC : remove TIMEOUT issue when cable is not plugged yet
12685
Remove deprecated netsocket methods
12683
SocketAddress rework
12682
MBED TRACE default level is INFO
12681
SPIFBlockDevice doesn't play nice on shared SPI bus #11732.
12680
QSPI driver also acquires ownership upon initialization now.
12679
PSoC6: enable export to uVision and IAR
12677
STM32H7: enable QSPI
12676
Remove deprecated BLE:: APIs and unsupported services
12674
Remove Maxim and SoftDevice BLE stacks which do not support the latest APIs
12673
Mergify update
12672
Remove deprecated ARMC5 reference from mbed compile -S
output
12671
Netsocket/lwIP Stack: Remove support for ARM Compiler 5
12670
ESP8266: Fix typo: gateway to netmask
12668
tests-integration-fs-threaded: makes tests independent from each other
12667
Add check for return code in DeviceKey to avoid injecting invalid ROT
12666
Makefile: render compatible with some GNU make versions (revert #12646)
12663
Migrate NUCLEO_F303K8 to Mbed OS 5 baremetal
12662
Add workaround for STM32F4 hardfault in sleep mode
12661
Adjusted SecurityManager Doxygen ASCII art
12660
M2351: Support custom board
12659
Rebuild WICED libraries after Mbed update
12658
tests-integration;tests-filesystem: fix code causing compiler warnings and enable more tests
12655
Remove ARMC5 reference from Mbed OS platform
12654
Removed all references to __CC_ARM
12652
Add moduletests for FileSystemStore
12651
Cellular: Make Quectel EC2x modem start up timeout configurable
12649
Expose SerialBase IrqType member to UnbufferedSerial class
12648
Nanostack: Add config for Wi-SUN device type
12646
Makefile: fix for overlong command line
12645
Storage: Use internal flash for KVStore always if default config
12642
M263: Support custom board
12640
Remove minimal-printf extension profile
12639
Remove the deprecated ethernet hal APIs
12638
Enable storage tests to all targets
12637
Cordio: fix for issue #12625
12636
Extend unit tests for TDBStore
12633
Cellular: Add offload TLSSocket implementation inside feature flag
12632
Fix snprintf in minimal-printf library
12631
Update psutils to address security issue
12630
mbed test with dual core targets
12629
Add "rtos-api" to bare metal
12626
STM32F4 update drivers version to CUBE V1.25.0
12624
Cellular: Support EC2x power control pin support no connect
12617
Correct doxygen for Mail::get
12612
TEST: add RTOS macro to enable integration test
12610
Add UBLOX_onboard_modem_api for power up UBLOX_C027.
12609
Remove Semaphore deprecated APIs
12607
Use toolchain's struct stat if available
12606
Netsocket: Introduce set_ip_address and get_dns_server APIs
12603
Add target CYSBSYSKIT_01
12589
Cellular: Add deativation of context associated with profile
12581
Fully enforce NonCopyable
12576
M487: Support custom board
12572
Remove mbed wait deprecated APIs
12570
Improve nsapi_create_stack
12569
Replace with weak mbed_error_hook implementation (deprecate the hook function)
12547
EFM32: update emlib to 5.9.1
12528
SFDP: consolidation of SFDP parsing [5/5]
12522
Add property API to InternetSocket
12472
Add WPA3 support in mbed-os for green tea tests
12463
Clean up and optimise socket statistics
12456
COMPONENT_BlueNRG_MS creation : ST Bluetooth Low Energy module
12425
C++ Chrono support
12410
Remove the deprecated RawSerial, UARTSerial, Serial
12387
Add Objects Extensions Configuration Parameter to HAL
12300
Add get_time function to ESP8266
12271
Make cypress psoc64 TFM ready and also add TF-M initialization
12161
nRF52 I2CSlave Implementation
12036
Callback extension and optimisation
11726
Disable C++ static destructors in ARMC6 compiler
11629
Refactor TDB internal bounds computation
12995
build tools: fix target toolchain
12984
Disable mbed 2 and unsupported targets
12982
build api: fix release version
12981
IOTSTOR-1044 - SPIFBlockDevice is broken in Mbed OS master(6),
12978
Update psoc6pdl to v1.5.2
12977
STM32: remove uARM toolchain
12971
MemoryPool fixes
12961
Remove nRF51 targets
12960
STM32 code cleaning for MBED-OS6
12959
STM32: targets json rework
12958
Fix vector table bug when using bootloader on STM32WB55
12956
NRFCordioHCIDriver: remove idle_hook (and RTOS dependency)
12951
Clean-up S2LP driver configuration
12949
CMSIS: update to CMSIS 5.7.0
12947
Fix setting the QE bit on ISSI Flash memories
12945
Cleaning up PinNames.h for SDP-K1 board.
12944
Fix the USB MSD greentea host side pyusb_msd.py script
12943
Cypress: Update assets to latest
12942
Add Timeout rescheduling test
12923
Nuvoton: Refine more on watchdog HAL
12917
Bare metal profile: Enable USB serial greentea test
12916
USB basic and hid greentea test cleanup and enable to the bare metal profile
12915
Optimise HAL_GetTick API
12914
Add possibility to configure Mesh MAC neighbourtable size.
12909
Cypress: Misc target updates
12906
Work around C++14 assert problem
12904
SDBlockDevice: Convert to Chrono
12903
Nanostack HAL: Convert to Chrono
12902
USB: Convert to Chrono
12901
Rationalise Mail/Queue/MemoryPool timing APIs
12896
Nuvoton: Fix watchdog reset failure on meeting Hard Fault
12890
[SX1272 & SX1276 Driver] Fix Fifo Pointer in Continuous Mode
12888
Musca-B1: Fix I2C pinmap array
12875
KVStore: Fix buffer overrun when device key size doesn't match
12865
Nuvoton: Support bare-metal profile on NANO130 and M453
12856
ST Boards: Remove uARM tooolchain support
12836
Wi-SUN added regulatory domain Brazil
12808
KVStore: Remove incorrect check with non-default configuration of FLASHIAP
12805
Tests: USBSerial: Handle minimal printf limitations
12801
Add base support for STM32H745
12721
ESP8266: static address configuration and dhcp enable/disable added
12623
LPC1114: baremetal profile support
12433
ESP8266: Convert to Chrono
12432
NFC: Convert to Chrono
12430
Cellular: Convert to Chrono
12429
DTLSSocketWrapper: Convert to Chrono
12428
nsapi_dns: Convert to Chrono
13008
tools: Warn when ARMC5 is no longer supported
13007
tools: Support default_lib and c_lib
13003
Mark PSA as an experimental API
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-6.0.0".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by adbridge over 4 years ago
We are pleased to announce the Mbed OS 6.0.0-beta-1 release is now available.
This is the last pre-release before we make the full 6.0.0 release. It contains the remainder of the breaking changes and any other significant updates.
This section lists specific changes which are part of this release and may need special attention.
Chrono changes "optimised" Timeout::handler
in a way that broke users who rescheduled the timeout during their attached callback.
Attempted optimisation is less necessary now that platform.callback-nontrivial
is set to false by default - that setting reduces overhead of copying the Callback
to almost nothing.
Fixes #12940.
Chrono conversions inadvertantly changed the core timed sleep routine used by the RTOS idle to use OsTimer::update_and_get_tick()
instead of OsTimer::get_tick()
.
Correct this, and expand/clarify documentation and naming to try to prevent recurrence.
Another minor fix observed while inspecting code - OsClock
can't just use milliseconds
, it should match the period of OsTimer
, which theoretically can be different.
Fixes #12920.
This is another of a series of PRs (others https://github.com/ARMmbed/mbed-os/pull/12775, https://github.com/ARMmbed/mbed-os/pull/12810, https://github.com/ARMmbed/mbed-os/pull/12864) to remove targets that are not supported or retired as explained in recent blog post.
There are individual commits to remove targets from targets.json and files/folders for the corresponding targets.
The following targets are being removed:
Applications can reduce their ROM usage by replacing
"\r\n" by "\n".
Breaks compatibility with applications built with Mbed 2.
Update to the latest version of Mbed OS (possibly using the bare metal profile for ultra-constrained devices).
USBCDC_ECM class device uses RTOS thread APIs, so added MBED_CONF_RTOS_PRESENT conditional check to disable that class device in bare metal profile.
With these changes, except USBCDC_ECM, all the below list of USB class devices can build and works in bare metal profile.
None.
This is the third of a series of PRs (others https://github.com/ARMmbed/mbed-os/pull/12775, https://github.com/ARMmbed/mbed-os/pull/12810) to remove targets that are not supported or retired as explained in recent blog post.
There are individual commits to remove targets from targets.json and files/folders for the corresponding targets.
The following targets are being removed:
It is no longer possible to use the uARM toolchain to build binaries for the ARCH_PRO board.
Set the "target.c_lib"
configuration option to "small"
to build binaries using Microlib with the ARM toolchain.
Allow Devicekey::generate_root_of_trust()
to define key size.
By default, generate 16 byte keys, to be compatible with bootloader.
But allow user to generate 32 byte keys as well.
This fixes #12821
Default key, generated by Devicekey::generate_root_of_trust()
is now 16 bytes,
instead of 32 bytes.
If you want to generate 32 byte keys with Devicekey::generate_root_of_trust()
,
you need to explicitly supply key size as a parameter.
Remove the deprecated header files as part of the Mbed 6 cleanup.
Breaking change: Applications that include the removed files will no longer successfully build.
Include the header files recommended in each removed header file:
platform/critical.h -> platform/mbed_critical.h
platform/mbed_sleep.h -> platform/platform/mbed_power_mgmt.h
platform/rtc_time.h -> platform/mbed_rtc_time.h
platform/semihost_api.h -> platform/mbed_semihost_api.h
platform/sleep.h -> platform/mbed_power_mgmt.h
platform/toolchain.h -> platform/mbed_toolchain.h
platform/wait_api.h -> platform/mbed_wait_api.h
This is the second of a series of PRs (first https://github.com/ARMmbed/mbed-os/pull/12775) to remove targets that are not supported or retired as explained in recent blog post.
There are individual commits to remove targets from targets.json and files/folders for the corresponding targets.
The following targets are being removed:
Removing targets: Seeed Arch Link, Seeed Arch-RO359B, Seeed Arch BLE, Seeed Tiny BLE, Seeed Arch GPRS V2,Seeed Xadow M0
Introduces LittleFSv2.2 developed by @geky. Mbed OS adaption (LittleFSv1 -> LittleFSv2) is based on work done by @pilotak. The only thing the undersigned has done was to create this PR.
None
Brings in LittleFSv2 which will coexist with LittleFSv1 already found from Mbed OS. If you already a v1 filesystem you might try converting it to v2, but this isn't guaranteed to succeed. You should preferably create a new v2 filesystem instead.
This is the first of a series of PRs to remove targets that are not supported or retired as explained in recent blog post.
There are individual commits to remove targets from targets.json and files/folders for the corresponding targets.
The following targets are being removed:
Turn off callback.non-trivial
by default to save ROM space.
Follow-up to #12036. Will need at least one example changed to turn the option back on.
Callback
with a non-trivial functor, they will get a compilation error directing them to turn on platform.callback-nontrivial
."platform.callback-nontrivial": true
to your mbed_app.json
if a build error indicates that it is required - or change your code to only use trivial functors in Callback
.Deprecated APIs from Gatt and SecurityManager do not exist anymore, applications that use them will not compile until updated with current APIs.
Applications that compile without deprecation warnings on mbed-os-5.15 will continue to work. Otherwise, please fix any deprecated API usages, for example by referring to compilation warnings from mbed-os-5.15.
Add Semtech Lora radio drivers for SX1272, SX1276 and SX126x radios.
Added as subtree from original repository: https://github.com/ARMmbed/mbed-semtech-lora-rf-drivers
Enable using Lora with no additional repositories, all of them part of Mbed OS.
None
Remove FUTURE_SEQUANA
and FUTURE_SEQUANA_M0
targets. These are not supported in Mbed 6.
After the removal of FUTURE_SEQUANA targets, there are no targets remaining that use Mbed SPM. Remove Mbed SPM as well, as it is unused.
The following targets are being removed in Mbed 6:
FUTURE_SEQUANA
FUTURE_SEQUANA_M0
Please use a version of Mbed OS 5 if you require support for FUTURE_SEQUANA
or FUTURE_SEQUANA_M0
With Mbed 6, TrustedFirmware-M (TF-M) is the source of Mbed's implementation of PSA. This means Mbed 6 doesn't need to contain any code or tooling to build the v8-M or dual CPU secure binaries.
This patch set removes tooling, code, and targets that would have been used to make PSA secure binaries for v8-M or dual CPU platforms.
ARM_MUSCA_A1_S
ARM_MUSCA_B1_S
LPC55S69_NS
LPC55S69_S
HANI_IOT
NU_PFM_M2351_NS
NU_PFM_M2351_S
Use Mbed 5.15 if you require PSA targets with exporter support, or one of the removed targets. LPC55S69 and Numaker M2351 will be supported in Mbed 6 at a later date, after the targets are supported by TF-M.
Some non-Mbed-OS, pre-existing CMSIS-RTOSv2 applications depend on
CMSIS-RTOSv2 Automatic Dynamic Allocation, also known as Object-specific
memory pools. Mbed OS doesn't by default provide any memory to the
CMSIS-RTOSv2 Automatic Dynamic Allocation pool, as doing so would waste
memory if the feature is not used; even if the feature is used, as a
platform, Mbed OS can't know how many objects of which types will be
created by an application and therefore will either waste memory or not
provide enough memory in a hard to debug manner. Portable CMSIS-RTOSv2
applications depending on CMSIS-RTOSv2 Automatic Dynamic Allocation
should instead configure the memory pools themselves, as applications
know best their memory requirements.
Add Mbed configuration options which can be used by applications to
control the amounts of memory available to the CMSIS-RTOSv2 Automatic
Dynamic Allocation subsystem. This enables portable CMSIS-RTOSv2
applications, which can run on any CMSIS-RTOSv2 OS, to be able to run on
Mbed OS as well.
Signed-off-by: Devaraj Ranganna [email protected]
Signed-off-by: Jaeden Amero [email protected]
Applications written for CMSIS-RTOSv2 that use CMSIS-RTOSv2 Automatic Dynamic Allocation can now also run on Mbed OS, when the application specifies how much memory to use in their mbed_app.json
. CMSIS-RTOSv2 docs claim that Automatic Dynamic Allocation is "fully portable", and now that's at least more true than before where Mbed is concerned.
The TF-M regression tests are a concrete example of an application written making use of CMSIS-RTOSv2 Automatic Dynamic Allocation. We have an incredibly easier time running (and maintaining) those tests with Mbed OS, validating the TF-M integration with Mbed OS does not break TF-M functionality, when Mbed OS supports application-configured CMSIS-RTOSv2 Automatic Dynamic Allocation.
None
This is a preparation for more upcoming changes. The latest master updates removed deprecated functionality and these targets do not compile anymore.
Boards based on the ODIN module won't compile in Mbed OS 6.0.0.
Staying with Mbed OS version up to 5.15.x.
LegacyGap
class and implementations. Map ble::Gap
to global Gap
.LegacyGap
) to Gap
and implementations into GenericGap
.BLEProtocol::
and replace AddressType_t
with own_address_type_t
/peer_address_type_t
, AddressByte_t
with address_t
, etc.BLE::Address_t
(for accessing address types + values in whitelists) with the new equivalent whitelist_t::entry_t
.ConnectionParams_t
-> PreferredConnectionParams_t
and use it only for Generic Access Service.central_privay_configuration_t
-> central_privacy_configuration_t
Notes:
setDeviceName()
, getDeviceName()
, setAppearance()
, getAppearance()
from LegacyGap
are removed, as device name and appearance can be set via AdvertisingDataBuilder
and saved by the application. But there were previously no deprecation warnings for them.get/setPreferredConnectionParams()
are dropped from Gap
- updated versions will be added to Gatt where they should belong to.Legacy BLE Gap APIs and related type definitions are no longer available.
Some APIs have been updated to take parameters of new type definitions of address types + values.
AdvertisingDataBuilder
and internally remember their values as needed, since APIs to get/set them are removed as explained above.targets:MIMXRT1050:
Removed the pre-processor directive __ARMCC_VERSION >= 6010050 and the code added for versions before 6.01.0050.
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Use Arm Compiler 6
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Use Arm Compiler 6.
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Use Arm Compiler 6.
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Use Arm Compiler 6.
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Use Arm Compiler 6.
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Use Arm Compiler 6.
Remove deprecated Netsocket Icetea tests and TCPServer
class.
TCPServer
class removedTCPSocket
can be used instead of TCPServer
Remove deprecated methods from netsocket
Deprecated methods in netsocket (since Mbed OS 5.1) are removed.
InternetSocket::attach
-> Use Socket::sigio
TCPSocket(S *stack)
-> Use default TCPSocket
constructor and call open
separately
UDPSocket(S *stack)
-> Use default UDPSocket
constructor and call open
separately
Original work: https://github.com/ARMmbed/mbed-os/pull/12468 . This PR contains also the UT fix.
nsapi_addr_t
parameter.nsapi_addr_t
inputs by constant reference rather than value.unique_ptr
to manage the text buffer.operator bool
explicit.bool
or int
or others no longer possible - any existing code which does not compile is most likely an error. (if (sockaddr)
is still fine - such "contextual conversions to bool" can use the explicit operator).SocketAddress
's constructor must be modified to use NetworkInterface::gethostbyname
or NetworkStack::gethostbyname
.BLE
namespace.DFUService
, UARTService
and beacon-related services (iBeacon, EddyStone) whose standards/stacks are externally maintained.BLE
namespace are no longer available.DFUService
, UARTService
and beacon-related services (iBeacon, EddyStone) are no longer available.BLE
namespace need to be updated to use up-to-date APIs.targets.json
.Note: Some references/macros for SoftDevice are still present in the Nordic SDK (targets/TARGET_NORDIC/*
) and not cleanly separated with other components.
mbed compile -S
outputRemoved deprecated ARMC5 reference from mbed compile -S
command output.
With these changes, mbed compile -S
will not produce any ARMC5 reference.
None.
ARM Compiler 5 is no longer actively supported and was superseded in
Mbed OS by ARM Compiler 6.
Breaking change: The binary generated from ARM Compiler 5 cannot be relied on as support has been dropped.
Use Arm Compiler 6.
Removed ARMC5 reference from Mbed OS platform.
Breaking change: The ARMC5 references are removed from platform as they have been deprecated in a previous Mbed OS release.
Use Arm Compiler 6
Removed ARMC5 reference from FEATURE_BLE.
ARM Compiler 5 is no longer supported in Mbed OS and is superseded by ARM Compiler 6
Breaking change: The ARMC5 references are removed from platform as they have been deprecated in a previous Mbed OS release.
Use Arm Compiler 6
Removed minimal-printf extension profile. Usage of minimal-printf library is enabled via the target.printf_lib
configuration parameter as described in minimal-printf README, see https://github.com/ARMmbed/mbed-os/tree/master/platform/source/minimal-printf#usage for more details.
Applications can no longer use the obsolete minimal-printf extension profile.
Usage of minimal-printf library is enabled via the target.printf_lib
configuration parameter, see https://github.com/ARMmbed/mbed-os/tree/master/platform/source/minimal-printf#usage for more details.
Removed ethernet hal deprecated APIs.
Breaking change: The Ethernet hal APIs are removed as they have been deprecated in a previous Mbed OS release.
Added the bare metal form of the RTOS API since it doesn't add any overhead (except for a little extra compilation time) and has the benefit of minimising differences between RTOS and bare metal modes.
RTOS APIs are available in bare metal mode.
None
Removed Semaphore deprecated APIs.
Breaking change: Semaphore wait
and wait_until
methods have been deprecated since Mbed OS 5.13 and are removed now.
Use Semaphore acquire
, try_acquire
, try_acquire_for
and try_acquire_until
methods.
set_ip_address
API can be used to set a static IPv4 address or IPv6 link-local address to network stack. This is needed for example in cellular use cases where device gets multiple IP addresses from cellular context.
With get_dns_server
DNS servers can be queried from NetworkInterface object
Make NonCopyable
fully operational so it gives compile errors in all build profiles.
This removes the deprecated copy operators which let code compile with a warning.
Code that copies non-copyable classes will now not compile in any profile - previously a link error would have been generated in debug profile, but other profiles would have only generated a "deprecated" warning at compile time and a debug message at runtime.
Modify code to not copy non-copyable objects. Any code doing so would have likely led to problems such as memory leaks.
Removed mbed wait deprecated APIs.
Breaking change: wait
and wait_ms
APIs have been deprecated since Mbed OS 5.14 and they are removed now.
If you wish to sleep, use ThisThread::sleep_for
(C++) or thread_sleep_for
(C). If you wish to wait (without sleeping), call wait_us
. wait_us
is safe to call from ISR context.
mbed_set_error_hook()
can only be called inside the application. Therefore it is not possible in the application to catch errors before calling mbed_set_error_hook()
.
I thought it would be simpler to create a mbed_error_hook()
function which is weak and the application can catch errors at any time.
None
Replace mbed_set_error_hook()
with an application specific mbed_error_hook()
implementation.
Add new API to network interface.
Property API allows application to ask network specific properties
from the InternetSocket . Queried information can be used to avoid
network congestion by adjusting transmission jitter and retry
timeouts.
Add Chronos versions of time-related APIs to RTOS classes, Ticker-related classes and EventQueue.
Kernel::Clock
, HighResClock
, LowPowerClock
and RealTimeClock
act as the Chrono clocks. (C++ standard clocks system_clock
, steady_clock
and high_resolution_clock
are not supported, due to difficulty in consistent retargetting across toolchains).
Deprecate old non-Chrono APIs.
Existing timing code will generate deprecation warnings, but there should be no functional change.
A follow-up PR will clean-up warnings in rest of code base.
Users should migrate to use Chrono-based APIs as directed by the deprecation messages
RawSerial
, Serial
, UARTSerial
deprecated classes.Breaking change: RawSerial
, Serial
, UARTSerial
classes have been deprecated since Mbed OS 6.0.0 and they are all removed now.
Use BufferedSerial and UnbufferedSerial for serial communication.
Fixes https://github.com/ARMmbed/mbed-os/issues/12192.
get_time()
function allows access to (S)NTP functionalities of ESP8266 module.
I considered using std::chrono
instead of ctime's std::tm
, but then - to convert to chrono::time_point
we'd have to go through std::tm
anyway or write our own parser, which I just managed to avoid.
Side note: using std::
introduces some warnings due to -D_LIBCPP_EXTERN_TEMPLATE(...)=
flag being used in all our compilation profiles. This flag seems obsolete and I hope I will get it removed soon.
I cannot really add any tests, as they are using WifiInterface::get_instance()
to get the interface and there is no RTTI, that would allow casting to ESP8266Interface
to call get_time()
, but I tested the function locally and it works fine.
None, other than user can check time with ESP8266Interface.
None
Non-secure core IPC, Mailbox and Interface init for TFM_DUALCPU and TFM_V8M targets
These changes concentrate on getting mbed-os(Non-secure) working with TF-M(secure)
Changes reflect towards any Cypress based TFM_DUALCPU targets and TFM_V8M targets at the moment and making it more generic in the near future.
Key changes:
We are initializing the following for TFM_DUALCPU platforms:
We are only initializing a Non-secure interface for TFM_V8M platforms.
This impacts CY8CKIT_064S2_4343W, TFM_V8M and TFM_DUALCPU targets.
None
Extend Callback
, and optimise it.
nullptr
overload.std::function
API.nullptr
overload means Callback(NULL)
or Callback(0)
will no longer work; users must use Callback(nullptr)
or Callback()
.There are no new known issues with this release.
12787
Cypress: Add CYESKIT-064B0S2-4343W
12603
Add target CYSBSYSKIT_01
12576
M487: Support custom board
12941
Correct Timeout rescheduling
12938
Correct core RTOS sleep routine timing
12935
Remove unsupported targets
12924
STM32F4 bypass PLL configuration when already done by bootloader
12919
ExhaustibleBlockDevice: revert commit 10481f2
12913
usbcdc: provide doxygen only macro for doxy builder
12889
Convert newlines on all terminal (tty) devices by default
12876
802.15.4 STM S2LP driver update
12874
nRF: use Mbed-default boot-stack-size & fix stack_size_unification test
12873
Bare metal profile: USB class device support
12872
Add the Doxygen note to non-supported RTOS kernel APIs.
12866
Update mbed-coap to version v5.1.5
12864
Remove unsupported targets
12860
STM32F7 update drivers version to CUBE V1.16.0
12855
Bare metal: Enable signals greentea test
12853
ARCH_PRO: Remove uARM tooolchain support
12852
Update mbed-coap to version 5.1.4
12850
Fix intermittent sync fail in tests-filesystem-general_filesystem
12849
TEST: Update example test
12846
Revert "Remove MTB_STM_S2LP target"
12844
Add invalid data case to tdbstore ram init
12843
enable storage tests on baremetal
12841
Drops prebuild bootloaders not supported in Mbed OS 6
12840
Musca-B1: Grant Non-Secure access for MHU0 on EXP0
12839
Nuvoton: netsocket correction of judgment errors
12833
Override c_lib to small for all targets
12830
Cellular: Fix BG96 offloaded DNS query for new API
12828
Update CYSBSYSKIT_01
12827
enable common tickers & lp_tickers hal tests in baremetal mode
12825
Turn on ARM linker --inline
12823
Allow Devicekey::generate_root_of_trust() to define key size.
12819
Cypress: Fix unitialized memory in spi_master_write
12818
Add the Doxygen note to non-supported RTOS and Driver class.
12817
Cellular: Disable AT traces when mbed-trace is disabled
12816
Baremetal: Enable Semaphore greentea test
12815
Cellular: Fix build problem if cellular.debug-at is set as null
12811
Remove deprecated Platform header files
12810
Remove unsupported targets
12804
Cellular: Check if serial is supported
12802
Nuvoton: Add 'sectors' configuration option into targets.json
12799
TDBStore: Handle odd number of sectors in block
12797
Add custom board option to STM32 pins generation script
12792
Seeed: Removing unsupported Seeed targets for OS 6
12791
Fix for IPv6 Dual Stack support
12787
Cypress: Add CYESKIT-064B0S2-4343W
12786
Baremetal: Enable kernel_tick_count greentea test
12785
Cordio: Apply Packetcraft's fix for possible SweynTooth vulnerabilities
12783
LittleFSv2: Bring in v2.2
12779
Baremetal: Enable EventFlags greentea test
12778
Add I2C api to Musca-B1 target
12775
Remove unsupported targets
12769
Fix WIFI-GET-RSSI test case failure and remove extra label from CYW9P62S1_43438EVB_01 in target.json
12768
ESP8266 Drv support baud-rate switch
12765
Update MTS_MDOT_F411RE target and remove bootloader from tools
12763
Cellular: Fix ATHandler::read_string to handle delimiter inside string
12761
Callback: Trivial default
12758
Fix: Return the correct std I/O device handle for Microlib in retarget code
12757
Update Mbed OS with Mbed Crypto merged into Mbed TLS
12755
Update astyle filtering rules for Nanostack
12754
Nanostack release for Mbed OS 6
12752
PSoC 62/63: set correct mbed_ram_start and mbed_ram_size
12748
Fix build failure due to C lib selected
12746
Removed Toshiba targets (AdBun-M066, M3H6 & M3HQ).
12745
add config option for phy media interface
12744
Change files in TARGET_SDT64B
12743
mergify: Add 5.15 rule
12742
BLE: remove deprecated APIs from Gatt and SecurityManager
12741
Add Semtech Lora radio drivers
12739
FIX: update usb device tests for deprecated API
12738
Remove Mbed SPM
12737
Remove PSA implementation for v8-M and dual CPU targets
12736
rtos: Improve CMSIS-RTOSv2 app compatibility
12735
Make MUSCA B1 and MUSCA A1 TF-M ready
12734
NUCLEO_WB55RG : enable IAR export
12733
odin targets: remove release version
12731
Testing: Fix multihoming test compilation issues
12730
BLE Gap deprecation cleanup/rework
12729
Mbedtls fixes
12728
STM32 EMAC : increase thread-stacksize
12719
FPGA CI TEST SHIELD: add test config json file
12716
M487: Update BSP
12715
RZ_A1H remove usage of ethernet hal API
12712
Fix LTO issue with minimal-printf
12711
targets:MIMXRT1050: Add QSPI flash support
12708
Remove compatibility for Arm Compiler versions prior to 6.01.0050
12706
Tests: Remove support for ARM Compiler 5
12705
mbed-client-cli: Remove support for ARM Compiler 5
12704
LWIP: propagate the apimsg->err out of netconn_apimsg()
12702
TFM: Remove ARM Compiler 5 considerations
12701
Add custom BT Firmware image for CYW9P62S1_43012EVB_01
12699
Storage: Remove support for ARM Compiler 5
12698
Drivers: Remove support for ARM Compiler 5
12696
rtos: declare vector table type as in Technical Note 11578
12694
Remove netsocket icetea tests and TCPServer
12693
USBMSD security updates
12692
EFM32G11: Add RGB LEDs to PinNames.h
12691
Replace small with std C lib if not supported by a target's toolchain
12690
STM32: solve GCC Unspecified RTOS error
12686
STM32 EMAC : remove TIMEOUT issue when cable is not plugged yet
12685
Remove deprecated netsocket methods
12683
SocketAddress rework
12682
MBED TRACE default level is INFO
12681
SPIFBlockDevice doesn't play nice on shared SPI bus #11732.
12680
QSPI driver also acquires ownership upon initialization now.
12679
PSoC6: enable export to uVision and IAR
12677
STM32H7: enable QSPI
12676
Remove deprecated BLE:: APIs and unsupported services
12674
Remove Maxim and SoftDevice BLE stacks which do not support the latest APIs
12673
Mergify update
12672
Remove deprecated ARMC5 reference from mbed compile -S
output
12671
Netsocket/lwIP Stack: Remove support for ARM Compiler 5
12670
ESP8266: Fix typo: gateway to netmask
12668
tests-integration-fs-threaded: makes tests independent from each other
12667
Add check for return code in DeviceKey to avoid injecting invalid ROT
12666
Makefile: render compatible with some GNU make versions (revert #12646)
12663
Migrate NUCLEO_F303K8 to Mbed OS 5 baremetal
12662
Add workaround for STM32F4 hardfault in sleep mode
12661
Adjusted SecurityManager Doxygen ASCII art
12660
M2351: Support custom board
12659
Rebuild WICED libraries after Mbed update
12658
tests-integration;tests-filesystem: fix code causing compiler warnings and enable more tests
12655
Remove ARMC5 reference from Mbed OS platform
12654
Removed all references to __CC_ARM
12652
Add moduletests for FileSystemStore
12651
Cellular: Make Quectel EC2x modem start up timeout configurable
12649
Expose SerialBase IrqType member to UnbufferedSerial class
12648
Nanostack: Add config for Wi-SUN device type
12646
Makefile: fix for overlong command line
12645
Storage: Use internal flash for KVStore always if default config
12642
M263: Support custom board
12640
Remove minimal-printf extension profile
12639
Remove the deprecated ethernet hal APIs
12638
Enable storage tests to all targets
12637
Cordio: fix for issue #12625
12636
Extend unit tests for TDBStore
12633
Cellular: Add offload TLSSocket implementation inside feature flag
12632
Fix snprintf in minimal-printf library
12631
Update psutils to address security issue
12630
mbed test with dual core targets
12629
Add "rtos-api" to bare metal
12626
STM32F4 update drivers version to CUBE V1.25.0
12624
Cellular: Support EC2x power control pin support no connect
12617
Correct doxygen for Mail::get
12612
TEST: add RTOS macro to enable integration test
12610
Add UBLOX_onboard_modem_api for power up UBLOX_C027.
12609
Remove Semaphore deprecated APIs
12607
Use toolchain's struct stat if available
12606
Netsocket: Introduce set_ip_address and get_dns_server APIs
12603
Add target CYSBSYSKIT_01
12589
Cellular: Add deativation of context associated with profile
12581
Fully enforce NonCopyable
12576
M487: Support custom board
12572
Remove mbed wait deprecated APIs
12570
Improve nsapi_create_stack
12569
Replace with weak mbed_error_hook implementation (deprecate the hook function)
12547
EFM32: update emlib to 5.9.1
12528
SFDP: consolidation of SFDP parsing [5/5]
12522
Add property API to InternetSocket
12472
Add WPA3 support in mbed-os for green tea tests
12463
Clean up and optimise socket statistics
12456
COMPONENT_BlueNRG_MS creation : ST Bluetooth Low Energy module
12425
C++ Chrono support
12410
Remove the deprecated RawSerial, UARTSerial, Serial
12387
Add Objects Extensions Configuration Parameter to HAL
12300
Add get_time function to ESP8266
12271
Make cypress psoc64 TFM ready and also add TF-M initialization
12161
nRF52 I2CSlave Implementation
12036
Callback extension and optimisation
11726
Disable C++ static destructors in ARMC6 compiler
11629
Refactor TDB internal bounds computation
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-6.0.0-beta-1".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by adbridge over 4 years ago
We are pleased to announce the Mbed OS 5.15.3 release is now available.
This latest partner and customer support release on the 5.15 branch brings a number of important fixes and updates.
Highlights:
For full details of these and other fixes in this release please see the contents list below.
This section lists specific changes which are part of this release and may
need special attention.
None
There are no new known issues with this release.
None
12871
UpdateMbed version and secure binaries
12869
LWIP: don't pbuf_free(NULL) on socket close (5.15-branch)
12867
Update mbed-coap to version v5.1.5 for Mbed OS 5.15
12863
STM32 GCC Unspecified RTOS error
12859
Update mbed-coap to version 5.1.4
12854
Implement psa_hash_*() functions
12845
Backport SweynTooth fix for Cordio to 5.15
12842
Remove ethernet interface logic for SoftAP and STA
12813
[mbed-os-5.15] Nanostack release to mbed-os-5.15 branch
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.15.3".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by adbridge over 4 years ago
We are pleased to announce the Mbed OS 5.15.2 release is now available.
This latest patch release for the 5.15 branch continues to add support for our partners and customers needs whilst we continue to prepare for the next major version of Mbed OS.
It contains a branch specific Nanostack release to fix a number of outstanding issues, some important TLS updates and bootloader support for RZ_A1H and GR_LYCHEE. There are also a number of other essential fixes.
Please note that this release is NOT currently supported by the official Mbed OS examples or the online compiler.
This section lists specific changes which are part of this release and may need special attention.
Upgrade to Mbed TLS 2.21.0 and Mbed Crypto 3.1.0
What behavior changes are being made?
For security and NIST SP 800-90A compliance reasons, CTR DRBG now grabs a nonce from the entropy source if needed to provide the maximum security strength. A previously unused-before-seeding member of the CTR DRBG context, mbedtls_ctr_drbg_context::reseed_counter
, is used to hold the number of bytes the user has requested to include from the nonce via mbedtls_ctr_drbg_set_nonce_len()
, or -1
to indicate that the entropy nonce length was not set explicitly. This means applications that were depending on a reseed_counter
value of 0
to mean "not yet seeded" will need to instead handle errors from calls to mbedtls_ctr_drbg_seed()
.
What is being deprecated?
A few PSA Crypto asymmetric cryptography functions and macros, key usage definitions, and error code definitions have been renamed to better reflect their operation and to improve readability.
Why is this being deprecated?
The PSA Crypto API continues to develop as it heads towards its 1.0 release. Mbed Crypto 3.0.0d0 implements more of PSA Crypto 1.0b3 than was implemented in Mbed Crypto 2.x, and this brings along some API deprecations.
Mbed Crypto includes backwards compatibility macros (by way of psa/crypto_compat.h
) to provide source-level backwards compatibility, although it's recommended to stop using the deprecated APIs as soon as you are able to.
Migration
To avoid using deprecated APIs, users of PSA Crypto should update to the new version of API.
Old | New |
---|---|
psa_asymmetric_sign() |
psa_sign_hash() |
psa_asymmetric_verify() |
psa_verify_hash() |
PSA_ASYMMETRIC_SIGNATURE_MAX_SIZE() |
PSA_SIGNATURE_MAX_SIZE() |
PSA_ASYMMETRIC_SIGN_OUTPUT_SIZE() |
PSA_SIGN_OUTPUT_SIZE() |
PSA_KEY_USAGE_SIGN |
PSA_KEY_USAGE_SIGN_HASH |
PSA_KEY_USAGE_VERIFY |
PSA_KEY_USAGE_VERIFY_HASH |
PSA_ERROR_UNKNOWN_ERROR |
PSA_ERROR_GENERIC_ERROR |
PSA_ERROR_OCCUPIED_SLOT |
PSA_ERROR_ALREADY_EXISTS |
PSA_ERROR_EMPTY_SLOT |
PSA_ERROR_DOES_NOT_EXIST |
PSA_ERROR_INSUFFICIENT_CAPACITY |
PSA_ERROR_INSUFFICIENT_DATA |
PSA_ERROR_TAMPERING_DETECTED |
PSA_ERROR_CORRUPTION_DETECTED |
There are no new known issues with this release.
12780
Cypress: Remove CYSBSYSKIT_01 from 5.15
12776
Update stm32 emac ethernet driver
12771
Cypress: Partial backport of #12769
12767
Upgrade to Mbed TLS 2.21.0 and Mbed Crypto 3.1.0
12753
Cypress: Backport PRs from 6.0 to 5.15.2
12727
USBMSD security updates (bp #12693)
12724
RZ_A1H and GR_LYCHEE: Enable bootloader support (Mbed OS 5.15)
12723
Mbedtls fixes for 5.15.2
12717
Add fix for STM32F4 hardfault in sleep mode
12653
Fix issue when TDBStore has varying erase sizes between areas. (Backport)
12650
Cellular: ALT1250 PPP cellular driver for mbed-os 5.15
12485
Nanostack release for Mbed OS 5.15
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.15.2".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by adbridge over 4 years ago
We are pleased to announce the Mbed OS 6.0.0-alpha-3 release is now available.
In this pre-release of Mbed OS 6.0 we continue the theme of general cleanup. We also switched the default implementation of the printf family functions to the minimal-printf library. We will publish a blog post with more details on the subject in the coming days as it may have implications on your code. This release intentionally breaks compatibility both with Mbed OS 5 series and previous Mbed OS 6 previews. For details of the breaking changes please have a look at the release notes below.
This section lists specific changes which are part of this release and may need special attention.
Removed RtosTimer deprecated class.
Breaking change: RtosTimer has been deprecated since Mbed OS 5.2 and it is removed now.
Use EverntQueue as it provides similar functionality with the additional features to handle deferring other events to multiple contexts.
Modified Mutex lock() and unlock() APIs to returnvoid
as return status value deprecated.
Breaking change: Mutex lock()
and unlock()
methods return status value have been deprecated since Mbed OS 5.9, so changed the return value to void
.
Use Mutex void lock()
, void unlock()
methods.
Add cellular support for Altair ALT1250 NB-IoT modem. This driver only supports PPP mode.
Removed Mutex deprecated API.
Breaking change: Mutex lock(uint32_t millisec)
method have been deprecated since Mbed OS 5.10 and its removed now.
Use Mutex lock
, trylock
, trylock_for
methods.
Update the version of Mbed Crypto provided by Mbed OS to version 3.0.1.
Removed FileSystemLike deprecated APIs.
Breaking change: FileSystemLike opendir
and open
methods have been deprecated since Mbed OS 5.5 and they are removed now.
Use open(FileHandle **file, const char *filename, int flags)
and open(DirHandle **dir, const char *path)
methods.
Removed DirHandle deprecated APIs.
Breaking change: DirHandle closedir
, readdir
, rewinddir
, telldir
and seekdir
methods have been deprecated since Mbed OS 5.4 and they are removed now.
Use DirHandle close
, read
, rewind
, tell
and seek
methods.
Removed mbed power management deprecated API.
Breaking change: deepsleep
API has been deprecated since Mbed OS 5.6 and it is removed now.
Use sleep()
Removed mbed interface deprecated API.
Breaking change: mbed_error_vfprintf API has been deprecated since Mbed OS 5.11 and it is removed now.
Use mbed_error_vprintf()
.
Removed FileHandle deprecated APIs.
Breaking change: FileHandle lseek
, fsync
, and flen
methods have been deprecated since Mbed OS 5.4 and they are removed now.
Use FileHandle seek()
, sync()
, and size()
methods.
CallChain is never intended for public use and its no longer used in Mbed OS, therefore, it is removed.
Breaking change: CallChain class and its methods have been deprecated since Mbed OS 5.6 and they are removed now.
None
Removed the CriticalSectionLock deprecated APIs.
Breaking change: CriticalSectionLock lock
and unlock
methods have been deprecated since Mbed OS 5.8 and they are removed now.
Use the static methods CriticalSectionLock::enable()
and CriticalSectionLock::disable()
.
Removed ATCmdParser deprecated APIs.
Breaking change: ATCmdParser setTimeout, setDelimiter, and dubugOn methods have been deprecated since Mbed OS 5.5.0 and they are removed now.
Use set_timeout()
, set_delimiter()
, and debug_on()
attach
with callback
APIBreaking change: Ticker attach and attach_us methods with cv-qualifiers have been deprecated since Mbed OS 5.1 and they are removed now.
Use attach(callback(obj, method), t)
and attach_us(callback(obj, method), t)
Removed InterruptIn deprecated APIs.
Breaking change: InterruptIn rise and fall methods with cv-qualifiers have been deprecated since Mbed OS 5.1 and they are removed now.
Use rise(callback(obj, method))
and fall(callback(obj, method))
Removed InterruptManager class as it was deprecated since Mbed 5.6.
All users of InterruptManager class will need to modify their application.
The interrupt handlers need to be attached directly using specific drivers, for example, Application handler can use one of the Ticker/Timer/Timeout classes for clock-related interrupts.
The Ethernet
is no longer supported, so removed header and cpp files and its dependency.
Breaking change: The Ethernet object is removed as it has been deprecated in the previous feature releases.
Use NetworkInterface instead, for more details have a look at our documentation here
Use override
and final
where appropriate, and eliminate unnecessary
virtual
.
Fix up get_ip_address
following string-based API removal (#11942).
Some other C++11 simplifications.
Marking as breaking change as it fixes up a previous breaking change.
No new impact.
No new migrations
Use override
and final
where appropriate, and eliminate unnecessary
virtual
.
Fixes some mismatches in string-based API removal (#11942)
Some other C++11 simplifications.
Reduces code size.
Marking as breaking change because it fixes up some work in a previous breaking change.
No new implications.
No new actions.
Add the gpio_get_capabilities()
function to the GPIO HAL API to skip the unsupported input pull modes when testing with the FPGA-CI-test-shield.
Updated tests:
tests-mbed_hal_fpga_ci_test_shield-gpio
.Extend the GPIO HAL API with the gpio_get_capabilities()
function. Unsupported input pull modes are skipped during the greentea tests.
A default, weak implementation is provided. Every target has to override this weak implementation to provide the correct gpio_capabilities_t
.
The blockdevice is not needed by the bootloader. Removes SPIFReducedBlockDevice fully.
Applications relying to SPIFReducedBlockDevice are forced to switch to SPIFBlockDevice. This comes at a cost of ROM and RAM usage.
Applications need to switch on SPIFBlockDevice
When dealing with EEPROMs without a 16 bit adressing, the current
implementation does not work, as it writes a 16 bit address to the chip.
This may cause undefined behaviour.
This change adds a new constructor argument to enable this new eight-bit
mode. It defaults to false to not break existing code.
This constructor argument should actually never be necessary to manually
set, except when dealing with cheap devices.
An example for such a device is the Hua Hong NEC K24C02. Datasheet.
Added a new optional argument at the end of all existing constructors.
None, as the new constructor argument is optional and at the end.
The default value does not change functionality in existing code.
Removed CAN deprecated APIs.
With these changes, CAN attach
APIs with cv-qualifiers sources are removed and this is the breaking changes for the user
Use attach(callback(obj, method), type)
This PR enables minimal-printf library for all builds. That means that all calls to printf family (including snprintf) will be handled by the minimal-printf library. Main reason for the change are substantial ROM savings that can reach up to 20k. The below table shows result for simple RTOS blinky example in two variants (explicitly calling printf and without) for two boards and three profiles:
Minimal-printf library supports most of the basic usecases:
* %d: signed integer [h, hh, (none), l, ll, z, j, t].
* %i: signed integer [h, hh, (none), l, ll, z, j, t].
* %u: unsigned integer [h, hh, (none), l, ll, z, j, t].
* %x: unsigned integer [h, hh, (none), l, ll, z, j, t], printed as hexadecimal number (e.g., ff).
* %X: unsigned integer [h, hh, (none), l, ll, z, j, t], printed as hexadecimal number (e.g., FF).
* %f: floating point (enabled by default).
* %F: floating point (enabled by default, treated as %f).
* %g: floating point (enabled by default, treated as %f).
* %G: floating point (enabled by default, treated as %f).
* %c: character.
* %s: string.
* %p: pointer (e.g. 0x00123456).
If your application requires more advanced functionality you'll have to revert to using standard library version.
If your application requires advance features of printf family calls, you'll either simplify it or switch to the standard C library version. To do so modify your application configuration in mbed_app.json
file to override the parameter target.printf_lib
with the value std
as shown below:
"target_overrides": {
"*": {
"target.printf_lib": "std"
}
}
Applications using the old APIs will not compile.
Users are expected to use their SocketAddress
-based counterparts and explicitly call gethostbyname()
if DNS address resolution is needed.
Add a build profile extension with the link-time optimizer enabled for GCC_ARM toolchain.
The minimal required version of the GCC_ARM
is now the GNU Arm Embedded Toolchain Version 9-2019-q4-major. Earlier GCC_ARM
versions can cause various issues when the -flto
flag is used, e.g. a platform specific error during the final link stage on Windows hosts with GCC8.
The noinline
attribute has to be used for every function that must be placed into a specific section (specified with a section(".section_name")
attribute). In general, when a function is considered for inlining, the section
attribute is always ignored. However, with the link-time optimizer enabled, the chances for inlining are much higher because the inliner works across multiple translation units. As a result, the output sections' sizes change compared to a non-lto build. This may lead to a section ".section_name" will not fit in region "region_name"
type errors.
The common
flags defined for the GCC_ARM
toolchain are now appended to the ld
flags during a mbed-cli build. Previously, the common
flags were appended only to asm
, c
and cxx
flags. Having the same flags for the compiler and the linker is required when using the link-time optimizer (which is the case for the lto
build profile extension). Any options unrecognized by the linker should be moved from common
to asm
, c
or cxx
.
There are no new known issues with this release.
12597
Cellular: Add ALT1250 PPP cellular target
12458
Add Musca B1 target
12611
STM32F4 UART issue when parity enabled
12601
Remove RtosTimer deprecated class
12599
Greentea kvstorage tests Cypress targets fix.
12598
Change Mutex lock and unlock APIs return value to void
12597
Cellular: Add ALT1250 PPP cellular target
12596
Remove Mutex deprecated API
12595
Fixed typo 'timout'
12590
Importer script: remove apache-2.0.txt
12583
STM32F7: baremetal profile support
12580
Reverting #12312 as it breaking current WiFI connect()->Disconnect() sequence
12571
C++11-ify NonCopyable
12567
STM32 EMAC : increase thread size when mbed-trace is enabled
12560
crypto: Update to Mbed Crypto 3.0.1
12559
DISCO_L4R9I correct LED pins
12557
M487: Fix crash on WDT reset from power-down
12554
Remove FileSystemLike deprecated APIs
12553
Remove DirHandle deprecated APIs
12551
Remove mbed power management deprecated API
12550
Remove mbed interface deprecated API
12549
Remove FileHandle deprecated APIs
12548
tests-integration-net-single: fix build error
12545
threads: fix timeout (set to 25)
12543
TLSSocket: Remove deprecated connect
12540
fix for suppress 'unknown object name' messages from memap.py
12537
Minor optimization to improve readability of code
12536
Fixed typo 'thead' in thread_neighbor_class.h
12534
Remove the deprecated CallChain class and its APIs
12533
Remove CriticalSectionLock deprecated APIs
12531
Add check so that FlashIAP does not allocate memory on flash_init failure
12530
Remove reset reason from Future Sequana targets.
12529
travis: scancode ret value not cat fix
12527
Remove the deprecated ATCmdParser APIs.
12526
GCC: Fix the toolchain LTO workaround for Python 3
12525
Remove the deprecated Ticker APIs
12524
Bugfix: Concurrent SFDP header address init fixed
12521
Remove explicit include of mbedtls/config.h
12520
Fix initialization order for I2CEEBlockDevice
12519
tests-mbed_hal-sleep_manager: fix counter wraparound handling
12518
Remove InterruptIn deprecated APIs
12514
mergify: add "mergify skip" label
12511
allow reconfiguring a running watchdog
12509
EFM32: RTCC bugfix for #12374
12508
Fix minimal-printf stack overflow
12507
Cellular: release _semaphore only once
12506
Fix 2 string based IP address removal regressions
12505
travis: ignore grep return value for scancode
12502
Fixed macro error
12501
Remove the deprecated the InterruptManager APIs
12500
Remove the deprecated ethernet APIs
12499
Cellular: For ublox modem, read '@' char first then send data.
12498
TEST: update usb tests and guard them with macro
12496
EFM32: fix mbed_hal-pinmap test
12495
C++11-ify virtualisation in FileHandle + Serials
12492
Update psoc6cm0p asset to version 1.1.1.
12491
Fixed error of function 'mac_fcf_lenght'
12490
Fixed error of structure mlme_key_descriptor_t
12489
C++11-ify virtualisation in lwIP classes
12488
C++11-ify virtualisation in Nanostack classes
12487
C++11-ify virtualisation in netsocket
12484
TDBStore magic number if endian sensitive fix comment
12481
Nanostack release for Mbed OS 6
12480
Fix SPDX identifiers and licenses (excluding features and targets)
12478
M2351: Fix some minor issues
12477
HAL: Add a get_capabilities() function to GPIO API
12476
Fix build failure when target's cmsis doesn't exist
12475
Proposal to remove SPIFReducedBlockDevice
12473
Fix Freescale MCUXpresso AnalogOut
12467
Inline nsapi_create_stack(NetworkStack)
12466
MBED_STACK_STATS_ENABLED : Add stack_name information in greentea metrics
12464
STM32 EMAC : add configuration choice and connection check
12462
Fix static ram memory statistics for arm compiler
12460
Allow MISO/MOSI set to NC during SPI initialisation (fix for issue #12435)
12458
Add Musca B1 target
12454
Nuvoton: Optimize spi_master_write(...) in case of no SPI MISO pin
12453
STM32 TRACE_GROUP update
12451
STM32 : enable MBED trace for QSPI
12450
SFDP: consolidation of SFDP parsing [3/5]
12449
Add missing pins def for ARDUINO_NANO33BLE
12447
fix targets device_name with nrf51822 32K SoC
12446
Add Eight-Bit-Addressing mode to I2CEEBlockDevice.
12445
Fixed typo: 'lenght' in ip6string.h
12444
Fixed typo: 'lenght' in ns_crc.h
12443
Fixed typo: 'lenght' in coap_service_api.h
12442
Fixed typo: 'lenght' in minimal-printf
12441
CAN: fix length calculation (fixes #12311)
12440
Implement reset_reason api for cypress targets
12438
Fix CY8CPROTO_062_4343W baremetal build
12437
travis: add PR license check for missing/not-valid license files
12436
Remove GPIO pin-maps used for FPGA testing
12431
Nordic NRF52 GPIO API: Fix non-deterministic failure to configure interrupt handling
12427
Minor optimisation to mcr20a-rf-driver code
12426
SFDP: consolidation of SFDP parsing [2/5]
12421
Cypress Targets Reorganization
12420
Remove the deprecated CAN APIs.
12415
STM32H7 : add readme file for dual core use
12384
STM32WB : update BLE part with better support
12358
FIX: add cbor module in the requirement.txt
12319
Fix userallocatedevent imp
12318
SFDP: Move Sector Map Parameter Table parsing under SFDP module
12233
Enable minimal-printf by default for all builds
12206
Kvstore tests
11942
IPCore String-based API removal
11856
GCC: Add a build profile extension with the link-time optimizer enabled
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-6.0.0-alpha-3".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by adbridge over 4 years ago
We are pleased to announce the Mbed OS 6.0.0-alpha-2 release is now available.
This is the second preview of approaching Mbed OS 6.0 release. We continue our efforts to remove previously deprecated APIs and features. This release intentionally breaks compatibility both with Mbed OS 5 series and previous Mbed OS 6 preview. For details of breaking changes please have a look at the release notes below.
This section lists specific changes which are part of this release and may
need special attention.
The Arm Compiler 5 is no longer supported so removed the deprecate warning and added the exception in the build tool to stop building with ARM compiler 5.
With these changes, Arm compiler 5 build fails
Upgrade the enviroment to use Arm Compiler 6 refer
With these changes, Mbed OS CI will no longer build CPU usage example on every PR check.
This PR adds the function set_random_address
to the HCIDriver
class. It allows drivers writer to set the Random Static Address of the controller without using the deprecated API Gap:: setAddress .
This PR supersede #12235 .
Add Flash support for MXRT1050
This commit removes multi ATHandler
support from cellular. This has not been used and causes unnecessary complexity and memory consumption.
Memory statistics of mbed-os-example-cellular with NRF52840_DK + BG96:
GCC:
Total Static RAM memory (data + bss): 29360(+296) bytes
Total Flash memory (text + data): 130660(-832) bytes
ARM:
Total Static RAM memory (data + bss): 261554(+8) bytes
Total Flash memory (text + data): 127573(-1193) bytes
IAR:
Total Static RAM memory (data + bss): 25479(+296) bytes
Total Flash memory (text + data): 102418(-527) bytes
RAM increase is because now ATHandler
is no longer created with new -operator but is now member of AT_CellularDevice
, so image tool is able to count it. Actual total RAM consumption has decreased due to removed variables.
Major changes:
AT_CellularDevice
owns the default FileHandle
and shares it with AT -classesCellularContext::configure_hup()
. Cannot be configured via CellularDevice
any more.CellularContext::configure_hup()
. CellularDevice::enable_hup() and context creation with BufferedSerial handle removed. Cellular will now automatically enable and disable HUP when switching between AT and PPP mode.CellularDevice::create_context()
no longer takes FileHandle
as parameterCellularDevice::get_file_handle()
removed. ATHandler::get_file_handle(
) can be used instead.Add WatchDog support for MXRT1050 EVK
Cleanup the Cellular API by removing empty default implementations and making them pure virtual.
Targeted for release-version 6.0.0.
CellularDevice
will have to have implementation for the new pure virtual methods:clear()
get_context_list()
CellularContext
do not have to have implementation for:get_netmask()
get_gateway()
nsapi_error_t NetworkInterface::get_netmask(SocketAddress *)
{
return NSAPI_ERROR_UNSUPPORTED;
}
nsapi_error_t NetworkInterface::get_gateway(SocketAddress *)
{
return NSAPI_ERROR_UNSUPPORTED;
}
See Impact of changes section.
target.default_lib
to target.c_lib
as it is more meaningful. These changes are done only for MBED OS 5 targets and in the build tool.With these changes, target.default_lib
attribute is no longer being supported.
target.c_lib
is the new attribute used for C library selection. The choice remains unchanged("std" or "small"
)Disable coverage report filtering because of poor results.
e.g. mbed test --unittests -r Socket --coverage html
g
This command will run all unittests with names containing Socket
and then create coverage report with the same scheme, filtering all source files with names containing Socket
.
The problem is that coverage report will be correct only when filtered test name will be the same as corresponding source file name (to be covered) - the same (-r) pattern is used to filter both test names and source file names used in coverage report
Due to described problems it was decided to disable coverage report filtering.
-r
will only filter test names and pattern won't be passed to coverage report generator.
Adds the Microchip KSZ8041 PHY as a supported device for the LPC17xx series.
Removes deprecated API's under hal/storage_abstraction
and the folder itself. Only target which had implemented the functionality was K64F and the implementation gets removed with this PR.
Removes deprecated storage_abstraction API.
Migration not possible. Developers who were relying on this API should study Mbed OS Storage documentation.
Instead of defining which classes can access state machine, CellularStateMachine
class is now "a normal" CPP class with public API.
This is potentially a breaking change but as CellularStateMachine
is only used internally there shouldn't be any impact.
Cellular: Remove deprecated CellularDevice::stop()
Removed method CellularDevice::stop()
CellularDevice::shutdown()
should be used instead.
Cypress: Initial commit of SoftAP host tests.
Basic SoftAP test with host as STA.
Fixes https://github.com/ARMmbed/mbed-os/issues/11982 (some routers fail to work with the UDPSocket-approach, but are proved to work when ESP uses its embedded hostname resolution AT command).
The feature is disabled by default and can be enabled in mbed_app.json with "esp8266.built-in-dns": true
. When enabled then the synchronous hostname resolution will use the ESP's CIPDOMAIN
AT command, but asynchronous resolution will keep on using the UDPSockets as before (no point rewriting the nsapi_dns). Also caching does not work.
I tested with the netsocket-dns testsuite. Obviously caching tests often fail, but if lucky I can get 15/16 passes.
@zhiyong80, please verify if this works with your router.
None, until user enables the esp8266.built-in-dns
option.
Implement the BufferedSerial
class to replace UARTSerial
. BufferedSerial
is UARTSerial
renamed to convey the original purpose of the class. Also remove usage of UARTSerial
in Mbed OS Core diretories
Upgrade to Mbed TLS 2.20.0d1 and Mbed Crypto 3.0.0d0.
Remove various Thread
methods that were deprecated in Mbed OS 5.10
Code using the old methods will no longer compile
Uses of the following removed Thread
methods need to be replaced:
Thread::signal_set
-> Thread::flags_set
Thread::signal_clr
-> ThisThread::flags_clear
Thread::signal_wait
-> ThisThread::flags_wait_xxx
Thread::wait
-> ThisThread::sleep_for
Thread::wait_until
-> ThisThread::sleep_until
Thread::yield
-> ThisThread::yield
Thread::gettid
-> Thread::get_id
or ThisThread::get_id
Thread::attach_idle_hook
-> Kernel::attach_idle_hook
Thread::attach_terminate_hook
-> Kernel::attach_thread_terminate_hook
Add the hal_reset_reason_get_capabilities()
function to the ResetReason HAL API to skip the unsupported reason values during HAL & driver tests.
Fixes #11792.
Updated tests:
tests-mbed_hal-reset_reason
,tests-mbed_drivers-reset_reason
.Extend the ResetReason HAL API with the hal_reset_reason_get_capabilities()
function. Unsupported reason values are skipped during the greentea tests.
A default, weak implementation is provided. Every target has to override this weak implementation to provide the correct reset_reason_capabilities_t
.
For GCC we're being cautious by passing the -fno-delete-null-pointer-checks
. This option prevents some optimisation opportunities, so removing it can reduce code size.
One particular optimisation loss occurs in Callback
where a test similar to this occurs:
extern void myfunc();
inline void foo(void (*fnptr)())
{
if (fnptr) {
do A;
} else {
do B;
}
};
foo(myfunc);
With -fno-delete-null-pointer-checks
, the compiler does not assume that &myfunc
is non-null, and inserts the "null check" - seeing if the address is 0. But performing that test of the address is incorrect anyway - if myfunc actually could be at address 0, we'd still want to doA.
Anyway, we do not have an equivalent option enabled for either Clang or IAR, and we have performed clean-ups avoiding issues with apparently-null vector tables in Clang already, for example #10534.
Therefore it should(TM) be safe to remove the option for GCC. We do not have general data or code at address 0, only vectors are likely to be there, so it does not make sense to be globally restricting code generation for that.
Will reduce image size. Particularly when Callback
is in use. Increased optimisation may require code adjustments, exposing undefined behaviour
If code fails, address undefined behaviour. Eg this null check may now be removed:
int foo(int *ptr)
{
int a = ptr[0];
if (!ptr) { // may be optimised out - compiler can assume non-null because already accessed
return -1;
}
return bar(a);
}
Correct to:
int foo(int *ptr)
{
if (!ptr) {
return -1;
}
int a = ptr[0];
return bar(a);
}
Add a build profile extension with the link-time optimizer enabled for ARMC6 toolchain.
There are no new known issues with this release.
12338
STM32L5 : add DISCO-L562QE board support
12286
Add new target: NUCLEO_L452RE-P
12424
Nuvoton: Fix GPIO IRQ and RTC
12422
Cypress Asset Update
12419
Fix #12290: crash_log_parser on py3
12411
add FLASHIAP in targets.json for KVStore used in PDMC
12409
FIX: LPUART clock source selection should be left to serial driver
12408
LPC408X: Delete the ethernet_api.c files
12407
Disable restricted uart peripheral for NRF52840
12405
EthernetInterface fix detecting change of connection status on ARCH_MAX
12404
M2351: Update BSP and bugfix
12403
FPGA: Enlarge timeout with mbed_hal_fpga_ci_test_shield-i2c
12401
Remove float symbols from apps that use the NFCController class
12400
Add an exception for ARMC5 toolchain build
12399
Cellular: Delete created context if activation fails
12398
Add BlockDevice unittests and fix issues they revealed
12397
Testing: Fix buffer overflow in ATHandler_read_bytes UT test
12396
PDP Type needs to be IPV4V6
12395
I2CEEBlockdevice: fix i2c read return value
12394
Fix SDIO communication issue on Cypress 1M boards and other minor fixes
12393
Fix Musca-A1 gcc linker
12392
Fix psa_key_management_operations
12391
mergify: CI only if PR is without conflicts
12389
Update InterruptIn.h
12386
TEST: fix a bug in ATCmdParser test
12383
Fix thread_sleep_for with zero wake_delay
12382
Fix BufferedSerial visibility of private base class enum enumerators
12380
DISCO_L475VG_IOT01A: Add a list of restricted GPIO pins for testing
12379
Add STDIO UART as restricted for FPGA testing for all targets and support for restricting GPIO
12378
TEST: Refactor mbedmicro tests to use utest framework
12369
LPC1768: Fix ARM toolchain baremetal by defining 2 memory region
12368
Fix NRF52840_DK UART driver and adapt FPGA test
12366
M2351: Support GCC
12364
MIMXRT1050: Update for deep sleep latency
12363
Mergify: fix release version label
12362
TARGET_STM: L0 CUBE SPI async mode send next byte after previous one is read
12357
TARGET_STM32F1: don't set ADC common register when ADC doesn't support it
12356
Fix NRF51, NRF52 gpio_irq_init() function
12353
M2351: Support IAR
12350
implements i2c_free for STM
12349
Nanostack: Update Wi-SUN configuration
12345
USBMSD; NFCEEPROM; mbed_compat: Fix compiler warnings
12344
Unittests for DNS improvements
12342
LPC55S69: Fix UART & GPIO HAL to pass FPGA CI test shield tests
12341
STM32L4: Fix the UART RX & TX data reg bitmasks
12339
Cellular : add modem version in mbed trace
12338
STM32L5 : add DISCO-L562QE board support
12336
Disable write buffering on debug builds.
12335
Remove CPU usage example from CI build
12334
Update cellular drivers/tests for UBLOX_C030_R412M
12333
UDP echotests fix in case of no memory or device busy.
12332
FIX: Disable Analogin D13(PA_5) on some NUCLEO targets
12331
STM32: enable QSPI test with MX25LM51245G octo SPI
12330
Fix FAT filesystem ferror
greentea test(SD Component)
12329
AT_CellularStack: crash during TCP test
12327
Doxygen: don't extract static members
12326
Correct SysTimer absolute time calculations
12324
Fix inconsistency between mbed crc and psoc6 crc implementations.
12322
minimal-printf: README correction
12321
Ble driver set random static address
12320
ONME-3433 ESP8266 driver support for UDP get - modified ESP8266 drive
12317
MXRT1050 Flash support
12316
Fix general filesystem greentea test
12315
Add check for APPLE & MACH to fix unit tests on macOS
12312
Fix to sending IPV6 UPD packet fails IPv6 enabled in SoftAP intf
12310
Greentea DNS tests workaround.
12308
Tests: add missing mbed_trace.h multihoming header
12307
Fix the missing retrieve error context function call.
12305
Cellular: Remove support for multiple ATHandlers
12304
QSPIF: Enable QPI mode as a second option, if available
12303
Fix ARM compiler warning for microlib
12302
Remove _LIBCPP_EXTERN_TEMPLATE ARMCC compilation flag
12299
MIMXRT1050: Add Watchdog support
12297
Corrected minimal-printf README
12296
FPGA_CI_TEST_SHIELD : force all peripheral to be tested
12295
STM32H7 correct PWMOUT instances
12293
Cellular: Remove API's empty default implemetations
12292
Multiple labels need to be in an array of strings
12291
Minor optimisation to ATCmdParser unit test code
12287
Fix unittests on windows(mingw)
12286
Add new target: NUCLEO_L452RE-P
12282
Fix for issue #12268 (SerialBase.cpp: fix initialization list)
12281
Cellular: Refactor socket_stack_init() from generic to modem specific
12280
EFM32: add UART and LEUART for EFM32GG11
12278
Rename "default_lib" to "c_lib".
12275
Fix call to sorted by providing key to sort on.
12274
mergify: enable for any pull request
12273
unittests: disable coverage report filtering
12270
BUGFIX: SFDP Sector Map Table Parameter ID LSB is 0x81
12269
mergify: add fixes to the conditions
12267
Fix UDP socket test cases
12265
Refactor unnecessary functions from cellular driver
12263
unittest: fix coverage filtering
12262
Test: Increase the UART flush delay
12261
Cellular: Fix compilation fail with APN lookup enabled
12260
Add KSZ8041 as a supported PHY for the LPC17xx series
12258
Disable the cell AUX UART by default on EP_AGORA
12257
psa: Ensure spaces before partition name comment
12254
unittest: fix ATCmdParser test segfault
12253
storage_abstraction: deprecated since Mbed OS 5.5 and now removed
12251
Cellular: Remove friend definitions from cellular state machine
12249
Cellular: Remove deprecated CellularDevice::stop()
12245
NUCLEO_WB55RG - add device name "STM32WB55RGVx"
12243
Add timer shutdown after time stop on deinit
12241
M2351: Remove LPTICKER to spare memory for non-PSA minimal secure build
12240
Cypress: add SoftAP host tests
12239
Fix DNS multiple query hints to perform both IP4 and IP6 tests
12237
STM serial free: Set pin function only if pin is defined (not NC)
12234
ESP8266: Add built-in hostname resolution handling (disabled by default)
12231
Import latest python scripts and MCUBoot image
12230
TEST: use K64F replace DISCO_L475VG_IOT01A to run some example test
12228
Need RAM and ROM size for compilation
12227
Cellular: AT + QICSGP set up APN fix
12226
target_test - assert if sectors keyword missing
12225
Fix baremetal heap and stack initialisation
12223
RZ_A1H and GR_LYCHEE: Enable bootloader support
12220
NRF5x targets: Replace UARTSerial references with BufferedSerial
12213
ESP8266: Replace UARTSerial references with BufferedSerial
12211
Cellular: Replace UARTSerial references with BufferedSerial
12210
Fix for issue #10725: disable lp-ticker for STM targets which uses RTC/LSI for lp-ticker
12209
NXP target: Replace UARTSerial references with BufferedSerial
12208
ST targets: Replace UARTSerial references with BufferedSerial
12207
Add BufferedSerial class to replace UARTSerial
12201
TARGET_STM: FW driver files refactor proposition
12199
Format targets.json
12198
uARM: Fix deprecate warning printing wrongly for GCC_ARM/IAR toolchain build
12166
NRF52840_DK: Fix baremetal linker error
12160
nRF52: Properly configure nRF SDK for nRF52-series targets
12157
ESP8266: Avoid duplicate data sends
12154
NRF51822: Fix baremetal linker error
12153
Hackathon: Increase coverage of the SPI master FPGA test
12152
Updated 113 targets with missing detect_codes
12150
Update Mbed TLS and Mbed Crypto to latest as of 2019-12-20
12142
Thread: remove methods deprecated in 5.10
12139
HAL: Add a get_capabilities() function to ResetReason API
12060
Improve reliability of KVStore general tests
12035
Preparation for Callback changes
12023
GCC: remove -fno-delete-null-pointer-checks
11904
TOOLS: enable build greentea test coverage for HW
11874
ARMC6: Add a build profile extension with the link-time optimizer enabled
11433
FPGA CI shield: Add a watchdog timing test
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-6.0.0-alpha-2".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by adbridge over 4 years ago
As we prepare for the release of the next major version of Mbed OS, we still need to ensure that the needs of partners and customers are met, so today we are releasing a patch release for Mbed OS 5.15 (Mbed OS 5.15.1) This release includes a mix of defect fixes required to support existing customers and the enablement of a small number of new targets to support marketing activities ahead of Embedded World later this month.
Our focus on the next major Mbed OS release continues and we’ll do our second alpha release next week.
In this release we have added the following targets:
We have fixed the following reported issues:
12361
OKDO odin driver - ARM in nightly error hciCmdAlloc not defined
12087
Bad AT+COPS command with plmn
12005
Build error with NUCLEO_H743ZI2 (Armc5, Mbed os 5.14)
There are also a number of other fixes and code improvements.
There are no new known issues with this release.
12355
HANI_IOT: add new target board support
12106
Add Samsung Exynos i S111 target
12093
TARGET_STM: add support of board NUCLEO_G071RB
12306
STM32L5: NUCLEO-L552ZE-Q new target
12377
Update psoc6cm0p asset to 1.1.0
12370
OKDO_ODIN_W2: Reenable lp-ticker and BLE
12355
HANI_IOT: add new target board support
12306
STM32L5: NUCLEO-L552ZE-Q new target
12167
Update Cypress Targets and Assets
12164
Pr dev/remove hardcoded timeout in cypress bt code
12147
mbed-coap uint16 overflow fix
12146
mbed-coap buffer overflow fix
12140
STM32 clean mbed_rtx.h file
12134
Fix LPC11U35_401 baremetal build
12126
Robustify equeue multithread unit test
12106
Add Samsung Exynos i S111 target
12093
TARGET_STM: add support of board NUCLEO_G071RB
12088
Cellular: Fix AT command for COPS manual network selection
12022
Make ESP8266 compatible with bare metal profile
12015
STM EMAC: compilation issue with ARMC5
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.15.1".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by adbridge almost 5 years ago
We are pleased to announce the Mbed OS 6.0.0-alpha-1 release is now available.
This is our first engineering preview of Mbed OS 6.0 focusing on general cleanup and bug fixes. It contains everything that we worked on since December and was deemed ready to merge to master. Please note that this release intentionally breaks compatibility with Mbed OS 5 series. To find out more details please have a look at sections below.
This section lists specific changes which are part of this release and may need special attention.
string_to_pdp_type
is only used in CellularContext
classes and by having the conversion method in CellularContext it can be used also to check the non-standard Non-IP PDP type string.
Classes derived from CellularContext must implement new function:
virtual const char *get_nonip_context_type_str() = 0;
This API has already been implemented in AT_CellularContext though, so current code does not change.
Moves BlockDevice configurations used by SystemStorage as BlockDevice defaults. This makes it possible to use the defaults to execute littlefs filesystem tests.
Adds SPIF/QSPIF/SPIFReduced- and SDBlockDevice specific app configs for making it possible to run the forementioned tests.
none
Remove the immediate-start constructors deprecated in Mbed OS 5.1.
Code using the old constructors will no longer compile
Code using immediate-start Thread
constructors must be changed to use the Thread::start
method.
Mbed OS was carrying the unsupported
directory for a long time. The main reason was
to enable users to benefit from some form of USB stack. Now when there
is a proper implementation of USB stack in Mbed I think it's time for
unsupported to go. If any other functionality present in this
directory will be needed it'll need to be introduced in Mbed OS
properly.
As the name suggest 'unsupported' directory was unsupported, but it was there that means our community was free to use any of the functionality present. So in theory it is breaking change, even if the code was never properly supported.
Removed functionality was never supported and its use was not recommended. If you used USB device mode, please port your code to use the supported version from drivers directory. If you need any other features please consider contributing it properly to Mbed.
Cellular: Refactor cellular variable visibilities
This can potentially be a breaking change but at least currently none of the existing mbed-os cellular targets required any changes.
If customer wants to use some cellular variable marked as private, they need to inform @ARMmbed/mbed-os-wan and we can review the case.
As ATHandler is part of Cellular's public API it is now moved to /API folder
Also some functions and variables are refactored to be private/protected where applicable
Also virtual cmd_start() (and destructor) method(s) devirtualised because not needed.
Unittests updated to reflect changes
As ATHandler is part of Cellular's public API it is now moved to /API folder
Also some functions and variables are refactored to be private/protected where applicable
Also virtual cmd_start() (and destructor) method(s) devirtualised because not needed.
Visibility of some methods have been changed in ATHandler and should not cause any issues if those were not used (as they shouldn't have been).
Also if include path has been used correctly for ATHandler.h there are no cahnges needed
Currently SocketAddress::operator== does not check port number. Adding this check can be considered as a breaking change. Now SocketAddress::operator== checks port also. All greentests and unitests was checked and fixed.
N/A
N/A
The app_offset and header_offset parameters have always been a part of the target configuration parameters. However, they were intercepted by the tools and never exposed to the application. The new FOTA (update client next generation) functionality requires these parameters in the code as well now. So this PR adds them to targets.json file. The only result of this PR is the addition of these two macros into the code.
Note that the tools already expose the macros APPLICATION_ADDR and HEADER_ADDR having the same values. However, these macros are only available when the application is built with the bootloader. If it isn't, these macros aren't available, hence this PR.
This change is required for new fota client.
None
None
With these changes, uARM toolchain is being deprecated.
As uARM toolchain is deprecated, the user has to redefine a supported_c_libs configuration with "small" for arm toolchain on the target in targets.json to enable Microlib support like
"supported_c_libs": {
"arm": ["std", "small"],
"gcc_arm": ["std", "small"],
"iar": ["std"]
}
and change the scatter file to the 2-region memory model see more info.
Instead of -t uARM, use default_lib with "small" in mbed_app.json configuration for ARMC6 toolchain.
Not needed file, should be part of DSP. The functionality is part of the library provided
by CMSIS.
I would like to test this, for all devices. This header file should be removed in 6.0.0 as we do not provide DSP library. Thus I set this as Major update.
Fixes #12054
Applications should use CMSIS DSP package. As the order of includes is not defined in our tools, this might cause an error - hard to tell which cmsis math header was actually included. The removed math header we used in this code base was much older version.
Use CMSIS DSP release (not part of Mbed OS at the moment) - the header file cmsis math is included there.
For consistency with std::shared_ptr
, and mbed::Callback
, and as a
potential optimisation aid, give SharedPtr
a distinct constructor for
nullptr
.
nullptr
overload.nullptr
overload means SharedPtr(NULL)
or SharedPtr(0)
will no longer work; users must use SharedPtr(nullptr)
or SharedPtr()
.C++17 standardised [[fallthrough]]
for switch
statements to suppress compiler warnings. Provide access to it, or compiler-specific alternatives.
MBED_FALLTHROUGH
attribute added to mbed_toolchain.h
- a portable equivalent for C++17's [[fallthrough]]
.
None
NVStore: already deprecated implementation removal
People are adviced to use KVStore
No migration path available.
FunctionPointer
has been removed.FunctionPointer
will no longer compile.FunctionPointer
users should switch to Callback
.Removed CellularBase and AT_CellularBase from cellular stack and updated both code and unittests accordingly. Cellular drivers in Mbed OS have been updated.
APN lookup and SMS features are now disabled by default
Earlier cellular device properties were handled in AT_CellularBase class and after this change they are handled now correctly in AT_CellularDevice class. The properties are always modem specific and must be therefore handled in AT_CellularDevice class which is common for all contexts using it.
CellularBase has been completely removed so those using must now switch to use CellularInterface instead.
Disabling SMS will save ~4,5kB and APN lookup about ~2kB
Cellular modem drivers must be updated (done for targets in Mbed OS) by removing references to CellularBase.
CellularBase must be changed to CellularInterface if still in use. (was already typedef'ed so no other changes needed)
If SMS or APN lookup are needed by application, those needs to be enabled in mbed_app.json
(cellular.use-apn-lookup: true or cellular.use-sms: true)
N/A
N/A
TDBStore
does not anymore require Flash based block device.
N/A
N/A
SlicingBlockDevice
does not anymore accept both parameters as zero, or size as zero. SlicingBlockDevice(block, 0,0)
used to create a block device that took up the whole block device. There is no sense on doing so, and if used like this, it has most probably been a programming error. Therefore the constructor now does MBED_ASSERT()
if both parameters, start
and stop
point to same value. Effectively this prevents creating a slice that has size of zero, or take the full block device.
You cannot anymore create a SlicingBlockDevice that has size of zero, or take the full size of underlying block device.
No migration required for code that uses SlicingBlockDevice as it is intended.
Add the UnbufferedSerial class to provide unbuffered I/O access.
It is intended to be used instead of RawSerial. See documentration section for more details.
The MbedCRC
class has been improved and optimised.
There is now a global JSON configuration drivers.crc-table-size
controlling table usage, and individual uses can be size-optimised via template parameters. However some changes are backwards-incompatible:
POLY_32BIT_REV_ANSI
has been removed - the same result can be obtained via POLY_32BIT_ANSI
.POLY_16BIT_IBM
had errors - this has been corrected, but CRC results will be different from the previous software calculation (but will match any hardware calculation)Add ability to enable Minimal printf using configuration parammeter.
A new configuration parameter target.printf_lib
has been added to enable it.
Convenient and familiar way to configure Mbed OS.
N/A
Deprecated methods in Callback
removed.
Some code that was generating deprecation warnings will no longer compile at all.
Callback(arg, func)
with the reversed Callback(func, arg)
attach
with simple assignment, such as callback = func;
or callback = { func, arg };
There are no new known issues with this release.
12256
Update psa binaries for 6.0.0-alpha1
12238
Minimal-printf: Fix wrapping of printf functions for the ARM compiler
12236
Fix baremetal build failures
12218
tests tickers: adapt ticker_interrupt_test() test case for high frequency tickers
12217
Nuvoton: Add DEVICE_USBDEVICE detection in usbd implementation
12216
Fix dl_channel tests
12215
Cellular: Implementation of virtual get_ip_address funtion in ublox-api
12214
Cellular: Move string_to_pdp_type method to CellularContext
12202
Increase MSI clock frequency when exiting deep sleep
12200
Minor fixes for peripheral pins on Dragonfly Nano
12196
LWIP: don't pbuf_free(NULL) on socket close
12195
Corrected PPP debug trace flagging
12194
Nanostack Socket event handler fix
12193
Cellular: Move cellular event queue thread ownership to CellularDevice
12189
Removed hardcoded CY8CPROTO_062_4343W bt baudrate limit.
12188
Greentea test :Added the print in the exception handler
12186
STM serial init: Set pin function only if pin is defined (not NC)
12185
BLE: fix pointer not set to null on delete
12182
Update watchdog tests to run with bare metal profile
12181
Add DTLS in Connectivity's design document
12179
TESTS: Update testing of examples in mbed-os
12178
Fixes for LPC55S69_NS TLS tests
12176
Nuvoton: Support usbd
12175
Minimal-printf: Fix documentation as floating point is disabled by default
12173
Change size embedded in the temp_ram_page_data
12170
Nuvoton: Support dynamic heap configuration on IAR
12169
syntax error corrections - rm unnecessary semicolons
12167
Update Cypress Targets and Assets
12164
Pr dev/remove hardcoded timeout in cypress bt code
12162
CMSIS-pack update for STM32WB-family
12155
LPC11U24: Fix baremetal build and runtime error
12151
NRF5x: Fix baremetal linker error
12144
NRF52840: Use 2 region memory model for the ARM toolchain
12143
Blockdevice config changes to make it possible to run littlefs filesystem tests
12141
Thread: remove constructors deprecated in 5.1
12138
TESTS-MBED_HAL-COMMON_TICKERS no more executed
12133
Cellular: Suppress long AT traces
12132
LWIP: Remove unused MBOX configs
12131
Cellular: Fix Gemalto/Cinterion driver
12128
Remove unsupported folder
12123
Cellular: Refactor cellular variable visibilities
12122
ATHandler refactoring
12121
Serial: Deprecate the class and promote UnbufferedSerial instead
12120
ONME-4433 SocketAddress::operator== should also check port
12118
Fixed Serial ambiguity for enable_input and enable_output
12114
Cellular: Fix to not use all zero address for DNS
12113
Fix for issue #12104 (STM32 can_init_freq() ignores frequency)
12111
Microlib: Disable feof function usage in general filesystem test
12110
Moved CP Max recv len into mbed_lib.json
12109
Replace RawSerial as it has been deprecated
12108
Wi-sun network event handler update
12101
Bare metal: Retrieve error context after crash
12099
Implemented recommended fix from https://github.com/STMicroelectronic
12098
Wrong order of code fixed
12097
cypress target: fix iar warnings
12095
Update MXRT1050 to SDK 6.0
12092
Refactored away onboard_modem_api because it is not needed at all
12089
Update offloaded TLSSocket to TLSSocket design
12088
Cellular: Fix AT command for COPS manual network selection
12086
TARGET_STM: fix flash api 64bit address alignment on L4 and WB
12085
PSA setup template changes.
12083
Cellular: Add check for network congestion in BC95 driver
12081
Expose target_offset and header_offset parameters in targets.json
12080
Unittest cleanup made
12079
Coverity fixes
12078
Cellular: Add PPP/IP config flags in CellularInterface.json
12073
Unittests: fix for PRs 12051 and 11996
12071
Minimal Console: Use static pin map
12069
STM32: astyle update
12068
Enabling small C library option and deprecating uARM toolchain
12067
STM32 GPIO IRQ : add a critical section in gpio_irq_init
12065
Non-IP socket implementation for NIDD over CP
12064
Valgrind support added for unittests
12063
Move get_ip_address_if() to NetworkStack and include it in multihoming test
12061
NANO130: Support dynamic heap configuration on IAR
12057
NUC472/M487: Limit EMAC receive frame length as 1518
12055
cmsis: remove arm math
12052
fpga tests: clear uart fix
12051
Unittest configuration mechanism improved
12050
Fix TDBStore sizes for SecureStore tests
12048
SharedPtr: add nullptr constructor
12045
Netsocket test adjusted to Wisun
12044
increamed qspi size for cypress integration fs tests
12043
Modify itm_api.c for EFM32 targets
12041
Add QSPI and relevant test support for target EP_AGORA
12038
Cypress: Remove qspi_frequency() call.
12037
SharedPtr: add move operations
12034
SysTimer: Suppress implicit virtual warning
12032
Add MBED_FALLTHROUGH attribute
12029
STM32F0: create STM32F091xC target
12027
Modify nsapi_dns tests to be module tests
12026
Update HAL file to Toshiba's TMPM4G9
12025
Platform: Delete an unused astyle output file
12024
ONME-4366 - Fix UBLOX_EVK_ODIN_W2 fails in emac tests due to heap mem
12020
Fix issues in setting radio access technology
12019
Cypress: rework lptimer hal
12018
STM32_EMAC cleanup
12017
NVStore: already deprecated implementation removed
12013
Add UDP ECHOTEST with connect/send/recv calls
12012
USB device HID test: remove duplicated define
12011
STMOD_CELLULAR: improve debug print
12008
Cellular: Fix ATHandler string handling
11997
Remove deprecated FunctionPointer class
11996
CellularBase/AT_CellularBase removal
11995
MCU_NRF52840 target configuration fixes
11988
Small fixes for SecureStore
11987
TDBStore refactoring
11986
Storage related test improvements and small fixes
11980
DISCO_L4R9I: update clock configuration for all clock sources
11976
LWIP system mailbox overflow fix
11975
PPPinterface: remove faulty address getter check for invalid pointer
11962
Bug in mbed_alloc_wrappers.cpp
11961
UnbufferedSerial: Introduce the class to replace RawSerial
11957
MbedCRC and CRC HAL revisions (6.0 redo)
11952
Fix for Dragonfly nano and registration for LTE-M plans
11927
Speed up unittests by not limitting Make to spawn more processes
11920
Simplify pull request template headers and instructions
11897
MbedCRC: improve init value handling and tests
11891
minimal-printf: Enable using a target configuration parameter
11880
Remove deprecated Callback methods
11878
Improve API documentation and test coverage
11866
Update pycryptodome version
11817
ESP8266 "busy s..." fix (ONME-4352)
11653
Add Getaddrinfo interface for multiple DNS adresses
11594
M2351: Pre-build secure image/lib to favor pelion application
10959
M2351: Support TFM level 1
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-6.0.0-alpha-1".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by adbridge almost 5 years ago
We are pleased to announce the Mbed OS 5.15.0 release is now available.
This is the last planned minor release from the Mbed OS 5 series and, as such, doesn't contain many new features. We focused on fixing issues and working on quality and size improvements.
We put a lot of effort into networking, working on various improvements to Wi-SUN, Cellular and DNS, as well as BG96 and ESP2866 modules drivers. We also introduced support for offloading TLSSockets to an external hardware module.
We updated our tools to support Python 3, so they are ready for the imminent end of life of Python 2.7.
We introduced the static pin map extension to the HAL layer, which allows developers to save memory by selecting the used pins at compile time.
We also updated our code base and infrastructure to use the newest versions for compilers: GCC9 and Arm Compiler 6.13.
This section lists specific changes that are part of this release and may need special attention.
Added support for Wi-SUN RF channel configuration options to Wi-SUN tasklet.
Wi-SUN RF channel .json options have effect on channel configuration, and they need to be valid.
Default configuration used with Wi-SUN should be that none of the settings affected by this pull request are set, and Wi-SUN will use the defaults for them.
If application .json configuration file has any of the these settings defined:
wisun-uc-channel-function
wisun-bc-channel-function
wisun-uc-fixed-channel
wisun-bc-fixed-channel
wisun-bc-interval
wisun-bc-dwell-interval
wisun-uc-dwell-interval
they need to be removed or checked for validity.
See https://github.com/ARMmbed/mbed-os/pull/11914 for deprecation information. This PR provides SocketAddress
-based APIs if they were missing after previous changes but does not remove the old APIs.
New SocketAddress
based API added to ESP8266
module, anticipating future string-based API removal.
None.
None.
Python 3 is now supported by the tools.
No functional changes, code should be equivalent.
Code should be Python 3 compatible.
None.
This is NOT a breaking change, but it is worth notifying all API users that the string-based APIs are going to be removed soon.
The following API functions are being deprecated and will be removed in Mbed OS 6:
TCPServer (whole class is deprecated already)
TCPSocket::connect(const char *host, uint16_t port);
TLSSocket::connect(const char *host, uint16_t port);
DTLSSocket::connect(const char *host, uint16_t port)
InternetDatagramSocket::sendto(const char *host, uint16_t port, data, size);
InternetSocket::bind(const char *address, uint16_t port);
L3IP:add_ipv4_multicast_group(const char *address);
L3IP:add_ipv6_multicast_group(const char *address)
L3IP:remove_ipv4_multicast_group(const char *address);
L3IP:remove_ipv6_multicast_group(const char *address)
NetworkInterface::get_ip_address()
NetworkInterface::get_netmask()
NetworkInterface::get_gateway()
NetworkInterface::set_network(const char *ip_address, const char *netmask, const char *gateway)
NetworkStack::get_ip_address()
NetworkStack::get_ip_address_if()
Code gives deprecated
warnings whenever old API is used.
Switch to the new SocketAddress
based API.
PWM
, AnalogIn
, AnalogOut
, SPI
, I2C
, UART
, QSPI
, CAN
).xxx_init_direct(xxx_t *obj, static_pinmap_t *)
functions to HAL API (these functions will not use pin map tables).xxx_init_direct(xxx_t *obj, static_pinmap_t*)
HAL functions.xxx_init_direct(static_pinmap_t *)
functions. These functions will call standard xxx_init(xxx_t *obj, PinName, ...)
function (backward compatibility for targets that don't support static pin map mechanism).constexpr
utility functions to look up for pin mapping in compile time (requires C++14).hal\mbed_pinmap_common library
is not needed and can be removed.xxx_init_direct(xxx_t *obj, static_pinmap_t*)
APIs.Cellular stack now has configurable SMS support. This is added to Cellular mbed_lib.json. It is enabled by default for backward compatibility.
If one does not need SMS, disable it in mbed_app.json to decrease the application footprint.
None.
Add a minimal console implementation in mbed_retarget
to provide basic console functionalities.
A new configuration parameter platform.stdio-minimal-console-only
has been added to select it.
Smaller memory footprint for applications that only require basic console functionalities.
None.
NVStore is marked as deprecated.
NVStore won't be available from the next major release onward.
Users must switch to use KVStore. For documentation, please see Docs APIs Storage KVStore .
What is breaking?
The PSA Crypto secure element (SE) driver API - an additional parameter (a persistent data pointer) is now also passed to the slot validation for the driver to use.
Why is this breaking?
Mbed OS tracks the unstable PSA Crypto API. This particular break is to enable drivers to modify persistent data during slot validation.
Migration
Users implementing SE drivers should add an additional void *persistent_data
parameter to the slot validation callback, regardless of whether the persistent_data
will be used or not.
Old | New |
---|---|
psa_drv_se_validate_slot_number_t did not have a modifiable persistent_data parameter |
psa_drv_se_validate_slot_number_t now has a modifiable persistent_data parameter |
New declaration of psa_drv_se_validate_slot_number_t
:
typedef psa_status_t (*psa_drv_se_validate_slot_number_t)(
psa_drv_se_context_t *drv_context,
void *persistent_data,
const psa_key_attributes_t *attributes,
psa_key_creation_method_t method,
psa_key_slot_number_t key_slot);
Old declaration of psa_drv_se_validate_slot_number_t
:
typedef psa_status_t (*psa_drv_se_validate_slot_number_t)(
psa_drv_se_context_t *drv_context,
const psa_key_attributes_t *attributes,
psa_key_creation_method_t method,
psa_key_slot_number_t key_slot);
TDBSTore::init()
is now allowed to return error codes from underlying BlockeDevice.
Previously, the API was limited to return only MBED_ERROR_READ_FAILED
or MBED_ERROR_WRITE_FAILED
, which might have hidden the actual error code from the device.
Now, the application will get the original return value passed from BlockDevice.
As stated in the Mesh API documentation, we should return the status NSAPI_ERROR_IS_CONNECTED if connect is called twice. This PR (11556) fixes it.
If connect method is called twice, a different status code is returned.
Implementations that rely on NSAPI_ERROR_DEVICE_ERROR status code when calling connect twice as their recovery method need to change the handling to the correct status NSAPI_ERROR_IS_CONNECTED.
Added support for DER formatted certificates and keys to Wi-SUN certificate API.
Add nsapi_dns_reset()
function to be able to clear a DNS cache when it is not needed anymore.
This release contains changes for ESP8266.
UART input is enabled and deep sleep is locked:
UART input is disabled and deep sleep is unlocked:
CellularStateMachine
calls CellularDevice::clear()
to clean-up the modem on initial connect()
.
The previous functionality can be restored by defining the flag cellular.clear-on-connect: false
.
This release contains changes for ESP8266 nonblocking operations, which make them compliant with documentation:
connect()
and disconnect()
will now return immediately in non-blocking mode and pass all blocking operations to asynchronous thread.connect()
or disconnect()
, the returned value from the second one may be NSAPI_ERROR_BUSY
.ESP8266Interface::set_credentials(...)
is called during connecting to the network, it is not executed and NSAPI_ERROR_BUSY
is returned.The change will not affect any users, unless they took advantage of the incorrect nonblocking behavior.
Some external modems have an internal TLSSocket implementation, which can be used instead of Mbed TLS based TLSSocket. Using the offloaded TLSSocket can result in significantly reduce ROM usage.
Offloaded TLSSocket can be enabled with "nsapi.offload-tlssocket"
. The used network stack (for example, the cellular modem's CellularStack class) must support the setsockopt's defined in nsapi_types.h.
Compared to the original Mbed TLS based TLSSocket, offloaded TLSSocket brings in one significant API limitation. Offloaded TLSSocket requires setting of certificates and keys after open()
and before connect()
calls, where Mbed TLS based TLSSocket allows setting these before open()
call.
This PR also includes a reference implementation for BG96 cellular modem.
watchdog_features_t
extended by two uint32_t
members: clock_typical_frequency
and clock_max_frequency
. These values can be used to determine the accuracy of an uncalibrated watchdog clock.
Introduce XIP-enabled config to allow text/RO data to be loaded to QSPI flash where XIP (execute-in-place) is supported. This allows programs with larger text/RO data sections to run on a system with smaller on-chip flash.
This feature is disabled by default on all targets.
XIP can be enabled by adding target.xip-enable: true
in mbed_app.json
, then locating the text/RO data sections to QSPI flash region in the linker script. In the boot sequence, QSPI flash needs to be configured to XIP mode.
The netsocket feature is extended with ICMP socket implementation. This change is only for ICMPv4 and ICMPv6 is not currently supported
The handling of enable/disable input/output of UARTSerial
is moved into SerialBase
. The underlying serial peripheral is freed if both input and output are disabled to reduce current consumption. If either input or output is enabled again, the serial peripheral is reinitialized.
GCC 9 is now the officially-supported compiler version for the GCC_ARM toolchain.
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 section 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.
BADCERT_CN_MISMATCH
error is returned.x509_crt_verifycrl()
function ignores the CRL when the CRL has an issuer different from the subject of root CA certificate.x509_crt_verifycrl()
.MBEDTLS_SSL_ENCRYPT_THEN_MAC
enabled in mbedtls/config.h
, and enable the Encrypt-then-MAC extension (RFC7366) on the peer's side.mbed test -m K64F -t ARM --icetea --compile-list -vv
.In addition to the regular pull request tests and nightly tests, we also ran branch tests for mbed-os 5.15.0-RC1/RC2/RC3.
The Greentea test failures are:
In Mbed OS 5.15, compilation test targets scope has not changed. It remains the same for all Mbed OS enabled targets.
As of the Mbed OS 5.15.0 release, we run Greentea tests on 11 targets:
Compared to the Mbed OS 5.14.0 release, we have added testing for:
And removed testing for :
In this release, the number of Coverity issues has reduced from 77 to 49 ( -28).
Critical Coverity issues have reduced from 15 to 13 ( -2).
Test code coverage has been tracked, and the information is published on COVERALLS (https://coveralls.io/github/ARMmbed/mbed-os).
Mbed OS ROM size has increased by approximately 2.8K, mostly because of updating GCC6 to GCC9. (The std library increased by approximately 1.5K).
Other contributors to the ROM size increase include:
11886
Add target for CY8CPROTO-062S3-4343W
11846
Add support for Makerdiary nRF52840-MDK
11979
Bare metal Greentea tests compilation fixes
11978
LPC55S69_NS: Fix bare metal compilation error
11971
TDBStore: Unlock the master mutex even after garbage_collect()
11967
Fixed crashing nsapi_dns unittest
11966
Fix targets.json syntax errors
11963
STM32 USB: Add __HAL_RCC_PWR_CLK_ENABLE
11959
Minimal Console: Fix compilation error
11958
Add support for Wi-SUN RF channel configuration
11956
tests-mbed_hal-sleep_manager: Fix regression found on since PR #11721
11950
DISCO_H747I: Add support of MBED_TICKLESS
11949
Fix for ArmC5 compilation errors for some targets
11947
Minimal Console: Fix syntax errors
11944
Cypress: Minor fix for mbed astyle
11943
Split integration tests in fs/net
11941
Remove string-based API usage within mbed-os
11938
STM32: Update and align serial_clear implementations
11937
Cellular: Replace CellularSocket.rx_avail with pending_bytes
11936
DNS tests: Cancel asynchronous dns query if it times out
11935
Cellular: Mark to be deprecated in CellularDevice
11930
Add FlashIAP to NUCLEO_L4R5ZI
11928
Allow MBED_ASSERT to throw errors in unittests, so we can verify it
11926
Fixed Greentea FileHandle test for microlib
11925
Fixed Greentea minimal-printf test for microlib
11923
Cellular: Fix PPP to wait until connected event from (LWIP) PPP
11921
Updates to tools for Python 3 compatibility
11919
Cypress: FPGA: Improve SPI async calls
11918
IOTSTOR-978: Bug fixes to TDBStore and SecureStore
11915
TESTS: Fix TCP/TLS send_timeout test to nonblocking
11914
Deprecate string-based APIs in IPCore
11913
LPC55S69_NS default TDBStore size increased to 32kB
11911
Update mbed-coap to version 5.1.2
11908
I2C byte read/write transmission improvement
11901
Update MPN for CYW9P62S1_43012EVB_01 board
11899
Fixes to PR template
11895
TESTS: Allow ipv6_link_local_address() as unsupported
11892
Bring static pin map extension to master
11890
S2-LP: Sync with development repository
11889
Nanostack release for Mbed OS 5.15
11888
Pelion enable for UNO_91H
11887
Add target for CYW9P62S1_43438EVB_01
11886
Add target for CY8CPROTO-062S3-4343W
11885
Update to WHD 1.60 release
11884
Update Cypress targets
11882
DISCO_L475VG_IOT01A: Fix bare metal profile Greentea tests
11881
UBLOX_EVK_ODIN_W2: Fix bare metal build and Greentea tests
11877
Fix for sending IPv6 UDP packet over link local interface
11875
Bare metal: Fix Arm toolchain Greentea test compilation for NUCLEO_F411RE
11873
Make SMS configurable in Cellular stack
11870
STM32F7: linker scripts updates
11868
Cypress Target update to support Manufacturing Test
11867
Fix for Cypress GPIO driver (fix for issue #11835)
11865
IAR: Enable linker optimizations for develop/release profile
11851
Enable FAT ChaN lib configuration with mbed_lib.json
11846
Add support for Makerdiary nRF52840-MDK
11841
Wi-Fi: Reorder Greentea tests with minor fixes
11839
SerialBase.h|cpp [-Wreorder] compiler warning fix
11829
USB STM32: Don't wrap direct function calls in MBED_ASSERT
11827
DISCO STM32H747I ETHERNET support, but disabled
11825
Bare metal Greentea test for storage component
11824
Skip bare metal Greentea test for Network component
11821
Skip bare metal Greentea test for PSA component
11819
Add code to verify if external Wi-Fi module is still responsible
11811
STM32H7 FLASH API issue with M4 core
11808
Document Socket API functions return values
11796
mbed_retarget: Add a minimal console implementation to provide basic functionalities
11789
STM32H7: code and feature alignment for both NUCLEO and DISCO targets
11785
Deprecates NVStore
11783
Adding set baud rate routine
11773
Fix watchdog reset test
11755
Unittests for nsapi_dns
11735
Dns unittest preparation
11721
Bare metal Greentea support
11720
ATCmdParser: Merge scanf and recv functions
11713
Remove Tickless from STM32F4 targets
11711
STM32F7 update drivers version to CUBE V1.15.0
11701
Arm toolchain: heap setup micro-optimization
11687
Update to Mbed TLS 2.20.0d0 and Mbed Crypto 2.1.0d0
11682
Make FPGA tests to pass on CI targets (SPI, analogIn, PWM)
11675
STM32 USB update step 1
11654
Adjustment of netsocket tests to the lossy mesh network limitation.
11641
PmwOut: Add method to enable/disable PWM
11634
Serial design draft
11595
Check return of BlockDevice::init() in TDBStore.
11556
Modified Wi-SUN tasklet to return success when calling connect twice
11551
Coverity updates
11539
Enable DER coded certificate support to Wi-SUN mesh API
11535
DNS manual cleanup mechanism added
11514
ESP8266 unlocks deep sleep when disconnected
11480
Enable tickless mode in additional tested targets
11469
Cellular: Disable cellular.clear-on-connect by default
11463
Enable tickless mode in MAX32630FTHR
11460
ESP8266 Unified Mbed trace prints.
11459
Replaced in ESP8266::oob* recv() with scanf()
11444
QSPI : Define default pins at drivers level
11430
Member get_interface_name implemented in ESP8266Interface
11414
Cellular: Add API to clear CellularDevice
11409
ESP8266 nonblocking connect/disconnect
11357
Offloaded TLSSocket and BG96 support for it
11332
mbed_error.c: Better HW fault exceptions and stack dump
11203
Add watchdog lower limit timeout test
11032
Add test header files and defined behavior for APIs tested using FPGA-Test-Shield
11006
Introduce an Mbed config to enable XIP
10978
LwIP: Add ICMPv4 Socket support
10940
Deinitialize the pin definition
10924
Free serial resources if not needed anymore
10618
Tools: Check for GCC 9, rather than 6
12059
Config: Fix bootloader config errors - propagate errors
12058
Add static pin map support: SDBlockDevice, KVStore, system storage (reduce ROM used by Mbed Cloud Client example)
12047
NANO130: Fix OOM with packing algorithm at IAR linking
12039
Fix build errors for bare metal Greentea tests on NRF52840_DK
12033
static pin-map: patch for SerialBase class
12030
Updates the Cypress Wi-Fi Host Driver to 1.7.0
12006
FIX: Fix a bug introduced by static pin map
11991
TESTS: Fix integration tests
11983
Ublox Odin Driver OS 5 v3.7.1 rc3: Network-Wi-Fi Test Crash Fixes
11970
Avoid crashes during fault handler
12117
Storage features: fix static pin-map for ArmC5
12112
Notify on configuration exception rather than breaking build
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.15.0".
If you need any help with this release, please visit our support page, which provides reference links and details of our support channels.
Published by adbridge almost 5 years ago
We are pleased to announce the Mbed OS 5.14.2 release is now available.
In this release we have added the following targets:
As an exception to our normal patch release rules we have added a new API called get_ipv6_link_local_address in NetworkInterface class. This API returns IPv6 link local address.
The QSPI interface permits the alt (aka mode) bits to be any multiple of the bus width. Previously the values
in qspi_alt_size_t only supported multiples of bytes. This has been fixed in this release. This is a backwards
compatible change as compatibility macros are provided for the old qspi_alt_size_t values.
We have updated LittleFS to v1.7.2. The release notes for this change can be found here:
The Cypress WiFI Host Driver (WHD) has been updated to version 1.40. This includes the following changes:
It should be noted that the base target name for NU_PFM_M2351_CM has been changed to NU_PFM_M2351 in this release.
We have fixed the following reported issues:
We have also:
There are also a number of other fixes and code improvements.
There are no new known issues with this release.
11715
Add CYW9P62S1_43012EVB_01 board
11605
DISCO_H747I dualcore support
11434
Initial addition of files to support CY8CKIT_064S2_4343W target
11902
Cellular: Enable ePCO IE for BG96 driver
11872
Change mbed-os-example-wifi to build only DISCO_L475VG_IOT01A
11871
TESTS: Add socket.set_timeout in udpsocket_echotest
11869
IOTSTOR-978: Skip a unstable testcase until fixed
11861
Replace calls to printf() with mbed-trace in netsocket tests
11859
Cellular: Fix queue scheduling for bare metal
11854
ATHandler build warning fixed
11850
Correct PB_6/PB_7 Serial AF mapping
11848
Remove ITM Trace support from Arduino Nano 33 BLE
11844
EFM32: Enable RESET_REASON and WATCHDOG for EFM32GG11_STK3701
11843
Fix ethernet memory handling issues on CM3DS
11840
Update Cypress WifiHostDriver to version 1.50
11836
Add sender address and port verification to UDPSOCKET_ECHOTEST
11834
Fix flag checks to allow disabling unsecure tests
11833
TESTS: turn off blinky log compare test due to example changed
11831
BLE: Added call to delete the security database object upon SM reset.
11830
Cypress: Add implementation of free() for gpio
11828
MCU_LPC11U35_501: fix MCU inheritance
11823
IOTBTOOL-333: Fix SimpleQueue build failure on py3
11822
TLSSOCKET_HANDSHAKE_INVALID test skip if DNS AAA record not available.
11818
Adding baud rate setting to TLS and UDP echo burst tests
11816
Fix failure of building non-RTOS for GR-PEACH, GR-LYCHEE and VK-RZ/A1H
11815
Updated targets.json file to go along with pr-11770
11814
USBMSD: implement MODE SENSE (10) command
11813
Fix ARM issue 11795: - Cypress: SPI FPGA test: tester always respond
11810
SecureStore: Add member initializers for inc_handle_t
11800
Update common Cypress libraries
11797
IOTSTOR-953: Fix address calculations from SlicingBlockDevice
11790
nrf52: reset UARTE peripheral in serial_free
11782
equeue: avoid non-standard bit shifts
11780
Nuvoton: Add implementations of HAL API i2c_free and analogin_free
11777
IOTBTOOL-377: Fix scatter file include path online
11776
Fix for issue #11769 (Cypress: PWM FPGA test wrong assert)
11775
LPC55S69: fix serial_set_flow_control
11772
Cellular: updated cellular context flags and cid in ublox-api
11770
Update CM0P pre-built images to build 1.0.0.35
11767
Increase STM32 default deep sleep latency to 4ms
11765
Cypress: fix GPIO mode NONE
11763
Display full path of generated coverage output from unittests.
11759
STM32 QSPI: Use defines for setting address size
11756
Add option to use CCMRAM on F303xE.
11754
Cellular: Added write_hex_string to AT handler
11752
FlashIAP: Get erase value from HAL instead of hardcoding it
11749
M2351: Change base target name 'NU_PFM_M2351_CM' to 'NU_PFM_M2351'
11748
Fix spurious link up/down when AP IP address range change
11747
Update the internal kvstore flash reservation size to from 7k to 65K for Cypress Devices
11743
fpga i2c test: limit tested peripherals
11742
Fix the reset_reason host test in the CI
11739
Nrf52 i2c byte rw fix
11736
Nuvoton: Remove TRNG support
11734
nxp LPC55S69: fix i2c pin mapping
11729
minimal-printf: Fix handling of the two character sequence %%
11728
minimal_printf: Fix high level C functions that print to the console
11725
DeviceKey: Fix random key doesn't generate with custom entropy source
11724
iar export for TT_M3HQ and TT_M4G9
11719
Ensure modem echo is off before sending other AT commands
11718
Handle legacy process event first on connection complete
11717
Fix Quectel M26 context hang
11715
Add CYW9P62S1_43012EVB_01 board
11714
LWIP::get_ipv6_addr for link-local only
11710
Update examples testing scripts
11709
Update CMSIS pack index json for STM32H7xx family
11708
TARGET_STM: remove warning and fix typo on SPI
11706
MCU_NRF52840: Switches to correct Product Anomaly Notification(PAN) macro
11700
Add bootloader support for Seeed Arch-MAX
11699
Fix for missing os_cb_section
11698
Clean up ARM toolchain heap+stack setup in targets
11697
USB-Cypress: Lock sleep when USB is initialized
11695
GREENTEA: init trace if trace is enabled in json
11694
Fix components setting for GR-PEACH and GR-LYCHEE
11693
UDPSOCKET_ECHOTEST change to tolerate duplicate packets
11692
NRF52840_DK: enables FLASHIAP for the device
11691
QSPI: document use of QSPI_NO_INST
11690
Changed mbed gpio-port api to match gpio api
11688
Clearing UART TC Flag prevents deep sleep, so do not clear it
11686
Corrected nanostack PAE controller
11685
Check-in PSA related auto-generated files to support online compiler.
11684
Add support for nRF52 Watchdog
11683
Baremetal profile fixes
11679
STM32L4 TRNG clock configuration
11677
Update BT Firmware to version 128.
11676
nrf52 - fix i2c/twi driver
11673
stm32f4xx_hal_pcd.c@346,22: unused variable 'ep'
11672
STM32F767ZI - I2C FastModePlus not properly enabled
11671
nrf5x - add missing gpio_set implementation
11669
Fixed issue with integer overflow when converting time units
11668
Update Cypress WiFi driver code to version 1.40
11667
Fixes IPv6 multicast join issue
11662
Allow WhdAccessPoint scan results with extended parameters
11661
mbed_rtc_time.h lacks an include guard
11660
Fix dropped bytes on spi write
11657
Cellular: Fix apn check
11650
Nuvoton: Re-implement TRNG HAL with TRNG H/W
11646
Fix swapped BT pins on CYW943012P6EVB-01
11645
Enable tickless for PSoC6 targets
11644
Cypress Cordio BT Driver setting Host MCU active during Host Wake assert
11642
STMOD_CELLULAR: remove flow control support for DISCO_L4R9I
11636
EFM32GG11_STK3701: add QSPIF component config
11635
USBDevice: add documentation on USB suspend/resume to enter deep sleep
11631
Qspi frequency test fix
11630
Cellular: Change visibility of _is_connected as protected
11624
LittleFS: Update to v1.7.2
11623
STMOD_CELLULAR: set CTS with PullDown
11622
nRF52 SDK 15.0 - Enable more than 1 interrupt
11620
Fix enum type to align with psa-arch-tests
11619
Add FLASHIAP component to DISCO_H747
11609
IOTBTOOL-407 Fix microbit to use Arm C5
11605
DISCO_H747I dualcore support
11604
Introduce qspi_inst_t type for QSPI instructions
11603
Report errors returned by _qspi_configure_format
11602
Allow for arbitrary QSPI alt sizes
11599
FUTURE_SEQUANA: SPI HAL API fixes
11586
Cleaned up Mbed LWIP configurations
11580
Remove target dependency in ublox cellular APIs
11578
Add synchronization and switching between WhdSoftAPInterface and WhdSTAInterfaces
11571
Allow OS_THREAD_LIBSPACE_NUM as a macro
11563
Simplify pull request template
11547
Fix for UBLOX_EVK_ODIN_W2 fails in emac test.
11536
STM32 EMAC configuration update
11531
Improve QSPIFBlockDevice conformance to SFDP
11512
Fix Failure in Cryptocell tests on Montgomrery curve
11475
TEST: add atecc608a example to compilation test
11457
tools: add silent option to build
11434
Initial addition of files to support CY8CKIT_064S2_4343W target
11429
Move script to check for floats and make it Python 2 compatible
11375
NSAPI DNS query IP version check for non LWIP stacks.
11279
Add API to get ipv6 link local address
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.14.2".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by adbridge about 5 years ago
We are pleased to announce the Mbed OS 5.14.1 release is now available.
The Nanostack RF driver has been updated and as an exception to our normal release protocol, contains
a breaking change.
4-octet FCS which follows IEEE Std 802.15.4-2015
Bug fix related to channel spacing configuration
This release contains version of a S2-LP driver which is not inter-operable with previous versions of the driver.
To make previous version (Mbed OS 5.14.0) of the S2-LP driver inter-operable with this release, following changes are needed.
/components/802.15.4_RF/stm-s2lp-rf-driver/source/NanostackRfPhys2lp.cpp
@@ -553 +553 @@ static void rf_init_registers(void)
- rf_write_register_field(PCKTCTRL1, PCKT_CRCMODE_FIELD, PCKT_CRCMODE_0X1021);
+ rf_write_register_field(PCKTCTRL1, PCKT_CRCMODE_FIELD, PCKT_CRCMODE_0x04C11DB7);
@@ -556,0 +557 @@ static void rf_init_registers(void)
+ rf_write_register_field(PCKTCTRL2, PCKT_FCS_TYPE_FIELD, PCKT_FCS_TYPE_4_OCTET);
@@ -1001,0 +1003 @@ static void rf_receive(uint8_t rx_channel)
+ rf_channel_multiplier = 1;
/components/802.15.4_RF/stm-s2lp-rf-driver/source/s2lpReg.h
@@ -251,0 +252,3 @@ extern "C" {
+#define PCKT_FCS_TYPE_FIELD 0x20
+#define PCKT_FCS_TYPE_4_OCTET (0 << 5)
+#define PCKT_FCS_TYPE_2_OCTET (1 << 5)
@@ -255,0 +259 @@ extern "C" {
+#define PCKT_CRCMODE_0x04C11DB7 (5 << 5)
In this release we have added the following targets:
Cypress targets have been updated to the latest PSoC 6 CSP (HAL, RTOS abstraction, Resource Abstraction).
This update includes:
The Cypress Specific HCI Cordio Driver has also been updated to add:
We have provided an STM32H7 ST CUBE V1.5.0 update. The main impact of this update is the introduction of a
Cortex-M4 instruction cache through ART accelerator.
We have had to disable tickless mode on UBLOX_EVK_ODIN_W2 as it appears to cause crashes in WiFi tests (Issue #11557).
It will be re-enabled once this has been addressed.
This release also includes a Nanostack update to v11.3.0. This includes coap-service updates and
bug fixes to the Wi-SUN protocol.
We have fixed the following reported issues:
We have also:
There are also a number of other fixes and code improvements.
There are no new known issues with this release.
11573
Add 413 dragonfly
11561
Add TARGET_CY8CPROTO_063_BLE
11407
Add OKDO platform
11384
ST DISCO-H747I introduction
11176
Support Nuvoton target NUMAKER_M252KG
11678
Travis CI: Fixed issue where jobs are getting stalled/timing out
11649
Fix memory leak on NetworkInterface destruction
11647
Nanostack RF driver updates for Mbed OS 5.14.1
11639
Nanostack patch release for mbedos 5.14.1
11638
Change imgtool lib import to relative import
11628
Make devicekey remainder test more meaningful
11627
pinmap_peripheral function: update error code for easier debug
11626
DISCO_L4R9I: update default STMOD+ pin
11625
Revert tickless on UBLOX_EVK_ODIN_W2
11621
STM32L151: update calibration memory address
11618
Cellular: Fix CellularStateMachine to not loop between init/power states
11616
Cellular: Setting timeout before send command in gethostbyname.
11615
Cellular: Remove old deprecated tests
11612
IPCore unittests improvements
11607
Tests: USB: Move control endpoint buffers to heap
11601
DNS tests modification for ESP8266-specific scenario
11598
AT_CellularDevice.cpp - unused variable err warning
11597
Missing errno.h include
11596
LoRa: Fix build warning about _ongoing_tx_msg
11590
Moved Cypress TriggerMux initialization out of the HAL and into the BSP
11589
Enable PSA tests for fastmodel
11587
ATCmdParser doxygen header's documentation update for scanf
11585
NRF52: Fixed missing guard in port_api.c
11583
STM32H7 ST CUBE V1.5.0 update
11582
TEST: change integration fs test format and mount order
11581
Cellular: Fix setting of PDP context ID (cid)
11573
Add 413 dragonfly
11572
Tighten GCC 2-region _sbrk
11568
Speed up unit test build with parallel jobs
11567
Simplicy QSPIF target overrides for PSoC6
11566
EP_AGORA: Add config logic to enable BLE, cell, and LoRa by default
11564
Fix ARMC6 linker error for the bare metal profile
11562
STM32H7: memory relocation
11561
Add TARGET_CY8CPROTO_063_BLE
11560
Explicitly set tdb internal flash size for PSoC6 Targets
11558
Coverity fixes
11548
Cellular: Fix resolving of DNS server IPv4/6 address
11546
Tests: USB: Fix Python 3 compatibility
11542
Update Cypress targets
11541
esp8266 oob* : recv() brought back where it was needed
11540
Tests: USB: Update error handling in basic tests
11538
Cellular: Enable IPV6 for WISE_1570
11534
Cellular: Handle SEND FAIL and ERROR response
11529
PSOC6: update to PDL 1.3.1
11525
STM32WB/STM32H7 : LSI selection when LSE is not available
11523
Correct force inline syntax for IAR compiler
11518
Cypress Cordio Driver Update
11517
TCP Packet loss happens due to running of out of Mailbox size.
11516
Update to latest psoc6csp
11499
Cellular: Fix stop tag for Quectel M26 send command
11498
iar export: fix invalid optmization flag - remove from misc
11495
Improve cellular unittests
11494
Fix Coverity issue: Initialize FlashIAP non-static member in constructor
11491
Equeue chain, add documentation of using equeue_destroy
11490
Cellular: Add flow control (IFC) in BG96 AT driver
11489
Examples.py add --jobs argument
11488
Cellular: Fix get_interface_name to not include leading zero
11486
update googletest to v1.8.1
11483
Change reset_reason test timeout.
11478
Refactor CRC constructor method to remove warning
11474
Remove Mbed Crypto source files before importing
11473
Fix compilation warnings from GCC in netsocket/network tests
11472
Suppress Coverity warnings
11471
STM32WB ADC : consecutive VBAT reading
11470
Prevent unreachable statements and correct variable sizes.
11465
Updated mbedTLS CRYPTO target to be more flexibly configured for supported boards
11464
TEST: update compare log file name
11462
Minimal-printf: Remove file printing in README and update tables
11458
Tests: USB: Use libusb0 backend on Windows
11456
IOTBTOOL-349: Correct handling of spaces in project name.
11455
minimal-printf: Add capability to run floating point tests manually
11454
ST: Change the LSI_VALUE according to documentation
11453
Fix Coverity issues
11452
Coverity changes in USBMSD.cpp
11449
Coverity changes in USBDevice.cpp
11448
STM license file update
11447
Coverity changes in USBHID.cpp
11446
add missing asserts to UserAllocatedEvent class
11445
Add catch-all rule to makefile template
11443
Enable asynchronous serial with DMA for K66F
11440
Add missing documentation about tls testing
11439
Remove unreachable statements warnings
11438
Correct doxy-spellchecker error message
11437
Harmonise Doxygen comments in drivers, events, platform and rtos dirs
11427
ESP8266Interface buffer null-terminated and parameters of scan function in correct order
11424
Stack type ip versions
11421
Dns synchronous cache fix
11420
Fixed smsc9220_emac link_out memory management.
11417
Change stack sizes of threads used in tests. GR_LYCHEE failing CI
11408
Remove mbed_trace dependency to Nanomesh headers
11407
Add OKDO platform
11404
FUTURE_SEQUANA: InterruptIn implementation bug fix
11396
Remove floating point from AT_CellularSMS
11395
Avoid non-trivial copy when initializing lorastack struct
11394
Replace wait_ms calls with rtos::ThisThread::sleep_for
11393
Cast void pointer before deallocating with delete[]
11392
Remove minor build warnings
11384
ST DISCO-H747I introduction
11383
Change LSI_VALUE in STM implementation.
11382
Use very verbose to see more details in case of problem
11381
M263: Enlarge required deep sleep latency
11380
M263: Enlarge LPTICKER_DELAY_TICKS for safe
11379
M263: Fix FPGA CI testing failing
11377
Fixed byte string related TypeError if using python3.
11372
Cellular: Fix BG96 power on and connect
11368
Add pin speed controlling interface
11347
Fix NRF52832 softdevice memory map
11338
Bring down interface when stopping softap
11330
RTL8195AM - resuscitate AMEBA GCC/ARMCC support
11314
Add executable analaysis tool for floating point checks.
11297
Differentiate alt and dummy cycles in QSPIF
11254
Update gcc.py for preprocessing in linker script
11176
Support Nuvoton target NUMAKER_M252KG
11046
Initial implementation of Cypress Crypto hardware acceleration for mbedTLS
10991
Explaining how to opt in modules
10684
Cellular: fix ATHandler destructor possible crash on delete
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.14.1".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by adbridge about 5 years ago
We are pleased to announce that the Mbed OS 5.14.0 release is now available.
This release continues to improve and stabilize Mbed OS. We added a static mode for the event queue, which doesn't require using dynamic memory. This aligns the event queue's memory usage with other parts of the system, including RTOS. You can still use dynamic memory, but if you are worried about memory fragmentation or know your memory requirements upfront you can only rely on static memory. We updated the version of C++ standard to C++14, to leverage modern features of the language. We implemented multiple changes to our connectivity, including PPP support for the Nanostack and enterprise security for WiFi. A big item that we started working on is splitting our public interfaces from the internal code; the work for the OS core is done, and we'll continue this work in future releases for other parts of the system. It will add clarity and help our users use only public and stable APIs. We introduced a minimal version of the standard library printf family calls, which addresses most of the common use cases in a fraction of the memory footprint. We continued to update our PSA support to track the upstream development in PSA and Trusted Firmware. We doubled our effort in tracking and fixing Coverity warnings, reducing the number by 50%.
This release is compatible with Device Management Client 4.0.0
This section lists changes that may require your attention.
Background
Mbed Crypto is our implementation of the PSA Crypto APIs. We shipped an implementations of prerelease versions of the PSA Crypto API in Mbed OS 5.11, 5.12, and 5.13, with a warning in the documentation that these APIs were subject to change and that we did not intend to maintain backwards compatibility with them. The PSA Crypto API has continued to develop and change over the past few months and a number of breaking changes have been made since the pre-release version we based our Mbed Crypto implementation on.
What is being broken?
The PSA Crypto APIs in Mbed OS as shipped in Mbed OS 5.13 are breaking.
PSA Crypto API 1.0b3 API breaking changes, addressed in Mbed OS 5.14 (see https://github.com/ARMmbed/mbed-os/pull/11315)
Expected PSA Crypto API 1.0 API breaking changes, to be addressed in the next Mbed OS release
Why is it being broken?
Mbed Crypto needs to track the upstream PSA Crypto API as maintained by ATG in order to pass ATG's PSA Compliance Kit tests. The PSA Crypto API was not yet finalized in Mbed OS 5.13 and continues to evolve. We shipped an implementation in Mbed OS 5.13 to enable other teams working on Mbed OS to develop their services a top APIs that should be mostly similar to the final APIs, rather than save up all the integration pain for a later Mbed OS release when the APIs are finalized.
Analysis of impact on users
There should be no surprises to users based on our statements of PSA API instability. We've worked with Mbed TLS, Pelion Client, Storage (ITS), SPM, and Attestation teams to ensure the message of API instability was understood and to coordinate our changes to the API. There are potentially other users of the PSA Crypto API, and our documentation states the stability level of the API for these users.
Alternatives
We could continue to provide the version of the PSA Crypto API shipped with Mbed OS 5.13, but to save flash size and reduce the maintenance burden of maintaining an API we clearly communicated we'd be breaking in the next release, this was deemed not worth the cost.
Mitigation and migration path for users
Users must update to use the new version of the API.
Renaming of key pair names
Replace KEY_PAIR
in names that would have used KEYPAIR
in the previous API version. For example, PSA_KEY_TYPE_ECC_KEY_PAIR
replaces PSA_KEY_TYPE_ECC_KEYPAIR
.
Using persistent keys
Use psa_open_key()
to open a persistent key. Previously, volatile keys could also be opened. With PSA Crypto API 1.0b3, keys are implicitly opened for you upon import, generation, or derivation.
psa_status_t psa_open_key(psa_key_id_t id,
psa_key_handle_t *handle);
Only persistent keys can be opened, so there is no need to pass the lifetime anymore.
It is no longer necessary to call psa_create_key()
to make a key persistent. A key is persistent if it is created with a lifetime other than PSA_KEY_LIFETIME_VOLATILE
. As part of key creation, use psa_set_key_id()
to set both the key's persistent identifier and to set the lifetime to persistent and then call the key creation routine: like psa_generate_key() or psa_import_key()
Old | New |
---|---|
psa_open_key() |
Only use for opening previously created persistent keys |
psa_create_key() |
psa_set_key_id() Keys with IDs are made persistent implicitly upon creation |
Allocating keys
Key creation will implicitly allocate resources as necessary, so psa_allocate_key()
has been removed from the API and is no longer needed.
Old | New |
---|---|
psa_allocate_key() |
Not necessary. Delete calls to psa_allocate_key() . |
Importing keys
Previously, you had create a policy structure and pass many function arguments to communicate the properties you wanted the imported key to have. Now, you describe them entirely within the attributes structure, passing only the attributes and data to psa_import_key()
.
Old | New |
---|---|
psa_key_policy_init() |
psa_key_attributes_init() |
psa_key_policy_set_usage() |
psa_set_key_usage_flags() , psa_set_key_algorithm()
|
Pass key type to psa_import_key()
|
psa_set_key_type() |
psa_set_key_policy() |
Pass the attributes to psa_import_key() |
psa_import_key() |
psa_import_key() |
Generating keys
Previously, you had create a policy structure and pass many function arguments to communicate the properties you wanted the imported key to have. Now, you describe them entirely within the attributes structure, passing only the attributes and data to psa_generate_key()
.
Old | New |
---|---|
psa_key_policy_init() |
psa_key_attributes_init() |
psa_key_policy_set_usage() |
psa_set_key_usage_flags() , psa_set_key_algorithm()
|
Pass key type to psa_import_key()
|
psa_set_key_type() |
psa_set_key_policy() |
Pass the attributes to psa_import_key() |
psa_generate_key() |
psa_generate_key() |
Reading key policy or information
What used to be two functions with many parameters each is now one function that returns the attributes in one structure, in the same format you'd use to create new keys.
Old | New |
---|---|
psa_get_key_policy() , psa_get_key_information()
|
psa_get_key_attributes() |
Deriving keys
The previous "generator" class of functions has been renamed to "key_derivation". The psa_crypto_generator_t
structure was previously used to derive keys. Use of the psa_key_derivation_operation_t
structure replaces psa_crypto_generator_t
for deriving keys.
Old | New |
---|---|
psa_crypto_generator_t |
psa_key_derivation_operation_t |
psa_generator_abort() |
psa_key_derivation_abort() |
psa_get_generator_capacity() |
psa_key_derivation_get_capacity() |
Function parameter | psa_key_derivation_set_capacity() |
psa_generator_read() |
psa_key_derivation_output_bytes() |
Use of generator with PSA_ALG_SELECT_RAW
|
psa_raw_key_agreement() |
psa_key_derivation() |
Deriving keys now uses key derivation objects and consists of multiple parts. See the getting started guide for details. |
Key agreement
Old | New |
---|---|
psa_key_agreement() |
psa_key_derivation_setup() , psa_key_derivation_key_agreement() , psa_key_derivation_output_key()
|
Hashing
Note: Not yet implemented
The PSA Crypto API 1.0b3 adds a few new functions to help with hashing. Specifically, functions to perform one-shot computation or comparison of hashes.
Old | New |
---|---|
Many hash function calls | psa_hash_compute() |
Many hash function calls | psa_hash_compare() |
Computing or verifying a MAC
Note: Not yet implemented
The PSA Crypto API 1.0b3 adds a few new functions to help with working with MACs. Specifically, functions to perform one-shot computation or comparison of MACs.
Old | New |
---|---|
Many MAC function calls | psa_mac_compute() |
Many MAC function calls | psa_mac_verify() |
Symmetric cryptography
Note: Not yet implemented
The PSA Crypto API 1.0b3 adds a few new functions to help with working with symmetric ciphers. Specifically, functions to perform one-shot encryption or decryption. The types used by psa_cipher_generate_iv()
, psa_cipher_set_iv()
, and psa_cipher_update()
have changed from unsigned char
to uint8_t
.
Old | New |
---|---|
Many cipher function calls | psa_cipher_encrypt() |
Many cipher function calls | psa_cipher_decrypt() |
Authenticated encryption
Note: Not yet implemented
The PSA Crypto API 1.0b3 introduces multi-part authenticated encryption functions. The original one-shot AEAD functions still remain and aren't being replaced.
New functions for multipart AEAD
Mbed Crypto entropy injection
Use of uint8_t
replaces unsigned char
in mbedtls_psa_inject_entropy()
. The macro MBEDTLS_PSA_INJECT_ENTROPY
replaces MBEDTLS_PSA_ENTROPY_INJECTION
.
DNS lookup is done for each of five predefined servers twice. This change affects the previous DNS lookup functionality only when it's expected that DNS is made three times on the very first DNS server.
Although that's unlikely needed, the previous functionality can be restored reverting the changes to DNS configuration.
-std=gnu++14
mode cannot be selected in earlier versions. In Mbed OS 5.13, the Vision exporter was selecting -std=gnu++11
, but this is no longer sufficient.Moved string_to_pdp_type from AT_CellularContext to CellularUtil. string_to_pdp_type is a common method for AT and other layers. Without moving there will be duplicate methods.
This will break user code that was using an internal API using a prefixed path, for example #include "foo/bar.h"
instead of #include "bar.h"
.
This is a target update, adding hw accelerated CMAC, however, it can also be considered as a breaking change, as it removes support for key sizes other than 128 bit keys, and removes support for DES CMAC.
SHA384 is not supported, returning MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED
This is a target update, adding hw accelerated AES, however, it can also be considered as a breaking change, as it removes support for AES other than 128 bit keys.
Migration notes
wait
and wait_ms
should be reviewed to check whether sleeping is appropriate or not in the context the call occurs - if so, change to ThisThread::sleep_for
/thread_sleep_for
, else change to wait_us
.The Mbed TLS key export feature's export keys callback, new in Mbed TLS 2.19.0, now requires use of const
on its hello.random buffers (7th and 8th parameters). This is an API change.
f_export_keys_ext
in ssl.h now has signature:
int (*f_export_keys_ext)( void *, const unsigned char *,
const unsigned char *, size_t, size_t, size_t,
const unsigned char[32], const unsigned char[32],
mbedtls_tls_prf_types );
Define naming rule for TrustZone targets: 'PLATFORM'_['NPSA_']'S'/'NS', where:
Changes for NuMaker-PFM-M2351:
Adds UserAllocatedEvent API to provide mechanism for event posting and dispatching without utilization of queue internal memory.
This release contains updates for the Mesh protocols:
This version of Wi-SUN stack is inter-operable only with itself (development work still on-going).
Wi-SUN protocol is tested using functional protocol testing suites.
Wi-SUN non-functional testing is performed using more than 100 devices connected to single Wi-SUN network.
Thread stack is verified using protocol testing suite that includes certification test suite
When next SysTimer wake-up is scheduler far enough, always consider
that deep sleep may be entered and program an early wake-up.
So that even if deep sleep is only allowed some time later, it can be
entered. If not doing this, then the deep sleep would be prevented by
SysTimer itself and may not be entered at all.
This has been proved to happen in a simple blinly example.
Add a weak gpio_pinmap()
, that every target has to override, to provide a set of pins for GPIO testing.
Atomic<T>
template to make atomics easier in C++.PSA Storage: Add the integrity only and no replay protection flags.
EventQueue::cancel now returns the boolean value to indicate whether the cancel was successful or not.
Add new method virtual void set_authentication_type(AuthenticationType type) to CellularContext so application can set the correct authentication type.
mbed_cxxsupport.h
to assist with C++11 and later code, including supporting ARM C 5 as much as possible.This library allows enabling the cellular module that is connected to the STMOD+ connector of the board.
Currently supported cellular modules are Quectel UG96 and BG96 expansion boards that are included in [p-l496g-cell01] (https://www.st.com/en/evaluation-tools/p-l496g-cell01.html) and [p-l496g-cell02.] (https://www.st.com/en/evaluation-tools/p-l496g-cell02.html) packs.
The STMOD+ Connector specification can be found [here] (https://www.st.com/content/ccc/resource/technical/document/technical_note/group0/04/7f/90/c1/ad/54/46/1f/DM00323609/files/DM00323609.pdf/jcr:content/translations/en.DM00323609.pdf).
This makes no change to existing code and users. Only affects future porters.
To replace the standard implementation of the printf functions with the ones from the minimal-printf library, the custom minimal-printf
profile should be used when compiling with mbed-cli. For example:
$ mbed compile -t <toolchain> -m <target> --profile release --profile minimal-printf
platform/cxxsupport
. These include standard-C++-like APIs, eg mstd::atomic
in <mstd_atomic>
, to improve on implementations provided with toolchains. See platform/cxxsupport/README.md
for more information.Add Cellular PPP connection support to Nanostack. Support is made by creating a common PPP service class that both lwIP and Nanostack can use for cellular connectivity.
Affected components are lwIP and Nanostack on board IP stacks, new netsocket PPP interface and PPP service class. Cellular network interface, cellular classes and "nsapi_ppp.h" interface are not modified. No changes are required from the users of the Cellular network interface to continue using the lwIP as the default IP stack.
To use the Nanostack IP stack with the Cellular network interface instead of the lwIP stack, cellular application configuration must be modified in following way:
Set the default stack to nanostack
"nsapi.default-stack": "NANOSTACK"
Configure PPP to IPv6 only mode (Nanostack does not support IPv4)
"ppp.ipv4-enabled": false, "ppp.ipv6-enabled": true,
Add new APIs to Wi-SUN network certificate handling and network configuration. This includes:
Changed the Debug compiler profile to favor size optimization over speed optimization.
Add NSAPI_SECURITY_WPA2_ENT type to nsapi_security enum.
Add a weak gpio_irq_pinmap()
, that every target has to override, to provide a set of pins for GPIO IRQ testing.
AT_CellularSMS::initialize
takes an additional encoding parameter that defaults to 7-bit (behavior of existing code does not change, one needs to opt-in to send 8-bit SMS)
Default uVision optimisation level changed to O1. It matches the debug profile.
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 section 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.
BADCERT_CN_MISMATCH
error is returned.x509_crt_verifycrl()
function ignores the CRL, when the CRL has an issuer different from the subject of root CA certificate.x509_crt_verifycrl()
.MBEDTLS_SSL_ENCRYPT_THEN_MAC
enabled in mbedtls/config.h
and enable the Encrypt-then-MAC extension (RFC7366) on the peers side.Numbers of improvements around testing had been made into product by mbed-5.14.0 release:
• Introduced FPGA test shield along with new peripheral test suites for Silicon Partners
• Reduced Coverity defects numbers by ~50%
• Merged Greentea test coverage and Unittest coverage, overall test code coverage reached ~61%
• Reduce CI testing time PR test (~2 hrs), Branch test (~4 hrs), nightly test (~8 hrs)
• Tracking down night test failures, fixed most of failures and keep the unfixed defect managed
Apart from regular Pull Request test and Nightly test, We also have Branch test executed on Mbed OS 5.14.0-RC3
Tests run on CI:
With the above Greentea test failures: we identified the following failure reasons:
Test Numbers:
In Mbed OS 5.14, compilation test targets scope has not changed, remains all Mbed OS enabled targets.
As of the time mbed-os 5.14.0 release, we run greentea test on 13 targets:
Test Code Coverage has been tracked and information is published on COVERALLS
11122
Support Nuvoton's new target NUMAKER_IOT_M263A
11402
STM32L4 USB device
11400
nsapi_dns: cleanup dns queue when running out or memory
11391
EvenQueue: fix template functions passing UserAllocatedEvent<...> as argument.
11370
Driver Updates + ARMC6 driver support + WIFI fixes
11369
Specify QSPI frequency for more Cypress targets
11367
Cypress 5.14 rollup
11359
Update mbed-coap to version 5.1.0
11356
Fix WHD link state change event handling
11355
Initial support for Serial Flash on PSoC Devices
11354
Update linker scripts based on latest PDL 1.3
11353
Add reserved resources metadata to Cypress BSPs
11349
TDBStore bugfix: won't rely on flash erase value to detect is a sector erased
11348
Mutex: _count incrementation brought back
11345
Fix bare-metal configuration to support Pelion Device Management Client
11344
S2-LP: Sync with development repository
11343
ESP8266: Support power pin in custom wiring
11342
add queue static allocation support
11339
mbed-os/LwIP changes and fixes in auto-IP for Bonjour Conformance Test
11337
Updating SDP-K1 PinNames.h.
11335
Nanostack release for mbed OS 5.14
11334
I2 c sequential communication rework
11326
Update PDL for Cypress Targets
11324
PSOC6: Update CSP to latest
11322
Updated the LWIP buffer pool size for PSoC6
11319
Update WHD to 1.30.0
11315
Update Mbed OS for PSA Crypto API 1.0b3
11309
MCUXpresso Kinetis SPI drive: Add a delay between CS assertion and first sclk edge
11306
At handler improvements
11304
RSSI getter fixed for ESP8266
11303
NUCLEO_H743ZI2 : increase system clock from 400 MHz to 480 MHz
11302
Enable json overriding ESP8266 default baud rate
11301
STM32L4+ : increase system clock from 80 MHz to 120 MHz
11298
Explicitly set rbp_internal_size for TARGET_PSOC6
11296
Fix missing offset in TBStore read from flash
11294
KL43Z: Enable FALSHIAP storage
11293
K82F: Add USBDEVICE support
11291
Stm32 ospi qspi fallback support
11290
MX25LM51245G QSPI test config file
11289
Replace TEST_ASSERT_INT_WITHIN usage in netsocket tests
11276
Add integration tests
11275
Enable building feature storage with a bare metal profile
11272
mbed fault handler: fix mbed_fault_context parameter
11269
storage: fix potential memory corruption and check return values
11266
ADC internal temperature support and EMAC header fix
11265
Add <mstd_tuple> and ARMC5
11249
Make AT_CellularSMS::list_messages support index 0 in SMS inbox
11248
Allow ATHandler::read_int to return 0 successfully
11247
AT_CellularSMS: set "international" flag in PDU when applicable
11246
Cellular: Fix BG96 AT driver for IPv6
11245
AT_CellularSMS: allow configuring SMS encoding (7-bit/8-bit) at initialization
11244
Netsocket: Change DNS retry and total attempt counts
11239
crypto: Copy legacy crypto from Mbed Crypto
11236
Force inline Timer::attach() to get rid of floating-point instructions
11235
minimal-printf should not bypass the retargetting code
11225
Vision export: Handle more C++ language standards
11224
Coverity issues fixed
11220
Fix cellular dns test with IAR compiled binary
11213
Moved partial profile to a subdirectory
11212
Change default optimisation level to O1 when exporting to uVision
11211
Review follow-up mstd fixes
11208
Atomics: GCC fix for M23 (again)
11201
Cellular: Fixed improper AT handler setup through virtual calls in co
11200
Cellular: moved string_to_pdp_type from AT_CellularContext to Cellula
11191
Cellular: move RAT reading to better support ublox custom boards
11190
Cellular: failure when deleting created context is not considered error
11185
Move rtos & platform TARGET directories to source
11181
mbed-mesh-api: Add new API for Wi-SUN configuration
11154
Cellular API shutdown to stop state machine
11152
Nuvoton: Fix FPGA CI test failing
11149
Cellular: Remove unnecessary local variables
11148
Cellular: Fix SIM pin enter command
11145
Implement queue.count()
11142
Relocate USB target specific code to root targets
directory
11136
USBDevice: Avoid forcing end device to be derived from USBDevice class
11126
Optimize debug profile flags for size
11122
Support Nuvoton's new target NUMAKER_IOT_M263A
11119
Riot Micro cellular device
11104
Enterprise security support
11099
Update EP_AGORA target pinout
11084
NVStore.cpp (and KVStore) - run-time failure handling missing
11082
Cellular: Add BG96 AT driver with DNS support
11076
ARMC5 extensions
11074
Add a gpio-irq pinmap
11073
Feature public headers
11072
STM32L4: update drivers version to CUBE V1.14.0
11070
IAR: Suppress "exceptions are disabled" warning
11067
Add Unittest equeue tests
11058
BLE: allow overriding event signal
11053
Add Mbed bootloader support to CY8CKIT_062_WIFI_BT and CY8CPROTO_062_4343W
11051
Add minimal printf
11050
DISCO_L4R9I new target
11039
Add <mstd_xxx> C++ headers
11038
Extend the GPIO HAL API tests
11019
Nuvoton: Modify wait ns(...) to provide more accurate implementation
11018
PSOC6_SB: initial integration of Cypress Secure Boot target CY8CPROTO_064_SB
11009
FPGA SPI: remove 4 and 12 bits size support
10980
LwIP: make TCPIP_THREAD_PRIO configurable
10974
Created PPP interface and PPP service classes to netsocket
10971
Nanostack: sync libservice with changes in master copy
10947
Port the cryptocell 310 cmac driver
10921
STMOD_CELLULAR: readme file additional information
10919
AT Cellular Network: mutex lock issue
10913
Port CC 310 sha 512 driver
10907
Port aes cc310 driver
10900
Armcc5 compilation fixes
10895
Reduce Event.h and EventQueue.h using C++11
10885
Reduce Callback.h using C++11
10877
Cellular: Ublox cellular context activation updated for C030_R412M
10868
Add C++11/14 support utility file
10866
Adding stmod_cellular component
10847
PSA storage: Conform to "PSA 1.0.0" spec release
10841
TARGET_STM: Add DEVICE_SPI_COUNT to use SPIs without interference
10837
Toolchain attributes - use C++11/C11
10829
PSA: TFM import
10821
Cellular: Refactor APN db implementation to reduce memory usage
10813
Make ARMC5 and IAR develop profile also size optimized
10792
Fix: Allow target size restriction for LPC55S69
10750
Changed EventQueue::cancel to return boolean value
10741
M2351: Override wait_ns to provide more accurate implementation
10711
Add i2cee-driver to components
10703
Cellular: Removed boilerplate code
10699
MbedCRC: make buffers const void *
10694
Cellular: add method to set authentication type to CellularContext
10683
Export wait_ns to be overridable
10660
Add SCLK and SIN stats to SPIMasterTester
10659
Replace uses of ArrayView with mbed::Span
10644
Add a gpio pinmap
10274
Add Atomic template
10104
Sleep rework, RTOS API for bare metal, wait deprecations
11467
Convert TZ target name to test spec platform name
11450
Minimal-printf: Set default configurations to false
11441
Organize source files and add Doxygen labels
11435
Update to Mbed TLS 2.19.0 and Mbed Crypto 2.0.0
11419
Adds missing include required by fixed-width format specifiers
11418
NRF52: fix config
11412
Kinetis update to fix tickless
11410
Mesh API, Wi-SUN: Initialize Wi-SUN settings with values from json
11385
Fix problem with low level lp_ticker STM wrapper
11376
Update PDL documentation and metadata
11526
Fix added to unlock AT handler mutex
11522
Sys timer should let deep sleep happen
11521
Bux fix: Context can be cleared using CGDCONT after sim ready state
11493
Update to Mbed TLS 2.19.1
11487
Convert TZ target name 'NPSA' to test spec platform name
11484
Delaying message id random initialization to later stage.
11479
no-systick targets: fix systick irq handler setup
11423
Nanostack release for mbedos 5 14
11288
M2351: Enhance secure/non-secure image build flow for non-PSA target
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.14.0".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by adbridge about 5 years ago
We are pleased to announce the Mbed OS 5.13.4 release is now available.
In this release we have added the following targets:
mbed-coap has been updated to version 4.8.1. This brings the following changes:
We have fixed the following reported issues:
We have also:
There are also a number of other fixes and code improvements.
This section lists specic changes which are part of this release and may
need special attention.
Fixes TDB_INTERNAL configuration - makes possible to have the KVStore inside internal flash while update images are kept in an external storage.
There are no new known issues with this release.
11137
Add Arduino Nano 33 BLE target
11063
Add CC3220SF_Launchxl to Mbed OS
11284
K22: Add USBDEVICE support
11282
K22F: Add FlashIAP for storage
11280
Tweak stm_spi_api Coverity warning.
11274
Add ethernet support on NUCLEO_H743ZI board
11273
Fix Coverity uninitialized pointer field Thread.h
11270
Update mbed-coap to version 4.8.1
11268
Update MCUXpresso SDK SPI drivers
11267
NXP MCUXpresso: optimize us_ticker for LPC platforms
11261
MCUXpresso: Add TICKLESS support for LPC platforms
11260
Typo in USBSerial.h function prevents compilation
11259
FATFS / IAR compilation issue Pe029
11255
Update NVRAM image for target CY8CMOD-062S2-43012
11250
hal fhss timer: removed unnecessary and potentially unsafe memset
11243
Python3 fixes
11241
LoRaWAN: Terminate RX when receiving uplink messages
11237
Fix TT_M3HQ build problem
11231
Python3 fixes
11226
LPC1768 Watchdog & Reset Reason
11222
BLE: fix recursive call
11216
BLE: make advertising data parser handle early termination
11215
LPC1768: Make use of the other 32K of RAM
11204
BLE: add nonscannable connectable type
11194
Greentea testing wifi connect nonblocked
11193
FATFileSystem::stat() enabled for all compilers
11189
__cplusplus guard fixed pwmout_device.h for STM32 families
11188
MIMXRT1050_EVK: Add TRNG support
11183
M252KG: Fix kvstore-static_tests failing with OOM
11180
tweak atomic_test timeout
11178
ST: Watchdog: Fix timeout registers value calculation
11172
make watchdog kick reset test pass CI (LSI problem)
11171
Add Nuvoton M261 sub-family into arm_pack_manager
11169
TLSSocketWrapper::recvfrom sets SocketAddress output variable
11167
Fix lp ticker and common ticker tests
11166
Fix inclusion of test related directories by build tool
11165
Allows placing KVStore and update images on separate storage devices - to internal and external flash
11157
Relax us ticker frequency requirement + test update
11137
Add Arduino Nano 33 BLE target
11127
Fix ANALOGIN support for LPC55S69
11118
Add new features to Toshiba's TMPM46B
11116
Define IC related pin names for the L-Tek FF_LPC546XX target
11063
Add CC3220SF_Launchxl to Mbed OS
11021
Nuvoton: Enlarge LPTICKER_DELAY_TICKS for safe
11020
Nuvoton: Enlarge required deep sleep latency
10796
NXP: Enable MBED_TICKLESS on various NXP platforms
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.13.4".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by adbridge about 5 years ago
We are pleased to announce the Mbed OS 5.13.3 release is now available.
In this release we have added the following targets:
We have fixed the following reported issues:
We have also:
There are also a number of other fixes and code improvements.
This section lists specific changes which are part of this release and may
need special attention.
In this release the release version block in mbed_version.h was not updated correctly and still points
to mbed-os-5.13.2.
11179
Zero initialise all NVStore&kvstore members
11173
Coverity and compilation warnings fixes
11168
Xpresso: qspi_write fix
11163
Bring back SPIF module-specific debug logs
11162
Add DNS servers from cellular PDP to nsapi
11161
Fix include path issues on NRF5x with Cordio
11160
Nuvoton: Remove dead code nu_delay_cycle_x4
11151
Fix PSoC 6 inout pins
11150
__cplusplus guard fixed pwmout_device.h for STM32F4
11141
freescale: fix i2c_byte_read function
11139
STM32F413 Crash Capture
11138
fix rom start & size for CY8CKIT_062_WIFI_BT & CY8CPROTO_062_4343W
11132
Fix MBED_ASSERT for UTs
11131
FUTURE_SEQUANA: Add missing serial_free() implementation
11130
Updated testcases
11123
NRF52 need to call TIMER_TASK_SHUTDOWN for current consumption
11103
STM32F7: Do not generate redundant IN tokens
11101
PSoC 6 I2C and SPI driver updates
11086
Mbed-os compile without DEVICE_SERIAL
11080
Add target for CY8CKIT_062S2_43012
11071
PSOC6: USB device implementation
11066
Cellular: Fix cellular statemachine stop and BG96 power up
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.13.3".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.
Published by evedon about 5 years ago
We are pleased to announce the Mbed OS 5.13.2 release is now available.
In this release, we have made a number of quality improvements:
The following reported issues have also been fixed in this release:
There are also a number of other fixes and code improvements.
There are no new known issues with this release.
11090
Cellular: Fix to delete context just once
11079
NRF52840: enable TRNG in Nordic SDK config
11078
NRF52840: fix include path issues for ble pal cordio ll and gcc
11077
NRF52840: remove align instructions from gcc linker for ARM.extab exi
11069
add defines sectors for STM32F446ZE
11064
MCUXpresso: Fix the LPC GPIO IRQ driver
11062
Fix SAADC resolution for nRF52-based targets... again
11060
MCUXpresso: Update LPC spi driver
11059
GCC ARM: Increase develop and release debug level
11052
Update MCUXpresso AnalogIn driver for LPC devices
11049
Normalize line endings for IM880B startup files.
11042
Fixed serial_device IRQ infinite loop bug due to uint8_t overflowing in STM devices
11035
mbedtls: Update to Mbed TLS 2.18.1
11028
Fix FPGA CI Test Shield warnings
11026
Add a restricted peripheral list
11022
Fix watchdog tests failing with OOM
11015
Fix wrongly declared ADC pinout for EFM32GG11 STK3701A
11014
Increase ADC tolerance to 5% in FPGA-based tests
11010
FPGA SPI: ASYNC issue
11008
Enable FPGA-based SPI testing on Silicon Labs targets
11007
Fix PWM output on Silicon Labs targets for large pulsewidths
11005
FPGA PWM: wait 1 period before measurement
11004
FPGA I2C: correct init bloc number
11003
LPC MCUXpresso: Remove extra I2C transaction on byte write
10994
Add DEVICE_SERIAL_FC guards to serial HAL API
10963
PSA TESTS: Include mbedtls/config.h before evaluating MBEDTLS_PSA_CRYPTO_C
You can fetch this release from the mbed-os GitHub repository, using the tag "mbed-os-5.13.2".
If you need any help with this release please visit our support page, which provides reference links and details of our support channels.