.. _zcaniot_introduction: About the |ZSDK| ################ .. contents:: :local: :depth: 2 The ZCAN IOT SDK enables you to develop applications for ZC38XX Series devices. It is a set of open source projects maintained by ZCAN, consisting of several repositories such as: * `ZCAN-sdk`_ repository - contains applications, samples, libraries, and drivers that are specifically targeted at ZCAN devices. * `ZCAN-xlib`_ repository - contains closed-source libraries and modules in binary format. See the :doc:`zcanxlib documentation `. * `mcuboot`_ repository - contains a fork of the `MCUboot`_ project, which provides a secure bootloader application. You can find the fork in :file:`bootloader/mcuboot` after obtaining the ZCAN IOT SDK source code. See the :doc:`documentation ` in ZCAN’s MCUboot fork. * `zephyr`_ repository - contains a fork of the `Zephyr`_ project, which provides samples, libraries, and drivers for a wide variety of devices, including ZCAN devices. See the :doc:`documentation ` in ZCAN’s Zephyr fork. The main repository is ``ZCAN-sdk``. It contains the SDK manifest file that enables you to manage the repositories as one code base with the west tool. Tools and configuration *********************** The figure below visualizes the tools and configuration methods in |ZSDK|. They are based on the :ref:`Zephyr project `. All of them have a role in the creation of an application, from configuring the libraries or applications to building them. * :ref:`zephyr:kconfig` generates definitions that configure libraries and subsystems. * :ref:`Devicetree ` describes the hardware. * CMake generates build files based on the provided :file:`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 `XCC compiler`_ creates the executables. West ==== The Zephyr project includes a tool called west that enables you to manage multiple repositories. When developing in the |ZSDK|, 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 :ref:`zephyr:west` user guide. See :ref:`getting_started` for information about how to install the |ZSDK| and about the first steps.