There are no simple steps to work with the C64x DSP processor on the beagleboard xm , but if you are persistent , you can get it
working as I have with the following steps. I have copied these instructions from another post in this forum , so sorry for the duplication.
The c64x processor on the DM3730 omap processor on the beagle board xm is a fixed point processor so don't try and write any
floating point code because it is slow , you need to write code that is fast on a fixed point processor.
I recommend the use of the IQ fast maths lib which is downloadable from the Texas Instruments site , use this link to find the library :
http://processors.wiki.ti.com/index.php?title=Software_librariesThe following is a duplication of another post I made on this forum :
-----------------------------------------------------------------------------------------------------
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.gitFollow the instructions from here ( note the instructions are out of date but still help ):
http://elinux.org/BeagleBoard/DSP_Howtoyou 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.htmlhttp://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/index.htmlhttps://www-a.ti.com/downloads/sds_support/TICodegenerationTools/download.htmI 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.pdfhttp://www.openomap.org/pub/dspbridge/db_linux_pguide.pdf-----------------------------------------------------------------------------------------------------
It works for me , so it is possible to write DSP code, let me know if you need more information.
Scott.
scott.a...@gmail.com