nRF5 SDK v17.1.0
------------------------
Release Date: August, 2021
Highlights:
- Added support for the new versions of the nRF52 devices:
- nRF52820 revision 3
- nRF52832 revision 3
- nRF52833 revision 2
- nRF52840 revision 3
(Note: Programming these requires nrfjprog v10.13 or newer.)
- Updated nrf_oberon to v3.0.8.
- Updated Mbed TLS to v2.16.10.
The following toolchains/devices have been used for testing and verification:
- ARM: MDK-ARM version 5.25
- GCC: GCC ARM Embedded 9.2020-q2.major
- IAR: IAR Workbench 7.80.4
- SES: SES 5.42a
*****
Note for SEGGER Embedded Studio (SES) users:
Compatibility of SES projects:
Updates and fixes in the MDK used by SES break backwards compatibility
with old SES project files.
To use old projects in combination with this version of the SDK (MDK),
make the following updates:
1. In the flash_placement.xml file:
MemorySegment name must be changed from "RAM" to "RAM1":
<MemorySegment name="RAM1" start="$(RAM_PH_START)" size="$(RAM_PH_SIZE)">
2. In the .emProject file:
In "linker_section_placements_segments" you must refer to "RAM1", replacing "RAM":
linker_section_placements_segments="FLASH RX 0x0 0x100000;RAM1 RWX 0x20000000 0x40000"
------------------
Observation of unaligned memory layout:
Certain SES projects that use section variables have been observed
to create memory sections that do not end on a word-aligned address.
This has caused issues when the hex file has been processed by a hex file utility tool
like mergehex.exe, which can produce a corrupted hex file.
The issue has been fixed in the SES section-placement file (flash_placement.xml)
by setting the memory section size attribute to 4.
*****
Note for IAR 8 users:
When using IAR 8, you must apply the following workaround in the MDK:
- Apply a patch to modules/nrfx/mdk/compiler_abstraction.h at line 140
(fix the '__ALIGN()' macro definition): use the argument 'n' in the macro expansion instead of 'x'.
-------------------
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 instructions:
1. Open the IAR project in IAR 8. The IAR workbench will automatically generate an IAR 8 compatible project file.
2. 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).
3. Save the project.
4. 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: Link to a library where “short_wchar” is part of the folder name.
- IAR8: Link to a library without “short_wchar” in the folder name.
- 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 v7.2.x
- S113 v7.2.x
- S122 v8.x.x
- S132 v7.2.x
- S140 v7.2.x
- S212 v6.1.x
- S312 v6.1.x
- S332 v6.1.x
- S340 v6.1.x
Supported boards:
- PCA10040
- PCA10040E (nRF52810 emulation on PCA10040)
- PCA10056
- PCA10056E (nRF52811 emulation on PCA10056)
- PCA10100 (support in selected examples)
- PCA10100E (nRF52820 emulation on PCA10100)
- PCA10059 (support in selected examples)
- D52DK1 from Garmin Canada (only for ANT examples)
- PCA10112 (nRF52840 with the nRF2140 front-end chip)
For other devices and boards, see the SDK documentation, section "Using
the SDK with other boards".
*** New features
*****************
** Drivers and libraries **
- nrfx has been updated to version 1.9.0.
For details, see .\modules\nrfx\changelog.md.
** Crypto **
- Updated nrf_oberon from v3.0.6 to v3.0.8 with the following new features:
- Added support for SHA-224 and SHA-384.
- Added support for the p224 curve for ECDH and ECDSA.
- Added support for HMAC-SHA256 with AAD.
- Added support for ChaChaPoly.
- See Mbed TLS release notes for details.
*** Changes
***********
** Drivers and libraries **
- NRFFOETT-1832: Reduced radio noise in the Radio Test example
by moving CPU to idle state in the main loop.
** Bluetooth Low Energy **
- NRFFOSDK-13484: Added an option in the Peer Manager to decide
that a connection will not be processed by this module.
- NRFFOSDK-13611: GATT Module: automatic MTU negotiation is now optional.
** Bluetooth Low Energy examples **
- NRFFOSDK-13616: Updated handling of bonding events to be more sceptical of failed bonding/encryption
attempts, since they can be the sign of an attack.
** Direct Test Mode **
- NRFFOSDK-13580: Redesigned the Direct Test Mode library to run in the interrupt context.
** NFC **
- Added support for encoding empty NDEF records.
- NRFFOSDK-13614: Added Frame Waiting Time (FWT) management logic to the NFC T4T library.
FWT is now changed according to the ISO-DEP timing requirements (e.g. WTX frame).
- NRFFOSDK-13627: Changed the behavior of the nfc_t4t_done() function so that
it uninitializes the NFCT driver to achieve symmetry with the nfc_t4t_setup() function,
where the driver is initialized.
*** Bug fixes
****************
** Drivers and libraries **
- NRFFOSDK-13607: Reduced the Radio IRQ priority in the Radio Test example
when nRF21540 support is enabled, to avoid potential deadlock.
- NRFFOETT-2532: nrf_ringbuf - prevented data from being overwritten.
- NRFFOETT-2608: BSP - fixed port mapping for nRF52866 / PCA-10100.
- NRFFOETT-2557: app_timer2 - fixed the library to allow it to be started and stopped from higher interrupt priority.
** DFU / Bootloader **
- NRFFOETT-2068: Updated to allow GPREGET to be used outside of the bootloader.
- NRFFOETT-2510: Fixed a misinterpretation of bit field in GPREGET.
** Bluetooth Low Energy **
- NRFFOETT-2521: Removed the Address Type checking in the Scanning Module.
- NRFFOSDK-13616: Fixed bond deletion mechanism in the Bond Management Service
in a scenario with multiple connections.
** Peer Manager **
- NRFFOETT-2519: The local db data will not be written to flash if it is already up to date.
This means that if a client updates a CCCD to the same value as before,
no flash operation will happen.
- NRFFOSDK-13591: Added a mitigation mechanism to address a security vulnerability
in the Bluetooth Core spec: CVE-2020-26558
** FDS **
- Fixed a bug that would prevent re-initialization when fds_init() returned
FDS_ERR_NO_PAGES or FDS_ERR_NO_SWAP (NRFFOETT-2552).
- Fixed a bug in FDS that could occur if the device lost power during garbage collection,
that would result in the swap page being incorrectly tagged, and fds_init() returning
FDS_ERR_NO_SWAP on initialization (NRFFOETT-2506).
** DTM **
- NRFFOSDK-13481: Added missing support of 256kByte for nRF52832.
- NRFFOETT-2537: Added missing +8dBm output power.
- NRFFOETT-2573: Fixed a bug with payload length > 63 bytes.
** ANT **
- NRFFOSDK-13460: Fixed ANT File Sharing Client module to allow using channel numbers other than 0.
Previously, using such channel numbers would cause misbehavior of this module.
** NFC **
- NRFFOSDK-13691: Fixed a potential race condition in the Type 4 Tag library
in case of coexistence with
评论0