Lecture 3
Code Composer Studio and the DSK6416
2
Learning Objectives
• Introduction to Code Composer Studio (CCS).
• Installation and setup of CCS.
• Introduction to the DSK.
• Laboratory.
3
Code Composer Studio
• The Code Composer Studio (CCS) application provides an integrated environment with the following capabilities:
– Integrated development environment with an editor, debugger, project manager, profiler, etc.
– ‘C/C++’ compiler, assembly optimiser and linker (code generation tools).
– Simulator.
– Real-time operating system (DSP/BIOS™).
– Real-Time Data Exchange (RTDX™) between the Host and
Target.
– Real-time analysis and data visualization.
4
CCS Installation and Setup
(A) Insert CD and Install the CCS Software.
(B) Connect DSK to Power and USB and Run CCS Setup
(do not remove CD):
– Start CCS setup utility by using the following desktop icon:
– Alternatively:
• Windows Start Menu -> Programs -> Texas Instruments -> Code
Composer Studio 3.1 (‘C6000) -> Setup Code Composer Studio 3.1
• Run cc_setup.exe located in: c:\CCStudio_v3.1\cc\bin\
5
CCS Installation and Setup
(C) After Installation you should see the following icons:
CCS Installation and Setup
• You should now see a screen similar to this:
6
Note:
If you don’t see the Import Configuration dialog box you should open it from the menu using: File: Import.
7
CCS Installation and Setup
• You can clear the previous configuration by selecting the configuration you wish to clear and clicking the clear button.
• Next select a new configuration that you would like to add:
– Select the C6416DSK Port x y Mode.
– The port number, x, and port mode, y, depend on your PC setup.
CCS Installation and Setup
8
• Finally save and quit the import configuration dialog box.
9
Testing Your Connection
• If you want to test your DSK and USB connection you can launch the C6416 DSK Diagnostic Utility from the icon on your desktop.
• From the diagnostic utility, press the start button to run the diagnostics. In approximately 30 seconds all the onscreen test indicators should turn green.
10
Testing Your Connection
11
CCS Setup - Simulator
12
CCS Setup - Simulator
13
CCS Setup - DSK
14
Using CCS
• Start CCS by either:
– Using the desktop icon:
– Start -> Programs -> Texas Instruments -> Code Composer
Studio 2 -> Code Composer Studio.
– Run cc_app.exe in c:\CCStudio_v3.1\cc\bin\
15
Troubleshooting
• If the following window appears on your screen then:
– Check that the DSK is connected properly and powered up.
– Check if the port address and mode is correct
16
Starting CCS
17
Connecting DSK Board to CCS Studio
Software: (1) DSK Help
18
Software: (2) PC DSK Communications
CCS uses parallel port to control DSP via JTAG port
You can use full TI eXtended Dev System (XDS) via 14 pin header connector
Communicate from Windows program (C++, VB) via parallel port using Win32 DLL
Use HPI via Win32 DLL
JTAG
JTAG
Emulation
Port
19
Note: You should not use the parallel port for simultaneous emulation and HPI connection.
20
Software: (3) PC DSK Communications
CCS uses USB to control DSP via JTAG port
You can use RTDX
Communicate from MATLAB (SIMULINK)
Use USB
JTAG
Note: Limited data rate up to 2MB/Sec.
JTAG
Emulation
Port
21
Software: (4) PC DSK Communications
• Win32 API functions for Host to DSK communications: dsk6x_open( ) dsk6x_close( ) dsk6x_reset_board( ) dsk6x_reset_dsp( ) dsk6x_coff_load( ) dsk6x_hpi_open( ) dsk6x_hpi_close( ) dsk6x_hpi_read( ) dsk6x_hpi_write( ) dsk6x_generate_int( )
Open a connection to the DSK
Close a connection to the DSK
Reset the entire DSK board
Reset only the DSP on the DSK
Load a COFF image to DSP memory
Open the HPI for the DSP
Close the HPI for the DSP
Read DSP memory via the HPI
Write to DSP memory via the HPI
Generate a DSP interrupt
22
Software (5):
• Intuitive organization
– Drag & drop
– Fast access
– Easy file manipulation
• Graphically configure build options
– Saved with each project
23
Software:
Code Composer Studio allows you to edit C and assembly source code together.
The integrated editor provides support for the following activities: o Highlight of keywords, comments, and strings in color o Mark C blocks in parentheses and braces, parenthesis or brace matching o File Find and replace, and quick search o Context-sensitive help o Custom key commands
24
Software:
25
Software:
• Debugging is optimized for DSP
– C expression based conditional breakpoints
– Advanced breakpoints
– View source and dis-assembly simultaneously
• C and Assembly debugging
• Advanced Watch Window
• Multi-processor debug
– Global breakpoints
– Synchronized control over groups
26
Software:
• A scalable real-time kernel for applications
– Real-time scheduling and synchronization
– Host-to-target communication
– Real-time instrumentation
•
DSP/BIOS provides
– Preemptive multi-threading, hardware abstraction, real-time analysis, and configuration tools
• Packaged as a set of modules that can be linked into an application
•
Integrated with CCS TM , requires no runtime fees, and is fully supported by TI
•
Supports the TMS320C6000 DSP platform
• DSP/BIOS Users’ Guide SPRU303B.PDF
27
Software:
1.
Chip Support Library (CSL)
2.
Board Support Library (BSL)
– DSK version
– EVM version
3.
DSPLIB
– C62x version
– C64x version
4.
Image/Video Library (IMGLIB)
– C62x version
– C64x version
28
Software:
• Provides a C-language interface for configuring and controlling on-chip peripherals.
• It consists of discrete modules that are built and archived into a library file.
• Each module relates to a single peripheral with the exception of several modules that provide general programming sup-port, such as the interrupt request (IRQ) module which contains APIs for interrupt management, and the CHIP module which allows the global setting of the chip.
• SPRU401.PDF
29
Software:
30
Software:
• BSL is a set of APIs used to configure and control all on-board devices
• To make it easier for developers by eliminating much of the tedious grunt-work usually needed to get algorithms up and running in a real system
31
TMS320C6416 DSP Starter Kit (DSK)
32
Kit Contents
Line Out
Mic In Line In Headphones Expansion CPU
Codec
33
Supply +5V USB JTAG LEDs
Switches
Reset
Sw3
RAM
34
Headphones
Typical C6416 DSK Setup
USB to PC to +5V
Microphone
35
DSK6416 Block Diagram
36
'C6416 DSK Block Diagram
Program
Cache
CPU
Data
Cache
CE0
CPLD
Daughter Card
CE2
CE1
L2 RAM
Prog/Data
EMIF
B
Flash ROM
(512 kB)
Room for
Expansion
(1 MB)
EMIF
A
CE0
(16 MB)
CE3
DSK uses both EMIFs (A and B)
EMIFA
CE0 for SDRAM
CE2 and CE3 pinned-out to daughter card connector
EMIFB
CE1 for Flash Memory and CPLD
(switches, LED’s, etc.)
37
0000_0000
C6416 DSK Memory Map
TMS320C6416 C6416 DSK
Internal RAM: 1 MB Internal RAM: 1MB
0010_0000
Internal Peripherals or reserved
6000_0000
EMIFB
CE0
: 64 MB
6400_0000
EMIFB
CE1
: 64 MB
6800_0000
EMIFB
CE2
: 64 MB
6C00_0000
EMIFB
CE3
: 64 MB
Internal Peripherals or reserved
CPLD
Flash: 512 kB
8000_0000
EMIFA
CE0
: 256 MB
9000_0000
EMIFA
CE1
: 256 MB
A000_0000
EMIFA
CE2
: 256 MB
B000_0000
EMIFA
CE3
: 256 MB
SDRAM: 16 MB
Daughter Card
CPLD:
LED’s
DIP Switches
DSK status
DSK rev#
Daughter Card
38
Switch SW3
39
40
Laboratory Exercise: DSK Hardware Setup
(1) Connect the following cables:
– USB.
–
Audio cables.
(2) Connect the power and observe the Power On Self-Test (POST) (Refer to
Slide 15).
(3) A . If using the DSK6416
Configure and test the DSK with the utilities shown below:
41
Laboratory exercise: DSK Hardware Setup
Notes:
• The SDRAM may take a while due to the large amount of SDRAM on the ‘C6416 DSK.
• The CODEC test performs two operations: (1) a 1kHz tone output, and (2) an audio input to output loopback. You must have a speaker connected to the the output jack to hear the test.
• If the confidence test fails:
(1) Remove the power and parallel cable from the DSK.
(2) Reset your PC.
(3) Reconnect the power and the parallel cable.
(4) Invoke CCS.
42
Laboratory Exercise (hello64): Using CCS
• First Project
• Hello World!
#include <stdio.h> void main()
{ int nTarget = 0; printf("Hello, CCStudio Scripting World!\n"); nTarget = 0x64; printf("We are a C%x!\n", nTarget);
}
(1) Create a working directory and copy the following files from \Lab03\Code\Hello64:
(a) rts6400.lib
(b)
(c)
(d) hello.c
lnk.cmd
vectors.asm
(2) Create a new project (Hello64):
(a) Start CCS.
(b) Create a new project as shown on the following slides.
43
Laboratory Exercise (dotp64): Using CCS
Implement: y
i
N
1
0 a i x i with: a i x i
= {40, 39, …, 1}
= {1, 2, …, 40}
(1) Create a working directory and copy the following files from
\Lab03\Code\Dotp64:
(a) rts6400.lib
(b) dotp.c
(c) lnk.cmd
(d) vectors.asm
(2) Create a new project (Dotp64):
(a) Start CCS.
(b) Create a new project as shown on the following slide.
Laboratory Exercise (dotp64): Using CCS
44
Note: When you type in the “Project Name” a directory is created in the “Location”.
Delete this if not required.
45
Laboratory Exercise (dotp64): Using CCS
(3) Add files to the project (dotp.c, lnk.cmd, vectors.asm, rts6400.lib).
46
Laboratory Exercise (dotp64): Using CCS
(4) Change the build options (compile and link):
47
Laboratory Exercise (dotp64): Using CCS
(4) Change the build options (compile and link):
Laboratory Exercise (dotp64): Using CCS
( 5) Build the output program (dotp64.out):
(a)
(b)
Build the project by:
(i) Clicking the Rebuild All toolbar icon.
(ii) Selecting Rebuild All in the project menu.
Verify that the build output window is complete with “0 errors, 0 warnings”:
48
49
Laboratory Exercise (dotp64): Using CCS
(6) Load the output file Dotp64.out into DSP memory:
(a) The program will be automatically loaded after each project build if the “Program Load after Build” option is selected as shown below:
50
Laboratory Exercise (dotp64): Using CCS
(6) Load the output file dotp64.out into DSP memory:
(b) Load the dotp64.out by selecting File:Load
Program as shown below:
Laboratory Exercise (dotp64): Using CCS
(7) Debug and run code:
(a)
(b)
Go to the beginning of the program, that is main() by selecting Debug:Go Main.
Watch variables:
(i) Select the variable (to be watched) from the dotp64.c file, right click and select
“Add To Watch Window”. If the variable is y for instance, the following window will be shown.
51
(ii) To add another variable to the watch select it and then drag and drop it on to the window.
52
Laboratory Exercise (dotp64): Using CCS
(7) Debug and run code:
(c) CCS will automatically add the local variables:
53
Laboratory Exercise (dotp64): Using CCS
(7) Debug and run code:
(d) You can run or step through the code by using the various icons on the toolbar or use the Debug menu:
54
Laboratory Exercise (dotp64): Using CCS
(e) Stop the processor from running and watch the variable y: y = 0x2cdb or 11480
(8) Benchmarking and profiling code:
(a)
(b) by
Stop the processor, reload the code or select then select Debug : Go Main .
Debug : Restart
Open a new profiling session and select “ Profile All Functions ” clicking the following toolbar button:
55
Laboratory Exercise (dotp64): Using CCS
(8) Benchmarking and profiling code:
(c) Expand the dotp.c as shown below:
56
Laboratory Exercise (dotp64): Using CCS
(8) Benchmarking and profiling code:
(d) Add a breakpoint at “for(;;);”. This can be
(i) Click the cursor on the highlighted line below.
(ii) Click the “Add Breakpoint” toolbar button: done by:
57
Laboratory Exercise (dotp64): Using CCS
(8) Benchmarking and profiling code:
(e) Run the program and examine the profile window:
58
• Profiling allows you to obtain an average, maximum, and minimum cycle count for blocks of code. Multiple functions, loops, and ranges can all be profiled at the same time. Code Composer will provide you with many readings. The figure used in our DSP lab is the 'CPU Cycles: Incl. Max".
• The instructions to set profile points and obtain a cycle count for a piece of code:
– View the profiling windows by selecting Profile->Setup and Profile->Viewer.
– Load the program onto the DSP.
– Click on the Stopwatch symbol in the Profiling Setup window on the right to enable profiling.
– Select the 'Ranges' tab in the Profiling Setup window.
– Highlight the range of code you would like to obtain the cycle count for and drag it to the 'Ranges' menu. (Another way to do the same is to highlight those lines, right click, and select Profile -> Range.)
– Run the code for a while for Code Composer to collect data.
– The default stats shown do not include what we are looking for. In the profiler viewer window, right click on the address range you would like stats for and select
'Columns and Rows Setting'. Different counts can be shown, but 'CPU Cycles:
Incl. Max.' is probably the most important.
59
• Open Project: Lab1
• (Lab03\Project\Lab1\)
• Run
• Use Graphics
60
• Watch Value it’s nice, but
• Graphic Display is better!
61
CCS and DSK
• CCS Overview:
– \Links\spru327c.pdf
Chapter 3
Code Composer Studio and the DSK
- End -