[SysConfig](https://www.ti.com/tool/SYSCONFIG) is an intuitive and comprehensive collection of graphical utilities for configuring pins, peripherals, radios, subsystems, and other components. The tool's output includes C header and code files that can be used with software development kit (SDK) examples or used to configure custom software.
Starting with the SimpleLink SDK 3.30 releases, SysConfig is used in the majority of examples included with the SDK. Example projects include a .syscfg file which configures key components of the application (e.g. TI Drivers, networking stacks, etc). The SysConfig GUI tool in CCS simplifies the process of configuring your application and auto-generates source files for you compared to the legacy approach of the user needing to supply the 'C' structures/arrays via Board source files.
# SysConfig Project Build Process
The example below is the TI Drivers **empty** project from SimpleLink CC13x2 26x2 SDK 3.30.00.03. Double-clicking the empty.syscfg file in the **Project Explorer** view opens the graphical configuration tool. The tools allows you to view the configured components and also to add or remove configurations.
![](./images/empty_syscfg_project1.png)
At project build time, the SysConfig build tool is invoked first (prior to the Compiler and Linker), and will generate source files in the project's ``Debug/syscfg`` directory (where Debug is the build configuration), as seen in the CCS build console. The files generated will depend on which SDK components are integrated into the application. As more SDK components start to be integrated with SysConfig, more files will be generated.
![](./images/empty_syscfg_build1.png)
The .c and .h files generated by SysConfig are then passed as source files to the compiler and linker tools.
# Disabling SysConfig
Once the configuration for the application is complete, you may wish to freeze or lock-in the files generated by SysConfig, so they are not re-generated in future builds.
To do this:
- Copy the source files (\*\.c and *.h) from ``Debug/syscfg`` directory into your root project directory.
- Right-click on empty.syscfg and select **Exclude from Build**. This will grey out the file in the Project Explorer view.
- Rebuild project.
![](./images/empty_syscfg_exclude.png)
After these steps, the .syscfg file will no longer be part of the project build. If further configuration needs to be done down the road using the SysConfig tool, include the .syscfg file back into the project and exclude the syscfg generated \*\.c and *.h files that were previously copied into the project.
# Copying SysConfig settings to another project
SysConfig relies not only on the settings in the .syscfg file but also on content that resides inside the software packages that are being used. SysConfig knows where to look for this information based on a manifest file. The build options for SysConfig include a list of manifest files. Typically a software product will define a variable that specifies the manifest file. Thus instead of having to know the path to the file it is possible to simply specify the variable.
The variable will typically have the form of **COM_TI_PRODUCT_SYSCONFIG_MANIFEST**. For example the SimpleLink CC13X2/CC26X23 SDK would define a variable of **COM_TI_SIMPLELINK_CC13X2_26X2_SDK_SYSCONFG_MANIFEST**. That variable then resolves to the location of the .json manifest file inside the SDK. Which is usually a product.json file inside the .metadata folder in the root of the software package installation folder.
## Copy .syscfg file into the project
Copy the .syscfg file from an existing project that is for the same device and uses the same compiler. When the file is added to the new project Code Composer Studio will prompt to add SysConfig support. Say yes to this.
![Enable SysConfig support](./images/sysconfig_enable.png)
## Specify software products
Ensure that the new project is specified to use the same software product as the one the .syscfg file was copied from. Here this project is specifying to use the SimpleLink SDK for CC13X2/26X2.
![Project must have product included](./images/sysconfig_productspecify.png)
## Specify location of software product manifest
At this point if the .syscfg file is opened it will state **Cannot specify --board without --product**. This occurs as SysConfig is not able to locate a software product manifest file.
![Error if no product manifest](./images/sysconfig_error_boardwithoutproduct.png)
This error can be resolved by specifying the location of the manifest file. The best way to do this is to use the built-in variable. Below is the variable used for the CC13X2/26X2 SDK.
![Use variable to specify manifest location](./images/sysconfig_specifymanifest.png)
[[b Note:
This step is not necessary with Code Composer Studio v11 and later as the manifest locations for software products that are part of the project will automatically be added to the SysConfig build options.
]]
Now it will be possible to open the .syscfg file.