Skip to content

Commit 9e9ae0d

Browse files
committed
doc: Bare Metal 1.0.0 doc release updates
Typical updates related to release plus late changes. Signed-off-by: Bartosz Gentkowski <bartosz.gentkowski@nordicsemi.no>
1 parent 6ea1f82 commit 9e9ae0d

11 files changed

Lines changed: 612 additions & 372 deletions

File tree

doc/nrf-bm/doxygen/mainpage.dox

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
@mainpage nRF Connect SDK Bare Metal option 1.0.0-rc2 API documentation
2+
@mainpage nRF Connect SDK Bare Metal option v1.0.0 API documentation
33

44
<a href="topics.html">API Reference</a>
55

doc/nrf-bm/drivers.rst

Lines changed: 5 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -11,45 +11,18 @@ This will mostly be more higher-level drivers and should be seen as a supplement
1111
Only the drivers located under :file:`nrf-bm/drivers` and the ones provided in nrfx are in the scope of the |BMshort|.
1212
All other drivers that are included in the distribution must be ignored when working with the Bare Metal option.
1313

14-
Pre-allocated resources
15-
***********************
16-
17-
Some peripherals will be pre-allocated by the system and must not be accessed directly by the application.
14+
Some peripherals are pre-allocated by the system and must not be accessed directly by the application.
1815

1916
By default, |BMshort| initializes a system timer that is used by both the :ref:`lib_bm_timer` and logging timestamp.
20-
This will allocate ``GRTC`` channel ``0`` and ``GRTC_2_IRQn``.
17+
This allocates the ``GRTC`` channel ``0`` and ``GRTC_2_IRQn``.
2118
The initialization starts ``GRTC`` and enables ``SYSCOUNTER``, as required by the SoftDevice.
2219

23-
When SoftDevice is enabled, it takes the ownership of the peripherals that it needs.
20+
When the SoftDevice is enabled, it takes the ownership of the peripherals that it needs.
2421
They will not be available for application to use.
25-
The SoftDevice is reusing both the `SoftDevice Controller`_ and the `Multiprotocol Service Layer`_ from the nRF Connect SDK.
22+
The SoftDevice is reusing both the `SoftDevice Controller`_ and the `Multiprotocol Service Layer`_ from the |NCS|.
2623
See the Integration Notes documentation for these libraries to get an overview of the resource it will be using.
2724

28-
For details on SoftDevice behavior, see the `S115 SoftDevice Specification`_.
29-
30-
nrfx
31-
****
32-
33-
The |BMshort| is set up to use nrfx that comes with the nRF Connect SDK.
34-
35-
In |BMshort|, it is expected that the application uses either the nrfx driver or, if needed, interacts directly with the peripheral register interface (nrf hal).
36-
37-
To learn more, see the `nrfx documentation`_ that is distributed as separate bundle.
38-
The nrfx source code is located in :file:`../modules/hal/nordic/nrfx`.
39-
40-
.. note::
41-
42-
The CMake in Bare Metal option is already set up to include the source code from nrfx.
43-
44-
To include and start using the nrfx driver:
45-
46-
* Include the interface file, like :file:`#include <nrfx_spim.h>` for the SPI Master driver.
47-
* Start adding code in your application to set up, initialize and start using the driver.
48-
49-
To start interacting directly with a peripheral through the register interface:
50-
51-
* Include the interface file, like :file:`#include <hal/nrf_gpio.h>` for GPIO.
52-
* Start adding code interacting with the register interface (:file:`nrf_gpio_pin_write(….)` ).
25+
For details on the SoftDevice behavior, see the `S115 SoftDevice Specification`_.
5326

5427
.. toctree::
5528
:maxdepth: 1

doc/nrf-bm/drivers/bm_nrfx.rst

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
.. _driver_nrfx:
2+
3+
nrfx
4+
####
5+
6+
The |BMshort| is set up to use nrfx that comes with the |NCS|.
7+
8+
In |BMshort|, it is expected that the application uses either the nrfx driver or, if needed, interacts directly with the peripheral register interface (nrf hal).
9+
10+
To learn more, see the `nrfx documentation`_ that is distributed as a separate bundle.
11+
The nrfx source code is located in :file:`../modules/hal/nordic/nrfx`.
12+
13+
.. note::
14+
15+
The CMake in |BMshort| is already set up to include the source code from nrfx.
16+
17+
To include and start using the nrfx driver:
18+
19+
* Include the interface file, like :file:`#include <nrfx_spim.h>` for the SPI Master driver.
20+
* Start adding code in your application to set up, initialize, and start using the driver.
21+
22+
To start interacting directly with a peripheral through the register interface:
23+
24+
* Include the interface file, like :file:`#include <hal/nrf_gpio.h>` for GPIO.
25+
* Start adding code interacting with the register interface (:file:`nrf_gpio_pin_write(….)`).

doc/nrf-bm/install_nrf_bm.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ Every |BMlong| release consists of:
7373

7474
#. In the next page you will be prompted to **Select SDK type**, click :guilabel:`nRF Connect SDK Bare Metal`.
7575

76-
#. In the next page you will be prompted to **Select an SDK version (or enter the branch, tag or commit SHA) to install...**, click :guilabel:`v0.9.0` marked on the right by the label :guilabel:`Pre-packaged SDKs & Toolchains`.
76+
#. In the next page you will be prompted to **Select an SDK version (or enter the branch, tag or commit SHA) to install...**, click :guilabel:`v1.0.0` marked on the right by the label :guilabel:`Pre-packaged SDKs & Toolchains`.
7777

7878
#. In the next page you will be prompted to select a destination for the SDK. The default suggestion is recommended. Then press **Enter**.
7979
This will proceed by installing |BMshort| and the respective Toolchain it requires.
@@ -119,7 +119,7 @@ Every |BMlong| release consists of:
119119

120120
#. In the next page you will be prompted to **Select SDK type**, click :guilabel:`nRF Connect SDK Bare Metal`.
121121

122-
#. In the next page you will be prompted to **Select an SDK version (or enter the branch, tag or commit SHA) to install...**, click :guilabel:`v0.9.0` marked on the right by the label :guilabel:`GitHub`.
122+
#. In the next page you will be prompted to **Select an SDK version (or enter the branch, tag or commit SHA) to install...**, click :guilabel:`v1.0.0` marked on the right by the label :guilabel:`GitHub`.
123123

124124
#. In the next page you will be prompted to select a destination for the SDK. The default suggestion is recommended. Then press **Enter**.
125125
This will proceed by installing |BMshort|.

doc/nrf-bm/links.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
.. ### Source: docs.nordicsemi
1414

1515
.. _`nRF54L15 DK`: https://docs.nordicsemi.com/bundle/ncs-latest/page/zephyr/boards/nordic/nrf54l15dk/doc/index.html#nrf54l15dk-nrf54l15
16+
.. _`nRF54L15 DK v1.0.0`: https://docs.nordicsemi.com/bundle/comp_matrix_nrf54l15/page/COMP/nrf54l15/nrf54l15_ic_rev_comp_with_dev_hw.html
1617
.. _`nRF54L15 DK v0.9.3`: https://docs.nordicsemi.com/bundle/comp_matrix_nrf54l15/page/COMP/nrf54l15/nrf54l15_ic_rev_comp_with_dev_hw.html
18+
.. _`v3.2.0 software maturity levels`: https://docs.nordicsemi.com/bundle/ncs-3.2.0/page/nrf/releases_and_maturity/software_maturity.html
1719

1820
.. ### Installation
1921

@@ -89,7 +91,8 @@
8991

9092
.. ### Release notes and migration
9193

92-
.. _`nrfx migration guides`: https://github.com/NordicSemiconductor/nrfx/wiki/nrfx-2.11.0-to-3.0.0
94+
.. _`nrfx 3.0 migration guide`: https://github.com/NordicSemiconductor/nrfx/wiki/nrfx-2.11.0-to-3.0.0
95+
.. _`nrfx 4.0 migration guide`: https://github.com/NordicSemiconductor/nrfx/wiki/nrfx-3.14.0-to-4.0.0
9396
.. _`Migration notes - nRF5 SDK to nRF Connect SDK Bare Metal option`: https://docs.nordicsemi.com/bundle/nrf-bm-latest/page/migration/nrf5_bm_migration.html
9497
.. _`S115 9.0.0-3.prototype API reference`: https://docs.nordicsemi.com/bundle/s115_9.0.0-3.prototype_api/page/topics.html
9598
.. _`nRF5 SDK DFU memory layout`: https://docs.nordicsemi.com/bundle/sdk_nrf5_v17.1.0/page/lib_bootloader.html

doc/nrf-bm/migration/nrf5_bm_migration.rst

Lines changed: 43 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -120,15 +120,19 @@ The Bluetooth LE services currently offered in |BMshort| are the following:
120120

121121
* Peripheral services:
122122

123+
* Battery (peripheral)
124+
* Bond Management (peripheral, experimental)
125+
* Continuous Glucose Monitor (peripheral, experimental)
126+
* Device Information (peripheral)
123127
* Heart Rate Monitor (peripheral)
128+
* Human Interface Device (peripheral)
129+
* MCUmgr (peripheral)
124130
* Nordic UART (NUS) (peripheral)
125131
* Nordic LED Button (LBS) (peripheral)
126-
* Continuous Glucose Monitor (peripheral)
127-
* Battery (peripheral)
128132

129-
* MCUMgr service (DFU service)
130-
* Bond Management
131-
* Device Information
133+
* Central services:
134+
135+
* Heart Rate Service (central, experimental)
132136

133137
Utility libraries for Bluetooth LE are available in |BMshort|, though their collection may not be as complete, and their functionality and API may be slightly different than their respective nRF5 implementation.
134138

@@ -153,10 +157,10 @@ See table below for a summary of supported libraries.
153157
-
154158
-
155159
* - ``ble_db_discovery``
156-
- No
157-
-
158160
- Yes
159161
-
162+
-
163+
- Experimental
160164
* - ``ble_conn_params``
161165
- Yes
162166
- Name unchanged
@@ -198,19 +202,19 @@ See table below for a summary of supported libraries.
198202
-
199203
-
200204
* - ``nrf_ble_scan``
201-
- No
202-
-
203205
- Yes
206+
- ``ble_scan``
204207
-
208+
- Experimental
205209
* - ``ble_link_ctx_manager``
206210
- No
207211
-
208212
- No
209213
- Functionality implemented manually where needed
210214
* - ``ble_radio_notification``
211-
- No
212-
-
213215
- Yes
216+
- Name unchanged
217+
-
214218
-
215219
* - ``peer_manager``
216220
- Yes
@@ -222,7 +226,7 @@ SoftDevice integration
222226
**********************
223227

224228
The SoftDevice, serving as a Bluetooth Low Energy protocol stack, maintains a consistent API from the nRF5 SDK to the |BMshort| environment.
225-
For instance, the API functionalities in SoftDevice S115 are comparable to those in S113.
229+
For instance, the API functionalities in SoftDevice S115 and S145 are comparable to those in S113 and S140, respectively.
226230

227231
However, notable changes have occurred in how the SoftDevice is integrated within the system.
228232

@@ -240,7 +244,7 @@ Interrupt Handling
240244
The responsibility for interrupt handling has shifted in |BMshort| - the application must now manage interrupts and forward them to the SoftDevice as needed.
241245

242246
It is important to note that while the API remains compatible, the SoftDevices themselves are not binary-compatible between the two environments.
243-
SoftDevices from the nRF5 SDK cannot be reused in |BMshort|, and similarly, the S115 SoftDevice is not compatible with the nRF5 SDK.
247+
SoftDevices from the nRF5 SDK cannot be reused in |BMshort|, and similarly, the S115 and S145 SoftDevices are not compatible with the nRF5 SDK.
244248

245249
Other libraries
246250
***************
@@ -255,6 +259,30 @@ This is due to several factors, including:
255259
* Different project configuration mechanism, inherently affecting how libraries are configured.
256260
* Different coding standard in the |NCS| (for example, limited use of ``typedef``).
257261

262+
Error codes
263+
***********
264+
265+
nRF5 mainly used the unsigned nRF errors defined in ``nrf_error.h`` for error handling, with ``NRF_SUCCESS`` for successful operations and errors such as ``NRF_ERROR_NO_MEM`` and ``NRF_ERROR_FORBIDDEN``.
266+
In addition to the generic nRF errors, the nRF5 also used BLE SoftDevice errors defined in ``nrf_error_soc.h`` and ``nrf_error_sdm.h``, and the errors from the nrfx header within the same error scope, but with a diffeent base offset.
267+
268+
|BMshort| uses the nRF errors for BLE related libraries and services, including the SoftDevice APIs.
269+
For other libraries and drivers, including nRFX, the signed ``errno`` error space is used.
270+
Defined as a signed integer (``int``) with ``0`` reprecenting a successful operation and errors returned as negative values, e.g. ``-ENOMEM`` and ``-EPERM``.
271+
272+
In |BMshort| the return type of a function can be a good indication of the error space used, together with the header location:
273+
274+
* If the header resides within a ``bluetooth`` folder it is likely using the nRF error space.
275+
Else it is using the ``errno`` error space.
276+
* If the return type is ``uint32_t`` it is likely using the nRF error space.
277+
If the return type is ``int`` it is likely using the ``errno`` error space.
278+
* For return values using the nRF error space, the variable is typically named ``nrf_error``.
279+
If the variable used to store the return variable is named ``err``, ``retval`` or ``ret`` it is more likely to use the ``errno`` error space.
280+
281+
.. note::
282+
283+
In |BMshort| ``NRF_SUCCESS`` is defined as ``0``.
284+
You will therefore find checks such as ``if (nrf_error)`` in the code, though the generic solution would be ``if (nrf_error != NRF_SUCCESS)``.
285+
258286
.. _nrf5_bm_migration_dfu:
259287

260288
DFU
@@ -313,4 +341,5 @@ The desktop and mobile tools available for the |NCS| are also compatible with th
313341
Drivers
314342
*******
315343

316-
For migration of nrfx drivers, see `nrfx migration guides`_.
344+
For migration of nrfx drivers, see the `nrfx 3.0 migration guide`_ and the `nrfx 4.0 migration guide`_.
345+
|BMshort| is using nRFX 4.0, though details from `nrfx 3.0 migration guide`_ might be required when migrating from nRF5.

doc/nrf-bm/release_notes.rst

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
.. _release_notes_bm:
22

3-
Release notes
4-
#############
3+
Releases and maturity
4+
#####################
55

66
The following is a list of all release notes documents for various releases of the |BMlong|.
77

88
.. toctree::
99
:maxdepth: 1
1010
:caption: Subpages:
1111

12-
release_notes/release_notes_changelog
12+
release_notes/bm_software_maturity
13+
release_notes/release_notes_1.0.0
1314
release_notes/release_notes_0.9.0
1415
release_notes/release_notes_0.8.0
1516
release_notes/release_notes_0.7.0
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
.. _bm_software_maturity:
2+
3+
Software maturity levels
4+
########################
5+
6+
.. contents::
7+
:local:
8+
:depth: 2
9+
10+
This release of |BMlong| is based on |NCS| |ncs_release|.
11+
12+
Refer to `v3.2.0 software maturity levels`_ for the detailed description of software maturity categories and levels in this release of |BMshort|.
13+
14+
.. note::
15+
16+
Keep in mind that |Bmshort| offers a subset of the features included in |NCS|.

0 commit comments

Comments
 (0)