The creation and consumption of cool gadgets has become a way of life for many designers, engineers, and billions of consumers. These gadgets, whether for music, video, Web navigation, games, or communications, keep getting ever more sophisticated, smarter and smaller. Buried inside these electronic gadgets are high-tech embedded digital processors. The tasks handled by these embedded processors usually fall into one of two categories:
General purpose processing tasks such as data transfer or running graphical user interfaces, which is handled by GPP (General Purpose Processor). Digital signal processing tasks such as compressing and decompressing video, audio, and speech streams, handled by DSP (Digital Signal Processor).
Traditionally, the software running on two heterogeneous processors are maintained by two teams individually. Most engineers are familiar with programming for GPP. However, programming for DSP demands more know-how for specific domains, and optimization skill in assembly language. Furthermore, the communication and memory allocation between two processors are also very important for the performance for the whole system.
Today, all of this functionality can be packed into a single device. TI has been a pioneer in the area of processor integration with its family of SoC devices branded OMAP and DaVinci. To make any OMAP or DaVinci device perform the way you want requires a lot of software. Really good news is that TI provides much of the embedded software and tools required to get OMAP and DaVinci developers up and running fast. Developers can focus on cool applications and not lose valuable time on tasks that don't add real value. It sounds great, but how to get started?
OMAP and DaVinci devices contain two unique processors - one general purpose (ARM9 or even powerful Cortex-A8), the other a digital signal processor (C64x). Combining these processors inside a single chip makes OMAP and DaVinci programming an interesting and exciting challenge.
I received a small book from TI China. OMAP and DaVinci Software For Dummies, by Steve Blonstein and Alan Campbell from SDO (Software Development Organization) team of Texas Instruments. The authors explain the high-level concepts required to effectively program these devices in this book. As a demonstration, the readers can learn to create a real video/audio application on a development board, i.e. TI's OMAP EVM35XX. DVSDK is the software bundle for media processing on OMAP and DaVinci. If you register your EVM online, you can download DVDSK as well. In this book, Beagle board is not officially mentioned. However, some Beagle clone board suppliers have announced to support TI's DVSDK. The DVSDK may be shipped with Beagle boards as well. Since the authors introduce OMAP/DaVinci programming in "plain English" with many examples, it is not very difficult for a hybrid SoC newbie like me. If you want know more in detail for DSP programming, you can go further to the resources section of this book.
For Dummies is a branded imprint of WILEY publishing, Inc. This book is not for sale. Any interested engineer can order it on TI's web, free of charge. The book is quite thin, compares to the thickness of user manuals and datasheets we usually have. So you can spend your spare time to read it.
As a companion to this book, TI provides a web site (www.ti.com/dummiesbook) where you can find all sorts of goodies to further your OMAP and DaVinci experience. You can read the online PDF files for introduction and index pages. It includes all the software to download to make the video and audio demo run properly on the OMAP EVM. You can also visit the e-store (www.ti.com/estore) where you can purchase additional development boards. Finally, check out (www.tiexpressdsp.com), a developer centric wiki site with lots of useful articles and technical documents specifically support OMAP and DaVinci processors.
Let me introduce this book briefly.
Chapter 1: OMAP and DaVinci Processors - Hybrids of the Programming World
The authors show you why heterogeneous multi-core devices like OMAP and DaVinci processors have risen to such prominence. It covers discussion about high frequency, homogeneous cores and heterogeneous cores.
Chapter 2: Using the Right Operation Systems
In this chapter, it covers the operation systems (Linux, Windows CE) and kernels (DSP/BIOS) required making OMAP and DaVinci processors run efficiently. It also introduces community and commercial Linux versions and GStreamer application.
Chapter 3: Digital Meida Software: Standardizing How Codecs Work Together
It digs into the involved standards (XDAIS, XDM, and RTSC) that TI has developed to make it easier to developers to quickly integrate multi signal processing codecs into the final system. A lot of terminologies and concepts are described in this chapter.
- XDAIS: eXpressDSP Algorithm Interoperability Standard.
- XDM: eXpressDSP Digital Media.
- RTSC: Real Time Software Component.
- VISA: Video, Imaging, Speech and Audio.
Chapter 4: Multimedia Framework Products - Revving the Codec Engine
It looks at the framework software, Codec Engine, which forms a convenient housing for XDAIS-compliant algorithms.The inter-processor communication protocol (DSP/BIOS LINK) between two cores is also discussed.
Chapter 5: Picking the Right Development Tools
It explores the development tool choices for both ARM and DSP. Many topics are discussed, such as EVM35XX, DVSDK, IDE, debugger, real-time debug, advanced event triggering, simulation, code generation tools, profiling and inter-processor communication visualization.
Chapter 6: Meet the (Development) Board
You can build a "Hello" program on the OMAP35XX EVM hardware. You can follow the instruction step by step to run it.
Chapter 7: Making Codecs Play Nice with Rules and Guidelines
It explores the TI's MPEG4 video decoder demo that is used in the later chapters. You can validate your codec with QualiTI, part of XDAIS.
Chapter 8: Making a Standard Box for Codecs
It leads you through packaging a codec and preserving its performance when implmented in a framework.
Chapter 9: Generating DSP Server Executables
As the title, it teaches you to generate DSP server executables. That is the DSP end-application that your GPP code will start and run. The DSP server executable contains Codec Engine, DSP/BIOS, Framework components, DSP Link content, and various BIOS utility modules.
Chapter 10: How Do I Test This Thing?
You can get real codecs running in a test bench. You get to see video and head audio being processed on the OMAP processor. It is a very important chapter. Please follow it step by step.
Chapter 11: Ten (Almost) Codec Package Requirements
It covers ten top code recommendations that TI puvlishes to codec developers to follow.
Chapter 12: Ten Super OMAP and DaVinci Resources
The great resources can help you out during your development.
So, what are you waiting for? Order it online before it sells out. It is free of charge anyway.