Creating copy of example project

From Texas Instruments Wiki
Jump to: navigation, search

Introduction

TI provides many example CCS projects as part of their software offering. For example, the ControlSUITE software infrastructure for C2000 devices, TivaWare for Tiva devices, and BLE-Stack SDK for SimpleLink devices include several example projects to jump-start the development process. Many users want to make copies of example projects provided by TI into a separate directory so they can make changes to it without fear of corrupting the original example. This article describes how this can be done for CCSv6 projects.


ControlSuite examples (C2000)

There are a couple of ways of creating copies of CCS example projects:

Make a copy of project level folder and edit project files

  • Check if the .project file contains any source files in the root project directory (check under <linkedResources>). If it does, in the step "Edit the .project file" in the above procedure, in addition to editing the <name> field, also modify the <locationURI> under <linkedResources> to point to the resources in the copied location instead of the original location.
    For instance, in the example below, change
    <locationURI>INSTALLROOT_F2837XS/F2837xS_examples_Cpu1/blinky/cpu01/blinky_cpu01.c</locationURI> to
    <locationURI>INSTALLROOT_F2837XS/F2837xS_examples_Cpu1/my_project/cpu01/blinky_cpu01.c</locationURI>
	<linkedResources>
		<link>
			<name>blinky_cpu01.c</name>
			<type>1</type>
			<locationURI>INSTALLROOT_F2837XS/F2837xS_examples_Cpu1/blinky/cpu01/blinky_cpu01.c</locationURI>
		</link>
	</linkedResources>

Caveat: Even though this procedure makes a copy of the project folder (and with it the main source files found within that folder), the common device source files (typically found in C:\ti\controlSUITE\device_support\f2833x\v132\DSP2833x_common\source) are still “linked” from their original location, so any changes made to these files will modify it in their original location.

Advantage: You can open both the original and copied project in the same CCS workspace (since they have different names) for quick comparison.

Make a copy of root level folder (Recommended)

This is the simplest and safest way to make a working copy but does use more disk space.

  • Make a copy of the root folder for the device you are working with. For example, assuming ControlSuite is installed in c:\ti, and you are working with the examples for F2833x from the folder C:\ti\controlSUITE\device_support\f2833x\v132, make a copy of the v132 folder at that same level (for example, C:\ti\controlSUITE\device_support\f2833x\v132_copy). Modify and customize the project as needed.
    Tip: To determine which root level to make a copy of, go into the project folder, open the file macros.ini and find the root level that the macro there resolves to. For example, the macros.ini within C:\ti\controlSUITE\device_support\f2833x\v132\DSP2833x_examples_ccsv4\adc_soc sets INSTALLROOT_2833X_V132 = ../../, which sets the root to C:\ti\controlSUITE\device_support\f2833x\v132, so you would make a copy of v132 folder.
  • Open a new CCS workspace and import the desired projects into the new workspace from the copied folder (C:\ti\controlSUITE\device_support\f2833x\v132_copy).
    To avoid confusion, keep two different CCS workspaces, one for working with out-of-box ControlSuite examples, and another for your working projects. This way, within a given workspace, you will always be importing projects from the same location.

TivaWare examples (Tiva)

TivaWare examples have similar constraints in that they refer to sources and link in libraries from several other directories within the TivaWare tree.

The same two methods described above can be applied to create copies of TivaWare examples as well.

Make a copy of project level folder and edit project files

  • Modify the .project file within C:\ti\TivaWare_C_Series-2.1.2.111\examples\boards\ek-tm4c123gxl\myblinky\ccs as described in the wiki article above.
  • In the step "Edit the .project file", in addition to editing the <name> field, also modify the <locationURI> under <linkedResources> to point to the resources in the copied location instead of the original location as shown in this example:
	<linkedResources>
		<link>
			<name>blinky.c</name>
			<type>1</type>
			<locationURI>SW_ROOT/examples/boards/ek-tm4c123gxl/myblinky/blinky.c</locationURI>
		</link>
		<link>
			<name>blinky_ccs.cmd</name>
			<type>1</type>
			<locationURI>SW_ROOT/examples/boards/ek-tm4c123gxl/myblinky/blinky_ccs.cmd</locationURI>
		</link>
		<link>
			<name>startup_ccs.c</name>
			<type>1</type>
			<locationURI>SW_ROOT/examples/boards/ek-tm4c123gxl/myblinky/startup_ccs.c</locationURI>
		</link>
	</linkedResources>


Make a copy of root level folder (Recommended)

This is the simplest and safest way to make a working copy but does use more disk space.

  • Make copy of root TivaWare folder, eg: C:\ti\TivaWare_C_Series-2.1.2.111 to C:\ti\TivaWare_C_Series-2.1.2.111_copy
  • Open a new CCS workspace and import the desired projects into the new workspace from the copied folder (C:\ti\TivaWare_C_Series-2.1.2.111_copy). Modify and customize the project as needed.
  • As suggested earlier, keep two different CCS workspaces, one for working with out-of-box TivaWare examples, and another for your working projects. This way, within a given workspace, you will always be importing projects from the same location.

BLE-Stack examples (SimpleLink)

Make a copy of root level folder (Recommended)

The BLE-Stack examples mostly used linked resources so if you wish to make changes to any source files the safest way is to make a copy of the entire source tree.

  • Make copy of root BLE-Stack folder, eg: C:\ti\simplelink\ble_sdk_2_02_00_31 to C:\ti\simplelink\ble_sdk_2_02_00_31_copy.
  • Open a new CCS workspace and import the desired projects into the new workspace from the copied folder (C:\ti\simplelink\ble_sdk_2_02_00_31_copy). Modify and customize the project as needed.
  • As suggested earlier, keep two different CCS workspaces, one for working with out-of-box BLE-Stack examples, and another for your working projects. This way, within a given workspace, you will always be importing projects from the same location.


Some general information on Portable Projects can be found here: http://processors.wiki.ti.com/index.php/Portable_Projects