C 6000 Teaching Materials Code Composer Studio V

  • Slides: 50
Download presentation
C 6000 Teaching Materials Code Composer Studio V 4 Content developed in partnership with

C 6000 Teaching Materials Code Composer Studio V 4 Content developed in partnership with Tel-Aviv University © 2010 Texas Instruments Inc, 0 -1

Agenda • Introduction of CCS 4 • Starting a new project © 2011 Texas

Agenda • Introduction of CCS 4 • Starting a new project © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 2

© 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 3

© 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 3

Overview • CCS 4 is the integrated development environment (IDE) for TI’s Digital Signal

Overview • CCS 4 is the integrated development environment (IDE) for TI’s Digital Signal Processors (DSP), microcontrollers and application processors. • Source code editor • Project environment • Compiler • Debugger –Software (simulator) –Hardware (emulator) © 2011 Texas Instruments Inc, C 6000 Teaching Materials • Graph windows • Image visualization • Profiler • Scripting capability • Flash programmer Slide 4

IDE: C/C++ Perspective bar Project view Text editor Outline view Fast view bar Build

IDE: C/C++ Perspective bar Project view Text editor Outline view Fast view bar Build view © 2011 Texas Instruments Inc, Problems view C 6000 Teaching Materials Slide 5

IDE: Debug Perspective Register view / watch view / etc Debug view Source code

IDE: Debug Perspective Register view / watch view / etc Debug view Source code editor Graph window © 2011 Texas Instruments Inc, C 6000 Teaching Materials Memory view Slide 6

Agenda • Introduction of CCS 4 • Starting a new project • Compiling a

Agenda • Introduction of CCS 4 • Starting a new project • Compiling a project © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 7

Starting a project § Select the workspace § Defines the location of your project

Starting a project § Select the workspace § Defines the location of your project § Automatically saved on close § Contains: ü Project settings ü Macros ü Views on close ü Other custom settings specific for YOUR personal computer § Cannot be zipped and forwarded to others § Can be changed later on © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 8

New Project Wizard • New projects are created by using the “New Project Wizard:

New Project Wizard • New projects are created by using the “New Project Wizard: © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 9

New Project Wizard • This will allow to select: –The project type » Processor

New Project Wizard • This will allow to select: –The project type » Processor used: e. g. C 6000, C 2000, etc… –The configurations » Default are • Debug • Release –Referenced projects (if any) –The used C/C++ indexer » Full » Fast » None –Output type –A default linker command file –Various project settings » Device variant » Code Generation tools version » Runtime Support Library » Target content » etc © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 10

Adding Files • There are two ways to add files to the project: –

Adding Files • There are two ways to add files to the project: – Create a new source file – Drop existing source files in the project directory » All files in the directory of a project are automatically added to the project. » Take care that you are not adding unwanted content! © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 11

C Language Symbols • Files are automatically parsed and variables, declaration and definitions displayed.

C Language Symbols • Files are automatically parsed and variables, declaration and definitions displayed. These can be accessed from the outline view or from the project view © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 12

Importing an Existing Project • Accessed from • You can import a single project

Importing an Existing Project • Accessed from • You can import a single project or multiple projects in one step: This will also give you the opportunity to copy the projects into your workspace © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 13

Importing a CCS 3. 3 Project • The CCS 3. 3 import wizard is

Importing a CCS 3. 3 Project • The CCS 3. 3 import wizard is called from: • This will help you to import the existing project, but manual rework might still be required – Change or add path names for library functions – Change of. cdb files • Note: CCS 3. 1 and CCS 2. x projects cannot be imported automatically. They need to be converted to a CCS 3. 3 project first (using CCS 3. 3) © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 14

Agenda • Introduction of CCS 4 • Starting a new project • Building a

Agenda • Introduction of CCS 4 • Starting a new project • Building a project © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 15

Compile Flow • You can either write standard assembly directly, or it can be

Compile Flow • You can either write standard assembly directly, or it can be created by the compiler. • Object files, created by the assembler, are linked together to create the executable output file of the processor. The map file is an output report of the linker. • The. out file can be loaded into your system by the debugger portion of CCS. © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 16

Build Configurations • By default, CCS includes two sets of build options: – Debug

Build Configurations • By default, CCS includes two sets of build options: – Debug – Release • Users can create any number of additional build configurations. • Users can modify the settings of any pre-defined build option © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 17

Build Options • Build options are controlled by the “Properties” dialog of the project:

Build Options • Build options are controlled by the “Properties” dialog of the project: © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 18

Compiler: Basic Options © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 19

Compiler: Basic Options © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 19

Compiler: Include Options © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 20

Compiler: Include Options © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 20

Compiler: Runtime Model Options © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide

Compiler: Runtime Model Options © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 21

Compiler: Optimizations © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 22

Compiler: Optimizations © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 22

Linker: Basic Options Note: The stack size field is empty by default, causing a

Linker: Basic Options Note: The stack size field is empty by default, causing a linker warning during build (but the default size of 0 x 400 will be used). Also, the default linker command file does not include the stack settings, so you need to set it here! © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 23

Linker: File Search Path © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide

Linker: File Search Path © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 24

Linker: Linker Output © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 25

Linker: Linker Output © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 25

Linker: Runtime Environment © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 26

Linker: Runtime Environment © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 26

CCS Build: General © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 27

CCS Build: General © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 27

Finally, the Actual Build • There a couple of ways to build the project:

Finally, the Actual Build • There a couple of ways to build the project: – Use the menu bar: – Use the drop-down menu: – Use the keyboard –shortcuts CTRL+SHIFT+P or ALT+SHIFT+P © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 28

Build: The Differences • Build Active Project – Builds only the active project –

Build: The Differences • Build Active Project – Builds only the active project – Compiles only new or changed files (incremental build) • Rebuild Active Project – Builds only the active project – Compiles all files, independently of their state • Build All – Builds all projects in the workspace • Rebuild All – Rebuilds all projects in the workspace • Build Project – The same as “Build Active Project” • Build Working Set – Build a pre-defined set of projects • Clean – Cleans a defined set of projects • Build Automatically – Builds automatically once a changed file is saved © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 29

Build: One Last Way • Clicking will build the active project, switch to the

Build: One Last Way • Clicking will build the active project, switch to the debug perspective and load the executable. • This will work only if a valid target configuration is loaded. • If CCS is already in the debug perspective, the project will be recompiled and the executable loaded. © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 30

CCS Debug Options © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 31

CCS Debug Options © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 31

Debugging a Project • Once all source files are added to the project and

Debugging a Project • Once all source files are added to the project and all project settings are made, the project can be debugged. • But, before we can do that, a target description (aka a target configuration is needed( © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 32

Creating the Target Configuration © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide

Creating the Target Configuration © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 33

Debugging a Program Run (F 8) / Run Low Power / Free Run Halt

Debugging a Program Run (F 8) / Run Low Power / Free Run Halt program Terminate debug session. This will switch back to the C/C++ perspective (CTRL+ALT+T) Step into (F 5) Step over (F 6) Assembly step into Assembly step over Step return (F 7) Reset CPU (ALT+R) / Reset Emulator Restart (ALT+F 8) © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 34

IDE: Debug Perspective Register view / watch view / etc Debug view Source code

IDE: Debug Perspective Register view / watch view / etc Debug view Source code editor Graph window © 2011 Texas Instruments Inc, C 6000 Teaching Materials Memory view Slide 35

Breakpoints • Breakpoints can be set in two ways: –Double clicking in the grey

Breakpoints • Breakpoints can be set in two ways: –Double clicking in the grey bar at the left side of the file view –Right-clicking on the line where the breakpoint should be located and selecting “New Breakpoint” • Breakpoints can be viewed and manipulated (and if needed added) in the “Breakpoint View” • Breakpoints can be: –Software –Hardware –Profile related (pause, resume, terminate) © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 36

Disassembly View • Opened by selecting “View Disassembly • Shows: –Address –Opcode –Disassembly •

Disassembly View • Opened by selecting “View Disassembly • Shows: –Address –Opcode –Disassembly • Can be customized • Can be shown –Always –Only if no C-source code is available • Can also be used to set breakpoints © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 37

Watch Views • Local variables are displayed automatically • Other watch expressions can be

Watch Views • Local variables are displayed automatically • Other watch expressions can be added easily • Expressions can be a global or a local variable or logical / arithmetic expressions using them (or use it as a quick calculator) • Additional watch views can be added and the display can be customized • Variables can also be watched in Q format © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 38

Memory View • This view can be opened by “View Memory” • Displays the

Memory View • This view can be opened by “View Memory” • Displays the contents of the memory at a certain address –If variables are used to set the address the ‘&’ operator needs to be used unless the variable is an array. • Memory contents can be displayed in several ways: –Floating point –Integer –Hexadecimal (TI and C style) –Binary –Character – 8/16/32/40/64 bit • The memory view also allows to save, load and fill memory • Several memory views can be open simultaneously © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 39

Register View • Opened from “View Registers” • One window will display all the

Register View • Opened from “View Registers” • One window will display all the register sets • Multiple register windows can be opened at any time • Registers can be manipulated from this view • Two different views are available: –Tree (default) –Grid (with a selectable number of grids) • Registers can be copied individually or as complete set © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 40

Graph View • Can be accessed from Tools Graph • Time-Domain –Single / Dual

Graph View • Can be accessed from Tools Graph • Time-Domain –Single / Dual • FFT: –Magnitude / Magnitude Phase –Complex –Waterfall • Different update modes: –Manual –Refresh on halt –Continuous refresh • Display can be customized –Line style –Grid –etc. • If in continuous refresh mode, the update interval can be set in the local menu of the Watch View • Data can be exported © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 41

Image Analyzer • Can be accessed from Tools Image Analyzer • Image Format –RGB

Image Analyzer • Can be accessed from Tools Image Analyzer • Image Format –RGB –Bayer –YUV –Bitonal © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 42

Debugging Options • Under “Tools Debugger Generic Options other stuff can be configured as

Debugging Options • Under “Tools Debugger Generic Options other stuff can be configured as well: – Behavior of breakpoints if another program is loaded – Autorun: Where the program should run to after a load or a reset – Different launch options: Connect to target, restore breakpoints from previous session (can be dangerous!) etc – Display of processes etc – Interrupt handling during assembly debugging. © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 43

Static System Concepts What is a static system? • All components remain during the

Static System Concepts What is a static system? • All components remain during the life of a system (no create/delete) • No “heap” or use of C’s malloc()/free() functions • Opposite is a “dynamic” system Benefits • Reduced code size – no create/delete or heap mgmt (just declarations) • Reduced MIPS for environment creation • Deterministic – malloc() is non-deterministic • Optimal when most resources are required concurrently Limitations • Fixed allocation of memory usage (cannot create new components at runtime) Bottom Line • Pick static or dynamic based on system requirements – both are supported by BIOS © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 44

Sections Global Vars (. bss) Init Vals (. cinit) short m short x short

Sections Global Vars (. bss) Init Vals (. cinit) short m short x short b = = = 10; 2; 5; Every C program consists of different parts called Sections All default section names begin with ". " main() { short y = 0; Local Vars (. stack) y = m * x; y = y + b; Code (. text) printf("y=%d", y); } © 2011 Texas Instruments Inc, Std C I/O (. cio) C 6000 Teaching Materials Let’s review the list of compiler sections… Slide 45

Compiler's Section Name. text Description Memory Type Code initialized . switch Tables for switch

Compiler's Section Name. text Description Memory Type Code initialized . switch Tables for switch instructions initialized . const Global and static string literals initialized . cinit Initial values for global/static vars initialized . pinit Initial values for C++ constructors initialized . bss Global and static variables uninitialized . far Aggregates (arrays & structures) uninitialized Stack (local variables) uninitialized Memory for malloc fcns (heap) uninitialized Buffers for stdio functions uninitialized . stack. sysmem. cio © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 46

Placing Sections In Memory. text. bss. far. cinit. cio. stack 1180_0000 128 K IRAM

Placing Sections In Memory. text. bss. far. cinit. cio. stack 1180_0000 128 K IRAM 6400_0000 4 MB FLASH C 000_0000 512 MB DDR 2 How do you define the memory areas (e. g. IRAM, FLASH, DDR 2) ? How do you place the sections into these memory areas ? © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 47

Linking H/W Memory Description • Name, location, length • Ex: IRAM, origin = …,

Linking H/W Memory Description • Name, location, length • Ex: IRAM, origin = …, len = … Linker. cmd S/W Sections • Name, memory area to link to • Ex: . far → IRAM . obj © 2011 Texas Instruments Inc, Linker . map C 6000 Teaching Materials . out Slide 48

Linker Command File LIBRARIES -l rts 6400. lib -stack 0 x 800 -heap 0

Linker Command File LIBRARIES -l rts 6400. lib -stack 0 x 800 -heap 0 x 800 STACK/HEAP SIZES MEMORY { IRAM: origin = 0 x 11800000, FLASH: origin = 0 x 64000000, DDR: origin = 0 x. C 0000000, } SECTIONS {. bss {}. far {}. text {}. cinit {} } © 2011 Texas Instruments Inc, > > IRAM DDR FLASH MEMORY AREAS len = 0 x 400000 len = 0 x 8000000 CODE/DATA SECTIONS C 6000 Teaching Materials Slide 49

User Defined Sections Users can place their code/data in default C Sections (e. g.

User Defined Sections Users can place their code/data in default C Sections (e. g. . text, . far, . bss) or … Create User-Defined sections to link critical code/data to specific memory locations (vs. being lumped in with. far, e. g. ) user. c #pragma DATA_SECTION(x, “. far: mysect”); int x[1024]; #pragma CODE_SECTION(fir, “. text: myfir”); void myfir (short * Src, short * Dst, short len) { user. cmd SECTIONS {. far: mysect : > IRAM . text: myfir : > FAST_RAM } © 2011 Texas Instruments Inc, C 6000 Teaching Materials Slide 50