### Configure SLC-CLI SDK and GCC Toolchain (macOS Example) Source: https://context7_llms Example of configuring both the default SDK and the GCC toolchain on macOS, demonstrating how to set these paths simultaneously for a typical Simplicity Studio installation. ```bash slc configuration --sdk=~/SimplicityStudio/SDKs/simplicity_sdk --gcc-toolchain=/Applications/ARM ``` -------------------------------- ### Build and Flash Project (MacOS Example) Source: https://context7_llms Generates a project, builds it using Make (GNU Make/GCC), and flashes it using Simplicity Commander. This example demonstrates setting SDK path, configuring toolchain, generating makefile, and flashing. ```shell $ SISDK=~/SimplicityStudio/SDKs/simplicity_sdk $ slc configuration --sdk=$SISDK --gcc-toolchain=/Applications/ARM $ slc generate $SISDK/app/common/example/blink_baremetal -np -d blinky -name=blinky -o makefile --with brd4166a $ cd blinky $ make -f blinky.Makefile $ commander flash build/debug/blinky.hex ``` -------------------------------- ### TOML Configuration Example Source: https://context7_llms This example demonstrates how command-line arguments are translated into a TOML configuration file format. It shows namespacing for different tools and handling of duplicated options. ```sh [core] sdk = "~/gsdk" [mytool] foo = "a" bar = [ "b", "c" ] // The bar command is a duplicated option with different semantics in the Other command and must have a unique name/namespace in the conf file. [mytool.other] bar = "monkey ``` -------------------------------- ### Default User Configuration Import Example Source: https://context7_llms Shows the structure of a default user configuration file in TOML format, specifically highlighting the 'include' directive for importing other configuration files, such as autogenerated ones. ```sh ### Structural to file -- always follows prepend rules (i.e the above include is not forgotten or ignored) include = [ "autogen/slt_autogen.slconf" ] ``` -------------------------------- ### Install SLT Packages with TOML Recipe Source: https://context7_llms This TOML file defines the dependencies for the Silicon Labs Tool (SLT) installation process. It lists essential packages like CMake, GCC toolchain, and the SLC CLI, facilitating automated setup of the development environment. Ensure all listed packages are compatible with the '~' version specifier for SLT. ```toml ### This is the recipe file driving the command line tool install flow in SLT [dependency] cmake = "~" commander = "~" exx32 = "~" gcc-arm-none-eabi = "~" ninja = "~" sdm = "~" simplicity-sdk = "~" slc_cli = "~" zap = "~" ``` -------------------------------- ### SLC CLI Generate Project Command - Bootloader Apploader Source: https://context7_llms Command-line example to generate the bootloader_apploader project for Silicon Labs EFR32MG24-based boards using VS Code output format. Uses similar configuration parameters as the Bluetooth project for board specification and output generation. ```bash slc --ignore-slt generate -np -cp -p=.silabs\slt\installs\conan\p\simpldxxxxx\p\platform\bootloader\sample-apps\bootloader-apploader\bootloader-apploader.slcp -d C:\SiliconLabs\SLC_CLI\Projects\bootloader-apploader --with brd4187c,brd4002a -o vscode -log ``` -------------------------------- ### Shell Command for SLT Installation Source: https://context7_llms This is a placeholder for the actual shell command to install packages using SLT. It is assumed that the 'slt' command is available in the system's PATH after installation. The command would typically involve specifying a recipe file or individual package names. ```shell # Example: slt install --recipe cli_tools.toml # Actual command to be determined based on SLT usage. ``` -------------------------------- ### SLC CLI Generate Project Command - Bluetooth SOC Blinky Source: https://context7_llms Command-line example to generate the bt_soc_blinky project for Silicon Labs EFR32MG24-based boards using VS Code output format. Includes options for ignoring SLT, disabling package/component processing, specifying project path, target boards, and logging. ```bash slc --ignore-slt generate -np -cp -p=.silabs\slt\installs\conan\p\simpldxxxxx\p\app\bluetooth\example\bt_soc_blinky\bt_soc_blinky.slcp -d C:\SiliconLabs\SLC_CLI\Projects\bt_soc_blinky --with brd4187c,brd4002a -o vscode -log ``` -------------------------------- ### Add SDK Extension to Simplicity Studio Project Source: https://context7_llms This describes the process of adding an SDK extension to a Simplicity Studio project, either by ensuring it's already installed or by manually adding it through the IDE's preferences. It highlights that changes to the original SDK extension are not reflected until it's removed and re-added. ```text 1. Create a new project or pick an existing one using the same `sdk` you installed the SDK extension for. 2. Open the `.slcp` file. 3. Navigate to the **Component Selector** by clicking the **Software Components** tab. 4. Search for a component in your SDK extension. 5. After you find it, Simplicity Studio prompts you to add the SDK extension to the project before you install the component. 6. Install the component and your project is now connected to that SDK extension. ``` ```text 1. In Simplicity Studio go to **Preferences > Simplicity Studio > SDKs** and select the Simplicity SDK Suite to which the SDK extension will be added. Click **Add Extension…**. 2. Click **Browse** and navigate to the root folder of the new SDK extension and click **Select Folder**. 3. The SDK extension should be displayed in the Detected SDK Extension window with the correct name, version, and path. Click **OK** and then **Trust** and **Apply and Close**. ``` -------------------------------- ### TOML List Prepending Example Source: https://context7_llms Illustrates the use of the 'sl.prepend' keyword in TOML configuration files to prepend content to existing lists. This is a specialized feature for modifying list-based configurations. ```sh [slc] with = [ "brd4204b" ] [prepend.slc] with = [ "brd4100a" ] foo = [ "bar" ] ``` -------------------------------- ### Project Build with Make Source: https://context7_llms Builds a generated project using Make. Assumes 'make' is in the system's PATH and the project's Makefile is accessible. ```shell make -f .Makefile ``` -------------------------------- ### Trust SDK Extension by Path Source: https://context7_llms Trusts an SDK extension located at a specific file path. This is useful when manually installing SDK extensions and allows for renaming or versioning without losing trust. ```bash slc signature trust -extpath ``` -------------------------------- ### Trust the Simplicity SDK Source: https://context7_llms Trusts the entire Simplicity SDK located at the specified path. This command must be run if the SDK has not been previously trusted. ```bash slc signature trust --sdk ``` -------------------------------- ### Generate Project from .slcp Source: https://context7_llms Generates a project from an existing .slcp file. Supports specifying destination, new project name, and target device/board. Requires the SiSDK location to be configured. ```shell slc generate ** ``` ```shell slc generate \path\to\example.slcp -np -d -name= --with ``` ```shell slc generate C:\Users\\SimplicityStudio\SDKs\simplicity_sdk\app\bluetooth\example\bt_soc_empty\bt_soc_empty.slcp -np -d c:\test-soc-empty\ -name=test-soc-empty --with EFR32MG12P232F512GM68 ``` -------------------------------- ### Configure Project to Use SDK Extension Source: https://context7_llms Modifies the project's .slcp file to include an SDK extension. Specifies the extension's ID and version, enabling the project to utilize components from it. ```yaml sdk_extension: - id: version: ``` -------------------------------- ### Clone SDK Component for Modification Source: https://context7_llms The 'clone' command allows developers to copy SDK components for modification and self-contained use. It handles file copying, updates project paths, and can set the author of the cloned component. ```bash clone –t emlib –d project_sdk_extension –a neo_politan --destination PATH --target=TARGET_COMPONENT_ID --author "Fozzy Bear" ``` -------------------------------- ### Examine SLC-CLI Configuration Source: https://context7_llms Prints the current SLC-CLI configuration file and its location. This is useful for verifying the active configuration settings and understanding where they are stored. ```bash slc configuration -e ``` ```bash slc configuration --examine ``` -------------------------------- ### Generate Dependency Graph for SLCP Project Source: https://context7_llms The 'graph' command visualizes project dependencies as a tree. It can optionally show validation issues inline and focus on specific components. Cycles in dependencies are highlighted. ```bash graph --project blink.slcp graph --project blink.slcp --validate graph --project blink.slcp --focus "emlib_common, cmsis_core" ``` -------------------------------- ### Include Component from SDK Extension in Project Source: https://context7_llms Adds a component from an SDK extension to a project's configuration within the .slcp file. Requires specifying the component ID and the originating SDK extension ID. ```yaml component: - id: neopolitan_icecream from: ``` -------------------------------- ### Upgrade Project Configuration Source: https://context7_llms The 'upgrade' command upgrades a given project in place, creating backups for modified files. It can perform a dry run to report issues without modifying the project, and requires '--verified' if upgrade rules mandate verification. ```bash upgrade "blink.slcp" --dry-run --verified ``` -------------------------------- ### Examine Component in SDK Extension Source: https://context7_llms Examines a specific component within an SDK extension. Requires the component's ID and the SDK extension's ID and version to locate it accurately. ```bash slc examine -ext : ```