Presentation is loading. Please wait.

Presentation is loading. Please wait.

Using Code Composer Studio Chapter 2 C6000 Integration Workshop Copyright © 2005 Texas Instruments. All rights reserved. Technical Training Organization.

Similar presentations


Presentation on theme: "Using Code Composer Studio Chapter 2 C6000 Integration Workshop Copyright © 2005 Texas Instruments. All rights reserved. Technical Training Organization."— Presentation transcript:

1 Using Code Composer Studio Chapter 2 C6000 Integration Workshop Copyright © 2005 Texas Instruments. All rights reserved. Technical Training Organization T TO

2 Outline  Code Composer Studio (CCS)  Projects  Build Options  Build Configurations  Configuration Tool  C – Data Types and Header Files  Lab 2 Technical Training Organization T TO

3 Code Generation.out Editor.sa Asm Optimizer.c /.cpp Compiler Asm.asm Linker.obj Link.cmd.map Technical Training Organization T TO

4 Code Composer Studio SIM  Simulator DSK’s Code Composer Studio Includes:  Integrated Edit / Debug GUI Edit DSK EVM Third Party  BIOS:Real-time kernel Real-time analysis DSP/BIOS Libraries DSP/BIOS Config Tool Debug  Code Generation Tools Compiler Asm Opto Asm Standard Runtime Libraries.out Link XDS DSP Board CCS is Project centric... Technical Training Organization T TO

5 Outline Code Composer Studio (CCS)  Projects  Build Options  Build Configurations  Configuration Tool  C – Data Types and Header Files  Lab 2 Technical Training Organization T TO

6 What is a Project? Project (.PJT ) file contain: References to files:  Source  Libraries  Linker, etc … Project settings:  Compiler Options  DSP/BIOS  Linking, etc … Let’s look more closely at Build Options and Configurations … Technical Training Organization T TO

7  Set as Active Project Keep multiple projects open  Add files… to project Add drag-n-drop files onto.PJT  Open for Editing Opens PJT with text editor  Configurations… Keep multiple setsof build options  Options… Set build options Right-Click Menu Technical Training Organization T TO

8 Compiler Build Options  Debug and Optimize options conflict with each other, therefore they should be not be used together These can be set/modified by …  Nearly one-hundred compiler options available to tune your code's performance, size, etc.  Following table lists most commonly used options: OptionsDescription -mv6700Generate ‘C67x code (‘C62x is default) -mv67pGenerate ‘C672x code -mv6400 Generate 'C64x code -mv6400+Generate 'C64x+ code -fr Directory for object/output files -fs Directory for assembly files Debug -gEnables src-level symbolic debugging -ssInterlist C statements into assembly listing Optimize (release) -o3Invoke optimizer (-o0, -o1, -o2/-o, -o3) -kKeep asm files, but don't interlist Technical Training Organization T TO

9 -g -fr“$(Proj_dir)\Debug" -d"_DEBUG" -mv6700 Build Options GUI  GUI has 8 pages of options for code generation tools  Default build options for a new project are shown  Basic page defaults are -g -mv6700 To make options easier, TI recommends using … Technical Training Organization T TO

10 Build Configurations  For new projects, CCS automatically creates two build configurations:  Debug ( unoptimized )  Release (optimized) -g -fr“$(Proj_dir)\Debug" -d"_DEBUG" -mv6700-o3 -fr“$(Proj_dir)\Release" -mv6700

11 Build Configurations  For new projects, CCS automatically creates two build configurations:  Debug ( unoptimized )  Release (optimized) -g -fr“$(Proj_dir)\Debug" -d"_DEBUG" -mv6700-o3 -fr“$(Proj_dir)\Release" -mv6700 $(Proj_dir) Indicates the current project directory. This aids in project portability. See SPRA913 (Portable CCS Projects) for more information.

12 Two Default Build Configurations  For new projects, CCS automatically creates two build configurations:  Debug ( unoptimized )  Release (optimized)  Use the drop-down to quickly select build config. -g -fr“$(Proj_dir)\Debug" -d"_DEBUG" -mv6700-o3 -fr“$(Proj_dir)\Release" -mv6700

13 Two Default Build Configurations  For new projects, CCS automatically creates two build configurations:  Debug ( unoptimized )  Release (optimized)  Use the drop-down to quickly select build config.  Add/Remove build config's with Project Configurations dialog (on project menus)  Edit a configuration: 1. Set it active 2. Modify build options (shown previously) 3. Save project -g -fr“$(Proj_dir)\Debug" -d"_DEBUG" -mv6700-o3 -fr“$(Proj_dir)\Release" -mv6700 Technical Training Organization T TO

14 OptionsDescription -o Output file name -m Map file name -c Auto-initialize global/static C variables -x Exhaustively read libs (resolve back ref's) Linker Options  By default, linker options include the –o option  We recommend you add the –m option  “$(Proj_dir)\Debug\" indicates one subfolder level below project (.pjt) location  Run-time Autoinit (-c) tells compiler to initialize global/static variables before calling main()  Autoinit discussed in Ch 3 -c -m "$(Proj_dir)\Debug\lab.map" -o"$(Proj_dir)\De $(Proj_dir)\Debug\lab.out Run-time Autoinitialization $(Proj_dir)\Debug\lab.map Technical Training Organization T TO

15 Using Separate Output Folders  When changing configurations, the -fr and -fs options prevents files from being overwritten  While not required, it allows you to preserve all variations of your project’s output files c60001day iw6000 labs lab2 Debug lab.out lab.obj Release lab.out lab.obj Debug files Release files Technical Training Organization T TO

16 Outline Code Composer Studio (CCS) Projects Build Options Build Configurations  Configuration Tool  C – Data Types and Header Files  Lab 2 Technical Training Organization T TO

17 Technical Training Organization T TO

18 DSP/BIOS Configuration Tool Simplifies system design by:  Automatically includes the appropriate runtime support libraries  Automatically handles interrupt vectors and system reset  Handles system memory configuration (builds CMD file)  Generates 5 files when CDB file is saved:  C file, Asm file, 2 header files and a linker command (.cmd) file  More to be discussed later … Simplifies system design by:  Automatically includes the appropriate runtime support libraries  Automatically handles interrupt vectors and system reset  Handles system memory configuration (builds CMD file)  Generates 5 files when CDB file is saved:  C file, Asm file, 2 header files and a linker command (.cmd) file  More to be discussed later … Technical Training Organization T TO

19 Outline Code Composer Studio (CCS) Projects Build Options Build Configurations Configuration Tool  C – Data Types and Header Files  Lab 2 Technical Training Organization T TO

20 ‘C6000 C Data Types TypeBitsRepresentation char8 ASCII short16 Binary, 2's complement int32 Binary, 2's complement long40 Binary, 2's complement long 64 Binary, 2's complement float32 IEEE 32-bit double64 IEEE 64-bit long double64 IEEE 64-bit pointers32 Binary Technical Training Organization T TO

21 Including Header Files in C /* * ======== Include files ======== */ #include #include "sine.h" #include "edma.h" 1.What is #include used for? 2.What do header (.h) files contain? It adds the contents of the header file to your C file at the point of the #include statement. Let's look at a header file...

22 Example Header Files /* *======== sine.h ======== *This file contains prototypes for all *functions and global datatypes *contained in sine.c */ #ifndef SINE_Obj typedef struct { float freqTone; float freqSampRate; float a; float b; float y0; float y1; float y2; … } SINE_Obj; #endif void copyData(short *inbuf, …); void SINE_init(SINE_Obj *sineObj, …); … /* * ======== edma.h ======== * This file contains references for all * functions contained in edma.c */ void initEdma(void); void edmaHwi(int tcc); extern EDMA_Handle hEdma;  Header files can contain any C code to be used over and over again  Usually a header file is paired with a C file or library object file. Essentially, the header file provides a description of the global items in the “paired” file.  Most commonly, header files contain:  Function prototypes  Global data references, such as new type definitions Therefore...

23 Including Header Files in C /* * ======== Include files ======== */ #include #include "sine.h" #include "edma.h" 1.What is #include used for? 2.What do header (.h) files contain? 3.What is the difference between and “.h”? It adds the contents of the header file to your C file at the point of the #include statement. They can contain any C statements. Usually, they contain code that would otherwise need to be entered into every C file. They’re a shortcut.  Angle brackets tell the compiler to look in the specified include path.  Quotes “.h” indicate the file is located in the same location as the file which includes it.

24 Including Header Files in C /* * ======== Include files ======== */ #include #include "sine.h" #include "edma.h" 1.What is #include used for? 2.What do header (.h) files contain? 3.What is the difference between and “.h”? Technical Training Organization T TO

25 Outline Code Composer Studio (CCS) Projects Build Options Build Configurations Configuration Tool C – Data Types and Header Files  Lab 2 Technical Training Organization T TO

26 Lab Exercises – C67x vs. C64x  Which DSK are you using?  We provide instructions and solutions for both C67x and C64x.  We have tried to call out the few differences in lab steps as explicitly as possible: Technical Training Organization T TO

27 Lab 2 – Creating/Graphing a Sine Wave CPU buffer  Create and build a project  Examine variables, memory, code  Run, halt, step, breakpoint your program  Graph results in memory (to see the sine wave) Introduction to Code Composer Studio (CCS) Technical Training Organization T TO

28 Creating a Sine Wave t A sine.c Generates a value for each output sample float y[3]= {0, 0. 02, 0}; float A = 1.9993146; short sineGen() { y[0] = y[1] * A - y[2]; y[2] = y[1]; y[1] = y[0]; return((short)(28000*y[0]); } Technical Training Organization T TO

29 Lab 2 Debrief 1. What differences are there in Lab2 between the C6713 and C6416 solutions? 2. What do we need CCS Setup for? 3. Did you find the “clearArrays” GEL menu command useful? Technical Training Organization T TO

30 Optional Exercises  Lab2a- Customize CCS  Lab2b- Using GEL Scripts  Lab2d- Float vs Fixed Point Technical Training Organization T TO

31 Lab 2c: Using Printf #include short func1(short *m, short count); short a[4] = {40,39,38,37}; int y = 0; main() { y = function(); printf("y = %x hex\n", y); } 1. 2. Technical Training Organization T TO

32 Summary: CCS Automation  GEL Scripting  Command Window  CCS Scripting  TCONF Scripting Technical Training Organization T TO

33 GEL Scripting GEL:General Extension Language  C style syntax  Large number of debugger commands as GEL functions  Write your own functions  Create GEL menu items GEL:General Extension Language  C style syntax  Large number of debugger commands as GEL functions  Write your own functions  Create GEL menu items Technical Training Organization T TO

34 Command Window Some frequently used commands:  load  reload  reset  restart  ba  wa  help  dlog,a  dlogclose  alias...  take  run  go  step  cstep  halt Technical Training Organization T TO

35 CCS Scripting  Debug using VB Script or Perl  Using CCS Scripting, a simple script can:  Start CCS  Load a file  Read/write memory  Set/clear breakpoints  Run, and perform other basic debug functions  Debug using VB Script or Perl  Using CCS Scripting, a simple script can:  Start CCS  Load a file  Read/write memory  Set/clear breakpoints  Run, and perform other basic debug functions

36 TCONF Scripting (CDB vs. TCF) Tconf Script (.tcf) /* generate cfg files (and CDB file) */ prog.gen(); Textual way to create and configure CDB files Runs on both PC and Unix Create #include type files (.tci) More flexible than Config Tool Textual way to create and configure CDB files Runs on both PC and Unix Create #include type files (.tci) More flexible than Config Tool /* load platform */ utils.loadPlatform(“ti.platforms.dsk6416”); config.board("dsk6416").cpu("cpu0").clockOscillator = 600.0; /* make all prog objects JavaScript global vars */ utils.getProgObjs(prog); /* load platform */ utils.loadPlatform(“ti.platforms.dsk6416”); config.board("dsk6416").cpu("cpu0").clockOscillator = 600.0; /* make all prog objects JavaScript global vars */ utils.getProgObjs(prog); /* Create Memory Object */ var myMem = MEM.create("myMem"); myMem.base = 0x00000000; myMem.len = 0x00100000; myMem.space = “data"; /* Create Memory Object */ var myMem = MEM.create("myMem"); myMem.base = 0x00000000; myMem.len = 0x00100000; myMem.space = “data"; Technical Training Organization T TO

37 ti Technical Training Organization


Download ppt "Using Code Composer Studio Chapter 2 C6000 Integration Workshop Copyright © 2005 Texas Instruments. All rights reserved. Technical Training Organization."

Similar presentations


Ads by Google