A System Project is a type of project in Code Composer Studio that is used to bring together projects that are for individual cores. In the System Project associations are made between cores on a device and projects in a workspace.
This simplifies the process for building all of the projects required for a multicore device. However another key benefit is that it can be used to greatly simplify the process of launching a debug session for a multicore device.
###Create a System Project
System Projects are a fairly new concept so many software packages are not yet leveraging them by default. However it is possible to create a System Project and setup the required associations.
* Go to the **Project -> New CCS Project** menu.
![Launch the Project Wizard](images/NewProjectMenu.png)
* Specify the device that the project is file.
* Specify the connection (debug probe) that will be used to debug the device.
* Give the project a name.
* Expand the **Project type and tool-chain** options and specify the **Output type** as **System**.
![New System Project](images/NewSystemProject.png)
###Add system.xml to the System Project
This step may not be necessary depending on the version of Code Composer Studio being used. If there is already a system.xml in your System Project then you can proceed to the project association step.
* Right-click on the System Project and select **New -> File**
![New File Menu](images/NewFileMenu.png)
* Name the file **system.xml**
![Specify the name](images/NewFileName.png)
It is now possible to associate individual projects with each of the cores on the device.
* The **System Settings Editor** should have opened automatically when the **system.xml** file was added to the proejct. If not then double-click on the file to open the editor.
* Select a core on the left-hand side.
* Use the **Project** drop-down box on the right-hand side to associate a project from your workspace with this core.
* Use the **Build Configuration** drop-down to specify a build configuration of the project to use.
The default build configuration setting is ****. This assumes that the individual projects for each core and the system project have build configurations of the same name. If this is not the case then it is necessary to specify the exact build configuraiton to use.
* Repeat this step for each core.
![Complete the associations](images/SystemProjectAssociations.png)
* Save the **system.xml** file.
###Launching a debug session
Launching a debug session for the System Project will build any projects that need to be built and then launch the debugger. It will connect to each of the cores that have an associated project, load the program for that core and run to main(). Thus instead of needing to do this for each core it can be done in a single step.
![Debug session with all cores loaded](images/SystemProjectDebugView.png)
Currently it is not possible to specify the order in which to connect to each core as part of the debug launch.