As real-time digital signal processing (DSP) systems become more complicated with multiple
threads of execution and faster DSPs, software development and debugging becomes more
complicated. An MP3 player is a good example of a multi-threaded system that executes not
only DSP-type (data) threads such as MP3 decoding, sample rate conversion, and graphic
equalization, but it also runs typical “host/controller” (control) threads such as user interface
(keypad/LCD) and access to storage media (for example, Compact Flash). In this document
we discuss the software behind a real-world MP3 player running stand-alone on a Texas
Instruments C5000E DSP. Parts of this system are presently being shipped in production
MP3 players all over the world. The software is built upon the Texas Instruments DSP/BIOS
offering with scheduler and real-time analysis. This application report shows a step-by-step
real-world software paradigm shift. We will start with a typical ISR (interrupt service routine)
system and build it up in steps to incorporate such constructs as a real-time preemptive kernel
and data piping structure. Then we will see how DSP/BIOS real-time analysis (RTA) can be
used to observe and debug the entire system in real time. These debug features include
scheduling graphs, loading calculations, and statistical benchmarking information.……