nRF5 SDK v15.2.0
------------------------
Release Date: Week 37, 2018
This SDK release is an update replacing the non-published nRF5 SDK release v15.1.0.
The main updates compared to v15.1.0 are summarized in the last three points of the Highlights section.
Highlights:
- Added support for the new SoftDevices S140, S132, and S112 v6.1.0.
- Added new targets for running S112 on nRF52832 (PCA10040).
- Updated ESB library to support all nRF52 devices (nRF52810, nRF52832 (Rev.1 & Rev.2), and nRF52840).
- Updated SDFU to include nRF52810 target (PCA10040E).
- Released nrf_log in production quality.
- Removed the workaround in nrf_sdh.c overriding the default priority level on SWI interrupt SD_EVT_IRQn and RADIO_NOTIFICATION_IRQn used by the SoftDevice.
- Changed the default interrupt priority level for the peripherals from 7 to 6. This is done to be aligned with the priority of the SWI coming from the SoftDevice.
- Fixed an interoperability issue with some Windows 10 versions when bonded and using directed advertising.
Note: Due to compatibility issues, you must run the upgrade using nRF Connect Desktop v2.5.0 or later when testing the Bluetooth examples in nRF5 SDK v15.2.0.
The following toolchains/devices have been used for testing and verification:
- ARM: MDK-ARM version 5.18a
- GCC: GCC ARM Embedded 6.3 2017-q2-update
- IAR: IAR Workbench 7.80.4 (IAR 8 - see note below)
- SES: SES 3.40
*****
Note for IAR 8 users:
(Libraries for IAR 8 require wchar_t to be of size 32 bits while IAR 7 requires 16 bits).
To run a project using IAR 8, follow these intructions:
- Open the IAR project in IAR 8. The IAR workbench will automatically generate an IAR 8 compatible project file.
- If the project contains one of the precompiled libraries listed below, replace it with the IAR 8 compatible alternative
(there are no projects targeting nRF51 in this SDK).
- Save the project.
- When building the project, you might get the warning: "The header file 'cmsis_iar.h' is obsolete and should not be used. [...]".
- The problem is described in DevZone post: https://devzone.nordicsemi.com/f/nordic-q-a/31123/iar-ewarm-8-22-1-complains-about-cmsis_iar-h
The solution is to remove all occurrences of #include <cmsis_iar.h>.
The affected libraries are:
- micro-ecc crypto:
- IAR7: Includes library located in the folder named “…_iar\…”.
- IAR8: Switch to using the library from the folder named “…_armgcc\…”.
- nrf_cc310, nrf_cc310_bl, and nrf_oberon:
- IAR7: Includes the library where “_short_wchar_” is part of the file name.
- IAR8: Switch to using the library with similar naming, but where the “short_wchar” is removed.
- Gazell, NFC Tag, and 802.15.4:
- IAR7: Includes the library where the file name ends with “_iar”.
- IAR8: Switch to using the library with similar file name that ends with “_gcc”.
*****
Supported SoftDevices:
- S112 v6.1.x
- S132 v6.1.x
- S140 v6.1.x
- S212 v5.0.x
Supported boards:
- PCA10040
- PCA10040E (nRF52810 emulation on PCA10040)
- PCA10056
- PCA10059 (support in selected examples)
- D52DK1 from Garmin Canada (only for ANT examples)
For other devices and boards, see the SDK documentation, section "Using
the SDK with other boards".
*** New features
*****************
** BLE **
- Added new targets to demonstrate the use of S112 on nRF52832 (PCA10040).
- Added "Property Read" for the Object Transfer Service client (ble_app_ots_c).
- Added a Scanning Module to simplify scanning for BLE devices in central role.
- Peer Manager:
- peer_manager_handler.h: There are now standard event handlers available to users of the Peer Manager.
The event handlers provide features like logging, automatically securing the link, and automatically
deleting the oldest bond if the flash is full.
- PM_RA_PROTECTION_ENABLED: The Peer Manager can now be configured to reject repeated security requests
from peers that failed pairing.
- PM_LESC_ENABLED: Improved LESC support.
- PM_LOG_ENABLED: Added error and warning level logging messages to the Peer Manager.
- PM_EVT_FLASH_GARBAGE_COLLECTION_FAILED: Added new event.
- PM_PEER_DATA_ID_CENTRAL_ADDR_RES: Added automatic storing of the peer's Central Address Resolution value during bonding.
- pm_peer_id_list(): Added a new function for creating lists of Peer IDs, including some filtering.
- Added LESC support to the following examples: ble_app_hrs, ble_app_hrs_c, and ble_app_gls.
- Added support for nRF52840 (PCA10056) in the beacon example (ble_app_beacon).
- Added Swift Pair support to the HID mouse example (ble_app_hids_mouse).
- Battery Service: Added the possibility to notify a reconnected, bonded peer of an updated battery level.
This feature is demonstrated in the Immediate Alert Server example.
** Crypto **
- EdDSA: Added support for Edwards-curve Digital Signature Algorithm (Ed25519).
- In documentation, added a table showing supported nrf_crypto backends for different examples:
http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v15.2.0/nrf_crypto_default_backends.html
** DFU/Bootloader **
- Added a new target to the SDFU example to demonstrate SDFU running on nRF52810 (PCA10040E). In a single bank update, there is only
about 60 kB of flash available. This restricts what can be updated.
- The bootloader settings page is now backed up before being updated. This increases protection from corruption caused by chance events
(for example, power failure) and malicious apps.
- The advertising interval of BLE DFU can now be configured in sdk_config (NRF_DFU_BLE_ADV_INTERVAL).
- The size of the application data area that is left alone by the bootloader can now be configured
in sdk_config (NRF_DFU_APP_DATA_AREA_SIZE).
- The bootloader code now supports most of nrf_crypto backends. However, the size of the binary will likely be too large if other backends
are used, so you will need to accomodate by increasing the size of the bootloader.
** USB **
- Added response/no response to an IN token on ISO IN endpoint with a ZLP when no data is ready. This can be set with USBD_CONFIG_ISO_IN_ZLP.
- Added support for configuration string ID.
- Added an option to give priority to isochronous transfers using USBD_CONFIG_DMASCHEDULER_ISO_BOOST.
- Implemented SOF event callback in interrupt for classes.
- Added an enum and get function for a selected protocol (boot or report) in HID. Implemented a SET_PROTOCOL propagation mechanism using
on_set_protocol methods. Buffers can now be cleared after the SET_PROTOCOL command using clear_buffer methods.
- Redesigned the idle report mechanism in HID. It now allows a callback function and handles multiple report IDs.
- Added an option to send a ZLP on write with the same size as the endpoint in CDC ACM class using APP_USBD_CDC_ACM_ZLP_ON_EPSIZE_WRITE.
- Implemented macros to set interval for individual endpoints. See APP_USBD_EP_WITH_INTERVAL.
- Transfers in Audio class can now be started in SOF interrupt set in the app_usbd_audio_sof_interrupt_register function.
*** Changes
************
** BLE **
- Increased the length of the advertising name for the Running Speed and Cadence sensor example (ble_app_rscs) to make it easy to verify
that it is using the extended advertising.
- Included the Scanning module into all BLE examples. This aligns how scanning is performed in these examples.
- Updated the NFC pairing examples (ble_app_hids_keyboard_pairing_nfc, ble_app_hrs_nfc_pairing, ble_nfc_pairing_reference) to start using
the LESC functionality in the Peer Manager (which uses the nrf_ble_lesc module).
- Removed the manual handling of credits for the Object Transfer Service (ble_app_ots and ble_app_ots_c). Most use cases now work
评论1