The C6000 Optimization Workshop focuses on writing high performance code for the TMS320C6000 DSP. By examining the CPU architecture, TI DSP Development Tools, and other system issues you should leave the class with a good understanding of the techniques involved in writing good C6000 code.
While high performance coding is the primary concern, the workshop also addresses other important system optimization topics: minimizing code size; numerical issues with fixed-point processors; writing interruptible, high-speed code; and cache memory.
If you are evaluating the C6000 CPU architecture or want to learn how to write better C and assembly code for the C6000, this Optimization workshop is the best choice. However, if you are tasked with building a system around the C6000 and your job includes: system design, using the C6000 peripherals to move data on/off-chip, scheduling real-time software and designing your system's boot-up procedure–you may find the C6000 Integration Workshop better suits your needs. For a comparison of the two courses, see the table at the bottom of this web page.
Whether you plan to write your C6000 application using the C language, standard assembly language, or Linear Assembly language (draws from both C and assembly), you will find this workshop addresses your code writing and optimization needs.
This workshop covers the architecture of all C6000 devices, including:
Lab exercises are provided for both the C67x (floating-point) and C64x (fixed-point) platforms.
European workshop price: €1800 excluding VAT.
Isreali workshop price: $950.00 (Please note: This is for the Israeli venue only)
United States workshop price: $1595.00 USD
All multi-day workshops are presented in English.
For directions to the training facility and information on payment options, click on "Locations" in the gray navigation bar on the left side of this page.
Note: Class is subject to cancellation if minimum number of attendees is not met two weeks prior to the date of the workshop. Class size minimum is 5 persons; maximum is 12 persons.
Target Attendee |
Integration |
Optimization |
|
System Integration (data input/output, peripherals, real-time scheduling, etc.) |
yes |
||
Algorithm Development and Optimization |
yes |
C6000 Hardware |
Integration |
Optimization |
|
CPU |
CPU Architecture Details |
yes |
|
CPU Pipeline Details |
yes |
||
Peripherals |
C6000 Peripherals Overview |
yes |
yes |
Using CSL (Chip Support Library) to program peripherals |
yes, +lab |
||
DMA/EDMA (Direct Memory Access ) |
yes, +lab |
yes, briefly discussed |
|
Serial Port (McBSP) |
yes, +lab |
||
External Memory Interface (EMIF) |
yes |
||
Host Port Interface (HPI) |
yes |
||
XBUS |
yes, briefly discussed |
||
Memory |
Basic Memory Management |
yes, +lab |
yes, +lab |
Advanced Memory Management |
yes, +lab |
yes |
|
Using Overlays |
yes, +lab |
yes |
|
Multiple Heaps Via DSP/BIOS |
yes |
yes |
|
C6000 Cache |
yes, +lab |
yes, +lab |
|
Cache Optimization |
y |
Development Tools |
Integration |
Optimization |
Code Composer Studio |
yes, +lab |
yes, +lab |
DSP/BIOS Configuration Tool |
yes, +lab |
yes, +lab |
C6713 or C6416 DSP Starter Kit (DSK) |
yes, +lab |
yes, briefly discussed |
C6000 Simulator |
yes, +lab |
|
Compiler Options for Optimization |
yes, briefly discussed |
yes, +lab |
Assembly Optimizer |
yes, +lab |
|
Profile Based Compiler (PBC) |
yes |
|
Absolute Lister |
yes, briefly discussed |
|
Hex6x Utility |
yes, +lab |
|
FlashBurn |
yes, +lab |
|
Board Support Library (BSL) |
yes, +lab |
System Topics |
Integration |
Optimization |
DSP/BIOS Real-Time Scheduler |
yes, +lab |
|
DSP/BIOS Real-Time Analysis (LOG, STS) |
yes, +lab |
|
Reference Frameworks |
yes |
|
Double-Buffers For Data Input/Output |
yes, +lab |
|
Creating A Bootable Standalone System (Boot Without Emulator) |
yes, +lab |
|
Programming Flash Memory |
yes, +lab |
|
Interrupt Basics |
yes, +lab |
yes |
Advanced Interrupt Topics |
yes, +lab |
|
Interruptibility of High-Performance C Code |
yes |
|
eXpressDSP Algorithm Standard Introduction |
yes, +lab |
yes |
Coding |
Integration |
Optimization |
Building Code Composer Studio Projects |
yes, +lab |
yes, +lab |
Compiler Build Options |
yes, briefly discussed |
yes, +lab |
Running C programs |
yes, +lab |
yes, +lab |
C Coding Efficiency Techniques |
yes, +lab |
|
Writing /Optimizing Assembly |
yes, +lab |
|
Linear Assembly Coding |
yes, +lab |
|
Calling Assembly from C |
yes, +lab |
|
Software Pipelining Techniques |
yes, +lab |
|
Numerical Issues with Fixed Point Processors |
yes |
|
C Runtime Environment (stack pointer, global pointer, etc.) |
yes, +lab |
|
C Optimization (pragmas and other techniques) |
yes, +lab |
Development Tools |
Integration |
Optimization |
Code Composer Studio |
yes, +lab |
yes, +lab |
DSP/BIOS Configuration Tool |
yes, +lab |
yes, +lab |
C6713 or C6416 DSP Starter Kit (DSK) |
yes, +lab |
yes, briefly discussed |
C6000 Simulator |
|
yes, +lab |
Compiler Options for Optimization |
yes, briefly discussed |
yes, +lab |
Assembly Optimizer |
|
yes, +lab |
Profile Based Compiler (PBC) |
|
yes |
Absolute Lister |
yes, briefly discussed |
|
Hex6x Utility |
yes, +lab |
|
FlashBurn |
yes, +lab |
|
Board Support Library (BSL) |
yes, +lab |
|
System Topics |
Integration |
Optimization |
DSP/BIOS Real-Time Scheduler |
yes |
|
DSP/BIOS Real-Time Analysis (LOG, STS) |
yes |
|
Reference Frameworks |
yes |
|
Double-Buffers For Data Input/Output |
yes |
|
Creating A Bootable Standalone System (Boot Without Emulator) |
yes |
|
Programming Flash Memory |
yes |
|
Interrupt Basics |
yes |
yes |
Advanced Interrupt Topics |
yes |
|
Interruptibility of High-Performance C Code |
|
yes |
eXpressDSP Algorithm Standard Introduction |
yes |
yes |
Coding |
Integration |
Optimization |
Building Code Composer Studio Projects |
yes, +lab |
yes, +lab |
Compiler Build Options |
yes, briefly discussed |
yes, +lab |
Running C programs |
yes, +lab |
yes, +lab |
C Coding Efficiency Techniques |
|
yes, +lab |
Writing / Optimizing Assembly |
|
yes |
Linear Assembly Coding |
|
yes |
Calling Assembly from C |
|
yes |
Software Pipelining Techniques |
|
yes |
Numerical Issues with Fixed Point Processors |
|
yes |
C Runtime Environment (stack pointer, global pointer, etc.) |
|
yes+lab |
C Optimization (pragmas and other techniques) |
|
yes |
* European classes are subject to cancellation if minimum number of attendees is not met one week prior to the date of the workshop.
* US classes are subject to cancellation if minimum number of attendees is not met two weeks prior to the date of the workshop.
Minimum = 5 Maximum = 12