The most recent version of this page is a draft.DiffThis version (18 Jan 2019 18:40) was approved by chadw.The Previously approved version (18 Jan 2019 16:32) is available.Diff

This is an old revision of the document!

Bare Metal Framework Overview

The SHARC Audio Module Bare Metal framework is a light-weight C / C++ framework designed for efficient audio signal processing using the ADSP-SC589 processor on the SHARC Audio Module main board.

This framework is block-based and double-buffered. All audio processing is done in 32-bit floating point. The framework consumes just a few MHz of the 450MHz SHARC DSPs. This includes managing the movement of audio data, performing fixed / floating point conversion and triggering various user-call backs for audio processing.

This framework supports the Audio Project Fin using the expansion connector. It also supports other hardware connected over the A2B bus.

The framework relies on a modular architecture which makes it easy to swap in/out different audio configurations, Fin board support, A2B module support, etc. without needing to modify your audio processing routines.

The framework is easily configurable via a shared header file that is used to set up system-wide audio processing configurations (e.g. single or dual core processing, audio block size, audio sample rate, presence of daughter boards, which audio framework to use, etc.)

The framework includes a very simple and efficient multi-core memory sharing mechanism which simplifies passing parameters and sharing state information between cores.

The bare metal framework is designed to be easy to use and understand. There are no “black boxes” in this code. The code has been heavily commented so it can be modified and customized. The majority of the drivers are written to be simple and rely on direct control register reads and writes. This framework is designed to serve as an example of how to use some of the advanced functionality on the ADSP-SC589 to efficiently process audio using C and C++ algorithms.


Audio Processing Tutorials

/srv/ · Last modified: 01 Feb 2019 19:07 by DLedger