DSP processor on beagleboard

There are various methods of developing dsp software for the beagle board xm.

They are :

  • dsplink
  • syslink
  • c6run
  • tidspbridge

If you are using linux, my strong recommendation is the tidspbridge driver that exists in the staging area of the linux kernel.

The tidspbridge driver is actively maintained , exists in the kernel and can be used on 2.6 kernels all the way up to the latest 3.9 series kernels.

The dsplink driver is not actively maintained and is designed for the 2.6 series kernels but I have built it for the 3.6.7 kernel but it was difficult.
The open embedded environment does have the ability to build the dsplink driver but I dont know how well maintained it is, Texas instruments are no longer maintaining it.
I have not tried to build the syslink driver for linux and it seems difficult to do.
The c6run approach is not really a valid approach to dsp programming because you lose to much control and it is not very flexible.

So , in my view , use the tidspbridge approach , I am using that approach and find it very powerfull.

I use the dsp samples provided by TI as a framework for my own code , I delete the contents of one of the dsp sample applications and
add my own code to the file. Using this approach , I dont have to learn the build system , I build the dsp samples but it produces my application instead.

The dsp samples can be obtained from here :

git clone git://dev.omapzoom.org/pub/scm/tidspbridge/userspace-dspbridge.git

Follow the instructions from here ( note the instructions are out of date but still help ):

http://elinux.org/BeagleBoard/DSP_Howto

you need to install these TI tools ( and the same version of the tools ) to build the samples :

bios_5_33_04
xdctools_3_10_02
C6000CGT6.0.7

the download links for the above tools are :

http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/bios/index.html
http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/index.html
https://www-a.ti.com/downloads/sds_support/TICodegenerationTools/download.htm

I needed to install the older stdc++ library :
Install compat stdc++ library ( libstdc++.so.5 )

I also needed to make a symbolic link :
ln -s /opt/TI/C6000CGT6.0.7 /usr/local/cgt6x-6.0.7

After that , everything builds and runs fine on a modern linux distribution.

Note that the dsp-bridge API is not documented on the DSP side but it is documented on the ARM side so you
have to use the sample code to deduce the DSP side API. Its not that hard because it is almost identical to the
API on the ARM side.

The documentation for the DSP bridge can be found here :

http://www.openomap.org/pub/dspbridge/db_linux_rguide.pdf
http://www.openomap.org/pub/dspbridge/db_linux_pguide.pdf