Silicon Labs Configurator Specification¶
Silicon Labs Configurator (SLC) is a metadata specification for Silicon Labs SDKs. It also describes methods of creating and configuring embedded software projects for Silicon Labs IoT devices using this metadata.
An SDK is built from components, each of which describes a unit of code (files, defines, etc). The dependencies between components are described using feature strings, where a component can provide a feature, and another component can require the feature. Multiple components may provide the same features, for instance if the same API can be satisfied by different implementations. This creates a dependency graph between components in an SDK. A project directly makes use of specific components to create an executable binary. During project generation, a dependency resolver checks and resolves all dependencies.
Projects may also make use of components from SDK Extensions, which are collections of components that extend a specific SDK.
When a SLC project is generated, an IDE project is created. Components may contribute configuration headers to the project, and the project is configured using these without the need to re-generate the IDE project. This two-phase approach minimizes disruption and enables short feedback loops when making changes. Configuration headers are valid C code, but contain annotations to enable graphical configuration interfaces and other tools. Project generation also produces autogenerated file content based on the component selection. Components may contribute Jinja template files, while other components contribute content to the templates.