The following source files have been added in this release:
The following source files have been removed in this release:
models/config
to models/foundation/config
models/health
to models/foundation/health
models/model_spec/common
models/model_spec/generic_dtt
models/model_spec/generic_level
models/model_spec/generic_onoff
models/simple_on_off
to models/vendor/simple_on_off
models/pb_remote
to models/experimental/pb_remote
light_switch
examples and enocean
example have been updated to use Generic OnOff models.SIMPLE_ON_OFF_CLIENT_ACKED_TRANSACTION_TIMEOUT
macro definition added.PB_REMOTE_CLIENT_ACKED_TRANSACTION_TIMEOUT
macro definition added.PB_REMOTE_SERVER_ACKED_TRANSACTION_TIMEOUT
macro definition added.HEALTH_CLIENT_ACKED_TRANSACTION_TIMEOUT
macro definition added.CONFIG_CLIENT_ACKED_TRANSACTION_TIMEOUT
macro definition added.As of v2.2.0, the nRF5 SDK for Mesh makes use of the nRF5 SDK's section variable module Section variables.
The required changes for supporting section variables are already in place in the example applications, but any user applications carried over from the previous release might require modifications to work correctly, depending on the toolchain used:
The Segger Embedded Studio projects base their section placement on the bundled flash_placement.xml
file. The example projects in version 2.2.0 contain updated flash_placement files. If you did not do any modifications to this file in your migrated project, you can safely replace the existing flash_placement file with the one in CMake/SES/flash_placement.xml.
If you modified the file, perform the migration manually by adding the following ProgramSection to the FLASH
MemorySegment:
and the following ProgramSection to the RAM
MemorySegment:
Restart Segger Embedded Studio after saving your changes and clean the solution before rebuilding (Build->Clean Solution).
When building with GCC, the section variables must be registered in the application's linker script so that they end up in the right memory area.
All section variables used by mesh go into two new memory sections (one in RAM and one in flash). These memory sections must be added to the linker script.
The nrf_mesh_ram
-section must be added to the sections marked with INSERT AFTER .data
:
The nrf_mesh_flash
-section must be added to the sections marked with INSERT AFTER .text
:
When building with ARMCC, no further action is required.
The mesh runtime options API (Mesh options) has been deprecated in favor of Mesh options API. The new API uses the new mesh_config module to store options persistently, so once set, the options do not have to be reset for the lifetime of the device.
The following options have been migrated to the new API:
Old option | New option |
---|---|
NRF_MESH_OPT_PROV_ECDH_OFFLOADING | mesh_opt_prov_ecdh_offloading_set |
NRF_MESH_OPT_NET_RELAY_ENABLE | mesh_opt_core_adv_set |
NRF_MESH_OPT_NET_RELAY_RETRANSMIT_COUNT | mesh_opt_core_adv_set |
NRF_MESH_OPT_NET_RELAY_RETRANSMIT_INTERVAL_MS | mesh_opt_core_adv_set |
NRF_MESH_OPT_NET_RELAY_TX_POWER | mesh_opt_core_tx_power_set |
NRF_MESH_OPT_NET_NETWORK_TRANSMIT_COUNT | mesh_opt_core_adv_set |
NRF_MESH_OPT_NET_NETWORK_TRANSMIT_INTERVAL_MS | mesh_opt_core_adv_set |
NRF_MESH_OPT_NET_NETWORK_TX_POWER | mesh_opt_core_tx_power_set |
Note that the transport-layer options are still only present on the old nrf_mesh_opt API. They will be migrated in the next release.