Gabriele Moabiti wrote:
>> 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.
>
> I *REALLY* don't say you don't know what you say
> (I ask you 'cause I think you know... :)
>
> ring 3 xenomai task:
> void xeno_task(void *cookie)
> {
> static long loop_count=0;
> unsigned int cw=0x360;
>
> /* Unmask all but not precision, the int 7 will be raised */
> __asm__ __volatile__("fldcw %0;"::"m"(cw));
> for (;;loop_count++) {
> rt_task_wait_period(NULL);
> rt_printf("Loop number: %ld\n", loop_count);
> /* Let's raise an exception #16*/
> __asm__ __volatile__(
> "fldz;"
> "fld1;"
> "fdivrp %st(0),%st(1);"
> "fwait;"
> );
> }
> }
>
> xnarch_fault_fpu_p is related to int 7 that It manage the TS bit (fpu handling
> of save restore only if the task use fpu) and it works, it doesn't switch to
> secondary
> mode as you say.
> If I pass to Xenomai the exception 16 of fdivrp the task end 'cause (i
> thought) the
> switch to secondary mode. Sorry if i bug you but i really need a suggestion.
You mean you want to handle a division by zero without ending the
program, and without even switching to secondary mode? Then in this
case, I am afraid you are on your own.
--
Gilles.
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help