DM81xx DSP real-time applications development

From RidgeRun Developer Wiki

Introduction

This document overviews different software components that RidgeRun can integrate into a DSP firmware for DM81xx devices. Exist different cases in which the DSP can get used as a rich-featured processing block. DSP can get used to process data independently or become an auxiliary unit for another processor such as the ARM, for both approaches the DSP can work on a multicore environment where hardware and software resources are handled consistently.

Code integration

Algorithms, codecs, customer applications, libraries and others can get ported to a DSP Firmware.

BIOS support

BIOS is the RTOS that runs on the C674x DSP. Applications on DSP can get adapted so they interact with the BIOS Kernel, this gives the application access to several BIOS resources.

  • Hardware interrupts context calls (HWis)
  • Software interrupts context calls (SWis)
  • General purpose BIOS tasks
  • Scheduling based on thread priorities
  • Round-robin operation model
  • Shared resources protection
  • Synchronization of procedures, semaphores, events and others

Interprocessor communication

DM8148 & DM8168

SYSLINK

Syslink offers low level communication, this one is more lightweight and works faster than other high level API's, this comes really useful for real time applications that have hard time constraints.

  • Shared heaps for buffer allocation for ARM - DSP usage
  • Interprocessor queue system so processors can work at their own pace without getting blocked

CODEC ENGINE

Conventional high level API for communication between ARM and DSP. This one as well can get integrated with GStreamer technology for pipeline execution.

Device drivers

DM8148 & DM8168

Device drivers can get integrated into a DSP system, so inside the Firmware it coexists with a customer supplied program that interacts with devices outside the System-On-Chip.

  • I2C
  • MCASP
  • MCSPI
  • MMCSD
  • PCIE
  • PRCM
  • UART
  • CAN