Simple steps to get BeaglBoardxM and DSP working?

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_libraries

The following is a duplication of another post I made on this forum :

Hi there,

I have just tried to use DFD (http://processors.wiki.ti.com/index.php/Beagle_Board_Challenge:_SuperBeagle) to see if I am able to compile and run a dummy example of ARM+DSP usage on my BB-xM. I have achieved to install cross-compile related tools into Ubuntu-PC and get two files at the end of “make”. The files I have are “dummy” and “dummy.dll64P”.

I have copied both of them to /lib/dsp folder my BB=xM and run the following command: “sudo ./dummy”.
But BB-xM says: “unable to execute ./dummy: No such file or directory”

Any idea? What am I missing during the process?

One point I’d like to mentioned here is about libstdc++5. During the cross compilation process in my Ubuntu-PC I had to install libstdc++5 package in order to generate dll file. However, this package is not installed in my BB-xM. I am not sure if this can cause the problem to run ./dummy executable.

Looking forward to your replies.
Thanks in advance.

Regards,
Ozkan.

When you cross-compiled the application did you build with gcc
compiler built for "gnueabi" to run on an "armel" system or
"gnueabihf" for an "armhf" system..

Regards,

When you cross-compiled the application did you build with gcc
compiler built for “gnueabi” to run on an “armel” system or
“gnueabihf” for an “armhf” system…

I have tried the following both cases in Makefile of “dsp-for-dummies”
But, the same error occurs.

How can I check and ensure about if I did built the images with gnueabi/armel or gnueabihf/armhf?

Regards,
Ozkan.

You can check your bin with ldd..

For example on my debian armhf system.

ubuntu@arm:~$ ldd /bin/nano
  libncursesw.so.5 => /lib/arm-linux-gnueabihf/libncursesw.so.5 (0xb6f56000)
  libtinfo.so.5 => /lib/arm-linux-gnueabihf/libtinfo.so.5 (0xb6f34000)
  libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6e51000)
  /lib/ld-linux-armhf.so.3 (0xb6f7f000)
                       <- "armhf" linker...
  libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb6e46000)

Regards,

Hi again,

Just to confirm, the executable (dummy) now works in BB-xM after I reinstall gcc-arm-linux-gnueabihf into Ubuntu-PC.

apt-get install gcc-arm-linux-gnueabihf

Regards,
Ozgur.

Does this work on current versions of the kernels? Considering 3.11 is going to be awesome with the fact that 1 GHz on the ARM core works again? I noticed in the 3.11 kernel, the TI DSPLINK driver disappeared from the kernel. And TI has been developing OpenCL for the C6000 DSPs for over year now, the page was updated last August. And the C6000 isn’t even the one in the Beagleboard. So what do we do from now on?

  • Nathaniel Lewis

s/DSPLINK/dspbridge/g

This dspbridge driver relies on the mailbox driver, which just went
thru a mult-arch rewrite in v3.11-rcX.. However we need the omap bits
next, which i think where just posted for v3.12 on linux-omap...

So, if grab those, it might work..

Regards,

http://www.spinics.net/lists/linux-omap/msg94306.html

note, might be painful for us: "I have tested this on Beagle-XM,
Panda4 and OMAP5 uEVM (with
out-of-tree clock patches)."

Regards,

I think that “out of tree” clock patch may be the one i included with Beagleboard xM 1 GHz patch. I found it on some mailing list. Put the link in the patch description. But either way, at least it hasn’t been forgotten.

  • Nathaniel Lewis

Hey scott,

I am trying quite the same thing as you did also with this example: git://dev.omapzoom.org/pub/scm/tidspbridge/userspace-dspbridge.git, following these instructions: http://elinux.org/BeagleBoard/DSP_Howto. I get the dspbrdigedriver working, can compile the dsp side binaries and the gpp side binaries. When I start the ping.out, then the error “DSPNode_Create failed 0xffffffe3”.

Did you change some settings in the .tci files? I do not really understand what is done in these files.

Would be happy about soem nice answers :wink:

Best regards,
Michael