Files
nrf5340_audio/doc/adapting_application.rst

83 lines
3.8 KiB
ReStructuredText

.. _nrf53_audio_app_adapting:
Adapting nRF5340 Audio applications for end products
####################################################
.. contents::
:local:
:depth: 2
This page describes the relevant configuration sources and lists the steps required for adapting the :ref:`nrf53_audio_app` to end products.
Board configuration sources
***************************
The nRF5340 Audio applications use the following files as board configuration sources:
* Devicetree Specification (DTS) files - These reflect the hardware configuration.
See :ref:`zephyr:dt-guide` for more information about the DTS data structure.
* Kconfig files - These reflect the hardware-related software configuration.
See :ref:`kconfig_tips_and_tricks` for information about how to configure them.
* Memory layout configuration files - These define the memory layout of the application.
You can see the :file:`zephyr/boards/nordic/nrf5340_audio_dk` directory as an example of how these files are structured.
For information about differences between DTS and Kconfig, see :ref:`zephyr:dt_vs_kconfig`.
For detailed instructions for adding Zephyr support to a custom board, see Zephyr's :ref:`zephyr:board_porting_guide`.
.. _nrf53_audio_app_porting_guide_app_configuration:
Application configuration sources
*********************************
The application configuration source file defines a set of options used by the given nRF5340 Audio application.
This is a :file:`.conf` file that modifies the default Kconfig values defined in the Kconfig files.
Only one :file:`.conf` file is included at a time.
The :file:`prj.conf` file is the default configuration file and it implements the debug application version.
For the release application version, you need to include the :file:`prj_release.conf` configuration file.
In the release application version no debug features should be enabled.
Each nRF5340 Audio application also uses its own :file:`Kconfig.default` file to change configuration defaults automatically.
You need to edit :file:`prj.conf` and :file:`prj_release.conf` if you want to add new functionalities to your application, but editing these files when adding a new board is not required.
.. _nrf53_audio_app_porting_guide_adding_board:
Adding a new board
******************
.. note::
The first three steps of the configuration procedure are identical to the steps described in Zephyr's :ref:`zephyr:board_porting_guide`.
To use the nRF5340 Audio application with your custom board:
1. Define the board files for your custom board:
a. Create a new directory in the :file:`nrf/boards/<vendor>/` directory with the name of the new board.
#. Copy the nRF5340 Audio board files from the :file:`nrf5340_audio_dk` directory located in the :file:`zephyr/boards/nordic/` folder to the newly created directory.
#. Edit the DTS files to make sure they match the hardware configuration.
Pay attention to the following elements:
* Pins that are used.
* Interrupt priority that might be different.
#. Edit the board's Kconfig files to make sure they match the required system configuration.
For example, disable the drivers that will not be used by your device.
#. Build the application by selecting the name of the new board (for example, ``new_audio_board_name``) in your build system.
For example, when building from the command line, add ``-b new_audio_board_name`` to your build command.
FOTA for end products
*********************
Do not use the default MCUboot key for end products.
See :ref:`ug_fw_update` and :ref:`west-sign` for more information.
To create your own app that supports DFU, you can use the `nRF Connect Device Manager`_ libraries for Android and iOS.
Changing default values
***********************
Given the requirements for the Coordinated Set Identification Service (CSIS), make sure to change the Set Identity Resolving Key (SIRK) value when adapting the application.