diff --git a/doc/guides/kconfig/index.rst b/doc/guides/kconfig/index.rst index d1cac66dff2..66257e68f07 100644 --- a/doc/guides/kconfig/index.rst +++ b/doc/guides/kconfig/index.rst @@ -3,6 +3,24 @@ Kconfig ####### +The Zephyr kernel and subsystems can be configured at build time to adapt them +for specific application and platform needs. Configuration is handled through +Kconfig, which is the same configuration system used by the Linux kernel. The +goal is to support configuration without having to change any source code. + +Configuration options (often called *symbols*) are defined in :file:`Kconfig` +files, which also specify dependencies between symbols that determine what +configurations are valid. Symbols can be grouped into menus and sub-menus to +keep the interactive configuration interfaces organized. + +The output from Kconfig is a header file :file:`autoconf.h` with macros that +can be tested at build time. Code for unused features can be compiled out to +save space. + +The following sections explain how to set Kconfig configuration options, go +into detail on how Kconfig is used within the Zephyr project, and have some +tips and best practices for writing :file:`Kconfig` files. + .. toctree:: :maxdepth: 1