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