The TMS320C64x+™ DSP System Integration Workshop using DSP/BIOS has been designed to use the latest hardware and software development tools available from Texas Instruments. In addition, this workshop builds around the concepts required to easily author simple DSP solutions and how to easily adapt them into increasingly more complex systems as system requirements evolve.
This workshop is not intended to be platform specific. While the labs were written on the 6437, the concepts and API apply to all TI DSP platforms. In fact, code written in the manner shown in this workshop can be easily adapted from one TI DSP processor to another.
Each of the first 10 chapters of the workshop include one or more 'hands on' lab sessions, intended to allow the attendee to 'try out' the concepts covered and obtain confidence in their ability to author code with the TI tools. Most of the labs adapt prior labs to new solutions, in the same manner as would be done in real life, rather than via 'fill in the blanks' or other non-realistic simulations of actual DSP system authoring.
Workshop Agenda
1. Introduction
List objectives of the workshop
Overview of the topics to be covered in the workshop
Brief overview of the DSK
Lab: learn how to test and configure an EVM 'out of the box'
2. Real-Time System Concepts
Define the topology common to most DSP systems
List factors involved in design of a real-time system
Compare and contrast tradeoffs in R/T system design
Identify where various BIOS elements apply to DSP systems
Observe how BIOS can be used in systems from small to extensive
Lab: practice CCS skills to create/download/debug DSP project
3. Hardware Interrupts (HWI)
Describe the concepts of foreground / background processing
List details of the Idle (IDL) thread
Compare Hardware Interrupts (HWI) to ISR’s
Demonstrate how to invoke Interrupt Preemption
Describe the purpose of the Interrupt Monitor
Create an HWI object using CCS Gconf tool
Add an idle thread to a given CCS project
Lab: Observe performance of HWI threads using CCS tools
4. Software Interrupts (SWI)
Describe the basic concepts of SWIs
Demonstrate how to post a SWI
Describe the SWI object
List several SWI posting options
Demonstrate how QUEues can be used to communicate from HWI to SWI
Lab: Add an SWI to an HWI-based system; use QUE to pass buffers between threads
5. Tasks and Semaphores (TSK, SEM)
Describe the fundamental concepts of tasks
Demonstrate the use of semaphores in tasks
Author TSK code using simple data block pointers
Create a TSK with the CCS GUI
Describe the TSK object
Explain the value of double buffers in DSP systems
Lab: Modify SWI based code to employ TSK
6. Streams (SIO)
Describe the concept of BIOS streams
List the key stream API
Adapt a Task to use stream interfacing
Describe the benefits of multi-buffer streams
Set up a stream via the configuration tool
Describe how streams can interface to SWI
Lab: Adapt TSK system to employ streams to IOM driver
7. Multi-Threaded Systems (CLK, PRD)
Describe the way BIOS can implement a time base
Setup a time base via the BIOS CLK module
Describe the results of invoking various BIOS CLK API
Set functions to run at a periodic rate via the PRD module
Describe how to implement delayed ‘one-shot’ functions
Describe how the scheduler can be managed via BIOS API
List various BIOS scheduler management API
Lab: scheduler management API for system performance
8. BIOS Instrumentation (LOG, STS, SYS, TRC)
Demonstrate statistical data on variables without halting the DSP
Describe why printf() is unsuitable for real-time systems
Describe how LOG_printf() overcomes this problem
Demonstrate how to use LOG_printf() in debugging
Describe how to implement trace control
Demonstrate how to perform real-time graphing
Describe the various API for responding to system errors
Lab: Incorporate/ observe R/T instrumentation into lab solution
9. Static Systems (GCONF, TCONF)
List the advantages and limitations of static systems
Demonstrate how to define target memory in CCS
Demonstrate routing S/W components into desired H/W memory
Describe the files created in a CCS project build
Observe the results of a built project
Describe how to optimally tune a static system
Describe the startup sequence of a BIOS based system
Lab: adapt prior lab to use different linking options
10. Dynamic Systems (MEM, BUF)
Contrast static and dynamic system coding benefits
Implement dynamic BIOS object creation and deletion
Contrast the BIOS MEM API to malloc and free
Contrast MEM API with BUF API
Lab: Modify the prior static solutions to employ dynamic methods
11. Inter-Thread Communication (MSGQ, ...)
Become familiar with signaling/data transfer methods in DSP/BIOS
ATM Atomic Fxns
SEM Semaphore
LCK Lock
MBX Mailbox
QUE Queue
SCOM Synchronized Comm
MSGQ Message Queue
Each API compared/contrasted to select optimal choice in an application
12. Input Output Mini-Drivers (IOM)
Describe the concepts of BIOS drivers
List the key MD API
List the basic activities in each MD function
Describe the support tools for writing IOMs
Describe all components of an example IOM
13. DSP Algorithm Standard (XDAIS)
Describe the benefits of using XDAIS compliant algorithms
Describe how users control algorithm behaviour
Describe how users control algorithm’s RAM and ROM usage
Describe how XDAIS algorithms support multiple instances
List the interface methods required in XDAIS algorithms
List the sequence of actions in using an XDAIS algorithm
Use Component Wizard to develop an XDAIS interface
14. Review
Review of lessons learned
Overview of TI development tools
Where to go for more information
Who should attend
This workshop is designed for engineers who need to develop or sharpen their design and development skills in real-time software design using Code Composer Studio and DSP/BIOS.
Course Prerequisites
Familiarity with C programming will be very helpful, as almost all the code present in the class is C based. Experience in writing code in C is optimal, but even those able to barely read and follow simple C coding examples should not be overly challenged.
Since this class does not presume a particular TI DSP platform, no prior experience with any particular DSP hardware is required. However, users who will develop on a particular platform may want to consider attending one of the platform specific workshops available from TI to round out their knowledge before beginning their design.
Not sure which workshop is best for you? Use these Selection Tools to view your options