This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

need help using C6713 with CCS5



Hi,

I am new to embedded programming and I need to learn how to program the TI C6713 board. Since it is 2012, I am working on Windows 7 and using the latest CCS (5.2.1.00018) instead of CCS 3.1 for Windows XP that came with the kit from Spectrum Digital some years ago.

Will you recommend how I can get started? After watching the 'getting started' video, I have no trouble creating a new project, compiling, and running something that merely prints 'Hello World'. Now, how do I move beyond a program with only a print statement? I mention my attempt below.

With the CCS 3.1 installation there exist many tutorials and example code for the C6713 board. I tried importing one of those projects. The import wizard had an options for "Legacy CCS 3.3 Projects", and I tried it despite having a CCS 3.1 project. I imported a project found under "C:\CCS_v3.1/tutorial/dsk6713/gelsolid" called 'hellodsp' . I have shown the compile errors below.


**** Build of configuration Debug for project hellodsp ****

C:\ti\ccsv5\utils\bin\gmake -k all
'Building target: hellodsp.out'
'Invoking: C6000 Linker'
"C:/ti/ccsv5/tools/compiler/c6000_7.3.4/bin/cl6x" -g -O3 --quiet --display_error_number --abi=coffabi -z -m"hellodsp.map" --warn_sections --display_error_number -i"C:/ti/ccsv5/tools/compiler/c6000_7.3.4/lib" -i"C:/ti/ccsv5/tools/compiler/c6000_7.3.4/include" -i"C:/Users/jgrant.SYSTEMSTECH/Documents/STI/projects/1402 - Buffet/CCS/hellodsp" -i"C:/CCSTUD~1.1/C6000/csl/lib" --reread_libs --rom_model -o "hellodsp.out"  "./welcometodsp.obj" "./multidspwelcome.obj" "../gelsolid.cmd" "../hellodsp.cmd" "C:/ti/ccsv5/tools/compiler/c6000_7.3.4/lib/rts6700.lib"
"../hellodsp.cmd", line 15: error #10263: SDRAM memory range has already been

>> Compilation failure
   specified
"../hellodsp.cmd", line 15: error #10264: SDRAM memory range overlaps existing
   memory range SDRAM
error #10056: symbol "_main" redefined: first defined in "./welcometodsp.obj";
   redefined in "./multidspwelcome.obj"
warning #10210-D: creating ".stack" section with default size of 0x400; use the
   -stack option to change the default size
warning #10210-D: creating ".sysmem" section with default size of 0x400; use
   the -heap option to change the default size
error #10010: errors encountered during linking; "hellodsp.out" not built
gmake: *** [hellodsp.out] Error 1
gmake: Target `all' not remade because of errors.

**** Build Finished ****

After import, several .cmd and .gel files are visible in the project. I do not know how to compose these files myself, or if they are relevant to CCS 5.2.

On a 2nd attempt, I imported a project called 'sinewave' and this had no compile errors. I was able to run it with the debugger. I saw the board's 'busy' LED change. I'm not sure if the source does anything useful, like plotting a graph for me to get confirmation that the board is crunching some numbers. I've copied the source code below.


// ****************************************************************
// Description: This application uses Probe Points to obtain input
// (a sine wave). It then takes this signal, and applies a gain
// factor to it.
// Filename: Sine.c
// ****************************************************************

#include <stdio.h>
// define boolean TRUE
#ifndef TRUE
#define TRUE 1
#endif

// buffer constants
#define BUFFSIZE 0x64
#define INITIALGAIN 5

// IO buffer structure
typedef struct IOBuffer {                
    int input[BUFFSIZE];             
    int output[BUFFSIZE];    
} BufferContents;

      
// gain control variable
int gain = INITIALGAIN;   

// declare and initalize a IO buffer       
BufferContents currentBuffer;

// Define some functions
static void processing();                        // process the input and generate output
static void dataIO();                            // dummy function to be used with ProbePoint

void main()
{
    puts("SineWave example started.\n");
            
    while(TRUE) // loop forever
    {       
        /*  Read input data using a probe-point connected to a host file.
            Write output data to a graph connected through a probe-point. */
        dataIO();
        
        /* Apply the gain to the input to obtain the output */
        processing();
    }
}

/*
 * FUNCTION:        Apply signal processing transform to input signal
 *                     to generate output signal
 * PARAMETERS:         BufferContents struct containing input/output arrays of size BUFFSIZE
 * RETURN VALUE:     none.
 */
static void processing()
{
    int size = BUFFSIZE;

    while(size--){
        currentBuffer.output[size] = currentBuffer.input[size] * gain;    // apply gain to input
    }
}

/*
 * FUNCTION:         Read input signal and write processed output signal
 *                    using ProbePoints
 * PARAMETERS: none.
 * RETURN VALUE: none.
 */
static void dataIO()
{
    /* do data I/O */
    return;
}

If I read CCS 5.2 user guide, will this help me toward my goal of using the C6713 board?

Also, how do I know if the C6713 is a 'single core DSP' or a 'multi core DSP' ? Am I in the right forum?

Thank you for any suggestions,

John

  • John,

    There are lots of angles to your post. Let me see if I am able to go through all of them.

    The process of ramping up with development can be simplified by looking at the Training wiki page, which contains step-by-step workshops for several architectures. For the C6713 DSK you can look at the Archived workshops - despite still using CCSv3.x, it is a good starter to better understand the foundational tools (compiler, linker, etc.), the target content tools (DSP/BIOS and Chip Support Library) and the IDE fundamentals - this last topic is the one that suffered the most changes, but it still can be useful as several concepts were migrated between versions.

    Once the tools' concepts are understood, the ideal move is to either follow the C6000™ High Performance DSP and SYS/BIOS™ Training in the same page (although this training uses a different device/board) or become familiar with the CCSv5 environment and its Getting Started Guide.(an overview of the IDE with a practical project development).

    Specifically to the issues you are having. The first problem I see is that your project has two linker CMD files <gelsolid.cmd> and <hellodsp.cmd> that have a conflicting memory segment (SDRAM) - in this case you can remove this memory section from one of the .CMD files.

    The second issue is that main() is defined in the two .c source files <welcometodsp.c> and <multidspwelcome.c> - probably they should not be included together in the same project, as one seems to refer to single core and the other to a multi-core.

    The CCSv5 Getting Started Guide above will not help understand the aspects of the C6713 board (the workshops are more detailed on this regard), but instead will help in using the tool.

    The C6713 is a Single Core DSP, and therefore questions about the device and surrounding hardware should be posted in the C6000 Single Core DSP.

    Hope this helps,

    Rafael

     

  • HI

    There is a good guide for using the c6713dsk with ccsv5 in the wiki.

    processors.wiki.ti.com/index.php/C6713DSK_in_CCSv5

    and also some information here

    http://ecee.colorado.edu/~fmeyer/class/ecen4532/lab6.pdf

    Jonathan