cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Anonymous
Not applicable
3,902 Views

APU problem in interrupt handler

Jump to solution
I'm using the ML403 board for the interrupt-based system. In this system, floating point operations in interrupt handler are required and APU is employed to accelerate the single precision floating point operation. The software is running with the standalone BSP on the PPC. The snippet is shown below:  

        // global variables

        static float a=1.0F;

        static float b=2.0F;

 

void TimerCounterHandler(void *CallBackRef, Xuint8 TmrCtrNumber)

{

        a += b;

}

   

It seems that PPC is blocked when timer interrupt handler “TimerCounterHandler” is executed. Any advice on how to resolve the problem?

Thanks!

0 Kudos
1 Solution

Accepted Solutions
Anonymous
Not applicable
4,695 Views

It can be done by adding
"mtmsr(mfmsr() | XREG_MSR_FLOATING_POINT_AVAILABLE);"
to the interrupt handler.

Please refer to

 

http://www.fpgarelated.com/usenet/fpga/show/88349-1.php

 

 

Best Regards,

 

max_xilinx

 

View solution in original post

0 Kudos
3 Replies
chris_basson
Visitor
Visitor
3,840 Views
Registered: ‎10-27-2009

We also ran into a similar problem, it does not seem possible doing it that way, refer to

 

http://www.xilinx.com/support/answers/29948.htm

 

Best regards,

Chris

0 Kudos
Anonymous
Not applicable
4,696 Views

It can be done by adding
"mtmsr(mfmsr() | XREG_MSR_FLOATING_POINT_AVAILABLE);"
to the interrupt handler.

Please refer to

 

http://www.fpgarelated.com/usenet/fpga/show/88349-1.php

 

 

Best Regards,

 

max_xilinx

 

View solution in original post

0 Kudos
chris_basson
Visitor
Visitor
3,832 Views
Registered: ‎10-27-2009

Thanks, sounds simple enough - we will be giving it a try too,

Best regards,

Chris

0 Kudos