Development Toolchain for both ARM & DSP

527 views
Skip to first unread message

ramasamygopalan

unread,
Feb 1, 2010, 3:35:57 PM2/1/10
to Beagle Board
Hi,

I have just now started to work on BeagleBoard a couple of days back.

I am planning to create an application that runs a DSP algorithm on
the data from AUDIO_IN port, processes it and outputs the data through
AUDIO_OUT port.

Here is what I am planning to do in terms of software flow to create
the above said application:
1. Install Ubuntu for BeagleBoard on the BB.
2. Write an application in the Linux kernel on the BB with a DSPLink
or DSPBridge for the ARM to access the DSP.
3. The application code in kernel for ARM is to be developed &
compiled using a Sourcery G++ toolchain and the DSP code is written
and compiled in CCS or Code Generation Tools from TI.

These are the overall broad steps I am planning to use. Can someone
please validate the above steps and guide me properly? If I am wrong,
I request you to navigate me in the correct direction as this is the
first time I am doing a software type of work.

Now, I read from one of the pages for BeagleBoard (http://
ossie.wireless.vt.edu/trac/wiki/BeagleBoard_DSPLink) that OpenEmbedded
(OE) can be used to compile both ARM GPP+DSP codes after installing
DSPLink. So, is it wise to use OE or to compile ARM GPP code using
Sorcery G++ and DSP code by CCS separately?

Thanks,
Ramasamy Gopalan.


Koen Kooi

unread,
Feb 1, 2010, 3:42:58 PM2/1/10
to beagl...@googlegroups.com

Op 1 feb 2010, om 21:35 heeft ramasamygopalan het volgende geschreven:

> Hi,
>
> I have just now started to work on BeagleBoard a couple of days back.
>
> I am planning to create an application that runs a DSP algorithm on
> the data from AUDIO_IN port, processes it and outputs the data through
> AUDIO_OUT port.
>
> Here is what I am planning to do in terms of software flow to create
> the above said application:
> 1. Install Ubuntu for BeagleBoard on the BB.
> 2. Write an application in the Linux kernel on the BB with a DSPLink
> or DSPBridge for the ARM to access the DSP.

There's no dsplink or dspbridge support for ubuntu.

> Now, I read from one of the pages for BeagleBoard (http://
> ossie.wireless.vt.edu/trac/wiki/BeagleBoard_DSPLink) that OpenEmbedded
> (OE) can be used to compile both ARM GPP+DSP codes after installing
> DSPLink. So, is it wise to use OE or to compile ARM GPP code using
> Sorcery G++ and DSP code by CCS separately?

You can use CCS seperately, but any arm code should be compiled with the toolchain that matches the rootfs. If you were to install angstrom on your beagleboard you'll have excellent support for dsplink and friends.

regards,

Koen

ramasamygopalan

unread,
Feb 1, 2010, 4:05:08 PM2/1/10
to Beagle Board
Hi Koen,

Thanks for your reply. So, if I install ubuntu on BB, it seems it is
not possible to make the ARM core and DSP to interact using DSPLink on
the Ubuntu kernel. Is my understanding correct?

And when Angstrom is installed, DSPLink can be used. OpenEmbedded
provides a complete toolchain for compiling both DSP and GPP codes on
the host PC thus making life easier.
However it is also possible to compile ARM code and DSP code
separately with their respective toolchains. In this case, with
Angstrom being the kernel, it is still possible to use DSPLink but
difficult. Is this interpretation correct?

Thanks,
Ramasamy Gopalan.

ramasamygopalan

unread,
Feb 2, 2010, 10:54:53 AM2/2/10
to Beagle Board
Hi all,

Is there a mechanism to use Sourcery G++ toolchain (apart from
OpenEmbedded) along with DSPLink for compiling ARM code with Angstrom
as the Kernel?

And is there a mechanism to use CCS (which is only for Windows OS in
host PC) to use the DSPLink module to compile code for DSP of
OMAP3530?

Waiting for your replies.......

~Ramasamy Gopalan.

Koen Kooi

unread,
Feb 2, 2010, 11:01:15 AM2/2/10
to beagl...@googlegroups.com
On Tue, Feb 2, 2010 at 4:54 PM, ramasamygopalan <ramasam...@gmail.com> wrote:
Hi all,

Is there a mechanism to use Sourcery G++ toolchain (apart from
OpenEmbedded) along with DSPLink for compiling ARM code with Angstrom
as the Kernel?

Why are you so eager on using CSL?

regards,

Koen

ramasamygopalan

unread,
Feb 2, 2010, 11:45:57 AM2/2/10
to Beagle Board
Hi,

No specific reason for using CSL in particular.......I thought CSL has
a good UI and just wanted to know the toolchain flow in general as I
am completely new to programming embedded systems.......

Thanks,
Ramasamy Gopalan.

On Feb 2, 11:01 am, Koen Kooi <k...@beagleboard.org> wrote:
> On Tue, Feb 2, 2010 at 4:54 PM, ramasamygopalan

> <ramasamygopa...@gmail.com>wrote:

ramasamygopalan

unread,
Feb 2, 2010, 1:13:53 PM2/2/10
to Beagle Board
Hi,

I got the following error message when trying to build Angstrom from
OpenEmbedded using the link (http://www.angstrom-distribution.org/
building-angstrom) :

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\
~/OE/openembedded$ bitbake base-image

ERROR: Openembedded's config sanity checker detected a potential
misconfiguration.
Either fix the cause of this error or at your own risk disable the
checker (see sanity.conf).
Following is the list of potential problems / advisories:

/proc/sys/vm/mmap_min_addr is not 0. This will cause problems with
qemu so please fix the value (as root).

To fix this in later reboots, set vm.mmap_min_addr = 0 in /etc/
sysctl.conf.
Please install following missing utilities: C++ Compiler ($
{BUILD_PREFIX}g++),help2man,diffstat,texi2html,makeinfo,cvs,svn,gawk
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\\\\

I request you to help ASAP.......

Thanks,
Ramasamy Gopalan.

Koen Kooi

unread,
Feb 2, 2010, 1:55:27 PM2/2/10
to beagl...@googlegroups.com

Op 2 feb 2010, om 19:13 heeft ramasamygopalan het volgende geschreven:

> Hi,
>
> I got the following error message when trying to build Angstrom from
> OpenEmbedded using the link (http://www.angstrom-distribution.org/
> building-angstrom) :
>
> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
> \\\\\
> ~/OE/openembedded$ bitbake base-image
>
> ERROR: Openembedded's config sanity checker detected a potential
> misconfiguration.
> Either fix the cause of this error or at your own risk disable the
> checker (see sanity.conf).
> Following is the list of potential problems / advisories:
>
> /proc/sys/vm/mmap_min_addr is not 0. This will cause problems with
> qemu so please fix the value (as root).
>
> To fix this in later reboots, set vm.mmap_min_addr = 0 in /etc/
> sysctl.conf.
> Please install following missing utilities: C++ Compiler ($
> {BUILD_PREFIX}g++),help2man,diffstat,texi2html,makeinfo,cvs,svn,gawk
> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
> \\\\\
>
> I request you to help ASAP.......


The error message actually tells you what to do.....

Philip Balister

unread,
Feb 2, 2010, 2:05:06 PM2/2/10
to beagl...@googlegroups.com

CSL has a better marketing department than Angstrom :)

Philip

>
> regards,
>
> Koen
>
> --
> You received this message because you are subscribed to the Google Groups
> "Beagle Board" group.
> To post to this group, send email to beagl...@googlegroups.com.
> To unsubscribe from this group, send email to
> beagleboard...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/beagleboard?hl=en.
>

Antti Seppanen

unread,
Feb 3, 2010, 5:22:07 AM2/3/10
to beagl...@googlegroups.com
Tue, 2 Feb 2010, Philip Balister wrote:

> On Tue, Feb 2, 2010 at 11:01 AM, Koen Kooi <ko...@beagleboard.org> wrote:

>> Why are you so eager on using CSL?
>
> CSL has a better marketing department than Angstrom :)

Well, let's take a look and let's guess how a new Beagle user with no
experience on embedded devices or cross-compiling would choose a compiler for
his project.

How to even find a compiler for compiling programs for Beagle? Following links
from beagleboard.org to elinux.org wiki will eventually lead the user to
http://www.elinux.org/ARMCompilers
It basically gives the user two choics: CSL or OE. So which one to choose?
Following CSL links will take you to their site on which they have direct
downloads for a ready-to-use compiler and even an installer. Just download,
install/untar and use it.

What about the other option, OE? "OE builds a cross-compiler from source as
part of the bitbake process" says elinux.org wiki. Again, following some links
will lead the user to http://www.angstrom-distribution.org/building-angstrom
Although those instructions work perfectly and I have found them most usefull,
one might wonder "Do I really need to build a whole distribution to get a
compiler for my hello world program?". And not forgetting the users who need
to do compiling on machines which don't have all the necessary programs to
use OE or admin rights to install those. Anyway, OE requires much more than
just downloading the compiler.
After few hours of downloading, compiling and several used gigabytes of disk
space the user will finally have the compiler ready. It is buried deep in the
angstrom-dev directory but it is there.

Is it really a wonder that so many users choose to start with Code Sourcery
GCC?

--
Antti Sepp�nen | PGP public key:
antti (�) anttiseppanen.fi | http://anttiseppanen.fi
OH3HMI

Koen Kooi

unread,
Feb 3, 2010, 5:54:15 AM2/3/10
to beagl...@googlegroups.com

In my former consulting days one could make good money out of those people, since companies pay top dollar to get rid of things like segfaults when mixing different toolchains. I generally advice using only the gcc and rebuild it yourself from sources if you are hell-bent on using CSL (or some other weird vendorized toolchain).
Remember that as a user you still need to be able to provide sources for libgcc and libc when distributing your binaries and there is no way to be sure the CSL binaries match their sources.

regards,

Koen

Paul Menzel

unread,
Feb 3, 2010, 6:01:03 AM2/3/10
to beagl...@googlegroups.com
Dear Ramasamy,


Am Dienstag, den 02.02.2010, 10:13 -0800 schrieb ramasamygopalan:
> I got the following error message when trying to build Angstrom from
> OpenEmbedded using the link (http://www.angstrom-distribution.org/
> building-angstrom) :
>
> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
> \\\\\
> ~/OE/openembedded$ bitbake base-image
>
> ERROR: Openembedded's config sanity checker detected a potential misconfiguration.
> Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
> Following is the list of potential problems / advisories:
>
> /proc/sys/vm/mmap_min_addr is not 0. This will cause problems with qemu so please fix the value (as root).
>
> To fix this in later reboots, set vm.mmap_min_addr = 0 in /etc/sysctl.conf.

either edit `/etc/sysctl.conf` and add `vm.mmap_min_addr = 0` or during
runtime do the following.

$ sudo su
# echo 0 > /proc/sys/vm/mmap_min_addr
# exit

> Please install following missing utilities: C++ Compiler ($
> {BUILD_PREFIX}g++),help2man,diffstat,texi2html,makeinfo,cvs,svn,gawk

You have to install these packages with the package manager of your
distribution.

> I request you to help ASAP.......

1. Please open a new thread next time and do not reply to an old one.
2. Please do your homework and at least look at the error message before
posting and try a quick search for yourself on the WWW.


Thanks,

Paul

signature.asc

Richard Watts

unread,
Feb 3, 2010, 7:14:10 AM2/3/10
to beagl...@googlegroups.com
Koen Kooi wrote:
> Op 3 feb 2010, om 11:22 heeft Antti Seppanen het volgende geschreven:
>
[snip]

>
> In my former consulting days one could make good money out of those people, since companies pay top dollar to
> get rid of things like segfaults when mixing different toolchains. I generally advice using only the gcc and
> rebuild it yourself from sources if you are hell-bent on using CSL (or some other weird vendorized toolchain).
> Remember that as a user you still need to be able to provide sources for libgcc and libc when distributing
> your binaries and there is no way to be sure the CSL binaries match their sources.

Of course, companies also pay top dollar to get rid of things like
segfaults when using a gcc and binutils combination whose backend hasn't
been tested lately :-)

FWIW, http://code.google.com/p/muddle contains (among other things)
a python script to turn a CSL source release into a working
compiler in many of the same ways as CSL do. CSL's builds have, in
my experience, generally been very good - it is only my paranoia
from previous gcc versions that leads me to build them myself in case
I one day have to patch them.

CSL's compilers don't strike me as offensively hopelessly
patched - and at least they come with a matching set of binutils and
without an attached Linux distribution (nothing against OE - we just
use quite a lot of micros here, and I feel much enthusiasm for building
all our toolchains the same and little for trying to fit Linux into
128K of Flash),


Richard.

Reply all
Reply to author
Forward
0 new messages