Code Composer Studio Getting Started Guide

Code Composer Studio
Getting Started Guide
Literature Number: SPRU509C
November 2001
Printed on Recycled Paper
IMPORTANT NOTICE
Texas Instruments Incorporated and its subsidiaries (TI) reserve the right to make corrections, modifications,
enhancements, improvements, and other changes to its products and services at any time and to discontinue
any product or service without notice. Customers should obtain the latest relevant information before placing
orders and should verify that such information is current and complete. All products are sold subject to TI’s terms
and conditions of sale supplied at the time of order acknowledgment.
TI warrants performance of its hardware products to the specifications applicable at the time of sale in
accordance with TI’s standard warranty. Testing and other quality control techniques are used to the extent TI
deems necessary to support this warranty. Except where mandated by government requirements, testing of all
parameters of each product is not necessarily performed.
TI assumes no liability for applications assistance or customer product design. Customers are responsible for
their products and applications using TI components. To minimize the risks associated with customer products
and applications, customers should provide adequate design and operating safeguards.
TI does not warrant or represent that any license, either express or implied, is granted under any TI patent right,
copyright, mask work right, or other TI intellectual property right relating to any combination, machine, or process
in which TI products or services are used. Information published by TI regarding third–party products or services
does not constitute a license from TI to use such products or services or a warranty or endorsement thereof.
Use of such information may require a license from a third party under the patents or other intellectual property
of the third party, or a license from TI under the patents or other intellectual property of TI.
Reproduction of information in TI data books or data sheets is permissible only if reproduction is without
alteration and is accompanied by all associated warranties, conditions, limitations, and notices. Reproduction
of this information with alteration is an unfair and deceptive business practice. TI is not responsible or liable for
such altered documentation.
Resale of TI products or services with statements different from or beyond the parameters stated by TI for that
product or service voids all express and any implied warranties for the associated TI product or service and
is an unfair and deceptive business practice. TI is not responsible or liable for any such statements.
Mailing Address:
Texas Instruments
Post Office Box 655303
Dallas, Texas 75265
Copyright  2001, Texas Instruments Incorporated
Preface
Read This First
About This Manual
It is extremely important that you read the first two chapters in this guide to get
started with Code Composer Studio  (CCStudio) IDE. The remaining chapters contain information that can be useful to you, depending on your needs
and the tools you are using. To determine whether you can utilize the features
in these chapters, please review the online help provided with CCStudio.
How to Use This Manual
This document contains the following chapters:
Chapter
Title
Description
1
Getting Started with Code Composer Studio IDE
Walks you through the steps of
setting up the CCStudio IDE;
shows you how to access documentation.
2
Code Composer Studio Project
Management and Editing Tools
Provides instructions on the basic functionality of CCStudio IDE.
3
Code Composer Studio Code
Generation Tools
Reviews development tools provided with CCStudio IDE.
4
Code Composer Studio Debug
Tools
Reviews the available debug
tools and the device generations
to which they apply.
5
Code Composer Studio Optimization Tools
Provides information on profiling
code and the ‘C6000 PBC.
6
Code Composer Studio Real
Time Components
Introduces the real-time components featured in CCStudio IDE.
7
TI DSP Foundation Software
Provides and overview of the
features and architecture of CSL,
DSPLIB, and IMGLIB.
8
TMS320 DSP Algorithm Standard
Reviews the TMS320 DSP Algorithm Standard, and explains the
resources available to algorithm
writers.
Read This First
iii
Notational Conventions
Notational Conventions
This document uses the following conventions.
- Program listings, program examples, and interactive displays are shown
in a special typeface similar to a typewriter’s. Examples use a bold
version of the special typeface for emphasis; interactive displays use a
bold version of the special typeface to distinguish commands that you
enter from items that the system displays (such as prompts, command
output, error messages, etc.).
Here is a sample program listing:
0011
0012
0013
0014
0005
0005
0005
0006
0001
0003
0006
.field
.field
.field
.even
1, 2
3, 4
6, 3
Here is an example of a system prompt and a command that you might
enter:
C:
csr –a /user/ti/simuboard/utilities
Related Documentation From Texas Instruments
For additional information on your target processor and related support tools,
see the online manuals provided with the CCStudio IDE.
To access the online manuals:
Help→CCStudio Documentation→Manuals
Related Documentation
You can use the following books to supplement this user’s guide:
American National Standard for Information Systems-Programming
Language C X3.159-1989, American National Standards Institute (ANSI
standard for C)
The C Programming Language (second edition), by Brian W. Kernighan
and Dennis M. Ritchie, published by Prentice-Hall, Englewood Cliffs, New
Jersey, 1988
Programming in C, Kochan, Steve G., Hayden Book Company
iv
Related Documentation From Texas Instruments
Trademarks
Code Composer Studio, DSP/BIOS, Probe Point(s), RTDX, TMS320C6000,
and TMS320C5000 are trademarks of Texas Instruments Incorporated.
Pentium is a registered trademark of Intel Corporation.
Windows and Windows NT are registered trademarks of Microsoft
Corporation.
All trademarks are the property of their respective owners.
To Help Us Improve Our Documentation . . .
If you would like to make suggestions or report errors in documentation, please
email us. Be sure to include the following information that is on the title page:
the full title of the book, the publication date, and the literature number.
Email:
support@ti.com
Read This First
v
Contents
Contents
1
Getting Started with Code Composer Studio IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
Instructions on setting up the CCStudio IDE and tools that aid you in using CCStudio IDE, such
as documentation.
1.1
1.2
1.3
1.4
1.5
1.6
2
Development Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
Creating a System Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
Getting Started with CCStudio Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7
Accessing CCStudio Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8
Accessing Documentation from the Start Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8
Update Advisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9
To Register Update Advisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9
To Check for Tool Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9
To Automatically Check for Tool Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-10
To Uninstall the Updates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-10
Component Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-11
Opening Component Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12
Multiple Versions of the CCStudio IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-13
Code Composer Studio Project Management and Editing Tools . . . . . . . . . . . . . . . . . . . . 2-1
Instructions on using the basic functionality of the CCStudio IDE.
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
Creating a New Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
Adding Files to a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Removing a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
Using Source Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
Building and Running the Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8
Selecting a Project Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10
Changing the Active Project Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10
Adding a New Project Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11
Building Projects From the Command Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11
Importing an External Makefile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12
Limitations and Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12
Reviewing Your Source Code Using the Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13
CodeMaestro Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-14
External Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15
vii
Contents
3
Code Composer Studio Code Generation Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
Code Composer Studio Code Generation Tools.
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
4
Code Composer Studio Debug Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-1
Reviews the available debug tools and the device generations to which they apply.
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
4.13
4.14
4.15
4.16
viii
Code Generation Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2
Code Generation Tools and Code Composer Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3
Build Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
Setting Project Level Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5
Seting File-Specific Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5
Compiler Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6
Interfacing with Code Composer Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6
Assembly Language Development Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7
Assembler Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8
Linker Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9
Visual Linker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10
Getting Started with the Visual Linker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10
C/C++ Code Development Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13
Overview of Applicable Debug Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
Introduction to Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3
Software Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4
Hardware Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5
Watch Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6
Probe Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10
Simulator Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14
Emulator Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16
Advanced Event Triggering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-17
Event Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-17
Event Sequencer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-20
Displaying Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-21
Symbol Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-23
General Extension Language (GEL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-24
Command Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-25
Pin Connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-26
Port Connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-27
Data Converter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-29
Open the Data Converter Support Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-29
Configure Your System to Use the Data Converter Plug-in . . . . . . . . . . . . . . . . . . . . . . 4-30
ETM Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-32
Trace Process Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-32
OS Selector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-33
Contents
5
Code Composer Studio Optimization Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1
Reviews optimization tools provided with CCStudio IDE.
5.1
5.2
6
6.2
DSP/BIOS Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2
DSP/BIOS Configuration Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3
Creating DSP/BIOS Configuration Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5
Adding DSP/BIOS Configuration files to your project . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7
DSP/BIOS Real-Time Analysis Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-8
DSP/BIOS Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11
RTDX Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-13
RTDX Data Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14
Configuring RTDX Graphically . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14
Transmit a Single Integer to the Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-18
Transmit Data from the Host to the Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-19
TI DSP Foundation Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-1
An overview of the features and architecture of the Chip Support Library, DSP Image/Video
Processing Library, and DSP Library.
7.1
7.2
7.3
7.4
7.5
7.6
8
5-2
5-4
5-5
5-6
Code Composer Studio Real-time Kernel and Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1
Overview of the real-time components featured in CCStudio IDE.
6.1
7
Profiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Profile Based Compiler (PBC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Enabling Profile Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Building Profile Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CSL Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How the CSL Benefits You . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CSL Graphical Interface Functions Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Header file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Source file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DSPLIB Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How DSPLIB Benefits You . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DSPLIB Functions Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IMGLIB Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
How IMGLIB Benefits You . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IMGLIB Functions Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7-2
7-2
7-3
7-6
7-7
7-8
7-8
7-8
7-9
7-9
7-9
TMS320 DSP Algorithm Standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1
Overview of the TMS320 DSP Algorithm Standard and its association with CCStudio IDE.
8.1
8.2
TMS320 DSP Algorithm Standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2
Resources for Algorithm Writers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3
Contents
ix
Figures
Figures
1–1
1–2
2–1
2–2
2–3
2–4
2–5
2–6
2–7
3–1
3–2
4–1
4–2
4–3
4–4
4–5
4–6
5–1
6–1
6–2
6–3
6–4
6–5
6–6
6–7
6–8
6–9
x
Simplified CCStudio Development Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
Component Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12
CCStudio IDE Basic Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
Project View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
Source Control Pop-Up Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7
Changing Active Project Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10
View Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-13
CodeMaestro Settings Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15
External Editor Icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16
Code Development Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2
Build Options Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
Watch Window Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6
Watch Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6
Emulator Analysis Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16
Symbol Browser Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-23
Command Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-25
Data Converter Support Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-29
Finished PBC Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7
DSP/BIOS Configuration Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3
Real-Time Capture and Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-8
DSP/BIOS Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-9
DSP/BIOS Execution Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11
RTDX Data Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14
RTDX Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15
RTDX Diagnostics Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-15
RTDX Config Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-16
RTDX Channel Viewer Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-17
Chapter 1
Getting Started with
Code Composer Studio IDE
This chapter applies to all platforms using Code Composer Studio
(CCStudio) IDE.
This chapter gives you a short overview of the CCStudio development flow,
and then walks you through the steps of setting it up. It also shows you how
to use the CCStudio IDE and access the documentation.
Topic
Page
1.1
Development Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
1.2
Creating a System Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
1.3
Getting Started with CCStudio Tutorial . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7
1.4
Accessing CCStudio Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8
1.5
Update Advisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9
1.6
Component Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-11
1-1
Development Flow
1.1 Development Flow
Understanding the development flow helps you understand how to use the different components of the CCStudio IDE.
The CCStudio IDE extends the basic code generation tools with a set of debugging and real-time analysis capabilities. The CCStudio IDE supports all
phases of the development cycle shown here:
Figure 1–1. Simplified CCStudio Development Flow
Design
conceptual
planning
1-2
Code & build
create project,
write sourcecode,
configuration file
Debug
Syntax checking,
probe points,
logging, etc.
Analyze
real–time
debugging,
statistics, tracing
Creating a System Configuration
1.2 Creating a System Configuration
CCStudio Setup allows you to configure the CCStudio IDE software to work
with different hardware or simulator targets. You can quickly begin working using the default configuration or one of the standard configuration files supplied
with CCStudio IDE. For the C5000 system, the default configuration is the
C55x simulator, and for the C6000 system, the C64x simulator is the default configuration.
CCStudio Setup provides you with the option of creating a configuration using
standard configuration files, or creating a customized configuration using your
own configuration files. For the purposes of this example, the standard configuration files are used. (If you want to create a customized system configuration
file, see the online help and/or the tutorial provided with the CCStudio product.)
To create a system configuration using a standard configuration file:
Step 1: Start CCStudio Setup by double clicking on the Setup CCStudio
desktop icon.
Getting Started with Code Composer Studio IDE
1-3
Creating a System Configuration
Step 2: Click the Clear button in the Import Configuration dialog box to remove any previously defined configuration.
Clear button
removes
previous
configuration
1-4
Creating a System Configuration
Step 3: Click Yes to confirm the Clear command.
Step 4: Select the standard configuration that matches your system from the
list of Available Configurations.
Standard
Configurations
Description of
highlighted
configuration
Read the information displayed in the Configuration Description portion of the dialog box to help you determine if one of the available
configurations matches your system.
If none of the standard configurations adequately describe your system, you must create a customized configuration (see the online help
and/or the tutorial provided with the CCStudio product).
Step 5: Click the Import button to import your selection to the system configuration currently being created in the CCStudio Setup window.
The configuration you selected now displays under the My System
icon in the System Configuration pane of the Setup window.
If your configuration has more than one target, repeat steps 4 and
5 until you have selected a configuration for each board.
Getting Started with Code Composer Studio IDE
1-5
Creating a System Configuration
Step 6: Click the Save and Quit button to save the configuration in the System Registry.
Step 7: Click the Yes button to start the CCStudio IDE when you exit CCStudio Setup.
The CCStudio Setup closes and the CCStudio IDE automatically
opens using the configuration you just created.
You can now start a project in the CCStudio IDE.
See Chapter 2 of this book, or the online help and tutorial provided with the
CCStudio IDE, for information on starting a project.
1-6
Getting Started with CCStudio Tutorial
1.3 Getting Started with CCStudio Tutorial
When you have completed the installation and setup process, run the CCStudio Tutorial. This tutorial familiarizes you with the CCStudio features, including
what is new in this version. Performing this tutorial before you use the CCStudio IDE can help shorten your learning time and provides information on many
fundamental procedures.
To access the CCStudio Tutorial, follow these steps:
1) Start the CCStudio IDE by double-clicking on the “CCS 2” icon located on
the desktop.
2) From the CCStudio Help menu, select Tutorial.
Getting Started with Code Composer Studio IDE
1-7
Accessing CCStudio Documentation
1.4 Accessing CCStudio Documentation
The CCStudio online help provides access to platform-specific
documentation. To open the CCStudio Help, select Help→Contents. The
Welcome page of the CCStudio Help displays. The table below lists some of
the links on the Welcome page that provide important information:
For this information...
click this link.
New features available in CCStudio IDE What’s New
v2
CCStudio IDE v2 release notes
Release Notes
User’s guides, reference guides, and
application reports (in PDF format)
User Manuals
Moving your product from one version
of CCStudio to another
Migration Guide
Use F1 to obtain help on components within the CCStudio interface:
- To obtain the description of an instruction or register while editing your
source code in a CCStudio document window, double-click or click-anddrag to highlight an instruction name or register name, then press F1.
- To obtain the description of a CCStudio window or dialog box, click in the
window or dialog box to make it active, then press F1.
- To obtain the description of a menu bar or toolbar command, pause the
cursor over the command, then press F1.
Accessing Documentation from the Start Menu
To access the customer support guides, license agreement, and the CCStudio
online help:
Step 1: From the Start menu, choose Start → Programs → Texas
Instruments → Code Composer Studio 2 → Documentation.
Step 2: Select the document you want to view.
1-8
Update Advisor
1.5 Update Advisor
The Update Advisor allows you to download updated versions of the CCStudio
IDE and related tools. The Update Advisor accesses the Available Updates
web site. This site displays a list of CCStudio patches, drivers, and tools available for downloading.
To use the Update Advisor, you must have Internet access and a browser
installed on your machine. See the CCStudio IDE Quick Start for complete system requirements.
Note:
You must be registered with TI&ME before you can access the Available Updates web site.
To Register Update Advisor
If you did not register your product during installation, you can access the online registration form from the CCStudio help menu: Help→CCS on the Web→
Register.
Important! The first time you use Update Advisor, your browser may display
the TI&ME web page. To register, follow the directions displayed on the page.
You must register online and have a valid subscription plan in place to receive
downloads through Update Advisor. You receive a 90 day free subscription
service with the CCStudio product. At the end of this period, you must purchase an annual subscription service. Annual subscriptions are only available
for the full CCStudio product.
To Check for Tool Updates
In the CCStudio IDE, select Help→CCS on the Web→Update Advisor.
If you are already registered with TI&ME, and have accepted the cookie necessary for automatic log-in, your browser will go directly to the Available Updates
web site.
To query the Available Updates web site, the Update Advisor passes certain
information from your machine:
-
CCStudio product registration number
CCStudio installation version
a text description of the installed product
the list of installed plug-ins
Getting Started with Code Composer Studio IDE
1-9
Update Advisor
The Available Updates web site will then list any updates appropriate for your
CCStudio installation.
You have the opportunity to just download the updates, or to download and
install them immediately.
You can also configure the Update Advisor to automatically check for updates.
To Automatically Check for Tool Updates
You may check for tool updates at any time, or you can configure the Update
Advisor to automatically check for updates.
Step 1: Select Help→CCS on the Web→Update Setting. The Web Settings
dialog box appears:
Step 2: In the Check for Update field, specify how often the Update Advisor
should check the Available Updates web site.
Step 3: To enable the automatic update feature, click the checkbox to the left
of the “Enable timed check for update upon startup” field.
When this field is enabled, the Update Advisor automatically checks
for web updates according to the schedule specified in step 2.
Step 4: Click OK to save your changes and close the dialog box.
To Uninstall the Updates
Any installed update can be uninstalled to restore the previous version of the
CCStudio IDE.
Note that only the previous version of a tool can be restored. If you install one
update for a tool, and then install a second update for the same tool, the first
update can be restored. The original version of the tool cannot be restored,
even if you uninstall both the second update and the first update.
1-10
Component Manager
1.6 Component Manager
Note:
The Component Manager is an advanced tool use primarily to customize or
modify your installation. Use this tool only to resolve component interaction
in a custom or multiple installation environment.
Multiple installations of the CCStudio IDE can share installed tools. The Component Manager provides an interface for handling multiple versions of tools
with multiple installations of the CCStudio IDE.
The Component Manager window displays a listing of all CCStudio installations, build tools, Texas Instruments plug-in tools, and third-party plug-in tools.
When a node is selected in the tree (the left pane of the Component Manager),
its properties are displayed in the Properties pane (the right pane) (see
Figure 1–2).
With the Component Manager, you can enable or disable tools for a particular
CCStudio installation. This functionality allows you to create a custom combination of tools contained within a CCStudio system. The Component Manager also allows you to access the Update Advisor to download the most recent version of the tools from the web.
Getting Started with Code Composer Studio IDE
1-11
Component Manager
Figure 1–2. Component Manager
Tree listing of all CCStudio
installations and tools
Properties of the item highlighted
in the CCStudio installation pane
Opening Component Manager
To open the Component Manager:
Step 1: From the Help menu in the CCStudio IDE, select About.
The About CCStudio dialog box appears.
Step 2: In the About dialog box, click the Component Manager button.
The Component Manager window displays.
1-12
Component Manager
Multiple Versions of the CCStudio IDE
The following is a list of requirements for maintaining multiple versions of the
CCStudio IDE and related tools:
- To keep more than one version of the CCStudio IDE or a related tool, you
must install each version in a different directory.
- If you install an additional version of the CCStudio IDE, or an additional
version of a tool, in the same directory as its previous installation, the original installation will be overwritten.
- You cannot enable multiple versions of the same tool within one CCStudio
IDE installation.
Getting Started with Code Composer Studio IDE
1-13
Chapter 2
Code Composer Studio
Project Management and Editing Tools
This chapter applies to all platforms using Code Composer Studio
(CCStudio) IDE.
This chapter reviews the tools and options available to you for creating and
managing your programs and projects. For more information, see the online
help and online manuals provided with the CCStudio IDE.
Topic
Page
2.1
Creating a New Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2
2.2
Adding Files to a Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
2.3
Using Source Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6
2.4
Building and Running the Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8
2.5
Selecting a Project Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10
2.6
Building Projects From the Command Line . . . . . . . . . . . . . . . . . . . . 2-11
2.7
Importing an External Makefile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12
2.8
Reviewing Your Source Code Using the Editor . . . . . . . . . . . . . . . . . 2-13
2-1
Creating a New Project
2.1 Creating a New Project
The following procedure allows you to create new projects, either individually
or several at once. Each project’s filename must be unique.
The information for a project is stored in a single project file (*.pjt).
TIP: You can have multiple projects open at the same time.
Step 1: From the Project menu, choose New.
The Project Creation wizard window displays.
Step 2: In the Project Name field, type the name you want for your project.
Each project you create must have a unique name.
Step 3: In the Location field, specify a directory to store the project file.
You can type the full path in the Location field or click the Browse button and use the Choose Directory dialog box.
It is a good idea to use a different directory for each new project. Use
this directory to store project files and the object files generated by
the compiler and assembler.
Step 4: In the Project Type field, select a Project Type from the drop-down
list.
Choose either Executable (.out) or Library (lib). Executable indicates
that the project generates an executable file. Library indicates that
you are building an object library.
2-2
Creating a New Project
Step 5: In the Target field, select the Target Family that identifies your CPU.
This information is necessary when tools are installed for multiple
targets.
Step 6: Click Finish.
The CCStudio IDE creates a project file called projectname.pjt. This
file stores your project settings and references the various files used
by your project.
The new project automatically becomes the active project. The first project
configuration (in alphabetical order) is set as active. The new project inherits
TI-supplied default compiler and linker options for debug and release configurations. For information on how to change these settings, see section 2.5, Selecting a Project Configuration, found on page 2-10.
After creating a new project file, add the filenames of your source code, object
libraries, and linker command file to the project list.
Figure 2–1. CCStudio IDE Basic Window
DSP/BIOS
Toolbar
Active
project
Build Toolbar
Project
View
Window
Code Composer Studio Project Management and Editing Tools
2-3
Adding Files to a Project
2.2 Adding Files to a Project
You can add several different files or file types to your project. The types are
shown in the graphic below. Here is the procedure to add files to your project:
Step 1: Select Project→Add Files to Project, or right-click on the project’s
filename in the Project View window and select Add Files.
The Add Files to Project dialog box displays.
Drop-down
list of file
types
Step 2: In the Add Files to Project dialog box, specify a file to add. If the file
does not exist in the current directory, browse to the correct location.
Use the Files of type drop-down list to set the type of files that appear
in the File name field.
Note:
Do not try to manually add header/include files (*.h) to the project. These files
are automatically added when the source files are scanned for dependencies as part of the build process.
Step 3: Click Open to add the specified file to your project.
The Project View is automatically updated when a file is added to the current
project.
2-4
Adding Files to a Project
Figure 2–2. Project View
Active
project
Project
View
Window
The project manager organizes files into folders for source files, include files,
libraries, and DSP/BIOS configuration files. Source files that are generated by
DSP/BIOS are placed in the Generated files folder.
The CCStudio IDE finds files by searching for project files in the following path
order when building the program:
- The folder that contains the source file.
- The folders listed in the Include Search Path for the compiler or assembler
options (from left to right).
- The folders listed in the definitions of the optional DSP_C_DIR (compiler)
and DSP_A_DIR (assembler) environment variables (from left to right).
Removing a File
If you need to remove a file from the project, right-click on the file in the Project
View and choose Remove from project in the pop-up menu.
Code Composer Studio Project Management and Editing Tools
2-5
Using Source Control
2.3 Using Source Control
The project manager enables you to connect your projects to a variety of
source control providers. The CCStudio IDE automatically detects compatible
providers that are installed on your computer.
Step 1: From the Project menu, choose Source Control.
Step 2: From the Source Control submenu, choose Select Provider...
Step 3: Select the Source Control Provider that you want to use and press
OK.
NOTE: If no source control providers are listed, please ensure that
you have correctly installed the client software for the provider on
your machine.
Step 4: Open one of your projects and select Add to Source Control from
Project→Source Control.
Step 5: Add your source files to Source Control.
2-6
Using Source Control
You can check files in and out of source control by selecting a file in the Project
View window and right clicking on the file.
Figure 2–3. Source Control Pop-Up Menu
Code Composer Studio Project Management and Editing Tools
2-7
Building and Running the Program
2.4 Building and Running the Program
To build and run a program, follow these steps:
TIP: You can use the supplied “timake.exe” utility to build a CCStudio project
from the DOS shell. See section 2.6, Building Projects From the Command
Line, found on page 2-11, for more information on timake.exe.
Step 1: Choose Project→Rebuild All or click the
button.
(Rebuild All) toolbar
The CCStudio IDE recompiles, reassembles, and relinks all the files
in your project. Messages about this process are shown in a frame
at the bottom of the window.
Step 2: By default, the .out file is built into a debug directory located under
your current project folder. To change this location, select a different
one from the CCStudio toolbar.
Name of the
current project
Project
Configuration
Step 3: Choose File→Load Program.
Select the program you just rebuilt, and click Open.
The CCStudio IDE loads the program onto the target DSP and opens
a Dis-Assembly window that shows the disassembled instructions
that make up the program. (Notice that the CCStudio IDE also automatically opens a tabbed area at the bottom of the window to show
the output that the program sends to stdout.)
Step 4: Choose View→Mixed Source/ASM.
This allows you to simultaneously view your c source and the resulting assembly code .
2-8
Building and Running the Program
Step 5: Click on an assembly instruction in the mixed-mode window. (Click
on the actual instruction, not the address of the instruction or the
fields passed to the instruction.)
Press the F1 key. The CCStudio IDE searches for help on that instruction. This is a good way to get help on an unfamiliar assembly
instruction.
Step 6: Choose Debug→Go Main to begin execution from the main function.
The execution halts at main and is identified by
Step 7: Choose Debug→Run or click the
program.
.
(Run) toolbar button to run the
Step 8: Choose Debug→Halt to quit running the program.
Code Composer Studio Project Management and Editing Tools
2-9
Selecting a Project Configuration
2.5 Selecting a Project Configuration
A project configuration defines a set of project level build options. Options specified at this level apply to every file in the project.
Project configurations enable you to define build options for the different
phases of program development. For example, you can define a Debug configuration to use while debugging your program and a Release configuration
for building the finished product.
Each project is created with two default configurations: Debug and Release.
Additional configurations can be defined. Whenever a project is created or an
existing project is initially opened, the first configuration (in alphabetical order)
is set active.
The active configuration setting is preserved in the CCStudio workspace.
When you build your program, the output files generated by the software tools
are placed in a configuration-specific subdirectory. For example, if you have
created a project in the directory MyProject, the output files for the Debug configuration are placed in MyProject\Debug. Similarly, the output files for the Release configuration are placed in MyProject\Release.
Changing the Active Project Configuration
Click on the Select Active Configuration field in the Project toolbar and select
a configuration from the drop-down list.
Figure 2–4. Changing Active Project Configuration
Select Active
Project
2-10
Select Active
Configuration
Selecting a Project Configuration / Building Projects From the Command Line
Adding a New Project Configuration
Step 1: Select Project→Configurations, or right-click on the project’s filename in the Project View window and select Configurations.
Step 2: In the Project Configurations dialog box, click Add.
The Add Project Configuration window displays.
Step 3: In the Add Project Configuration dialog box, specify the name of the
new configuration in the Create Configuration field, and choose to
Use Default Settings (build options) or Copy Settings from an existing configuration to populate your new configuration.
Step 4: Click OK to accept your selections and exit the Add Project Configuration dialog.
Step 5: Click Close to exit the Project Configurations dialog.
Step 6: Modify your new configuration using the build options dialog found
in the Project menu.
2.6 Building Projects From the Command Line
The timake.exe utility located in the <Installdir>\cc\bin directory provides a
way to build Code Composer Studio projects outside of the main application.
This utility can be used to accomplish batch builds.
Code Composer Studio Project Management and Editing Tools
2-11
Importing an External Makefile
2.7 Importing an External Makefile
The CCStudio IDE supports the use of external makefiles (*.mak) and an associated external make utility for project management and build process customization.
To enable the CCStudio IDE to build a program using a makefile, a CCStudio
project must be created that wraps the makefile. After a CCStudio project is
associated with the makefile, the project and its contents can be displayed in
the Project View window and the Project→Build and Project→Rebuild All commands can be used to build the program.
Step 1: Double-click on the name of the makefile in the Project View window
to open the file for editing.
Step 2: Modify your makefile build commands and options.
Special dialogs enable you to modify the makefile build commands
and makefile options. The normal CCStudio Build Options dialogs
are not available when working with makefiles.
Multiple configurations can be created, each with its own build commands and
options.
Limitations and Restrictions
Source files can be added to or removed from the project in the Project View.
However, changes made in the Project View do not change the contents of the
makefile. These source files do not affect the build process nor are they reflected in the contents of the makefile. Similarly, editing the makefile does not
change the contents in the Project View. File-specific options for source files
that are added in the Project View are disabled. The Project→Compile File
command is also disabled. However, when the project is saved, the current
state of the Project View is preserved.
Note:
Before using CCStudio IDE commands to build your program using a makefile, it is necessary to set the necessary environment variables. To set environment variables, run the batch file
DosRun.bat
The batch file is located in the directory c:\ti. If you installed CCStudio IDE
in a directory other than c:\ti, the batch file will be located in the directory you
specified during installation.
2-12
Reviewing Your Source Code Using the Editor
2.8 Reviewing Your Source Code Using the Editor
Double-click on the filename.c file in the Project View to display the source
code in the right half of the CCStudio window.
Figure 2–5. View Source Code
Selection
Margin
Divider
Bookmarks
Mixed Mode
(Assembly and
C source)
Program
Counter
- Selection Margin. By default, a Selection Margin is displayed on the left-
hand side of integrated editor and Disassembly windows. Colored icons
in the Selection Margin indicate that a breakpoint (red) or Probe Point
(blue) is set at this location. A yellow arrow identifies the location of the
Program Counter (PC).
TIP: The Selection Margin can be resized by dragging the divider.
- Keywords. The integrated editor features keyword highlighting. Key-
words, comments, strings, assembler directives, and GEL commands are
highlighted in different colors.
TIP: In addition, new sets of keywords can be created, or the default keyword sets can be customized and saved in keyword files (*.kwd).
Code Composer Studio Project Management and Editing Tools
2-13
Reviewing Your Source Code Using the Editor
- Keyboard Shortcuts. The default keyboard shortcuts can be changed
and new keyboard shortcuts can be created for any editing or debugging
commands that can be invoked from a document window. Keyboard shortcuts can be modified through the customize dialog box in the Options
menu.
- Bookmarks. Use bookmarks to find and maintain key locations within
your source files. A bookmark can be set on any line of any source file.
CodeMaestro Settings
The CodeMaestro settings included in the CCStudio editor can help you be
more productive. See Figure 2–6, on page 2-15 for an example of the CodeMastro portion of the Customize window.
- Automatically Suggest Word: Helps you by suggesting a word or sym-
bol that you have started typing.
- Complete Word: Allows you to select from a list of valid symbols.
- Automatically correct case: Corrects the case of your code.
- Automatically List Members: Displays a list containing all of the valid
members of a structure or object.
- Automatically Display Parameter Information: Displays a tool-tip con-
taining the parameter information for the function that you have started
typing.
- Line Limit: Allows you to set a maximum number of lines per file. If the
file has more lines than the number you set, CodeMaestro is not invoked
for that file.
2-14
Reviewing Your Source Code Using the Editor
Figure 2–6. CodeMaestro Settings Window
External Editor
The CCStudio IDE supports the use of an external (third-party) text editor in
place of the default integrated editor. After an external editor is configured and
enabled, the external editor is launched whenever a new blank document is
created or an existing file is opened. You can configure an external editor by
selecting Options→Customize→Editor Properties.
An external editor can only be used to edit files. The CCStudio integrated editor
must be used to debug your program.
Code Composer Studio Project Management and Editing Tools
2-15
Reviewing Your Source Code Using the Editor
Figure 2–7. External Editor Icon
External Editor icon:
toggle between an
external editor and the
CCStudio integrated
editor
2-16
Chapter 3
Code Composer Studio
Code Generation Tools
This chapter applies to all platforms using Code Composer Studio
(CCStudio) IDE. Some of the Code Generation Tool sets discussed in this
chapter may not be available for your ISA. For a complete listing of the tools
available to you, see the online help and online documentation provided with
the CCStudio IDE.
The different platforms offered with the CCStudio IDE are supported by a set
of software development tools. These tools include an optimizing C/C++ compiler, an assembler, a linker, and assorted utilities. This chapter discusses
these tools and shows you how to use them.
Topic
Page
3.1
Code Generation Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2
3.2
Code Generation Tools and Code Composer Studio . . . . . . . . . . . . . 3-3
3.3
Compiler Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6
3.4
Assembly Language Development Tools . . . . . . . . . . . . . . . . . . . . . . . . 3-7
3.5
Assembler Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-8
3.6
Linker Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9
3.7
Visual Linker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10
3.8
C/C++ Code Development Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13
3-1
Code Generation Tools
3.1 Code Generation Tools
Code generation tools include an optimizing C/C++ compiler, an assembler,
a linker, and assorted utilities. The figure below shows you how these tools and
utilities work together when you generate code.
Figure 3–1. Code Development Flow
C or C/C++
source files
C/C++ compiler
Parser
Optimizer
(optional)
Assembly
optimizer:
ONLY applies
to C6000
Assembly
preprocessor
Code
generator
Assembler
source
.asm files
3-2
With the linker
option (–z)
Assembler
Linker
COFF
object
(.obj) files
Executable
COFF file
.out file
Code Generation Tools and Code Composer Studio
3.2 Code Generation Tools and Code Composer Studio
The CCStudio IDE provides a graphical interface for using the code generation
tools.
A CCStudio project keeps track of all information needed to build a target program or library. A project records:
- Filenames of source code and object libraries
- Compiler, assembler, and linker options
- Include file dependencies
When you build a project with the CCStudio IDE, the appropriate code generation tools are invoked to compile, assemble, and/or link your program.
The compiler, assembler, and linker options can be specified within CCS’s
Build Options dialog box (Figure 3–2). Nearly all command line options are
represented within this dialog box. Options that are not represented can be
specified by typing the option directly into the editable text box that appears
at the top of the dialog box.
Code Composer Studio Code Generation Tools
3-3
Code Generation Tools and Code Composer Studio
Figure 3–2. Build Options Dialog Box
Build Options
You can set the compiler and linker options that are used when the CCStudio
IDE builds your program.
Your biuld options can be set at two different levels, dependingon how frequently or in what configuration they are needed. First, you can define a set
of project level options that apply to all files in your project. Then, you can optimize your program by defining file-specific options for individual source code
files.
TIP: For options that are commonly used together, you can set project level
configurations, rather than have to set the same individual options repeatedly.
For more information on setting project configurations, see section 2.5, Selecting a Project Configuration, on page 2-10. You can also look for this information in the online help and tutorial provided with the CCStudio IDE.
3-4
Code Generation Tools and Code Composer Studio
Setting Project Level Options
Step 1: Select Project→Build Options.
Step 2: In the Build Options Dialog Box, select the appropriate tab.
Step 3: Select the options to be used when building your program.
Step 4: Click OK to accept your selections.
Seting File-Specific Options
Step 1: Right-click on the name of the source file in the Project View window
and select File Specific Options from the context menu.
Step 2: Select the options to be used when compiling this file.
Step 3: Click OK to accept your selections.
File-specific options are stored in the project file by recording only the differences between the project options and those set for the file.
Code Composer Studio Code Generation Tools
3-5
Compiler Overview
3.3 Compiler Overview
The C and C++ compilers (for C5000 and C6000) are full-featured
optimizing compilers that translate standard ANSI C programs into assembly
language source. The following subsections describe the key features of the
compilers.
Interfacing with Code Composer Studio
The following features pertain to interfacing with the compiler:
- Compiler shell program
The compiler tools include a shell program that you use to compile,
assembly optimize, assemble, and link programs in a single step. For
more information, see the About the Shell Program section in the Optimizing Compiler User’s Guide appropriate for your device.
- Flexible assembly language interface
The compiler has straightforward calling conventions, so you can write
assembly and C functions that call each other. For more information, see
Chapter 8, Run-Time Environment, in the Optimizing Compiler User’s
Guide appropriate for your device.
3-6
Assembly Language Development Tools
3.4 Assembly Language Development Tools
The following is a list of the assembly language development tools:
- Assembler. The assembler translates assembly language source files
into machine language object files. The machine language is based on
common object file format (COFF).
- Archiver. The archiver allows you to collect a group of files into a single
archive file called a library. Additionally, the archiver allows you to modify
a library by deleting, replacing, extracting, or adding members. One of the
most useful applications of the archiver is building a library of object modules.
- Linker. The linker combines object files into a single executable object
module. As it creates the executable module, it performs relocation and
resolves external references. The linker accepts relocatable COFF object
files and object libraries as input.
- Absolute Lister. The absolute lister accepts linked object files as input
and creates .abs files as output. You can assemble these .abs files to
produce a listing that contains absolute, rather than relative, addresses.
Without the absolute lister, producing such a listing would be tedious and
would require many manual operations.
- Cross-reference Lister. The cross-reference lister uses object files to
produce a cross-reference listing showing symbols, their definitions, and
their references in the linked source files.
- Hex-conversion Utility. The hex-conversion utility converts a COFF ob-
ject file into TI-Tagged, ASCII-hex, Intel, Motorola-S, or Tektronix object
format. You can download the converted file to an EPROM programmer.
- With the TMS320C54x device, the mnemonic-to-algebraic translator
utility converts assembly language source files. The utility accepts an assembly language source file containing mnemonic instructions. It converts
the mnemonic instructions to algebraic instructions, producing an assembly language source file containing algebraic instructions.
Code Composer Studio Code Generation Tools
3-7
Assembler Overview
3.5 Assembler Overview
The assembler translates assembly language source files into machine language object files. These files are in common object file format (COFF).
The two-pass assembler does the following:
- Processes the source statements in a text file to produce a relocatable ob-
ject file
- Produces a source listing (if requested) and provides you with control over
this listing
- Allows you to segment your code into sections and maintains a section
program counter (SPC) for each section of object code
- Defines and references global symbols and appends a cross-reference
listing to the source listing (if requested)
- Assembles conditional blocks
- Supports macros, allowing you to define macros inline or in a library
3-8
Linker Overview
3.6 Linker Overview
The linker allows you to configure system memory by allocating output sections efficiently into the memory map. As the linker combines object files, it performs the following tasks:
- Allocates sections into the target system’s configured memory
- Relocates symbols and sections to assign them to final addresses
- Resolves undefined external references between input files
The linker command language controls memory configuration, output section
definition, and address binding. The language supports expression assignment and evaluation. You configure system memory by defining and creating
a memory module that you design. Two powerful directives, MEMORY and
SECTIONS, allow you to:
- Allocate sections into specific areas of memory
- Combine object file sections
- Define or redefine global symbols at link time
Code Composer Studio Code Generation Tools
3-9
Visual Linker
3.7 Visual Linker
There are two ways to link your code in the CCStudio IDE: One is textually using the linker command file and the other is graphically using the visual linker.
The linker command file is a text file used explicitly by the standard linker to
create the links automatically. The visual linker allows you to manually create
these links in a graphical setting.
The Visual Linker is an interactive, extensible linker. Taking your application’s
object files/libraries and the target memory description as input, the Visual
Linker provides a graphical means to configure system memory. You can use
drag-and-drop manipulation to arrange the object files within a graphical
representation of the memory layout. When you are satisfied with the memory
layout, you can then generate the executable (.out) file.
Some features of the Visual Linker include:
- Visual drag-and-drop of program components into device-specific
memory maps
- Immediate visual feedback on memory allocation to discover areas of opti-
mization
- Reduced application size with elimination of unused code and data
- Wizards to ease migration from existing text linker control files
Getting Started with the Visual Linker
Before using the Visual Linker, go through the Visual Linker tutorial. In the
CCStudio IDE, select Help→Tutorial. Choose the Visual Linker tutorial module.
Step 1: Select the Visual Linker as your project’s linker.
Select Tools→Linker Configuration. In the Linker Configuration dialog box, select Use the Visual Linker and click OK.
3-10
Visual Linker
Step 2: Generate object files for your application before creating a recipe.
Open your CCStudio project. Select Project→Rebuild All. You will receive an error message in the CCStudio output window. Simply
double-click on the error message to open the New Recipe wizard.
Step 3: Use the New Recipe wizard to create a recipe for the Visual Linker.
A recipe describes how to build an application. It is made up of:
J
Ingredients. The ingredients include a list of input files and a
hardware description.
J
Directions. The directions come from a strategy for combining
the ingredients. The strategy can be a file that was previously
created, or it can be generated as you manipulate input files and
other items within the Visual Linker.
Step 4: Use the Visual Linker’s views to arrange your program in memory.
The left pane of the Visual Linker is the tree view (see the figure in
this step). The pane to the right of the tree view is the list view . The
ingredients of the recipe appear as graphical elements within the
Visual Linker’s interface.
You can use drag-and-drop manipulation within these windows to arrange the components of your program in memory. After each drag
Code Composer Studio Code Generation Tools
3-11
Visual Linker
and drop manipulation, you see the effect immediately: the space
used by each section, the space left over, etc.
Tree view
List View
Graphical Elements
of the Recipe
Step 5: After you have arranged your program in memory, you can generate
the executable file.
To generate an executable file, select Project→Rebuild All or click
the
(Rebuild All) toolbar button button on the CCStudio toolbar.
Step 6: Use the recipe when you run the Visual Linker from within a makefile
or from the command line.
Note:
Use the vlnk command to run the Visual Linker from within a makefile or from
the command line.
Some of the tasks that you will want to complete using the Visual Linker are:
3-12
Placing input sections in memory
Viewing portions of memory
Specifying load and run addresses
Avoiding allocation of reserved hardware addresses
C/C++ Code Development Tools
3.8 C/C++ Code Development Tools
The following is a list of the C/C++ development tools:
- C/C++ Compiler. The C/C++ compiler accepts C/C++ source code and
produces assembly language source code. A shell program, an optimizer, and an interlist utility are parts of the compiler.
J
The shell program enables you to compile, assemble, and link source
modules in one step. If any input file has a .sa extension, the shell program invokes the assembly optimizer.
J
The optimizer modifies code to improve the efficiency of C programs.
J
The interlist utility interweaves C/C++ source statements with assembly language output.
- Assembly Optimizer (C6000
only). The assembly optimizer allows you
to write linear assembly code without being concerned with the pipeline
structure or with assigning registers. It accepts assembly code that has not
been register-allocated and is unscheduled. The assembly optimizer assigns registers and uses loop optimization to turn linear assembly into
highly parallel assembly that takes advantage of software pipelining.
- Library-build Utility. You can use the library-build utility to build your own
customized run-time-support library. Standard run-time-support library
functions are provided as source code in rts.src and rstcpp.src. The object
code for the run-time-support functions is compiled for little-endian mode
versus big-endian mode and C code versus C++ code into standard libraries.
The run-time-support libraries contain the ANSI standard run-time-support functions, compiler-utility functions, floating-point arithmetic functions, and C I/O functions that are supported by the compiler.
- C++ Name Demangling Utility. The C++ compiler implements function
overloading, operator overloading, and type-safe linking by encoding a
function’s signature in its link-level name. The process of encoding the signature into the linkname is often referred to as name mangling. When you
inspect mangled names, such as in assembly files or linker output, it can
be difficult to associate a mangled name with its corresponding name in
the C++ source code. The C++ name demangler is a debugging aid that
translates each mangled name it detects to its original name found in the
C++ source code.
Code Composer Studio Code Generation Tools
3-13
C/C++ Code Development Tools
The following is a list of available products for refining and correcting your
code:
- TMS320C6000 devices:
J
J
An instruction-accurate and clock-accurate software simulator
An extended development system (XDS510) emulator
- TMS320C54x devices:
J
J
J
An instruction-accurate software simulator
An extended development system (XDS510) emulator
An evaluation module (EVM)
- TMS320C55x devices:
J
J
An instruction-accurate software simulator
An extended development system (XDS510) emulator
These tools are accessed within the CCStudio IDE. For more information, see
the online help provided with the CCStudio IDE.
3-14
Chapter 4
Code Composer Studio Debug Tools
This chapter applies to all platforms using Code Composer Studio
(CCStudio) IDE. However, not all devices have access to all of the tools discussed in this chapter. For a complete listing of the tools available to you, see
the online help and online documentation provided with the CCStudio IDE.
The CCStudio IDE comes with a number of tools that help you debug your programs. This chapter discusses these tools and shows you how to use them.
Topic
Page
4.1
Overview of Applicable Debug Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2
4.2
Introduction to Breakpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3
4.3
Watch Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6
4.4
Probe Points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-10
4.5
Simulator Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14
4.6
Emulator Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-16
4.7
Advanced Event Triggering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-17
4.8
Displaying Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-21
4.9
Symbol Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-23
4.10 General Extension Language (GEL) . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-24
4.11 Command Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-25
4.12 Pin Connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-26
4.13 Port Connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-27
4.14 Data Converter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-29
4.15 ETM Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-32
4.16 OS Selector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-33
4-1
Overview of Applicable Debug Tools
4.1 Overview of Applicable Debug Tools
The following table shows the debug tools discussed in this chapter that are
used by different generations of devices. However, the specific devices that
fall in each generation may or may not have access to these debug tools. To
see a complete list of debug tools available for your device, access the online
help provided with the CCStudio IDE.
Table 4–1. Debug Tools
Debug Tools
C62x
C64x
C67x
C54x
C55x
C28x
470R1x
(ARM7)
470R2x
(ARM9)
Breakpoints
n
n
n
n
n
n
n
n
Watch Window
n
n
n
n
n
n
n
n
Probe Points
n
n
n
n
n
n
n
n
Simulator Analysis
n
n
n
Emulator Analysis
n
n
n
n
n
n
n
Event Triggering
n
n
n
n
Graphs
n
n
n
n
n
n
n
n
Symbol Browser
n
n
n
n
n
n
n
n
GEL
n
n
n
n
n
n
n
n
Command Window
n
n
n
n
n
n
n
n
Pin Connect
n
n
n
n
n
n
Port Connect
n
n
n
n
n
n
Data Converter
n
n
EMT Tool
n
n
OS Selector
n
n
(Called Advanced
Features for ARM)
4-2
n
Introduction to Breakpoints
4.2 Introduction to Breakpoints
Breakpoints are an essential component of any debugging session.
Breakpoints stop the execution of the program. While the program is stopped,
you can examine the state of the program, examine or modify variables, examine the call stack, etc. Breakpoints can be set on a line of source code in
an Editor window or a disassembled instruction in the Disassembly window.
After a breakpoint is set, it can be enabled or disabled.
For breakpoints set on source lines it is necessary that there be an associated
line of dissassembly code. When compiler optimization is turned on, many
source lines cannot have breakpoints set. To see allowable lines, use mixed
mode in the editor window.
Note:
CCStudio IDE tries to relocate a breakpoint to a valid line in your source window. CCStudio IDE places a breakpoint icon in the selection margin beside
the line on which it locates the breakpoint. If CCStudio IDE cannot determine
an allowable line, it reports an error in the message window.
Breakpoints are saved in the project workspace. For information on analyzing
breakpoints, see section 4.5, Simulator Analysis, on page 4-14, and section
4.6, Emulator Analysis, on page 4-16.
Note:
CCStudio briefly halts the target whenever it reaches a Breakpoint or Probe
Point. Therefore, the target application may not meet real-time deadlines if
you are using Probe Points. At this stage of development, you are testing the
algorithm. Later, you can analyze real-time behavior using RTDX and
DSP/BIOS.
For real-time debugging information, see Chapter 6, Code Composer Studio
Real Time Components.
Code Composer Studio Debug Tools
4-3
Introduction to Breakpoints
Software Breakpoints
Breakpoints can be set in any Disassembly window or document window containing C/C++ source code. There is no limit to the number of software breakpoints that can be set, provided they are set at writable memory locations
(RAM). Software breakpoints operate by modifying the target program to add
a breakpoint instruction at the desired location.
The fastest way to set a breakpoint is to simply double-click on the desired line
of code.
Step 1: In a document window or Disassembly window, move the cursor
over the line where you want to place a breakpoint.
Step 2: Double-click in the Selection Margin immediately preceding the line
when you are in a document window.
In a Disassembly window, double-click on the desired line.
A breakpoint icon in the Selection Margin indicates that a breakpoint has been
set at the desired location.
The Toggle Breakpoint command and the Toggle Breakpoint button also enable you to quickly set and clear breakpoints.
Step 1: In a document window or Disassembly window, put the cursor in the
line where you want to set the breakpoint.
Step 2: Right-click and select Toggle Breakpoint, or click the Toggle Breakpoint button
4-4
on the Project toolbar.
Introduction to Breakpoints
Hardware Breakpoints
Hardware breakpoints differ from software breakpoints in that they do not
modify the target program; they use hardware resources available on the chip.
Hardware breakpoints are useful for setting breakpoints in ROM memory or
breaking on memory accesses instead of instruction acquisitions. A breakpoint can be set for a particular memory read, memory write, or memory read
or write. Memory access breakpoints are not shown in the source or memory
windows.
Hardware breakpoints can also have a count, which determines the number
of times a location is encountered before a breakpoint is generated. If the count
is 1, a breakpoint is generated every time.
Hardware breakpoints cannot be implemented on a simulated target.
To set a hardware breakpoint:
Step 1: Select Debug→Breakpoints. The Break/Probe Points dialog box appears with the Breakpoints tab selected.
Step 2: In the Breakpoint type field, choose “H/W Break at location” for instruction acquisition breakpoints or choose “Break on <bus>
<Read|Write|R/W>” at location for a memory access breakpoint.
Step 3: Enter the program or memory location where you want to set the
breakpoint. Use one of the following methods:
H
For an absolute address, you can enter any valid C expression,
the name of a C function, or a symbol name.
H
Enter a breakpoint location based on your C source file. This is
convenient when you do not know where the C instruction is located in the executable. The format for entering in a location
based on the C source file is as follows: fileName line lineNumber.
Step 4: Enter the number of times the location is hit before a breakpoint is
generated, in the Count field. Set the count to 1 if you wish to break
every time.
Step 5: Click the Add button to create a new breakpoint. This causes a new
breakpoint to be created and enabled.
Step 6: Click OK.
Code Composer Studio Debug Tools
4-5
Watch Window
4.3 Watch Window
When debugging a program, it is often helpful to understand how the value of
a variable changes during program execution. The Watch window allows you
to monitor the values of local and global variables and C/C++ expressions.
To open the Watch window:
Select View→Watch Window, or click the Watch Window button on the Watch
toolbar.
Figure 4–1. Watch Window Toolbar
Open Quick Watch
Open the Watch window
The Watch window, Figure 4–2, contains two tabs labeled: Watch Locals and
Watch.
- In the Watch Locals tab, the debugger automatically displays the Name,
Value, and Type of the variables that are local to the currently executing
function.
- In the Watch tab, the debugger displays the Name, Value, and Type of the
local and global variables and expressions that you specify.
Figure 4–2. Watch Window
For detailed information on the Watch Window, see the Watch Window topics
provided in the online help: Help→Contents→Watch Window.
4-6
Watch Window
When you are developing and testing programs, you often need to check the
value of a variable during program execution. You use breakpoints and the
Watch Window to view such values.
Step 1: Choose File→Load Program.
Step 2: Double–click on the filename.c file in the Project View.
Step 3: Put your cursor in a line that allows breakpoints.
Step 4: Click the
(Toggle Breakpoint) toolbar button or press F9.
The selection margin indicates that a breakpoint has been set (red
icon). If you disable the selection margin (Options→Customize) the
line is highlighted in magenta.
Step 5: Choose View→Watch Window.
A separate area in the lower–right corner of the CCStudio window
appears. At run time, this area shows the values of watched variables.
By default, the Locals tab is selected and displays Local variables
that are local to the function being executed.
Step 6: If not at main, choose Debug→Go Main.
Step 7: Choose Debug→Run, or press F5, or press the
Icon.
Step 8: Select the Watch tab.
Step 9: Click on the expression icon
name of the variable to watch.
in the Name column and type the
Code Composer Studio Debug Tools
4-7
Watch Window
Step 10: Click on the white space in the watch window to save the change.
The value should immediately appear, similar to this example.
Step 11: Click the
(Step Over) toolbar button or press F10 to step over
the call to your watched variable.
Other commands you can use are:
Step Into (F8)
Step Over (F10)
Step Out (Shift F7)
Run to Cursor (Ctrl F10)
You can use the step commands listed in this last step after reaching the breakpoint.
4-8
Watch Window
In addition to watching the value of a simple variable, you can watch the values
of the elements of a structure.
Step 1: Select the Watch tab.
Step 2: Click on the expression icon
in the Name column and type the
name of the expression to watch.
Step 3: Click on the white space in the watch window to save the change.
Step 4: Click once on the + sign. The CCStudio IDE expands this line to list
all the elements of the structure and their values. (The address
shown for Link may vary.)
Step 5: Double-click on the Value of any element in the structure to edit the
value for that element.
Step 6: Change the value of a variable.
Notice that the value changes in the Watch Window. The value also
changes color to red, indicating that you have changed it manually.
Code Composer Studio Debug Tools
4-9
Probe Points
4.4
Probe Points
In this section, you add a Probe Point, which reads data from a file on your PC.
Probe Points are a useful tool for algorithm development. You can use probe
points to:
- Transfer input data from a file on the host PC to a buffer on the target for
use by the algorithm.
- Transfer output data from a buffer on the target to a file on the host PC for
analysis.
- Update a window, such as a graph, with data.
More Information About Probe Points
Probe Points are similar to breakpoints in that they both halt the target to perform their action. However, Probe Points differ from breakpoints in the following ways:
- Probe Points halt the target momentarily, perform a single action, and re-
sume target execution.
- Breakpoints halt the CPU until execution is manually resumed and cause
all open windows to be updated.
- Probe Points permit automatic file input or output to be performed; break-
points do not.
4-10
Probe Points
This section shows how to use a Probe Point to transfer the contents of a PC
file to the target for use as test data. It also uses a breakpoint to update all the
open windows when the Probe Point is reached.
Step 1: Choose File→Load Program. Select filename.out, and click Open.
Step 2: Double-click on the filename.c file in the Project View.
Step 3: Put your cursor in a line of the main function to which you want to add
a probe point.
Step 4: Click the
(Toggle Probe Point) toolbar button.
Step 5: From the File menu, choose File I/O. The File I/O dialog appears so
that you can select input and output files.
Step 6: In the File Input tab, click Add File.
Step 7: Browse to your project folder, select filename.dat and click Open.
A control window for the filename.dat file appears. When you run the
program, you can use this window to start, stop, rewind, or fast forward within the data file.
Code Composer Studio Debug Tools
4-11
Probe Points
Step 8: In the File I/O dialog, change the Address and the Length values.
Also, put a check mark in the Wrap Around box.
Wrap
Around
Box
Change
Address
Change
Length
H
The Address field specifies where the data from the file is to be
placed.
H
The Length field specifies how many samples from the data file
are read each time the Probe Point is reached.
H
The Wrap Around option causes the CCStudio IDE to start reading from the beginning of the file when it reaches the end of the
file. This allows the data file to be treated as a continuous stream
of data.
Step 9: Click Add Probe Point. The Probe Points tab of the Break/Probe
Points dialog appears.
4-12
Probe Points
Step 10: In the Probe Point list, highlight a line.
Step 11: In the Connect To field, click the down arrow and select a file from
the list.
Step 12: Click Replace. The Probe Point list changes to show that this Probe
Point is connected to the sine.dat file.
Step 13: Click OK. The File I/O dialog shows that the file is now connected to
a Probe Point.
Step 14: Click OK to close the File I/O dialog.
Code Composer Studio Debug Tools
4-13
Simulator Analysis
4.5 Simulator Analysis
The Simulator Analysis tool reports the occurrence of particular system events
so you can accurately monitor and measure the performance of your program.
User Options:
-
Enable/disable analysis
Count the occurrence of selected events
Halt execution whenever a selected event occurs
Delete count or break events
Create a log file
Reset event counter
To use the Simulator Analysis tool:
Step 1: Load your program using the CCStudio IDE.
Step 2: Start the analysis tool. Select Tools→Simulator Analysis for your
device.
Step 3: Right-click in the Simulator Analysis window and then select Enable
analysis.
4-14
Simulator Analysis
Step 4: Specify your analysis parameters (count events or break events).
Step 5: Use the CCStudio IDE to run or step through your program.
Step 6: Analyze the output of the analysis tool.
For detailed information on the Simulator Analysis tool, see the Simulator
Analysis topics provided in the online help: Help→Contents→Simulator Analysis.
Code Composer Studio Debug Tools
4-15
Emulator Analysis
4.6 Emulator Analysis
The Emulator Analysis tool allows you to set up, monitor, and count events and
hardware breakpoints.
To start the Emulator Analysis tool:
Step 1: Load your program using the CCStudio IDE.
Step 2: Select Tools→Emulator Analysis for your device from the CCStudio
menu bar.
The Emulator Analysis window (Figure 4–3) contains the following information:
This column. . .
displays. . .
Event
the event name.
Type
whether the event is a break or count event.
Count
the number of times the event occurred before the
program halted.
Break Address
the address at which the break event occurred.
Routine
the routine in which the break event occurred.
Figure 4–3. Emulator Analysis Window
Note:
You cannot use the analysis features while you are using the profiling clock.
For detailed information on the Emulator Analysis tool, see the Emulator Analysis topics provided in the online help: Help→Contents→Emulator Analysis.
4-16
Advanced Event Triggering
4.7 Advanced Event Triggering
Advanced Event Triggering (AET) is supported by a group of tools that makes
hardware analysis easier than before. Advanced Event Triggering uses Event
Analysis and State Sequencer to simplify hardware analysis.
Event Analysis uses a simple interface to help you configure common hardware debug tasks called jobs. You can easily set breakpoints, action points,
and counters by using a right-click menu and performing a simple drag-anddrop. You can access Event Analysis from the tools menu, or by right-clicking
in a source file.
Event Sequencer allows you to look for conditions that you specify in your target program and initiates specific actions when these conditions are detected.
While the CPU is halted, you define the conditions and actions, then run your
target program. The sequence program then looks for the condition you specified and performs the action you requested.
Event Analysis
The following jobs can be performed using Event Analysis:
- Setting Breakpoints
J Hardware Breakpoint
J Hardware Breakpoint With Count
J Chained Breakpoint
J Global Hardware Breakpoint
- Setting Action/Watch Points
J Data Actionpoint
J Program Actionpoint
J Watchpoint
J Watchpoint With Data
- Setting Counters
J Data Access Counter
J Profile Counter
J Watchdog Timer
J Generic Counter
- Other
J Benchmark to Here
J Emulation Pin Configuration
Code Composer Studio Debug Tools
4-17
Advanced Event Triggering
For detailed information on the Event Analysis tool, see the Event Analysis topics provided in the online help: Help→Contents→Advanced Event Triggering.
To configure a job using the Event Analysis Tool, CCStudio IDE must be configured for a target processor that contains on-chip analysis features. You can
use Event Analysis by selecting it from the Tools menu or by right-clicking in
a source file. Once you configure a job, it is enabled and will perform analysis
when you run code on your target. For information about how to enable or disable a job that is already configured, see the Advance Event Triggering online
help.
Step 1: Select Tools→Advanced Event Triggering→Event Analysis.
The Event Analysis window displays.
4-18
Advanced Event Triggering
Step 2: Right-click in the Event Analysis Window and choose Event Triggering→Job Type→Job.
The job menu is dynamically built and dependent on the target configuration. If a job is not supported on your target, the job is grayed
out.
Step 3: Type your information in the Job dialog box.
Step 4: Click Apply to program the job and save your changes.
Code Composer Studio Debug Tools
4-19
Advanced Event Triggering
Event Sequencer
The Event Sequencer allows you to look for conditions that you specify in your
target program and initiates specific actions when these conditions are detected. While the CPU is halted, you define the actions, then run your target
program. The sequencer program then looks for the condition that you specified and performs the action you requested.
To use the Event Sequencer, CCStudio IDE must be configured for a target
processor that contains on-chip analysis features. You can use the Event Sequencer by selecting it from the Tools menu. Once you create an Event Sequencer program, it is enabled and performs analysis when you run code on
your target. For information on creating an Event Sequencer program, see the
Advanced Event Triggering online help.
To enable the Event Sequencer:
Step 1: Select Tools→Advanced Event Triggering→Event Sequencer.
The Event Sequencer window displays.
Add a boolean
“and” operator
Add a state
Add open and
close parenthesis
Erase the Sequencer
program
Launch online help
Add a Global
Action
Add a Global
If statement
Step 2: Right-click in the Event Sequencer window or use the Event Sequencer toolbar buttons to create a sequencer program.
4-20
Displaying Graphs
4.8 Displaying Graphs
If you ran a program using only breakpoints and watch windows, you would
not see much information about what the program was doing. You could set
watch variables on addresses within the inp_buffer and out_buffer arrays, but
you would need to watch a lot of variables and the display would be numeric
rather than visual.
CCStudio IDE provides a variety of ways to graph data processed by your program. In this example, you view a signal plotted against time.
Step 1: Choose View→Graph→Time/Frequency.
The Graph Property Dialog box appears.
Step 2: In the Graph Property Dialog, change the Graph Title, Start Address,
Acquisition Buffer Size, Display Data Size, DSP Data Type, Autoscale, and Maximum Y-value properties to the values shown here.
Scroll down or resize the dialog box to see all the properties.
Step 3: Click OK. A graph window for the Input Buffer appears.
Step 4: Right-click on the Input window and choose Clear Display from the
pop-up menu.
Code Composer Studio Debug Tools
4-21
Displaying Graphs
Step 5: Choose View→Graph→Time/Frequency again.
Step 6: This time, change the Graph Title to Output and the Start Address
to out_buffer. All the other settings are correct.
Step 7: Click OK to display the graph window for the Output. Right-click on
the graph window and choose Clear Display from the pop-up menu.
4-22
Symbol Browser
4.9 Symbol Browser
The Symbol Browser window (Figure 4–4) displays all of the associated files,
functions, global variables, types, and labels of a loaded COFF output file
(*.out). The Symbol Browser window contains five tabbed windows:
-
Files
Functions
Globals
Types
Labels
Each tabbed window contains nodes representing various symbols. A plus
sign (+) preceding a node indicates that the node can be further expanded. To
expand the node, simply click the + sign. A minus sign (–) precedes an expanded node. Click the – sign to hide the contents of that node.
To open the Symbol Browser window, select Tools→Symbol Browser.
Figure 4–4. Symbol Browser Window
For detailed information on the Symbol Browser tool, see the Symbol Browser
topics provided in the online help: Help→Contents→Symbol Browser.
Code Composer Studio Debug Tools
4-23
General Extension Language (GEL)
4.10 General Extension Language (GEL)
The General Extension Language (GEL) is an interpretive language, similar
to C, that lets you create functions to extend CCStudio IDE’s usefulness.
You create your GEL functions by using the GEL grammar, and then by loading
them into CCStudio IDE. With GEL, you can access actual/simulated target
memory locations and add options to CCStudio IDE’s GEL menu. GEL is particularly useful for automated testing and user workspace customization.
You can call GEL functions from anywhere that you can enter an expression.
You can also add GEL functions to the Watch window so they execute at every
breakpoint.
CCStudio IDE comes equipped with many built-in GEL functions to help you
automate common debugging tasks.
4-24
Command Window
4.11 Command Window
The Command Window enables you to specify commands to the CCStudio
debugger using the TI Debugger command syntax.
Many of the commands accept C expressions as parameters. This allows the
instruction set to be relatively small, yet powerful. Because C expressions can
have side effects (that is, the evaluation of some types of expressions can affect existing values) you can use the same command to display or change a
value.
To open the Command Window:
Select Tools→Command Window from the CCStudio menu bar.
Figure 4–5. Command Window
Output
window
Command
field
Execution
(or halt)
button
For detailed information on the Command Window, see the Command Window topics provided in the online help: Help→Contents→Command Window.
Code Composer Studio Debug Tools
4-25
Pin Connect
4.12 Pin Connect
The Pin Connect tool enables you to specify the interval at which selected external interrupts occur.
To simulate external interrupts:
Step 1: Create a data file that specifies interrupt intervals.
Step 2: Start the Pin Connect tool. From the Tools menu, choose Pin Connect.
Pin name
File name
Step 3: Select the Pin name and click Connect.
Step 4: Load your program.
Step 5: Run your program.
For detailed information on the Pin Connect tool, see the Pin Connect topics
provided in the online help: Help→Contents→Pin Connect.
4-26
Port Connect
4.13 Port Connect
You can use the Port Connect tool to access a file through a memory address.
Then, by connecting to the memory (port) address, you can read data in from
a file, and/or write data out to a file.
To connect a memory (port) address to a data file, follow these steps:
Step 1: From the Tools menu, select Port Connect.
This action displays the Port Connect window and starts the Port
Connect tool.
Step 2: Click the Connect button.
This action opens the Connect dialog box.
Code Composer Studio Debug Tools
4-27
Port Connect
Step 3: In the Port Address field, enter the memory address.
This parameter can be an absolute address, any C expression, the
name of a C function, or an assembly language label. If you want to
specify a hex address, be sure to prefix the address number with 0x;
otherwise, CCStudio IDE treats the number as a decimal address.
Step 4: In the Length field, enter the length of the memory range.
The length can be any C expression.
Step 5: In the Page field (C5000 only), choose type of memory (program or
data) that the address occupies:
To identify this page. . .
use this value.
Program memory
Prog
Data memory
Data
I/O space
I/O
Step 6: In the Type field, select the Write or Read radio button, depending
on whether you want to read data from a file or write data to a file.
Step 7: Click OK.
This action displays the Open Port File window.
Step 8: Select the data file to which you want to connect and click Open.
The file is accessed during an assembly language read or write of the associated memory address. Any memory address can be connected to a file. A maximum of one input and one output file can be connected to a single memory
address; multiple addresses can be connected to a single file.
For detailed information on the Port Connect tool, see the Port Connect topics
provided in the online help: Help→Contents→Port Connect.
4-28
Data Converter
4.14 Data Converter
The Data Converter Plug–In (DCP) from Texas Instruments allows fast and
easy software development for data converters attached to a digital signal
processor (DSP).
Open the Data Converter Support Window
Select Tools→Data Converter Support. The Data Converter Support window
is displayed.
Figure 4–6. Data Converter Support Window
For additional information, see the Data Converter portion of the CCStudio online help.
Code Composer Studio Debug Tools
4-29
Data Converter
Configure Your System to Use the Data Converter Plug-in
To configure your system to use the Data Converter Plug-in:
Step 1: System tab. Add devices that are connected to the DSP.
Step 2: DSP tab. Specify required DSP configuration data.
Step 3: “Device Name.” Configure your ADC(s), DAC(s) and/or Codec(s).
4-30
Data Converter
Step 4: CCStudio IDE. Open a project in CCStudio IDE.
Step 5: Files tab. Generate the configuration files.
Several source code files – usually C language – are added to your
DSP project. These files contain the lowest level of interface software required for the data converter(s). In addition, a set of static
configuration data is created in header files to be used by the interface software. The data may also be used by your application. The
#define strings should be used in your software in order to allow for
configuration independent programming.
Step 6: CCStudio IDE. Use data structures and interface functions as needed.
Step 7: CCStudio IDE. Verify correct operation using CCStudio debug features.
Step 8: CCStudio IDE. Save a workspace before exiting CCStudio IDE.
Note:
Interface functions are hardware dependent. They only work if standard
hardware interfacing is used. It is always your responsibility to verify the correct operation of hardware and software in your system.
Code Composer Studio Debug Tools
4-31
ETM Tool
4.15 ETM Tool
The ETM Tool allows you to configure, collect, and log trace data within Code
Composer Studio.
The ETM Tool can be used with a TMS470Rxx configuration that includes the
Embedded Trace Macrocell (ETM) and trace capture hardware (either a logic
analyzer or trace port analyzer).
The Advanced Event Triggering tools are used to trigger the trace data that is
then collected and displayed within the ETMTool interface.
To open the ETM Tool, select Tools→ETM Tool.
Trace Process Overview
To carry out a trace process:
Step 1: Open the ETM Tool interface. Select Tools→ETM Tool.
Step 2: In the ETM Tool Configuration dialog, specify your ETM configuration.
Step 3: In the ETM Tool dialogs, set the trace parameters.
Step 4: Use the Event Sequencer or Event Analysis tool to set the trace
events.
Step 5: In the ETM Tool, run the trace and read the trace data.
4-32
OS Selector
4.16 OS Selector
Use the OS Selector tool to specify your target operating system.
Step 1: Select Tools→OS Selector. The OS Selector window is displayed
within Code Composer Studio.
Step 2: From the Current OS drop–down list, select the Task Level Interface
(TLI) driver for your operating system.
Code Composer Studio Debug Tools
4-33
OS Selector
If your target operating system is not listed:
1) Click Advanced. The Advanced dialog box is displayed.
2) Click Add. The Open dialog box is displayed.
3) Browse to the TLI driver for your operating system. The TLI driver is supplied by the third–party vendor.
4) Click Open. The TLI driver is added to the List of Installed Drivers
in the Advanced dialog.
5) Click OK. The TLI driver is added to the Current OS drop–down
list.
6) From the Current OS drop–down list, select your TLI driver. Information describing the TLI driver that you have selected is displayed under OS Driver Info.
Step 3: Right–click within the OS Selector window, and select Close from the
context menu.
4-34
Chapter 5
Code Composer Studio Optimization Tools
This chapter applies to all platforms using Code Composer Studio
(CCStudio) IDE. However, not all devices have access to all the tools discussed in this chapter. For a complete listing of the tools available to you, see
the online help and online documentation provided with CCStudio IDE.
Profiling helps you determine how long a processor spends in each section of
a program. Using profiling can help you make your programs more efficient.
This chapter discusses the CCStudio profiling tools and shows you how to use
them.
Topic
Page
5.1
Profiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2
5.2
Profile Based Compiler (PBC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4
5-1
Profiler
5.1 Profiler
Profiling helps reduce the time it takes to identify and eliminate performance
bottlenecks. The profiler analyzes program execution and shows you where
your program is spending its time. For example, a profile analysis can report
how many cycles a particular function takes to execute and how often it is
called.
Profiling helps you to direct valuable development time toward optimizing the
sections of code that most dramatically affect program performance.
Start a new session each time you want to perform profile analysis on an
executable program. When you want to profile more than one executable program, multiple profile sessions can be launched.
To start a new profile session:
Step 1: Select Profiler→Start New Session.
Step 2: In the Profile Session Name dialog box, enter a name for this profile
session. By default, the name MySession appears.
5-2
Profiler
Step 3: Click OK.
A Profile View window appears within the CCStudio window.
Drag-and-drop any function from your code into
the Profile View window.
Profile by Function
Profile by Range
Note:
The new profiler allows you to exclude code ranges from being profiled. In
other words, you can use Start and End points to exclude certain parts of your
code found within the profiling range from being counted as part of the profiling data.
Step 4: Select File→Load Program.
Step 5: In the Load Program dialog box, specify the output file to be profiled
and click Open.
As a prerequisite to performing profile analysis, the program must be built with
symbolic debugging information.
For detailed information on the Profiler tool, see the Profiler topics provided in
the online help: Help→Contents→Profiling Code Execution.
Code Composer Studio Optimization Tools
5-3
Profile Based Compiler (PBC)
5.2 Profile Based Compiler (PBC)
This tool is only available to TMS320C6000 devices.
PBC is a tool that enables you to more quickly and easily optimize the trade-off
between code size and cycle count for your application. Using a variety of profiling configurations, PBC will profile your application, collect data on individual
functions, and determine the best combinations of compiler options. PBC will
then produce a graph of these configurations, allowing you to choose the configuration that best fits your needs.
To understand the behavior of your application and the effects that different
compiler options have, PBC must compile and run your application under a
number of different profiling configurations.
By default, PBC has five different Profiling Configurations defined, ranging
from optimize for maximum speed to optimize for minimum code size. By default, three Profiling Configurations are activated. If a Profiling Configuration
is activated, PBC will use it when profiling your application. A deactivated Profiling Configuration is available, but will not but used until activated. You can
also create your own Profiling Configurations. This allows you to define and
maintain Profiling Configurations in addition to the defaults that are defined by
PBC.
When using PBC with your application, you may want to increase the number
of activated Profiling Configurations, and even define some of your own. The
more Profiling Configurations used, the longer PBC takes to build and profile
your application. This gives PBC more options in finding an optimal build of
your application, relevant to your speed or code size constraints.
5-4
Profile Based Compiler (PBC)
Enabling Profile Configurations
Step 1: Select PBC→Enable.
Step 2: Select PBC→Profiling Configurations.
The Profiling configurations with check boxes are activated, and
should look similar to this:
Step 3: Make changes to the profiling configurations if needed.
Step 4: Click OK to close the dialog box.
You will be asked if you want to rebuild your application with the new
Configurations, choose Yes if you made any changes. Choose No
if you did not make changes. If you choose cancel, you will go back
to the profiling configurations dialog.
Code Composer Studio Optimization Tools
5-5
Profile Based Compiler (PBC)
Building Profile Configurations
Now that you have determined which Profiling Configurations will be used, you
can build and profile your application.
Step 1: From the PBC menu, chose ReProfile All.
Step 2: This step will take some time (as long as 30 minutes).
In the CCStudio output window, the PBC tab shows build progress.
When PBC is finished profiling your application, a window like the following one is shown:
PBC will not build and profile a configuration if it has not changed since the last
time it was used. You can force PBC to rebuild and profile Configurations by
selecting ReProfile All from the PBC menu.
Once PBC has built and profiled all active profiling configurations, it will have
collected profile information on how each function performed under each configuration. PBC uses this information to determine all of the useful configurations that can be used to build your application. A configuration is useful if no
other configurations results in a version of your application that is both smaller
and faster.
The set of all useful configurations are graphed in purple in the Configuration
Space window. You can now select one (or more) of the configurations to use
for your application.
For detailed information on the Profiler tool, see the Profiler topics provided in
the online help: Help→Contents→Profile Based Compiler.
5-6
Profile Based Compiler (PBC)
Figure 5–1. Finished PBC Application
Finished application
Select
profiling
configurations
Profile
configurations
Select
computed
configuration
View/select
overrides
Verify
configuration
Save/export
application
Code Composer Studio Optimization Tools
5-7
Chapter 6
Code Composer Studio
Real-time Kernel and Analysis
This chapter applies to all platforms using Code Composer Studio
(CCStudio) IDE. However, not all devices have access to all of the tools discussed in this chapter. For a complete listing of the tools available to you, see
the online help and online documentation provided with CCStudio IDE.
CCStudio IDE includes a real-time kernel and real-time analysis features that
simplify development and debugging of complex applications. The features
covered in this chapter are:
- DSP/BIOS kernel
- RTDX (Real-Time Data Exchange) technology
To read more about these features, or to determine if you have access to these
features, see the online help and/or tutorial provided with CCStudio IDE.
Topic
Page
6.1
DSP/BIOS Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2
6.2
RTDX Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-13
6-1
DSP/BIOS Kernel
6.1 DSP/BIOS Kernel
DSP/BIOS kernel is a scalable real-time kernel. It is designed for applications
that require real-time scheduling and synchronization, host-to-target communication, along with real-time instrumentation. DSP/BIOS kernel provides preemptive multi-threading, hardware abstraction, and real-time analysis.
DSP/BIOS kernel is packaged as a set of modules that can be linked into an
application; applications include only those functions of the DSP/BIOS kernel
that are referenced (directly or indirectly) by the application. In addition, the
DSP/BIOS Configuration Tool allows you to optimize code size and speed by
disabling DSP/BIOS kernel features not used in their programs.
You can use DSP/BIOS kernel to instrument any application to be probed,
traced, and monitored in real-time. Programs that use the DSP/BIOS Configuration Tool to take advantage of the multi–threading capabilities of DSP/BIOS
kernel are implicitly instrumented.
DSP/BIOS kernel is integrated with CCStudio IDE and requires no runtime
license fees.
Code Composer Studio
Target program
Application
Program
build
Program
debug
Plug–in
tools
Components
Frameworks
algorithms
kernels
drivers
BIOS II
kernel
Real–time analysis
Host computer
RTDX
DSP/BIOS
TMS320 DSP
For details on on using DSP/BIOS kernel, see the Help→Contents→DSP/
BIOS or Help→Tutorial→Using DSP/BIOS.
6-2
DSP/BIOS Kernel
DSP/BIOS kernel includes the following components:
- DSP/BIOS Configuration Tool. This tool allows you to create and config-
ure the DSP/BIOS kernel objects used by your program. You can also use
this tool to configure memory, thread priorities, and interrupt handlers.
- DSP/BIOS Real-time Analysis Tools. These windows allow you to view
program activity in real-time. For example, the Execution Graph shows a
diagram of thread activity.
- DSP/BIOS Kernel. The DSP/BIOS kernel implements run-time services
that the target application invokes through DSP/BIOS APIs.
- Chip Support Library: The Chip Support Library provides macros and
functions that simplify configuration and management of on-chip peripherals. See Chapter 7 for more information.
DSP/BIOS Configuration Tool
The DSP/BIOS Configuration Tool tightly integrates with CCStudio IDE. This
tool enables developers to select and deselect kernel modules, and control a
wide range of configurable parameters accessed by the DSP/BIOS kernel at
run–time as shown in the figure below. A file of data tables generated by the
tool ultimately becomes an input to the program linker.
Figure 6–1. DSP/BIOS Configuration Window
Code Composer Studio Real-time Kernel and Analysis
6-3
DSP/BIOS Kernel
The DSP/BIOS Configuration Tool (see Figure 6–1) serves as a special-purpose visual editor for creating and assigning attributes to individual run-time
kernel objects (threads, streams, etc.) used by the target application program
in conjunction with DSP/BIOS API calls. The Configuration Tool provides developers the ability to statically declare and configure DSP/BIOS kernel objects during program development rather than during program execution. Declaring these kernel objects through the Configuration Tool produces static objects which exist for the duration of the program. DSP/BIOS kernel also allows
dynamic creation and deletion for many of the kernel objects during program
execution. However, dynamically created objects require additional code to
support the dynamic operations. Statically declared objects minimize memory
footprint since they do not include the additional create code.
Another important benefit of static configuration is the potential for static program analysis by the DSP/BIOS Configuration Tool. In addition to minimizing
the target memory footprint, the DSP/BIOS Configuration Tool provides the
means for early detection of semantic errors through the validation of object
attributes, prior to program execution. When the configuration tool is aware of
all target program objects prior to execution, it can accurately compute and report such information as the total amount of data memory and stack storage
required by the program.
6-4
DSP/BIOS Kernel
Creating DSP/BIOS Configuration Files
To create DSP/BIOS configuration files:
Step 1: Within Code Composer Studio, choose File→New→DSP/BIOS
Configuration.
The New Configuration window displays.
Available DSP/BIOS
configurations for
your platform
View detailed list
View list as small icons
View list as large icons
Description of
the selected
configuration
Step 2: Select a Configuration template.
If your board is not listed, you can create and add a custom template
to this list.
Code Composer Studio Real-time Kernel and Analysis
6-5
DSP/BIOS Kernel
Step 3: Click OK to create the new configuration.
The Configuration window displays.
Step 4: In the Configuration window, perform the following tasks as required
by your application:
H
Create objects to be used by the application.
H
Name the objects.
H
Set global properties for the application.
H
Modify module manager properties.
H
Modify object properties.
H
Set priorities for software interrupts and tasks.
See Help→Contents→DSP/BIOS→DSP/BIOS API Modules for
details on implementation of APIs.
Step 5: Save the configuration.
Step 6: Add the DSP/BIOS configuration file(s) to your project as described
in the next procedure.
6-6
DSP/BIOS Kernel
Adding DSP/BIOS Configuration files to your project
After you save a DSP/BIOS configuration file, follow these steps to add files
to your Code Composer Studio project.
Step 1: If it is not already open, use Project→Open to open the project with
Code Composer Studio.
Step 2: Choose Project→Add Files to Project. In the Files of type box, select
Configuration File (*.cdb). Select the .cdb file you saved and click
Open.
Adding the .cdb file to a project automatically adds the following file
to the Project View folders:
H
program.cdb in the DSP/BIOS Config folder
H
programcfg.s62 in the Generated Files folder
H
programcfg_c.c in the Generated Files folder
Step 3: Choose Project→Add Files to Project again. In the Files of type box,
select Linker Command File (*.cmd). Select the *cfg.cmd file the
Configuration Tool generated when you saved the configuration file
and click Open.
Step 4: If your project already contained a linker command file, Code Composer Studio warns you that a project can only contain one linker
command file and asks if you want to replace the existing file.
Step 5: If your project includes the vectors.asm source file, right-click on the
file and choose Remove from project in the shortcut menu. Hardware
interrupt vectors are automatically defined in the configuration file.
Step 6: If your project includes the rtsxxxx.lib file (where xxxx is your device
or device’s generation), right–click on the file and choose Remove
from project in the shortcut menu. This file is automatically included
by the linker command file created from your configuration.
These steps can be used whenever you want to convert an existing program
to one that can call DSP/BIOS API functions.
Code Composer Studio Real-time Kernel and Analysis
6-7
DSP/BIOS Kernel
DSP/BIOS Real-Time Analysis Tools
The DSP/BIOS Real-Time Analysis (RTA) features, shown in Figure 6–2, provide developers and integrators unique visibility into their application by allowing them to probe, trace, and monitor a DSP application during its course of
execution. These utilities, in fact, piggyback upon the same physical JTAG
connection already employed by the debugger, and utilize this connection as
a low-speed (albeit real-time) communication link between the target and host.
Figure 6–2. Real-Time Capture and Analysis
Development
DSP/BIOS kernel interface
Execution trace
Timing analysis
Regression testing
Parametric variation
Host command
server
Statistics
accumulators
Deployment
System console
Activity monitoring
Live signal capture
Diagnostic modules
Host computer
Host
data
channels
Real–
time
data
link
Software
event
logs
Target DSP platform
DSP/BIOS RTA requires the presence of the DSP/BIOS kernel within the target system. In addition to providing run-time services to the application, DSP/
BIOS kernel provides support for real-time communication with the host
through the physical link. By simply structuring an application around the DSP/
BIOS APIs and statically created objects that furnish basic multitasking and I/O
support, developers automatically instrument the target for capturing and
uploading the real-time information that drives the visual analysis tools inside
CCStudio IDE. Supplementary APIs and objects allow explicit information
capture under target program control as well. From the perspective of its
hosted utilities, DSP/BIOS affords several broad capabilities for real-time program analysis.
6-8
DSP/BIOS Kernel
The DSP/BIOS Real-Time Analysis tools can be accessed through the DSP/
BIOS toolbar.
Figure 6–3. DSP/BIOS Toolbar
Kernel/Object View
CPU Load Graph
Execution Graph
RTA Control Panel
Host Channel Control
Statistics View
Message Log
- Message Event Logs. Capable of displaying time-ordered sequences of
events written to kernel log objects by independent real-time threads, tracing the program’s overall flow of control. The target program logs events
explicitly through DSP/BIOS API calls or implicitly by the underlying kernel
when threads become ready, dispatched, and terminated.
- Statistics Accumulators. Capable of displaying summary statistics
amassed in kernel accumulator objects, reflecting dynamic program elements ranging from simple counters and time-varying data values, to
elapsed processing intervals of independent threads. The target program
accumulates statistics explicitly through DSP/BIOS API calls or implicitly
by the kernel when scheduling threads for execution or performing I/O operations.
- Host Data Channels. Capable of binding kernel I/O objects to host files
providing the target program with standard data streams for deterministic
testing of algorithms. Other real-time target data streams managed with
kernel I/O objects can be tapped and captured on-the-fly to host files for
subsequent analysis.
- Host Command Server (RTA Control Panel). Capable of controlling the
real-time trace and statistics accumulation in target programs. In effect,
this allows developers to control the degree of visibility into the real-time
program execution.
Code Composer Studio Real-time Kernel and Analysis
6-9
DSP/BIOS Kernel
Note:
When used in tandem with the CCStudio IDE standard debugger during software development, the DSP/BIOS real-time analysis tools provide critical
visibility into target program behavior at exactly those intervals where the debugger offers little or no insight – during program execution. Even after the
debugger halts the program and assumes control of the target, information
already captured through DSP/BIOS can provide invaluable insights into the
sequence of events that led up to the current point of execution.
Later in the software development cycle, regular debuggers become ineffective for attacking more subtle problems arising from time-dependent interaction of program components. The DSP/BIOS real-time analysis tools subsume
an expanded role as the software counterpart of the hardware logic analyzer.
This dimension of DSP/BIOS becomes even more pronounced after software
development concludes. The embedded DSP/BIOS kernel and its companion
host analysis tools combine to form the necessary foundation for a new generation of manufacturing test and field diagnostic tools. These tools will be capable of interacting with application programs in operative production systems
through the existing JTAG infrastructure.
The overhead cost of using DSP/BIOS is minimal, therefore instrumentation
can be left in to enable field diagnostics, so that developers can capture and
analyze the actual data that caused the failures.
6-10
DSP/BIOS Kernel
DSP/BIOS Kernel
The DSP/BIOS kernel implements run-time services that the target application
program invokes through DSP/BIOS APIs.
Individual DSP/BIOS modules in general will manage one or more instances
of a related class of objects, sometimes referred to as kernel objects, and will
rely upon global parameter values to control their overall behavior.
Developers can statically declare and configure many of these objects using
the DSP/BIOS Configuration Tool. Developers may also declare and configure
many of these objects dynamically within their programs.
C, C++, and assembly language programs can call over 150 DSP/BIOS API
functions. DSP/BIOS is packaged as a set of modules that can be linked into
an application; applications include only those functions of the DSP/BIOS that
are referenced (directly or indirectly) by the application. In addition, the DSP/
BIOS Configuration Tool allows you to optimize code size and speed by disabling DSP/BIOS features not used in their programs.
Execution Threads
When applications are organized as independent paths of execution, developers can place structure and order into them (see Figure 6–4). DSP/BIOS execution threads are independent paths of execution that execute an independent stream of DSP instructions. An execution thread is a single point of control
that may contain an ISR, subroutine, or a function call. For example, a hardware interrupt is a thread, and it performs the ISR when triggered.
Figure 6–4. DSP/BIOS Execution Threads
DSP/BIOS kernel interface
Mutiple program threads
Hardware
interrupts
HW
trigger
Software
interrupts
SW
trigger
Synchronized
tasks
Background
functions
Target DSP platform
Multithreaded applications can run on single processor systems by allowing
higher-priority threads to preempt lower–priority threads. DSP/BIOS provides
Code Composer Studio Real-time Kernel and Analysis
6-11
DSP/BIOS Kernel
30 levels of priority, divided over four distinct classes of execution threads (see
Figure 6–4). DSP/BIOS also provides services to support the synchronization
of, and communication between, execution threads. Multirate processing
maps well onto multithreaded systems.
With the exception of the background idle processing thread, each thread type
supports multiple levels of priority. DSP/BIOS provides choices; it allows developers to use the optimum thread-types for their application and not bend
their application to fit a certain model. DSP/BIOS developers have the flexibility to mix and match the objects in the run-time library that are best suited for
the application. DSP/BIOS is completely scalable and only those modules that
have been selected link with the application, minimizing resource requirements.
For more information on using DSP/BIOS, see the Help→Contents→DSP/
BIOS or Help→Tutorial→Using DSP/BIOS.
6-12
RTDX Technology
6.2 RTDX Technology
DSP/BIOS Real-Time Analysis (RTA) facilities utilize the Real-Time Data Exchange (RTDX) link to obtain and monitor target data in real-time. You can utilize the RTDX link to create your own customized interfaces to the DSP target
by using CCStudio IDE’s RTDX API Library.
Real-time data exchange (RTDX) allows system developers to transfer data
between a host computer and target devices without interfering with the target
application. This bi-directional communication path provides for data collection by the host as well as host interaction with the running target application.
The data collected from the target may be analyzed and visualized on the host.
Application parameters may be adjusted using host tools, without stopping the
application. RTDX also enables host systems to provide data stimulation to the
target application and algorithms.
RTDX consists of both target and host components. A small RTDX software
library runs on the target application. The target application makes function
calls to this library’s API in order to pass data to or from it. This library makes
use of a scan-based emulator to move data to or from the host platform via a
JTAG interface. Data transfer to the host occurs in real-time while the target
application is running.
On the host platform, an RTDX Host Library operates in conjunction with
CCStudio IDE. Data visualization and analysis tools communicate with RTDX
through COM APIs to obtain the target data and/or to send data to the DSP
application.
The host library supports two modes of receiving data from a target application: Continuous and Non Continuous. In Continuous mode, the data is simply
buffered by the RTDX Host Library and is not written to a log file. Continuous
mode should be used when the developer wants to continuously obtain and
display the data from a target application, and does not need to store the data
in a log file. In Non Continuous mode, data is written to a log file on the host.
This mode should be used when developers want to capture a finite amount
of data and record it in a log file.
For details on using RTDX, see the Help→Contents→RTDX or Help→Tutorial→RTDX Tutorial.
Code Composer Studio Real-time Kernel and Analysis
6-13
RTDX Technology
RTDX Data Flow
RTDX forms a two-way data pipe between a target application and a host client. This data pipe consists of a combination of hardware and software components as shown below.
Figure 6–5. RTDX Data Flow
Target
User
interface
RTDX
target
library
Target
application
JTAG interface
Host
COM
interface
Host
client
Code
composer
RTDX
host
library
Optional
log file
Configuring RTDX Graphically
The RTDX tools within CCStudio IDE allow you to configure RTDX graphically,
set up RTDX channels, and run diagnostics on RTDX. These tools allow you
to enhance RTDX functionality when transmitting data.
RTDX has three menu options:
- Diagnostics Control
- Configuration Control
- Channel Viewer Control
6-14
RTDX Technology
Figure 6–6. RTDX Menu
Diagnostics Control
RTDX provides the RTDX Diagnostics Control to verify that RTDX is working
correctly on your system. The diagnostic tests test the basic functionality of
target–to–host transmission and host–to–target transmission.
To open the RTDX Diagnostics Control in CCStudio IDE, select
Tools→RTDX→Diagnostics Control. The Diagnostics Control window appears near the bottom of the CCStudio IDE interface.
Figure 6–7. RTDX Diagnostics Window
Code Composer Studio Real-time Kernel and Analysis
6-15
RTDX Technology
Configuration Control
RTDX provides the RTDX Configuration Control to configure and control
RTDX graphically. Configuration Control is the main RTDX window. It allows
you to do the following:
- View the current RTDX configuration settings
- Enable or disable RTDX
- Access the RTDX Configuration Control Properties page to reconfigure
RTDX and select port configuration settings
To open the RTDX Configuration Control in CCStudio IDE, select
Tools→RTDX→Configuration Control. The Configuration Control window displays.
Figure 6–8. RTDX Config Window
Click this button to
reconfigure properties
6-16
RTDX Technology
Channel Viewer Control
RTDX provides the RTDX Channel Viewer Control to set up RTDX channels.
The RTDX Channel Viewer Control allows you to:
- Add or remove target–declared channels to the viewable list.
- Enable or disable channels once they have been added to the list.
To open the RTDX Channel Viewer Control in CCStudio IDE, select
Tools→RTDX→Channel Viewer Control. The Channel Viewer Control window
displays.
Figure 6–9. RTDX Channel Viewer Window
Code Composer Studio Real-time Kernel and Analysis
6-17
RTDX Technology
Transmit a Single Integer to the Host
The basic function of RTDX is to transmit a single integer to the host. The following steps provide an overview of the process of sending data from the target to the host and from the host to the target. For specific commands and details on transmitting different types of data, see the Help→Contents→RTDX
or Help→Tutorial→RTDX Tutorial.
To send data from your target application to the host:
Step 1: Prepare your target application to capture real-time data.
This involves inserting specific RTDX syntax into your application
code to allow real-time data transfer from the target to the host. Although the process for preparing a target application is the same for
all data types, different data types require different function calls for
data transfer. Therefore, sending an integer to the host requires you
to add a function call that is specific to only transmitting a single integer as compared to sending an array of integers to the host.
Step 2: Prepare your host client to process the data.
This involves instantiating one RTDX object for each desired channel, opening a channel for the objects specified, and calling any other
desired functions.
Step 3: Start CCStudio IDE.
Step 4: Load your target application onto the TI processor.
Step 5: Enable RTDX in CCStudio IDE: Tools→RTDX→Configuration Control.
The Configuration Control window displays.
Step 6: Run your target application to capture real-time data and send it to
the RTDX Host Library.
Step 7: Run your host client to process the data.
For details on using RTDX, see the Help→Contents→RTDX or Help→Tutorial→RTDX Tutorial.
6-18
RTDX Technology
Transmit Data from the Host to the Target
A client application can send data to the target application by writing data to
the target. Data sent from the client application to the target is first buffered in
the RTDX Host Library. The data remains in the RTDX Host Library until a request for data arrives from the target. Once the RTDX Host Library has enough
data to satisfy the request, it writes the data to the target without interfering
with the target application.
The state of the buffer is returned into the variable buffer state. A positive value
indicates the number of bytes the RTDX Host Library has buffered, which the
target has not yet requested. A negative value indicates the number of bytes
that the target has requested, which the RTDX Host Library has not yet satisfied.
To send data from a host client to your target application:
Step 1: Prepare your target application to receive data.
This involves writing a simple RTDX target application that reads
data from the host client.
Step 2: Prepare your host client to send data.
This involves instantiating one RTDX object for each desired channel, opening a channel for the objects specified, and calling any other
desired functions.
Step 3: Start CCStudio IDE.
Step 4: Load your target application onto the TI processor.
Step 5: Enable RTDX in CCStudio IDE: Tools→RTDX→Configuration Control.
The Configuration Control window displays.
Step 6: Run your target application.
Step 7: Run your host client.
For details on using RTDX, see the Help→Contents→RTDX or Help→Tutorial→RTDX Tutorial.
Code Composer Studio Real-time Kernel and Analysis
6-19
Chapter 7
TI DSP Foundation Software
This chapter applies to all platforms using Code Composer Studio
(CCStudio) IDE. However, not all devices have access to all of the tools discussed in this chapter. For a complete listing of the tools available to you, see
the online help and online documentation provided with CCStudio IDE.
TI DSP foundation software is comprised of the following components:
- Chip Support Library (CSL). Provides an application programming inter-
face (API) used for configuring and controlling the DSP on-chip peripherals for ease of use, compatibility between various C6000/C5000 devices
and hardware abstraction. This library shortens development time by providing standardization and portability.
- DSP Library (DSPLIB). A collection of high-level optimized DSP function
modules for the C6000 and C5000 DSP platform. This source-code library
includes C-callable functions (ANSI–C language compatible) for general
signal processing math and vector functions that have been ported across
fixed- and floating-point DSPs.
- DSP Image/Video Processing Library (IMAGELIB). Contains software
code that is highly optimized for C6000/C5000 DSPs and is compiled with
the latest revision of the C6000/C5000 DSP code-generation compile
tools. These imaging functions support a wide range of applications that
include compression, video processing, machine vision and medical
imaging.
Topic
Page
7.1
CSL Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2
7.2
CSL Graphical Interface Functions Overview . . . . . . . . . . . . . . . . . . . . 7-3
7.3
DSPLIB Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8
7.4
DSPLIB Functions Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-8
7.5
IMGLIB Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-9
7.6
IMGLIB Functions Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-9
7-1
CSL Introduction
7.1 CSL Introduction
The Chip Support Library(CSL) is a fully scalable component of DSP/BIOS
that provides C-program functions to configure and control on-chip peripherals. It is intended to simplify the process of running algorithms in a real system.
The goal is peripheral ease of use, shortened development time, portability,
hardware abstraction, and a small level of standardization and compatibility
among devices.
How the CSL Benefits You
The CSL benefits you in the following ways:
- Standard Protocol to Program Peripherals
CSL provides a higher-level programming interface for each on-chip
peripheral. This includes data types and macros to define peripheral register configuration, and functions to implement the various operations of
each peripheral.
- Basic Resource Management
Basic resource management is provided through the use of open and
close functions for many of the peripherals. This is especially helpful for
peripherals that support multiple channels.
- Symbol Peripheral Descriptions
As a side benefit to the creation of CSL, a complete symbolic description of
all peripheral registers and register fields has been created. It is suggested
that you use the higher-level protocols described in the first two bullets, as
these are less device specific, making it easier to migrate your code to
newer versions of DSPs.
The DSP/BIOS configuration tool provides a graphical user interface for device configuration via the CSL. The CSL tree of the configuration tool allows
the pre-initialization of some peripherals by generating C files using CSL APIs.
The peripherals are pre-configured with the pre-defined configuration objects.
Note:
If you utilize CSL without use of the DSP/BIOS Configuration tool, CSL can
conflict with DSP/BIOS functionality.
7-2
CSL Graphical Interface Functions Overview
7.2 CSL Graphical Interface Functions Overview
The DSP/BIOS Configuration Tool allows you to access the CSL graphical interface and configure some of the on-chip peripherals. Each peripheral is represented as a subdirectory of the CSL Tree as shown in Step 3.
The workflow consists of the following steps:
Step 1: Create the DSP/BIOS configuration file (.cdb).
File→New→DSP/BIOS Configuration.
The New configuration window displays.
Available DSP/BIOS
configurations for
your platform
View detailed list
View list as small icons
View list as large icons
Description of
the selected
configuration
TI DSP Foundation Software
7-3
CSL Graphical Interface Functions Overview
Step 2: Select the appropriate configuration for your target and click OK.
The Config window displays.
7-4
CSL Graphical Interface Functions Overview
Step 3: Configure the on-chip peripherals through the CSL hierarchy tree.
Add configuration icons and then set the values and parameters for
each configuration.
You can also set global properties. Under the System icon in the
Configuration window, highlight Global Settings. Right-click and
select Properties from the pop-up menu. The Global Settings
Properties window displays.
TI DSP Foundation Software
7-5
CSL Graphical Interface Functions Overview
Step 4: C code files are automatically generated when you save the configuration file. These files display in your project window.
Two C files are generated – the header file and the source file.
H
Header file: projectcfg.h
H
Source file: projectcfg_c.c
In these examples, project is the user’s cdb file name. The bold characters are attached automatically.
Header file
The header file contains several elements.
- The definition of the chip
#define CHIP_6201 1
- The csl header files of the CSL tree
#include <csl.h>
#include
#include
#include
#include
0
<csl_dma.h>
<csl_emif.h>
<csl_mcbsp.h>
<csl_timer.h>
- The declaration list of the variables handle and configuration names de-
fined in the project.cdb. They are declared external and can be used by
the user
extern far TIMER_Config timerCfg1;
extern far MCBSP_Config mcbspCfg0;
extern TIMER_Handle hTimer1;
extern MCBSP_Handle hMcbsp0;
In order to access the predefined handle and configuration objects, the header
file has to be included in the user’s project C file.
/* User’s main .c file */
The following line is mandatory and must be included in the user’s C file:
#include <projectcfg.h>
7-6
CSL Graphical Interface Functions Overview
Source file
The source file consists of the Include section, the Declaration section, and the
Body section.
- Include section
The source file has access to the data declared in the header file.
#include <projectcfg.h>
Note: If this line is added before the other csl header files (csl_emif,
csl_timer, ...), you are not required to specify the device number under the
Project option (–dCHIP_6xxxx not required).
- Declaration section:
This section describes the configuration structures and the handle objects
previously defined in the configuration tool.
The values of the registers reflect the options selected through the Properties pages of each device.
- Body section:
The body is composed of a unique function, CSL_cfgInit(), which will be
called from the user’s C file.
The function CSL_cfgInit() allows you to allocate and configure a device
by calling the Peripheral_open() and Peripheral_config() APIs.
These two functions are generated when the Open and Enable Pre-initialization options are checked in the Properties page of the related Resource
Manager. An exception to this is when the EMIF handle does not exist.
Note: A device can be allocated without being configured.
TI DSP Foundation Software
7-7
DSPLIB
DSPLIB Introduction
Introduction / DSPLIB Functions Overview
7.3 DSPLIB Introduction
The DSP Library (DSPLIB) includes many C-callable, assembly-optimized,
general-purpose signal-processing and image/video processing routines.
These routines are typically used in computationally intensive real-time applications where optimal execution speed is critical. By using these routines,
you can achieve execution speeds considerably faster than equivalent code
written in standard ANSI C language. In addition, by providing ready-to-use
DSP and image/video processing functions, DSPLIB and IMGLIB can significantly shorten your application development time.
For more information on DSPLIB see:
-
TMS320C54x DSP Library Programmer’s Reference (SPRU518)
TMS320C55x DSP Library Programmer’s Reference (SPRU422)
TMS320C62x DSP Library Programmer’s Reference (SPRU402)
TMS320C64x DSP Library Programmer’s Reference (SPRU565).
How DSPLIB Benefits You
DSPLIB includes commonly used routines. Source code is provided that allows you to modify functions to match your specific needs.
Features include:
-
Optimized assembly code routines
C and linear assembly source code
C-callable routines fully compatible with the TI Optimizing C compiler
Benchmarks (cycles and code size)
Tested against reference C model
7.4 DSPLIB Functions Overview
DSPLIB provides a collection of C-callable high performance routines that can
serve as key enablers for a wide range of signal and image/video processing
applications. These functions are representative of the high performance capabilities of the C5000 and C6000 DSPs.
The routines contained in the DSPLIB are organized into the following functional categories:
7-8
Adaptive filtering
Correlation
FFT
Filtering and convolution
Math
Matrix functions
Miscellaneous
Introduction
IMGLIB Introduction / IMGLIB IMGLIB
Functions
Overview
7.5 IMGLIB Introduction
The Image/Video Processing Library (IMGLIB) includes many C-callable, assembly-optimized, general-purpose signal-processing and image/video processing routines. These routines are typically used in computationally intensive
real-time applications where optimal execution speed is critical. By using
these routines, you can achieve execution speeds considerably faster than
equivalent code written in standard ANSI C language. In addition, by providing
ready-to-use DSP and image/video processing functions, DSPLIB and IMGLIB can significantly shorten your application development time.
For more information on IMGLIB see:
- TMS32C55x Imaging/Video Processing Library Programmer’s Reference
Guide (SPRU037)
- TMS320C62x Image/Video Processing Library Programmer’s Reference
(SPRU400)
- TMS320C64x Image/Video Processing Library Programmer’s Reference
(SPRU023).
How IMGLIB Benefits You
IMGLIB includes commonly used routines. Source code is provided that allows you to modify functions to match your specific needs.
Features include:
-
Optimized assembly code routines
C and linear assembly source code
C-callable routines fully compatible with the TI Optimizing C compiler
Benchmarks (cycles and code size)
Tested against reference C model
7.6 IMGLIB Functions Overview
IMGLIB provides a collection of C-callable high performance routines that can
serve as key enablers for a wide range of signal and image/video processing
applications. These functions are representative of the high performance capabilities of the C6000 DSPs.
The set of software routines included in the IMGLIB (available for the C6000
platform only) are organized into three different functional categories as follows:
- Image/video compression and decompression
- Image Analysis
- Picture filtering/format conversions
TI DSP Foundation Software
7-9
Chapter 8
TMS320 DSP Algorithm Standard
This chapter applies to all platforms using Code Composer Studio
(CCStudio) IDE. However, not all devices have access to all of the tools discussed in this chapter. For a complete listing of the tools available to you, see
the online help and online documentation provided with CCStudio IDE.
The TMS320 DSP Algorithm Standard is a key ingredient of eXpressDSP. Its
coding conventions for algorithm writers ultimately eliminate much of the time–
consuming reengineering work required to integrate algorithms into a variety
of applications. It achieves this by defining common programming rules,
guidelines, and interfaces.
The Algorithm Standard enforces known behaviors, requires documentation
of features relevant to integration, and defines interfaces for algorithms to use
to request resources. This facilitates the integration and deployment of algorithms in a variety of systems.
This chapter discusses the TMS320 DSP Algorithm Standard and provides resources for algorithm writers to help them create algorithm interfaces.
For more information on the TMS320 DSP Algorithm Standard, see
Help→Contents→TMS320 DSP Algorithm Standard.
Topic
Page
8.1
TMS320 DSP Algorithm Standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2
8.2
Resources for Algorithm Writers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3
8-1
TMS320 DSP Algorithm Standard
8.1 TMS320 DSP Algorithm Standard
Texas Instruments tests algorithms for compliance with the TMS320 DSP Algorithm Standard. Algorithms that pass may use the eXpressDSP-compliant
logo. By using such algorithms, system integrators can avoid bugs that result
from unfounded assumptions by the algorithm about resource availability and
calling context.
Rules and guidelines for writing portable code are provided for the following
DSP platforms:
- TMS320C62x, C64x, C67x
- TMS320C54x, C55x
- TMS320C24x
The TMS320 DSP Algorithm Standard Developer’s Kit included in your
CCStudio installation contains tools to assist both algorithm producers and
consumers.
The Developer’s Kit includes documents, examples, and supplementary APIs.
Example versions are provided to run out of the box on the following platforms:
- C54x simulator
- C62x simulator
- EVM6201
- DSK6211
- DSK5402
8-2
Resources for Algorithm Writers
8.2 Resources for Algorithm Writers
By following these steps, you generate the files needed to create
eXpressDSP-compliant algorithm interfaces. If you need help while using
these steps in CCStudio IDE, press F1.
Step 1: Select Tools → Algorithm Standard → Template Code Generator.
The Algorithm Standard Code Generator Window displays.
TMS320 DSP Algorithm Standard
8-3
Resources for Algorithm Writers
Step 2: Enter values in the fields.
The Algorithm Name, Vendor Name, and Algorithm Methods fields
are required.
If all required fields are filled, the Build Project button activates.
TIP: When entering this information, do not use semicolons because the tool adds them automatically.
Step 3: Click Create Template to create your new DSP Algorithm template.
Step 4: Click Build Project.
The Build Progress dialog box and the Output window display.
Step 5: The Algorithm Standard files are generated and placed in the project
specified by the Project Location field.
Step 6: Add the following files to the project:
8-4
H
alg-create.c and alg_malloc.c
H
The object files containing the original vendor algorithm.
H
rts[dsp].lib (the DSP-specific run time system library)
H
The framework or application containing the main() function.
Resources for Algorithm Writers
Step 7: Change the build options (Project→Options) so the ‘Include Search
Path’ contains the following paths – order is important:
H
<path for project directory>
H
<path for any header files required for original algorithm>
H
c:\ti\xdas\include
Step 8: Edit the i<module>.c file.
This file contains the Params structure default values. Fill in each default value with a reasonable value as the tool puts in zero by default
for each parameter.
Step 9: Rename the <MODULE>_<VENDOR>.c file to
<MODULE>_<VENDOR>ialg.c and edit the file.
Step 10: Rename the <MODULE>_<VENDOR>_vtab.c file to
<MODULE>_<VENDOR>ialgvt.c.
Step 11: Add the following function definitions to the bottom of the
<MODULE>_<VENDOR>.h file, before the final #endif statement.
/*
* ======== <MODULE>_<VENDOR>_init ========
* Initialize the <MODULE>_<VENDOR> module as a whole.
*/
Void <MODULE>_<VENDOR>_init(Void);
/*
* ======== <MODULE>_<VENDOR>_exit ========
* Exit the <MODULE>_<VENDOR> module as a whole.
*/
Void <MODULE>_<VENDOR>_exit(Void);
For information about submitting a product for compliance testing, on the TI
web site go to the DSP Developers’ Village and follow links in the eXpressDSP
Compliance Program box.
TMS320 DSP Algorithm Standard
8-5
Index
Index
A
absolute lister
B
bookmarks, code window 2-14
breakpoints
hardware 4-5
introduction 4-3
software 4-4
vs. probe points 4-10
build options 3-4
dialog box 3-4
Build Options dialog box 3-4
build program 2-8
build project 2-8
build projects, from the command line
3-7
accessing documentation
1-8
add, new project configuration
add files to a project
2-11
2-4
add new project configuration
2-11
advanced event triggering 4-17
event analysis 4-17
event sequencer 4-17, 4-20
algorithm standard
resources for writers
using 8-2
8-3
API
DSP/BIOS 6-3, 6-11
execution threads 6-11
archiver, described
C
3-7
assembler
described 3-7
overview 3-8
assembly language tools 3-7
absolute lister 3-7
archiver 3-7
assembler 3-7
cross–reference lister 3-7
hex–conversion utility 3-7
linker 3-7
menemonic–to–algebraic translator utility
assembly optimizer, described
2-11
3-13
automatic tool updates, Update Advisor
1-10
automatic web update, Update Advisor
1-10
3-7
C/C++ code development tools 3-13
C/C++ compiler, described 3-13
CCS versions, Component Manager 1-11
change, active project configuration 2-10
change active project configuration 2-10
Channel Viewer Control, RTDX 6-17
check for tool updates, Update Advisor 1-9, 1-10
Chip Support Library 7-2
DSP/BIOS Configuration Tool 7-3
graphical interface 7-3
header file 7-6
source file 7-7
code, review using the editor 2-13
Code Composer Studio, code generation tools 3-3
Code Composer Studio Tutorial 1-7
Index-1
Index
code development tools
assembly optimizer 3-13
C++ name demangling utility 3-13
C/C++ 3-13
library–build utility 3-13
run–time–support libraries 3-13
code generation tools
D
3-2
code window
bookmarks 2-14
keyboard shortcuts 2-14
keywords 2-13
selection margin 2-13
CodeMaestro settings
2-14
command line, build projects from
Command Window
4-25
compiler, overview
3-6 to 3-9
Component Manager
Configuration, create a
2-11
1-11
1-3
configuration
add DSP/BIOS files to project
add new project 2-11
building PBC profile 5-6
change active 2-10
enable PBC profile 5-5
project selection 2-10
6-7
Configuration Control, RTDX
6-16
configuration files, DSP/BIOS
6-5
configuration tool, DSP/BIOS
6-3
configure
RTDX graphically 6-14
system for Data Converter
4-30
create a project 2-2
Project Creation wizard
2-2
Create a System Configuration
cross-reference utility
7-3
CSL (chip support library), benefits of
CSL Benefits
Index-2
7-2
E
1-3
3-7
CSL
DSP/BIOS Configuration tool
graphical interface 7-3
header file 7-6
Introduction to 7-2
source file 7-7
Data Converter 4-29
configure your system for 4-30
open window 4-29
data flow, RTDX 6-14
debug tools
advanced event triggering 4-17
Command Window 4-25
Data Converter 4-29
emulator analysis 4-16
graphs 4-21
overview 4-2
Pin Connect 4-26
Port Connect 4-27
probe points 4-10
simulator analysis 4-14
symbol browser 4-23
Watch window 4-6
development flow 1-2
Diagnostics Control, RTDX 6-15
documentation, accessing 1-8
DSP Algorithm Standard
resources for writers 8-3
using 8-2
DSP/BIOS
add configuration files to project 6-7
API 6-3, 6-11
configuration tool 6-3
create configuration files 6-5
execution threads 6-11
kernel 6-3, 6-11
Real–time Analysis Tools 6-8
Real–time analysis tools 6-3
RTA 6-3
using 6-2
DSP/BIOS toolbar 6-9
7-2
editor, review source code 2-13
EMT Tool, TMS470Rxx 4-32
emulator analysis 4-16
EPROM programmer 3-7
event analysis 4-17
event sequencer 4-17, 4-20
event triggering 4-17
event analysis 4-17
event sequencer 4-17, 4-20
Index
execution threads 6-11
external editor, source code
external makefile 2-12
M
2-15
makefile
external 2-12
import 2-12
mnemonic–to–algebraic translator utility 3-7
multiple CCS versions, Component Manager 1-11
multiple tool versions, Component Manager 1-11
F
files
add DSP/BIOS configuraiton to project
adding to a project 2-4
create DSP/BIOS configuration 6-5
N
new project
create a 2-2
Project Creation wizard
G
GEL, general extension language
graphical interface, CSL 7-3
graphs, displaying 4-21
4-24
H
hardware breakpoints 4-5
header file, CSL 7-6
hex conversion utility, described
3-7
I
2-2
O
optimization tools
Profile Based Compiler 5-4
Profiler 5-2
optimizer, described 3-13
OS Selector, TMS470Rxx 4-33
overview
assembler 3-8
debug tools 4-2
linker 3-9
P
Import Configuration dialog box
import makefile 2-12
interlist utility, described 3-13
1-4, 1-5
K
kernel, DSP/BIOS 6-3, 6-11
keyboard shortcuts, code window
keywords, code window 2-13
L
library-build utility, described
linker
described 3-7
overview 3-9
Visual Linker 3-10
6-7
3-13
2-14
PBC
building configuration 5-6
finished application outline 5-7
Profile Based Compiler 5-4
profile configuration 5-5
Pin Connect 4-26
Port Connect 4-27
probe points 4-10
vs. breakpoints 4-10
Profile Based Compiler
building configuration 5-6
finished application outline 5-7
PBC 5-4
profile configuration 5-5
Profile session 5-2
Profiler 5-2
program
build 2-8
run 2-8
Index-3
Index
project
add DSP/BIOS configuration files 6-7
adding files 2-4
build 2-8
create a 2-2
Project Creation wizard 2-2
project configuration
add new 2-11
change active 2-10
selecting 2-10
Project Creation wizard 2-2
project run 2-8
projects, build from the command line 2-11
R
Real–time analysis tools, DSP/BIOS 6-3, 6-8
real–time component, DSP/BIOS 6-2
real–time components, RTDX 6-13
real–time data exchange, RTDX 6-13
resources for algorithm writers 8-3
RTA, DSP/BIOS 6-3
RTDX
Channel Viewer Control 6-17
Configuration Control 6-16
configure graphically 6-14
data flow 6-14
Diagnostics Control 6-15
real–time data exchange 6-13
transmit data from host 6-19
transmit integer to host 6-18
using 6-13
run program 2-8
run project 2-8
runtime-support, library, described 3-13
S
select
configuration 2-10
project configuration 2-10
select a project configuration 2-10
selection margin, code window 2-13
session, for the Profiler 5-2
shell program, described 3-13
Index-4
simulator analysis 4-14
user options 4-14
software breakpoints 4-4
source code
external editor 2-15
review 2-13
Source Control 2-6
pop–up menu 2-7
source file, CSL 7-7
symbol browser 4-23
System Configuration, Create a 1-3
system configuration, for Data Converter
4-30
T
threads, execution 6-11
TMS320 DSP Algorithm Standard
resources for writers 8-3
using 8-2
TMS470Rxx
EMT Tool 4-32
OS Selector 4-33
tool updates, Update Advisor 1-9, 1-10
tool versions, Component Manager 1-11
toolbar, DSP/BIOS 6-9
tools
assembly language 3-7
code generation 3-2
compiler 3-6
trace process, overview 4-32
translator utility, mnemonic–to–algebraic 3-7
transmit data from host, RTDX 6-19
transmit integer to host, RTDX 6-18
tutorial 1-7
U
Update Advisor 1-9
check for tool updates 1-9, 1-10
use Source Control 2-6
pop–up menu 2-7
using
DSP/BIOS 6-2
RTDX 6-13
TMS320 DSP Algorithm Standard
8-2
Index
V
Visual Linker 3-10
getting started 3-10
W
Watch window 4-6
display 4-6
toolbar 4-6
web updates, Update Advisor
1-9, 1-10
Index-5
Download PDF