DSP/BIOS Real-Time Operating System (RTOS)

(ACTIVE) DSPBIOS

Description & Features

Technical Documents

Support & Training


Order Now
Part Number Buy from Texas Instruments or Third Party Status

DSPBIOS5:
DSP/BIOS 5.x Real-Time Operating System

Free

ACTIVE

Description

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

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

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

More Than a Kernel

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: See below for more information: 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 peripherals (Chip Support Library). Most PSPs are available for download in the applicable Software Development Kits (DVSDK and SDKs).
  • Multimedia Framework Products: These systems software modules are augmented by DSP/BIOS-compatible Multimedia Framework Products, including the xDAIS Developer’s Kit, Codec Engine, Framework Components that eliminate many of the issues associated with developing and integrating multi-function DSP applications.

Features

DSP/BIOS Kernel Overview

DSP/BIOS kernel provides a rich set of C-callable deterministic kernel services that enable developers to create sophisticated applications without compromising real-time deadlines. DSP/BIOS kernel is highly scalable with multithreading configurations requiring as few as 1K words.

DSP/BIOS kernel is configurable to minimize memory footprint. Configuration can be done either statically through graphical or scripting tools or dynamically using operating system calls. In addition to excluding unused modules, static configuration further reduces target memory footprint by eliminating the code required to dynamically create and delete operating system objects such as threads and semaphores.

DSP/BIOS includes the following kernel modules:
Kernel Module Description
Hardware Interrupts (HWI) Interface from hardware interrupts to DSP/BIOS kernel
Software Interrupts (SWI) Lightweight preemptible threads that use program stack but cannot yield
Tasks (TSK) Independent threads of execution that can yield the processor
Periodic Functions (PRD) Time-triggered lightweight threads
Message Queues (MSGQ) Variable-length zero copy messages
Mailboxes (MBX) Synchronized data exchange between tasks
Locks (LCK) Nestable binary semaphores
Semaphores (SEM) Counting semaphores
Queues (QUE) Atomic link lists
Clock (CLK) Interface to hardware timers
Streams (SIO) Streaming I/O
General I/O (GIO) Extensible I/O module with support for asynchronous I/O & synchronous read/write
Memory Manager (MEM) Low overhead dynamic memory allocation
Buffer Manager (BUF) Fast, deterministic fixed-size buffer allocation
Power Manager (PWRM) Power management functions
Cache Control (BCACHE) Cache configuration and management

DSP/BIOS Multithreading
To provide the fast response required by DSP applications, DSP/BIOS kernel 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.

DSP/BIOS IPC Mechanisms
DSP/BIOS kernel offers several IPC mechanisms for interthread communication. Semaphores and Locks provide basic synchronization and resource locking. Mailboxes enable synchronous transfer of fixed sized messages between tasks. Message queues enable zero copy, variable-length message passing between any DSP/BIOS kernel thread type. The exact memory for each message is allocated when the message needs to be sent. Message passing is transparent at the application level and can be within a single DSP or between multiple DSPs. For inter-DSP communication, a Message Queue Transport is required. Some of these (for example, Serial RapidIO®) are available pre-tested from TI.

DSP/BIOS Multicore Support
DSP/BIOS kernel fully supports TI’s multicore DSP solutions. For devices designed to execute the same image on multiple cores, DSP/BIOS kernel provides shared image support, maximizing the amount of local core memory available for data. In addition, a shared memory transport is provided to enable core-to-core communication using the DSP/BIOS MSGQ module. This transport utilizes the underlying hardware features such as atomic access monitors or hardware semaphores to provide the most efficient implementation.

DSP/BIOS Interrupt Management
DSP/BIOS kernel includes a comprehensive set of services for interrupt management. The interrupt dispatcher enables developers to write ISRs in C by performing low-level operations such as context save/restore and temporary disabling of the scheduler. This approach reduces code size by eliminating the need to specifically add such code to each ISR. To reduce data memory requirements, all ISRs use a common stack rather than the stack of the task they interrupt, with the exception of the first interrupt context, which is stored on the task stack for performance reasons. The HWI and Event Combiner modules provide additional APIs for enabling/disabling interrupts and multiplexing multiple interrupt sources on to a single pin.

DSP/BIOS Power Management
For TI DSPs used in portable applications where power consumption is a key consideration, such as the TMS320C5509 DSP, DSP/BIOS kernel offers a range of power management features. These may include automatically idling the CPU when in the IDL task, voltage and frequency scaling APIs, sleep or hibernate APIs, automated idling of peripherals when the peripheral domain is not in use, and a register/notify mechanism for coordinating complex system-wide power management.

DSP/BIOS OS-Aware Analysis & Debug
In conjunction with Code Composer Studio™ IDE, DSP/BIOS kernel provides several tools to aid debugging and optimization of multithreaded applications. The Kernel Object Viewer enables a developer to check the status of OS objects such as tasks, mailboxes, and semaphores, including whether a task is ready, running, or blocked, and which tasks are blocked on an IPC. The Real-Time Analysis tools display the thread execution and switching sequence, average and maximum execution times for a thread, and system CPU load, as well as providing a very low overhead printf capability.

DSP/BIOS Link

Many DSP-based applications, ranging from digital cameras to communications switches, use a microprocessor (GPP) to control one or more DSPs. To meet this need, TI is increasingly delivering devices that offer an ARM® and DSP core in the same package. DSP/BIOS Link is software designed to facilitate communication between the ARM and the DSP in SoC devices.

To develop applications that reside on GPP+DSP solutions, developers must implement communications software that enables data and control information to be exchanged between the GPP and the DSP. In addition, the GPP must also boot the DSP and often control which algorithms the DSP executes for a specific task. DSP/BIOS Link eliminates the need to create these functions from scratch by providing a robust set of MCU-DSP communications services including:

  • Variable-length messaging between the GPP and DSP
  • Ring buffer communication between GPP and DSP
  • Point-to-point, asynchronous data streaming between the GPP and DSP
  • Bootload the DSP from GPP
  • Pre-tested GPP-DSP communications driver support for select devices

DSP/BIOS Link is available for both SoC devices, such as DaVinci™, where the ARM and DSP communicate using shared memory, and discrete DSPs offering a PCI interface. DSP/BIOS Link is provided as a source code porting kit and includes pre-tested ports for some versions of embedded Linux.


Available Versions

Click GET SOFTWARE button above to access current and previous versions.


Technical Documents
More literature (1)
*This is not an TI official document.
Title Date Type
DSP/BIOS Real Time OS Wiki -- In-depth technical and "how-to" articles, FAQs, etc. 01 Aug 2011 Wiki*
Application notes (1)
Title Abstract Type Size (KB) Date Views
Multiple Files   06 Feb 2012 630
User guides (5)
Title Abstract Type Size (KB) Date Views
PDF 2224 09 Oct 2012 688
PDF 2077 09 Oct 2012 2,231
PDF 2419 09 Oct 2012 1,200
PDF 1523 09 Oct 2012 1,499
PDF 851 28 Feb 2009 592

Software (2)

Name Part Number Software Type
Multimedia Framework Products (MFP) - Codec Engine, Framework Components and XDAIS  TMDMFP  Application Software & Frameworks 
TI-RTOS Networking  NDKTCPIP  Software Libraries 

Development Tools (1)

Name Part Number Tool Type
Code Composer Studio (CCS) Integrated Development Environment (IDE)  CCSTUDIO  SW Development Tools, IDEs, Compilers 

TI Devices (62)

Part Number Name Product Family
OMAP-L137  C6000 DSP+ARM Processor  C6000 DSP + ARM Processors 
OMAP3525  Applications Processor  Media Processors  
OMAP3530  Applications Processor  OMAP™ Processors 
TMS320C5504  Fixed-Point Digital Signal Processor  C5000 DSP 
TMS320C5505  Fixed-Point Digital Signal Processor  C5000 DSP 
TMS320C5514  Fixed-Point Digital Signal Processor  C5000 DSP 
TMS320C5515  Fixed-Point Digital Signal Processor  C5000 DSP 
TMS320C6202  Fixed-Point Digital Signal Processor  C6000 DSP 
TMS320C6202B  Fixed-Point Digital Signal Processor  C6000 DSP 
TMS320C6203B  Fixed-Point Digital Signal Processor  C6000 DSP 
TMS320C6204  Fixed-Point Digital Signal Processor  C6000 DSP 
TMS320C6205  Fixed-Point Digital Signal Processor  C6000 DSP 
TMS320C6211B  Fixed-Point Digital Signal Processor  C6000 DSP 
TMS320C6410  Fixed-Point Digital Signal Processor  C6000 DSP 
TMS320C6411  Fixed-Point Digital Signal Processor  C6000 DSP 
TMS320C6412  Fixed-Point Digital Signal Processor  C6000 DSP 
TMS320C6413  Fixed-Point Digital Signal Processor  C6000 DSP 
TMS320C6414  Fixed-Point Digital Signal Processor  C6000 DSP 
TMS320C6414T  Fixed-Point Digital Signal Processor  C6000 DSP 
TMS320C6415  Fixed-Point Digital Signal Processor  C6000 DSP 
TMS320C6415T  Fixed-Point Digital Signal Processor  C6000 DSP 
TMS320C6416  Fixed-Point Digital Signal Processor  C6000 DSP 
TMS320C6416T  Fixed-Point Digital Signal Processor  C6000 DSP 
TMS320C6418  Fixed-Point Digital Signal Processor  C6000 DSP 
TMS320C6701  Floating-Point Digital Signal Processor  C6000 DSP 
TMS320C6713B  Floating-Point Digital Signal Processors  C6000 DSP 
TMS320C6727  Floating-Point Digital Signal Processor  C6000 DSP 
TMS320C6747  Fixed/Floating-Point Digital Signal Processor  C6000 DSP 
TMS320C6748  Fixed/Floating Point Digital Signal Processor  C6000 DSP 
TMS320DM640  Video/Imaging Fixed-Point Digital Signal Processor  Media Processors  
TMS320DM641  Video/Imaging Fixed-Point Digital Signal Processor  Media Processors  
TMS320DM642  Video/Imaging Fixed-Point Digital Signal Processor  Media Processors  
TMS320DM643  Video/Imaging Fixed-Point Digital Signal Processor  Media Processors  
TMS320DM6435  Digital Media Processor  Media Processors  
TMS320DM6441  DaVinci Digital Media System-on-Chip  Media Processors  
TMS320DM6443  DaVinci Digital Media System-on-Chip  Media Processors  
TMS320DM6446  DaVinci Digital Media System-on-Chip  Media Processors  
TMS320DM647  Digital Media Processor  Media Processors  
TMS320DM648  Digital Media Processor  Media Processors  
TMS320F2801  32-Bit Digital Signal Controller with Flash  Real-time Control 
TMS320F28015  32-Bit Digital Signal Controller with Flash  Real-time Control 
TMS320F28016  32-Bit Digital Signal Controller with Flash  Real-time Control 
TMS320F2802  32-Bit Digital Signal Controller with Flash  Real-time Control 
TMS320F28044  Digital Signal Controller  Real-time Control 
TMS320F2806  32-Bit Digital Signal Controller with Flash  Real-time Control 
TMS320F2808  32-Bit Digital Signal Controller with Flash  Real-time Control 
TMS320F2809  32-Bit Digital Signal Controller with Flash  Real-time Control 
TMS320F2810  32-Bit Digital Signal Controller with Flash  Real-time Control 
TMS320F2811  32-Bit Digital Signal Controller with Flash  Real-time Control 
TMS320F2812  32-Bit Digital Signal Controller with Flash  Real-time Control 
TMS320F28232  Digital Signal Controller  Real-time Control 
TMS320F28234  Digital Signal Controller  Real-time Control 
TMS320F28235  Digital Signal Controller  Real-time Control 
TMS320TCI6484  Communications Infrastructure Digital Signal Processor  Processors 
TMS320TCI6487  Fixed-Point Digital Signal Processor  Processors 
TMS320VC5501  Fixed-Point Digital Signal Processor  C5000 DSP 
TMS320VC5502  Fixed-Point Digital Signal Processor  C5000 DSP 
TMS320VC5503  Fixed-Point Digital Signal Processor  C5000 DSP 
TMS320VC5505  Low-Power Fixed-Point Digital Signal Processor  C5000 DSP 
TMS320VC5507  Fixed-Point Digital Signal Processor  C5000 DSP 
TMS320VC5509A  Fixed-Point Digital Signal Processor  C5000 DSP 
TMS320VC5510A  Fixed-Point Digital Signal Processors  C5000 DSP 

Support & Training

TI E2E Community

As a member of  myTI you can join the TI E2E™ Community  where you can ask questions, share ideas and collaborate with fellow engineers and TI experts

Content is provided "AS IS" by the respective TI and Community contributors and does not constitute TI specifications. See  Terms of use.

Engage in the Community

Blogs

Wikis

Visit the TI Wiki