Fix for x86_64 build fail
[platform/upstream/connectedhomeip.git] / docs / guides / nrfconnect_platform_overview.md
1 # nRF Connect platform overview
2
3 The nRF Connect platform is a
4 [CHIP](https://github.com/project-chip/connectedhomeip) platform that uses
5 Nordic Semiconductor's nRF Connect SDK.
6
7 <p align="center">
8   <img src="../../examples/platform/nrfconnect/doc/images/Logo_RGB_H-small.png" alt="Nordic Semiconductor logo">
9   <img src="../../examples/platform/nrfconnect/doc/images/nRFConnect_RGB-small.jpg"/>
10 </p>
11
12 The following diagram shows a simplified structure of a CHIP application that
13 runs on the nRF Connect platform and uses BLE and Thread stacks for
14 communication purposes:
15
16 ![nrfconnect platform overview](../images/chip_nrfconnect_overview_simplified.svg)
17
18 > **Note**: For readability, the diagram does not show all projects components,
19 > only the most important ones for a typical CHIP application.
20
21 <hr>
22
23 ## nRF Connect SDK
24
25 Nordic Semiconductor's
26 [nRF Connect SDK](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/index.html)
27 allows to build a range of applications, including cellular IoT (LTE-M and
28 NB-IoT), Bluetooth Low Energy, Thread, Zigbee, and Bluetooth mesh. The SDK
29 contains samples, libraries and a full set of drivers for Nordic Semiconductor's
30 [nRF9160](https://www.nordicsemi.com/Products/Low-power-cellular-IoT/nRF9160),
31 [nRF5340](https://www.nordicsemi.com/Software-and-tools/Development-Kits/nRF5340-PDK),
32 and
33 [nRF52 Series](https://www.nordicsemi.com/Products/Low-power-short-range-wireless)
34 devices.
35
36 The nRF Connect SDK is based around [Zephyr RTOS](https://zephyrproject.org/),
37 which is a scalable real-time operating system dedicated for the connected,
38 resource-constrained devices. Zephyr supports multiple hardware platforms and
39 provides hardware drivers, application protocols, protocol stacks, and more.
40 Besides Zephyr, the nRF Connect SDK also integrates other projects like crypto
41 library mbedTLS, MCU bootloader or the [OpenThread](https://openthread.io/)
42 implementation of the Thread stack.
43
44 <hr>
45
46 ## Bluetooth LE and Thread stacks
47
48 In the nRF Connect platform applications, the Bluetooth LE interface is used to
49 perform pairing and Thread network provisioning operations between the CHIP
50 device and the CHIP controller. Afterwards, the fully provisioned device is able
51 to communicate with other devices inside the Thread network.
52
53 For the Bluetooth LE communication purposes, the nRF Connect platform
54 application is using the Bluetooth LE stack, in which the Bluetooth LE Host part
55 is provided by the Zephyr RTOS and the
56 [SoftDevice Controller](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrfxlib/softdevice_controller/README.html)
57 is implemented in the nRF Connect SDK's driver.
58
59 For the Thread communication purposes, the nRF Connect platform application is
60 using the Thread stack, which consists of several layers implemented in
61 different projects. The core of the Thread stack is OpenThread, but it also
62 requires the IEEE 802.15.4 radio driver provided by the nRF Connect SDK and the
63 network layer functionalities provided by the Zephyr.
64
65 The nRF Connect SDK's Multiprotocol Service Layer (MPSL) driver allows running
66 Bluetooth LE and Thread concurrently on the same radio chip.
67
68 <hr>
69
70 ## CHIP integration
71
72 CHIP is located on the top application layer of the presented model, looking
73 from the networking point of view. The Bluetooth LE and Thread stacks provided
74 by the nRF Connect SDK and Zephyr must be integrated with the CHIP stack using a
75 special intermediate layer.
76
77 In practice, this layer contains platform-specific implementations of abstract
78 manager interfaces (such as Bluetooth LE Manager or Thread Stack Manager)
79 defined in the CHIP stack. The application is able to use CHIP's platform
80 agnostic interfaces and no additional platform-related actions are needed to
81 perform communication through the CHIP stack.
82
83 <hr>
84
85 ## Build system
86
87 The nRF Connect platform makes use of the following build systems to generate
88 ninja build scripts:
89
90 -   GN - Used by the CHIP project in majority of cases.
91 -   CMake - Used by other components related with the nRF Connect platform,
92     namely nRF Connect SDK and Zephyr.
93
94 As a result, CHIP's stack and platform modules are built with GN (see the
95 overview diagram) and the output is used to generate the library file. The
96 application, nRF Connect SDK, and Zephyr are built with CMake and the CHIP
97 library file is imported during the compilation process.