This article explains how to use the DSP in OMAP3 at BeagleBoard with TI's deliverables. For DSP tool chain see C64x+ DSP.
In order to use the DSP you would need TI's bridgedriver module on the kernel. For that you would need Hiroshi's patches on top of linux-omap:
git clone http://www.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git cd linux-omap-2.6 wget http://4869037.web.fc2.com/tidspbridge-20081010.tgz tar xvzf tidspbridge-20081010.tgz git am *.patch make omap3_beagle_defconfig
make menuconfig and add the following options in the menuconfig:
In order to get the DSP binaries for multimedia processing you need to download TI's OpenMAX IL package. Once you have extracted the tarball you'll have to run the installer TI-OMX-Sample-Firmware-0.3-Linux-x86-Install and accept the license agreement.
You would end up with a bunch of binaries in
lib/dsp, copy them to your root filesystem at the same location (/lib/dsp).
If you want to test the DSP you can try the simple ping test provided in this package.
On the board use this to load the module:
modprobe bridgedriver base_img=/lib/dsp/baseimage.dof
In order to develop dynamic dsp nodes you'll need a C6x compiler and doffbuild tools.
The only relevant tool is DLLcreate, which can be found in TI's omapzoom site, on the dspbridge_dsp package.
mkdir -p tmp tar -xf dspbridge_dsp.tar.gz -C tmp mv tmp/dsp/bdsptools/packages/ti/dspbridge/dsp/doffbuild /opt/doffbuild rm -rf tmp
This library is used by the user-space applications.
git clone git://github.com/felipec/libdspbridge.git cd libdspbridge make DESTDIR=$rootfs install
Example dsp node
Here is an example dsp node that is simply passing buffers back and forth.
git clone git://github.com/felipec/dsp-dummy.git make DSP_TOOLS=/opt/dsptools DSP_DOFFBUILD=/opt/doffbuild BRIDGE_DIR=../libdspbridge
As a result you'll have two binaries; dummy.dll64P for dsp-side, and dummy for arm-side.
To load the dynamic node:
/dspbridge/dynreg.out -r /lib/dsp/dummy.dll64P
Now you can run the dummy test application.