[beagleboard-gsoc] Compiling DSP/Link apps inside OpenEmbedded

Hi there,

Could someone point me to some documentation / a tutorial on the
preferred method of building DSP/Link apps inside OpenEmbedded? I've
found http://ossie.wireless.vt.edu/trac/wiki/BeagleBoard_CodecEngine
but thought I'd ask first in case there is something more recent.

I've built the ti-dsplink-module and ti-devshell, just not sure how to
continue with the development. I tried directly make'ing the sample
apps from the ti-devshell script but got make errors. I'd like to
modify the sample DSP/Link apps and re-compile them myself, for
instance.

Yaman

Have a look at the recipes/ti folder, the dsplink recipe and include should show you how to instruct make to use the evironment variables.

regards,

Koen

Hi Yaman,

I have written a wiki to build dsplink outside open-embedded. You can take a look at http://code.google.com/p/opencv-dsp-acceleration/wiki/GettingStarted1 .
To build it inside openembedded, you have to download and save code-generation-tools in the download folder inside OE path and just do ‘bitbake ti-dsplink-module’. If you want to rebuild the examples, you need to do some changes in the make files. You can follow my wiki for that.
Hope that help you.

I have written a wiki to build dsplink outside open-embedded.

Be *very* carefull if you go that route. You need to make sure every component matches the one in angstrom, otherwise you'll be chasing unrelated bugs instead of getting gsoc things done. I can speak from experience when I say one can waste weeks due to something like that.

You can take a look at http://code.google.com/p/opencv-dsp-acceleration/wiki/GettingStarted1 .

A quick look at your wiki shows that you are using the wrong versions of:

* cgt
* bios
* xdctools
* codec-engine

Have a look at http://gitorious.org/angstrom/openembedded/blobs/org.openembedded.dev/conf/distro/include/angstrom-codec-engine-2.25.01-preferred-versions.inc to see which versions should be used. This list was compiled with the help of Roger Monk and Chris Ring and works on omap3 and omap-l.

Your dsplink configuro is missing gppos and I stopped reading at that point. Have a look at http://gitorious.org/angstrom/openembedded/blobs/org.openembedded.dev/recipes/ti/ti-dsplink.inc on how to build dsplink without having to edit tons of files.

regards,

Koen

Thanks for the pointer Koen. This was the path I followed earlier before I talked to you on IRC. I now have bitbaked everything and hope it has given me the right versions ie Codec-Engine-2.25.01.06 and all its dependencies.

But still, I have done the modification of the make files according to my wiki to rebuild any changes I do on the examples. Should I not do that way?? I need your suggestion on this.

Regarding the missing gppos on dsplink configuration, isn’t this what you are talking about

 #  perl dsplinkcfg.pl --platform=OMAP3530 --nodsp=1  --dspcfg_0=OMAP3530SHMEM     --dspos_0=DSPBIOS5XX --gppos=OMAPLSP --comps=ponslrmc --DspTskMode=1

Thanks for the pointer Koen. This was the path I followed earlier before I talked to you on IRC. I now have bitbaked everything and hope it has given me the right versions ie Codec-Engine-2.25.01.06 and all its dependencies.

But still, I have done the modification of the make files according to my wiki to rebuild any changes I do on the examples. Should I not do that way?? I need your suggestion on this.

I personally dislike editing files and prefer to pass them on the make commandline (e.g. make FOO_DIR=bar), but I can see that people would like to be able to do 'make' and have it work. If you do edit files it is a good idea to use version control on them so you can easily see which changes you made and can show them to others. I tend to delete my sourcetrees more often than my shell history :slight_smile:

Regarding the missing gppos on dsplink configuration, isn't this what you are talking about

# perl dsplinkcfg.pl --platform=OMAP3530 --nodsp=1 --dspcfg_0=OMAP3530SHMEM --dspos_0=DSPBIOS5XX --gppos=OMAPLSP --comps=ponslrmc --DspTskMode=1

The gppos indeed and the dsptskmode. I don't know what the taskmode does, but the gppos is the one that will give trouble later on. It's a remnant of the time that every hardware platform (e.g. omap3) only had a single software platfrom (e.g. omaplsp). If someone more familiar with link can shed some light on the dsptskmode switch?

regards,

Koen