This is an old revision of the document!
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.
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.