NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
What is DSPLink?
DSP/BIOS™ LINK is foundation software for the inter-processor communication across the GPP-DSP boundary. It provides a generic API that abstracts the characteristics of the physical link connecting GPP and DSP from the applications. It eliminates the need for customers to develop such link from scratch and allows them to focus more on application development.
This software can be used across platforms:
- Using SoC (System on Chip) with GPP and one DSP.
- With discrete GPP and DSP.
As the name suggests, DSP/BIOS™ is expected to be running on the DSP. No specific operating system is mandated to be running on the GPP. It is released on a reference platform for a set of reference operating systems. The release package contains full source code to enable the customers to port it to their specific platforms and/ or operating systems.
Depending on the supported platform, OS and DSPLink version, DSPLink provides a subset of the following services to its clients:
- PROC: Basic processor control
- After setting up the DSPLink driver, GPP process attaches to the DSP: Sets up the system to allow access to DSP resources from GPP
- GPP loads the DSP with DSP executable present in GPP file system
- GPP starts the DSP
- GPP stops the DSP execution
- GPP process detaches from the DSP and finalizes the DSPLink driver
- Inter-Processor Communication protocols
- Complete protocols for different types of data transfer between the processors
- Each protocol meets a different data transfer need
- MSGQ: Message Queue
- CHNL: SIO/streaming based on issue-reclaim model
- RingIO: Circular ring buffer based data streaming
- Inter-Processor Communication building blocks
- Low-level building blocks used by the protocols
- Each building block is also exposed as APIs to allow framework writers to define their own application-specific protocols
- POOL: Memory Manager: shared/non-shared
- NOTIFY: Interrupt abstraction and de-multiplexing for notification of user events
- MPCS: Multi-processor critical section for mutually exclusive access to shared objects
- MPLIST: Multi-processor doubly linked circular list
- PROC_read/PROC_write: Read from or write to DSP memory
Why use DSPLink?
DSPLink provides several features and capabilities that make it easier and more convenient for developers using a multi-core system:
- Provides a generic API interface to applications
- Hides platform/hardware specific details from applications
- Hides GPP operating system specific details from applications, otherwise needed for talking to the hardware (e.g. interrupt services)
- Applications written on DSPLink for one platform can directly work on other platforms/OS combinations requiring no or minor changes in application code
- Makes applications portable
- Allows flexibility to applications of choosing and using the most appropriate high/low level protocol
- Provides scalability to the applications in choosing only required modules from DSPLink.
DSPLink overview streaming webex training is available at this page.
DSPLink is also available as part of the Codec Engine product available from TI.
DSPLink FAQs are available here.