-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adds building article Adds FLPR intro Signed-off-by: Anna Wojdylo <anna.wojdylo@nordicsemi.no>
- Loading branch information
Showing
3 changed files
with
141 additions
and
0 deletions.
There are no files selected for viewing
104 changes: 104 additions & 0 deletions
104
doc/nrf/app_dev/device_guides/nrf54l/building_nrf54l.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
.. _building_nrf54l: | ||
|
||
Building and programming with nRF54L15 DK | ||
######################################### | ||
|
||
This guide provides instructions on how to build and program the nRF54L15 development kit. | ||
Whether you are working with single or multi-image builds, the following sections will guide you through the necessary steps. | ||
|
||
Depending on the sample, you must program only the application core or both the FLPR and the application core. | ||
Additionally, the process will differ based on whether you are working with a single-image or multi-image build. | ||
|
||
Building for the application core | ||
********************************* | ||
|
||
For instructions on building for the application core only, see how to :ref:`program an application <programming_cmd>`. | ||
|
||
Building for the application and FLPR core | ||
****************************************** | ||
|
||
This section outlines how to build and program for both the application and FLPR cores, covering separate builds and sysbuild configurations. | ||
|
||
Separate images | ||
--------------- | ||
|
||
To build and program the application sample and the VPR sample as separate images, follow these steps: | ||
|
||
.. tabs:: | ||
|
||
.. group-tab:: west | ||
|
||
1. |open_terminal_window_with_environment| | ||
#. For the VPR core, erase the flash memory and program the VPR sample: | ||
|
||
.. Commands TBD | ||
.. code-block:: console | ||
west flash --erase | ||
#. For the application core, navigate to the build folder of the application sample and repeat the flash erase command: | ||
|
||
.. code-block:: console | ||
west flash --erase | ||
.. group-tab:: nRF Util | ||
|
||
1. |open_terminal_window_with_environment| | ||
#. For the VPR core, run the following command to erase the flash memory of the VPR core and program the sample: | ||
|
||
.. Commands TBD | ||
.. code-block:: console | ||
nrfutil device program --firmware zephyr.hex --options chip_erase_mode=ERASE_ALL --core Network | ||
.. note:: | ||
|
||
If you cannot locate the build folder of the VPR sample, look for a folder with one of these names inside the build folder of the application sample: | ||
|
||
* :file:`rpc_host` | ||
* :file:`hci_rpsmg` | ||
* :file:`802154_rpmsg` | ||
* :file:`multiprotocol_rpmsg` | ||
|
||
#. For the application core, navigate to its build folder and run: | ||
|
||
.. code-block:: console | ||
nrfutil device program --firmware zephyr.hex --options chip_erase_mode=ERASE_ALL | ||
.. note:: | ||
The application build folder will be in a sub-directory which is the name of the folder of the application | ||
|
||
#. Reset the development kit: | ||
|
||
.. code-block:: console | ||
nrfutil device reset --reset-kind=RESET_PIN | ||
See :ref:`readback_protection_error` if you encounter an error. | ||
|
||
With sysbuild | ||
------------- | ||
|
||
To build and program with sysbuild, complete the following steps: | ||
|
||
.. tabs:: | ||
|
||
.. group-tab:: Using VPR Launcher | ||
|
||
Instructions TBA | ||
|
||
.. code-block:: console | ||
# Example command TBD | ||
.. group-tab:: Using application that aupports multi-image builds | ||
|
||
Instructions TBA | ||
|
||
.. code-block:: console | ||
# Example command TBD |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
.. _vpr_flpr_nrf54l: | ||
|
||
Working with the FLPR core | ||
########################## | ||
|
||
The nRF54L15 SoC has a dedicated RISC-V CPU (VPR), a fast lightweight peripheral processor (FLPR) optimized for software-defined peripherals (SDP). | ||
This CPU currently supports the following peripherals: | ||
|
||
* GPIO | ||
* GPIOTE | ||
* GRTC | ||
* TWIM | ||
* UARTE | ||
* VPR | ||
|
||
Running FLPR | ||
************ | ||
|
||
FLPR can function as a generic core, operating under the full Zephyr kernel. | ||
In this configuration, building the FLPR target is similar the application core. | ||
However, the application core build must incorporate an overlay that enables the FLPR coprocessor. | ||
This ensures that the necessary code to initiate FLPR is integrated. | ||
|
||
Software Defined Peripherals | ||
---------------------------- | ||
|
||
VPR is optimized for implementing SDP. | ||
For more information, see <link tba> documentation page. | ||
|
||
Memory allocation | ||
***************** | ||
|
||
If a VPR CPU is running, it can lead to increased latency when accessing ``RAM_01``. | ||
Because of this, when FLPR is used in a project, you should utilize ``RAM_01`` to store only the VPR code, VPR data, and the application CPU's non-time-sensitive information. | ||
Conversely, you should use ``RAM_00`` to store data with strict access time requirements such as DMA buffers, and the application CPU data used in low-latency ISRs. |