About the nRF Connect SDK¶
The nRF Connect SDK enables you to develop applications for nRF52, nRF53, and nRF91 Series devices. It is a set of open source projects maintained by Nordic Semiconductor, consisting of several repositories such as:
sdk-nrf repository - contains applications, samples, libraries, and drivers that are specifically targeted at Nordic Semiconductor devices.
sdk-nrfxlib repository - contains closed-source libraries and modules in binary format. See the nrfxlib documentation.
sdk-mcuboot repository - contains a fork of the MCUboot project, which provides a secure bootloader application. You can find the fork in
bootloader/mcuboot
after obtaining the nRF Connect SDK source code. See the documentation in Nordic Semiconductor’s MCUboot fork.sdk-zephyr repository - contains a fork of the Zephyr project, which provides samples, libraries, and drivers for a wide variety of devices, including Nordic Semiconductor devices. See the documentation in Nordic Semiconductor’s Zephyr fork.
The main repository is sdk-nrf
.
It contains the SDK manifest file that enables you to manage the repositories as one code base with the west tool.
Documentation structure¶
The documentation consists of several inter-linked documentation sets, one for each repository. You can switch between these documentation sets by using the selector in the bottom-left corner of each documentation page.
The entry point is the nRF Connect SDK documentation that you are currently reading. The local Zephyr documentation is a slightly extended version of the official Zephyr Project documentation, containing some Nordic Semiconductor specific additions. The local MCUboot documentation is a slightly extended version of the official MCUboot documentation, containing some Nordic Semiconductor specific additions.
The nRF Connect SDK documentation contains all information that is specific to the nRF Connect SDK and describes our libraries, samples, and applications. API documentation is extracted from the source code and included with the library documentation.
For instructions about building the documentation locally, see Building the nRF Connect SDK documentation. For more information about the documentation conventions and templates, see About this documentation.
Tools and configuration¶
The figure below visualizes the tools and configuration methods in the nRF Connect SDK. They are based on the Zephyr project. All of them have a role in the creation of an application, from configuring the libraries or applications to building them.
Configuration System (Kconfig) generates definitions that configure libraries and subsystems.
Devicetree describes the hardware.
CMake generates build files based on the provided
CMakeLists.txt
files, which use information from Kconfig and devicetree. See the CMake documentation.Ninja (comparable to make) uses the build files to build the program, see the Ninja documentation.
The GCC compiler creates the executables.
West¶
The Zephyr project includes a tool called west that enables you to manage multiple repositories. When developing in the nRF Connect SDK, your application will use libraries and features from folders that are cloned from different repositories or projects. The west tool keeps control of which commits to use from the different projects. It also makes it fairly simple to add and remove modules.
A west workspace contains one manifest repository and multiple projects, where the manifest repository controls which commits to use from the different projects. For more information, see the West (Zephyr’s meta-tool) user guide.
See Getting started for information about how to install the nRF Connect SDK and about the first steps.