All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: Bob Feretich <bob.feretich@domain.hid>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-help] using floating point in rtdm
Date: Fri, 20 Aug 2010 01:39:10 +0200	[thread overview]
Message-ID: <4C6DC09E.1060107@domain.hid> (raw)
In-Reply-To: <4C6D9B61.2020108@domain.hid>

Bob Feretich wrote:
>   I haven't tried to implement the below yet, but it seems that it 
> should work...
> 
> One of the drivers that I am creating requires OMAP3 Neon processing 
> (hard SIMD floating point). In a standard Linux environment the Neon 
> code would be executed in the driver's "back end" tasklet. I plan to 
> implement this "back end" code as a Xenomai RT user task. That moves the 
> Neon code execution from the RTDM interrupt context to the Xenomai user 
> context. I believe that I read that the Xenomai user context supports 
> hard floating point in versions of Linux newer than 2.6.30. Do I 
> understand correctly?

Yes, it should work. At least, FPU unit tests + LTP FPU tests seem to
work well together. And in fact, even if FPU is supported for
kernel-space tasks, it is hard to get working for the reasons explained
earlier. With regard to FPU, Xenomai is not very different from Linux:
we encourage people to only use FPU in user-space.

> I also plan to isolate the Neon code to a separately compiled module 
> that uses hard floating point and static libraries. I'm planning this 
> because I may need to use a different compiler to generate good Neon 
> code and I want to prevent library conflicts. I have used the Angstrom 
> (glibc) supplied compiler to build my entire Linux system, including 
> Xenomai and my drivers. My Angstrom compiled "back end" task (a RT user 
> task) will call the Neon module. I expect that the Neon module will make 
> very little use of library functions, so compiling statically should not 
> increase its size significantly.
> 
> In the worst case, I can  just have the Angstrom compiler link the Neon 
> module's assembly file into the "back end" task. I have already verified 
> that this module contains Neon instructions rather than calls to 
> floating point library functions.

In order to mix easily the NEON compiled code with the Armstrong
toolchain code (which, I suppose, is soft-float?), you may want to use
-mfloat-abi=soft. This allows mixing hardware FP code with software FP code.

-- 
					    Gilles.


  reply	other threads:[~2010-08-19 23:39 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.53.1282212027.5136.xenomai@xenomai.org>
2010-08-19 21:00 ` [Xenomai-help] using floating point in rtdm Bob Feretich
2010-08-19 23:39   ` Gilles Chanteperdrix [this message]
2010-08-19  9:00 ramon costa
2010-08-19  9:13 ` Gilles Chanteperdrix
2010-08-19  9:27   ` ramon costa
2010-08-19  9:31     ` Gilles Chanteperdrix
2010-08-19  9:45     ` Gilles Chanteperdrix
     [not found]       ` <AANLkTinCCejWZQhGOQd=CZ+yq482x0z4VCB5we+1mX9H@mail.gmail.com>
2010-08-19 12:30         ` Gilles Chanteperdrix

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C6DC09E.1060107@domain.hid \
    --to=gilles.chanteperdrix@xenomai.org \
    --cc=bob.feretich@domain.hid \
    --cc=xenomai@xenomai.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.