Digital Signal Processing Reference
In-Depth Information
solutions carry more and more hardware accelerators for special processing along
the product line. For instance, the SGX graphics accelerator is available on
OMAP3530, which enables the programmers to migrate OpenGL code. TI provides
a rich set of tools for the programmer to develop the applications using different PEs
and provide many abstractions to ease the programmer's job by not going deep into
many platform details. Nevertheless, how to partition and allocate different tasks/ap-
plications onto the platform so as to efficiently leverage the underlying processor
power remains an art, which highly relies on the knowledge and experience of the
programmer.
Figure 14 b illustrates the software development tools and layers that TI provides.
TI promotes the philosophy of abstractions among the software layers to hide just
enough details for the developers at different roles/layers.
￿
OS Level (low-level developer): At OS level, the choices of OSes on the ARM
are diverse including Linux and WinCE. The so-called DSP/BIOS developed
by TI is a real-time multi-tasking kernel which is especially optimized for real-
time DSP task scheduling. DSP/BIOS has a very small foot-print in size, fast
speed optimized for DSP tasks, and a low latency which is also deterministic.
DSP/BIOS Link is a special layer developed by TI to handle inter-processor
communication.
￿
Algorithm/Codec Level (algorithm developer): Algorithms/codecs are usually
allocated onto the DSP due to its computation power. TI has standardized the
interface of the algorithms/codecs to the upper levels like XDAIS (eXpressDSP
Algorithm Interoperability Standard [ 80 ] ) as the abstractions . Those standards
provide the coding rules and guidelines for the algorithm developers. There are
also helper tools which can check the compliance of the given algorithms/codes
to the standards and provide the standard packaging for delivery.
￿
Codec Engine Server Level (system integrator): Codec Engine Server needs to
be developed by the system integrator by combining the core codecs along with
the other infrastructure pieces (DSP/BIOS, DSP/BIOS Link, and so on) and
ultimately produces an executable that is callable from another core (usually
ARM) where the Codec Engine is running. It is critical that the system resource
requirements (MIPS, memory, DMA and so on) are evaluated to ensure that the
codec combination can co-exist and run as required.
￿
Custom Application Development Level (application developer): The application
developer uses Codec Engine APIs to leverage the codec functionality, on
top of the layers introduced earlier. Third-party tools/frameworks that provide
valuable addons like GUI or streaming frameworks can be ported here. TI
also provides the DMAI, the DaVinci (and OMAP) Multimedia Applications
Interface solution, to ease the programmer's job by providing a collection of
useful modules such as abstraction of common peripherals.
The abstractions among the layers are realized by the standardized interfaces.
Therefore, different teams can work in different domains at the same time thus
boosting the productivity. Moreover, this also enables the possibility of third-parties
participating in the TI software stack to provide valuable/commercial solutions, e.g.
special codec packages, application-level GUI frameworks.
Search WWH ::




Custom Search