EE586L/CCSv4 FAQ

From WikiBiron
Revision as of 17:46, 11 February 2011 by Sungwonl (talk | contribs) (Optimization)

Code Composer Studio v4 Frequently Asked Questions

Below are solutions to some of the commonly encountered problems with CCSv4.

As this is a new and completely different version of CCS the TAs are still learning the software as well. If you don't see your question answered here please email the TAs who will be glad to help and add your question to the pool of knowledge.

Importing Legacy CCS v3.x Projects

The textbook provides many example projects showing the functionality of the board. However, these examples were written for a previous iteration of Code Composer Studio.

Follow these steps to import legacy projects and convert them to the project format of CCSv4:

  • Launch CCS and select a workspace.
    • Workspaces are used to store your personal projects, so having an individual workspace prevents other groups from modifying your projects.
    • Create a workspace other than the default, such as, EE586_Group01 or your name.
  • Select Project -> Import Legacy CCSv3.3 Project
    • In the Dialog box that appears, browse for the project file that you would like to import and select the Copy projects into workspace radio button. Click Next
    • At the next screen select the default Code Generation Tools (already selected). Click Next.
    • On the Enable DSP/BIOS Tools screen select Automatically determine DSP/BIOSv5.x support enablement.
    • On the Set Advance Options screen do not check the box for using a common root.

Project Properties

Below are the common project property settings used in the book examples. If you are having compiling/linking issues check these settings.

Access the project properties by selecting Project->Properties. All of the following settings are located under the C/C++ Build tab located on left side of the Properties dialog box, and under the Configuration Settings->Tool Settings tab in the center of the dialog box.

  • C6000 Compiler
    • Basic Options:
      • Target Processor Version - should be 6700 or 6400 for the C6713 and C6416 boards, respectively
    • Predefined Symbols:
      • Pre-define NAME - either "CHIP_6713" or "CHIP_6416", also some projects use "DEBUG" or "_DEBUG"
    • Include Options:
      • Add dir to #include search path - the include directories of all the libraries used in the project must be included here
      • Note: you must locate these folders specifically on your PC as the locations might vary
      • ..\csl\include
      • ..\dsk6416\include or ...\dsk6713\include
      • ..\C6400\imglib\include if using the IMGLIB
  • C6000 Linker
    • File Search Path:
      • Add <dir> to library search path - the lib directories of all the libraries used in the project
      • Note: you must locate these folders specifically on your PC as the locations might vary
      • ..\csl\lib
      • ..\dsk6416\lib or ...\dsk6713\lib

Common Compling/Linking Errors

Note: these errors are due to incorrect project property settings. If you are not putting your semicolons in, you won't find your answers here!


  • Where is the rts6xxx.lib file??
    • The rts library files can be found in the folder:
    • ..\Texas Instruments\C6000 Code Generation Tools 7.0.4\lib


  • ERROR: Compiler error, 'Can't find file ...'
  • Solution:
    • When importing book examples some of the files included in the project can not be found.
    • Delete the file from the project, then select Project->Link Files to Active Project and locate the missing files
    • Common examples
      • csl6713.lib, dsk6713bsl.lib - located in the ..\csl\lib and ...\dsk6713\lib directories, respectively
      • C6713dskinit.h, C6713dskint.c - located in the Support folder supplied with the book examples


  • ERROR: Linking error which mentions FAR memory access
  • Solution:
    • Project Properties -> C\C++ Build -> C6000 Compiler -> Runtime Model Options
      • Constant access model - Set to Far
      • Data access model - Set to Far

Using the Debugger

GEL Files/Sliders

In CCSv4 the GEL Files/Sliders operate differently than in previous iterations.

  • Load GEL
    • While debugging select Tools->GEL File to load a GEL file for the current debugging session
    • Select Scripts->'GEL NAME' to access the GEL you loaded. Typically this will load the Slider.
  • Using GEL Slider
    • Unlike CCSv3.x modifications to variables due to the GEL Slider only occur when the simulation is halted in CCSv4
    • To update variables without having to halt the simulation:
      • Set a breakpoint at the line in your code where the modifiable variable is accessed.
      • Right click the breakpoint and select Breakpoint Properties
      • In the breakpoint properties dialog, under Debugger Response->Action select Refresh All Windows

Breakpoint Properties

Above we used the breakpoint properties to update variables using the GEL sliders.

Other potential uses of breakpoints include:

  • Update View - can be used to refresh a Graph or Image automatically

DSP Lab Equipment

List of the equipment we currently have in the lab.

  • DSP Boards
    • 12 6713
    • 2 6416
    • 3 6416T (1 Ghz Processor)
  • Daughter Cards
    • 6 - ND Tech Video Daughtercard
      • Analog Video Input (composite)/ LCD Display Output
      • Works with 6713 and 6416
      • User Manual
    • 4 - Old Video Daughtercard
      • Composite and S-Video Input/ Composite and S-Video Output
      • Works with 6416 only
      • Does not work with audio
    • 4 - eDSP Multi Channel Audio card
      • 4 Channel line/mic input - 4 Channel output
      • 6713 and 6416T Compatible
      • Product Website
  • Audio Equipment
    • 4 Behringer ECM8000 Measurement Microphone
      • Omnidirectional measurement microphones
      • Flat frequency response, good for beamforming, etc.
    • 4 dbx RTA-M Measurement Microphone
      • Similar to above, omnidirectional measurement microphones
    • 4 Shure SM48 Vocal Microphone
      • Good for recording voice for speaker recognition, etc.
    • 3 Microphone Preamplifiers
      • High quality preamplifiers, get strong signal into board
  • Video Equipment
    • 4 Toshiba Teli CS5260BD Video Cameras
    • 1 JAI S3200 Video camera w/ high quality zoom lens
    • 5 Older Video Cameras


Optimization

  • Measure running time in CPU cycles
    • Use a function TIMER_getCount() like in example below.
      • The reason why you multiply by 8 is because the maximum resolution of the timer in C6416 is 8 CPU cycles in this example.
      • If you use C6713, it should be 4. For details, refer to [1].
 // Configure timer
 hTimer = TIMER_open(TIMER_DEVANY,0); 
 TIMER_configArgs(hTimer, 0x000002C0, 0xFFFFFFFF, 0x00000000);  
 start    = TIMER_getCount(hTimer);    // called twice to avoid L1D miss.
 start    = TIMER_getCount(hTimer); 
 stop     = TIMER_getCount(hTimer); 
 overhead = stop - start;
 start = TIMER_getCount(hTimer); // begin "profile area"
 foo(); // Any function / routine you want to measure 
 stop = TIMER_getCount(hTimer); // end "profile area"
 t = (stop-start-overhead) * 8;
 printf("# cycles to run foo(): %d\n", t);