Digital Signal Processors & ARM Microprocessors

Platforms

DSP & ARM MPU Design Support

Getting Started

Selection Tool

Operating Systems (OS/RTOS)

 
     

DSP BIOS Overview | DSP BIOS Kernel | TI applications for DSP BIOS | DSP BIOS Link

Overview

DSP BIOS: A Complete DSP OS Solution

TI’s DSP/BIOS(TM) kernel is a scalable real-time multi-tasking kernel, designed specifically for the TMS320C6000™, TMS320C5000™, and TMS320C28x™ DSP-enabled platforms. Together with its associated networking, microprocessor-DSP communications, and driver modules, DSP/BIOS provides a solid foundation for even the most sophisticated DSP applications. DSP/BIOS has been proven in thousands of customer designs and is one of the world’s mostly widely used real-time operating systems. DSP/BIOS requires no runtime license fees and is backed by Texas Instruments’ worldwide training and support organizations.

DSP/BIOS provides standardized APIs across C6000, C5000 and C28x DSP platforms to support rapid application migration and is also optimized to run on the DSP cores on OMAP™ devices. DSP/BIOS is available both standalone and as an integral part of the Code Composer Studio™ Integrated Development Environment (IDE) and includes graphical Kernel Object Viewer and Real-Time Analysis tools specifically focused on debugging and tuning multitasking applications.

DSP/BIOS is backed by an experienced development team that regularly adds new capabilities, such as variable length message passing and power management, which were released with DSP/BIOS 5.20.

Back to Top

DSP BIOS Kernel

DSP/BIOS provides a rich set of deterministic kernel services that enable developers to create sophisticated applications without compromising real-time deadlines. DSP/BIOS is highly scalable with multithreading configurations requiring as few as 1K words. The kernel services may be invoked through either a C function or an assembly language macro interface.

Graphical configuration

Like all conventional real-time operating systems, DSP/BIOS enables an application to dynamically create operating system objects, such as tasks or semaphores, at any time during program execution. In addition to this approach, DSP/BIOS provides a host-based graphical configuration tool that enables simple point-and-click configuration of a DSP/BIOS image tailored to the needs of the application. This static configuration process greatly reduces target memory footprint by eliminating not only the kernel functions not used in the application but also the code required to dynamically create operating system objects such as threads and semaphores.

Kernel Services
In addition to analysis and peripheral configuration support, DSP/BIOS includes the following kernel modules:
  • Hardware Interrupts – Interface from hardware interrupts to DSP/BIOS kernel
  • Software Interrupts – Lightweight pre-emptible threads that use program stack but cannot yield
  • Tasks – Independent threads of execution that can yield the processor
  • Periodic Functions – Time-triggered lightweight threads
  • Mailboxes – Synchronized data exchange between tasks
  • Semaphores – Counting semaphores
  • Queues – Atomic link lists
  • Clock – Interface to hardware timers
  • Streams – Streaming I/O for tasks
  • Pipes – Streaming I/O for software interrupts
  • Memory Manager – Low overhead dynamic memory allocation

To provide the fast response required by DSP applications, DSP/BIOS augments the traditional tasking model with additional threading mechanisms. Software Interrupts are lightweight pre-emptible threads that share a common stack. This results in lower memory overhead and faster context switch times, as there is no need to save and restore a task stack. Periodic Functions are time-triggered high-priority threads that can be easily set up to process samples of data arriving at fixed time intervals, simplifying the design of multirate systems. To facilitate the design of sophisticated applications, DSP/BIOS provides multiple intertask communication services, including semaphores, mailboxes, and queues.

Efficient Interrupt Management

DSP/BIOS provides two options for handling interrupts — an interrupt dispatcher and macros. In both implementations, great care has been taken to minimize disabling of interrupts to optimize interrupt latency. The dispatcher enables ISRs to be written in C by performing operations such as context saving and restoration and temporary disabling of the scheduler, which ensures ISRs can interact correctly with the kernel. This approach reduces code size by eliminating the need to specifically add such code to each ISR. To further reduce memory requirements, all ISRs use a common stack rather than the stack of the task they interrupt. The entry and exit macros can be added to an ISR to perform the same operations as the dispatcher. Although the macro functions must be duplicated in each ISR, they enable the developer to optimize register save and restore operations to only those used by that specific ISR, thus minimizing interrupt response time. DSP/BIOS enables both the macros and dispatcher to be used in the same application to achieve the optimal balance of performance and memory footprint.

Hardware Abstraction

In addition to scheduling and intertask communications services, DSP/BIOS also provides real-time clock management, memory management, and device-independent I/O. The DSP/BIOS memory manager provides re-entrant dynamic memory management that abstract away the fragmented memory configurations typical of DSP applications by use of logical memory segments. DSP/BIOS provides a device-independent I/O model that is optimized for efficient processing of real-time streams of data. By abstracting away specific dependencies on peripheral devices and memory configurations, DSP/BIOS makes it simpler to port applications to new DSP processors or board designs.

Back to Top

TI Applications for DSP/BIOS
In addition to the core DSP/BIOS multitasking kernel services and development tools, TI provides other DSP/BIOS-compatible modules that simplify application development:
  • Network Developer’s Kit – A TCP/IP stack including higher level services such as HTTP server and telnet.
  • DSP/BIOS Link – Microprocessor-DSP communications and control software that enables a microprocessor to bootload and communicate with a DSP.
  • Processor Support Package (PSP) – The PSP includes DSP/BIOS drivers for devices such as serial ports and EMACs, as well the low-level software layer for the all the DSP’s peripherals (Chip Support Library).
  • ADD DSPBIOS DVSDK DESCRIPTION
These systems software modules are augmented by DSP/BIOS-compatible multimedia framework products.
  • Multimedia Framework Products (MFP) – MFP includes the xDAIS Developer’s Kit, Codec Engine and Framework Components that eliminate many of the issues associated with developing and integrating multi-function DSP applications.

Back to Top

DSP BIOS Link

Many DSP-based applications, including everything from digital cameras to mobile communications, use a microprocessor to control a DSP. To meet this need, TI has released OMAP™ Processors, which combine an ARM and DSP core in a single chip implementation for video applications. DSP/BIOS Link is designed to facilitate communication between microprocessor and DSPs either on the same chip or in discrete devices on a board.

To develop applications that reside on MCU+DSP solutions, developers must implement communications software that enables data and control information to be exchanged between the microprocessor and the DSP. In addition, the microprocessor must also boot the DSP and control which algorithms the DSP executes for a specific task. In the past, developers have had to create these functions from scratch. DSP/BIOS Link makes interprocessor communication development easier by providing a robust set of MCU-DSP communications services. DSP/BIOS Link is available to support OMAP. DSP/BIOS Link can also be ported to other DSP + microprocessor topologies.

DSP/BIOS Link is available for a variety of popular real-time operating systems from TI and its partners. In addition, it is provided as a source code porting kit that enables easy porting to other microprocessor operating systems. DSP/BIOS Link offers the following features:
  • Point-to-point, asynchronous data streaming between the ARM and DSP
  • Messaging between the ARM and DSP
  • Bootload the DSP from ARM
  • Pre-tested ARM-DSP communications driver support for OMAP
  • Scalable footprint on both microprocessor and DSP

DSP/BIOS Link also enables developers to create their own custom link driver to support communication between discrete microprocessors and TI’s TMS320C64xx™ DSPs on a custom board. Contact you TI applications engineer for information on DSP/BIOS Link support for the 64xx.

Back to Top