Overview
---
The Code Composer Studio Target Configuration tool provides a way for users to create and modify target configuration (\*.ccxml) files for use by the debugger. It is recommended to use the **General Setup** to specify a custom target when possible. However, the desired option for your particular connection and device combination may not be covered by the **Connection** and **Board or Device** lists of the **General Setup**. In these cases, you will need to build your own configuration using the **Advanced Setup** utility.
The **Advanced Setup** tool allows you to build a configuration by selecting from a list of available Connections and a list of available components (**Devices**, **Cpus**, **Routers**). Be aware, that using the utility will be difficult without sufficient knowledge of the device for which the configuration is being built.
To access the **Advanced Setup** utility, open a target configuration file and click on the **Target Configuration** link under **Advanced Setup**, or click on the **Advanced** tab in the lower left corner of the view.

Device Files
---
Device files are XML files that provide all the information for an entire device. This can include router information, multiple CPUs, etc. For example, a DM6446 device consists of one router (IcePick C) with three subpaths, each with a CPU (ARM9, ETB, C64x+). As an example the steps below build a target configuration for a DM6446 in the **Advanced Setup**. Since this is a single device, the result is no different from using the basic setup. However, the same steps can be used to add any device to any new or existing target configuration.
1. Create a new **Target Configuration File** in CCS.
2. Access the **Advanced Setup** as described above.
3. Click on **New...** to open the **Connection Selection** window.
4. Select the desired connection (**Blackhawk USB560-M Emulator** in this case) and click **Finish**.

The selected connection will now be added to the left pane. In the right pane the **Connection Properties** can be modified if needed.

5. With the connection selected in the left pane, click on **Add...** to open the **Component Selection** window.
6. Under the **Devices** tab, select the desired device (**TMS320DM6446** in this case) and click **Finish**.

This will add the selected device as its own icon below the connection and the rest of the configuration will be completed below it.

The target configuration for a single DM6446 device is now complete.
Device files make it easy to add entire devices to your target configuration. They have other benefits as well. Device files often reference other module XML files which describe device specific memory mapped register information for the CCS **Registers** view. This allows for more detailed information to appear in the **Registers** view. The files can also contain additional configuration information that is not available in the **Advanced Setup**.
Multiple devices, (identical or not) can be added to a single connection. Simply repeat steps 5 and 6 above to add additional devices to a connection. You can also add multiple copies of a device at once by specifying a number of copies in the lower right corner of the **Component Selection** window.

For more details, check out the short video below.
Combining devices with non-device file specified information for a single connection is also allowed. Adding additional devices or components can be done in the same way a device is added to a connection. See [this section](#building-or-extending-a-target-configuration) for more details

Multiple Debug Probes
---
When using multiple debug probes, the procedure is very similar to the above. In the **Advanced Setup**, click on **New...** to add a second connection to the configuration.

After selecting a new connection and clicking **Finish**, the new connection should appear in the left pane. If your configuration contains identical debug probes, they must be differentiated by their serial numbers.

Then devices and components can be added to the new debug probe in the same way described above.

You can find more details on debugging with multiple debug probes [here](https://software-dl.ti.com/ccs/esd/documents/sdto_ccs_multi-probe-debug.html).
Building or Extending a Target Configuration
---
It may be that your particular device configuration cannot be built using device files. In this case, you will need to build part, or all, of your target configuration from scratch.
[[r Warning:
Building a target configuration from scratch is difficult and requires in-depth knowledge of your device. It should only be done as a last resort if existing device XML files do not suffice.
]]
The following steps show how to create a target configuration file without the use of device files. A basic target configuration for a F28377S C2000 LaunchPad will be created.
1. Create a new target configuration file and open the **Advanced Setup**.
2. Click on the **New...** button to open the **Connection Selection** window. Select the desired connection (**XDS100v2 Debug Probe** in this case) and click **Finish**.

3. Next the components for the F28377S will be added. With the debug probe selected, click on **Add...** and select the **IcePick_C** in the **Routers** tab.

Click **Finish** to add it to the target configuration. This will add an **IcePick_C** in the left pane.
4. Select the **IcePick_C** router and click **Add...**. Here you can add subpaths to the router. You can specify a number of subpaths to add in the bottom right corner (only one subpath is needed for this example).

This will add a subpath to the **IcePick_C** component in the left pane. In the right pane it is possible to modify the subpath's properties (or the router's properties if the IcePick is selected), such as the port number (the default value of **0x10** is fine in this case).

5. Now we add the CPUs for the device. With the subpath selected, click **Add...**, select the **C28xx** in the **Cpus** tab, and click **Finish**.

Repeat this step to add a **TMS192C2008** and a **cs_child** component (both can be found in the **Cpus** tab).
6. Selecting one of the CPUs allows you to specify a GEL startup script. The image below shows this being done for the C28xx CPU.

7. Select the cs_child component and set the **Address** and **Identity** to the values shown below.

This completes the target configuration for a F28377S. As mentioned in earlier, the device files also reference other module XML files which describe register information, and sometimes contain additional configuration information that cannot be configured in the **Advanced Setup**. A target configuration like the one built above cannot contain this kind of information unless it is added to the XML source directly.