From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: Gabriele Moabiti <gabmoa@domain.hid>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-help] floating point (int 16) exception
Date: Fri, 31 Oct 2008 17:52:38 +0100 [thread overview]
Message-ID: <490B37D6.8050809@domain.hid> (raw)
In-Reply-To: <327543.30247.qm@domain.hid>
Gabriele Moabiti wrote:
>
>> No, simply doing an fnclex will not do the trick.
>>
>> If you do not know the details of Xenomai and Linux FPU handling on
>> x86, I advise you to let xenomai handle the fault, it does it
>> without switching to secondary mode, so, you can use it. I do not
>> want to explain you how it works because it is rather hairy, so,
>> the only way to understand, if you really want to, is to read the
>> xenomai and linux relevant sources.
>
> I need to manage exceptions in a different way of the x86 default so
> I have to unmask fpu exceptions. I have read and follow how it works
> but in xenomai fpu exceptions invoke a switch to linux...
>
> int xnpod_trap_fault(xnarch_fltinfo_t *fltinfo) { ... if
> (xnpod_shadow_p()) { ...
> xnshadow_relax(xnarch_fault_notify(fltinfo)); } return 0; }
>
> so there is not in the source code an example on how to trap
> exception and remain into real time task...
No, you do not read the sources correctly. Xenomai does handle FPU
exception in primary mode. You know, I implemented part of this, so, you
should not assume that I do not know what I am talking about.
int xnpod_trap_fault(xnarch_fltinfo_t *fltinfo)
{
...
#ifdef __KERNEL__
if (xnarch_fault_fpu_p(fltinfo)) {
#if defined(CONFIG_XENO_OPT_PERVASIVE) && defined(CONFIG_XENO_HW_FPU)
xnarchtcb_t *tcb = xnthread_archtcb(thread);
if (xnpod_shadow_p() && !xnarch_fpu_init_p(tcb->user_task)) {
/* The faulting task is a shadow using the FPU
for the
first time, initialize its FPU. Of course if
Xenomai
is
not compiled with support for FPU, such use
of the FP
U
is an error. */
xnarch_init_fpu(tcb);
return 1;
So, here the exception was handled in primary mode, and the comments are
rather explicit.
By the way, your mailer is misconfigured and does not trunc lines.
--
Gilles.
next prev parent reply other threads:[~2008-10-31 16:52 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-31 16:26 [Xenomai-help] floating point (int 16) exception Gabriele Moabiti
2008-10-31 16:31 ` Gilles Chanteperdrix
2008-10-31 16:47 ` Gabriele Moabiti
2008-10-31 16:52 ` Gilles Chanteperdrix [this message]
2008-10-31 17:15 ` Gabriele Moabiti
2008-10-31 17:20 ` Gilles Chanteperdrix
2008-10-31 18:41 ` Gabriele Moabiti
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=490B37D6.8050809@domain.hid \
--to=gilles.chanteperdrix@xenomai.org \
--cc=gabmoa@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.