Gabriele Moabiti wrote:

Please do not drop the list from the CC.

> The asm x86 code is a "legacy" code developed in x86 plain binary asm
> (written with tasm and can't be re-written of course)

I do not understant the "of course". If this is assembly, then run a
disassembler and you will get the source.

> with fixed addresses for data and code (I'll call SIS in the follow).
>  When one of the follow exception occurred
> 
>      *  0x00    Divide by zero
>      *  0x01    Debug exception
>      *  0x03    Int3
>      *  0x04    Overflow
>      *  0x05    Array bounds check
>      *  0x06    Illegal Opcode
>      *  0x07    FPU not available
>      *  0x08    Double fault
>      *  0x09    Coprocessor segment overrun
>      *  0x0a    Invalid task state
>      *  0x0b    Segment not present
>      *  0x0c    Stack exception
>      *  0x0d    General Protection Fault
>      *  0x0e    Page fault
>      *  0x0f    Reserved
>      *  0x10    Coprocessor error
> 
> SIS expects some custom actions (set internal flags, save errors and so on).
> 
> I have mapped SIS in a kernel module and mapped to user space with xenomai.
> Now I though to execute SIS in ring 3 (as rt task) and trap the exceptions at 
> ring 0 (always inside real time constraints).
> 
> The result should be
> 
> <C code>
> <set custom exceptions>
> <SIS code>
> <set default exceptions>
> <C code>
> 
> In the "C code" part I'll use rtnet.

I think you are traping yourself with impossible constraints.

Anyway, the only way is register a custom exception handler using rthal
functions. In your trap handler, you may wake up a user-space server
thread which role is to handle exceptions (in user-space). This means that:
- upon exception, you have a switch to the user-space server thread
context, this will be slow;
- you have to rewrite the exception handling code, you can not rely
on the exception handling code that was written in the assembly blob.

I do not think it is a good idea to simply override the exception
vectors, the kernel uses them, and you certainly want the kernel to
continue working.

-- 
                                                 Gilles.

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to