Re: FPU operation problem.

"Mark Allison" <[email protected]> Wed, 26 Jul 2006 06:36:09 -0000
Newsgroups gmane.comp.hardware.motorola.microcontrollers
Message-ID <[email protected]>
Hi,

I think its probably actually crashing at while attempting to run 
the code "lfd      fp2,-32696(r13)" ?

It looks to me like you are trying to load a floating point value 
from a mis-aligned address - I presume the address in r13 is half 
word aligned?. You need to move your floating point data so it is 
word aligned. 

I had a lot of this sort of problems myself trying to port some old 
XDADA code across to Greenhills ADA.  Alot of our data was contained 
in data structures which made some elements mis-aligned - not a 
problem for a 68020 but a definite no no for a 565.

Regards

Mark

--- In [email protected], "Rajesh" <rajesh86us@...> wrote:
>
> Dear All,
>           I am trying to execute a function "func_control" in main
() 
> that performs some floating point operations. I have set the FP 
bit 
> in MSR while initialization. Following is the mixed code (both 
> assembly and C code) for that function. As soon as it is crossing 
the 
> istruction marked below, it is jumping to "machine check 
exception".
> This function is very large(of around 26KB) and doing a lot of 
> floating point operations, so its not possible to mention those 
> operations here.
> One more thing in this is that I am using ISR and enabling the FP 
bit 
> while entering into ISR.
>   
> func_control()
> {
> 00002510: 942180E0  stwu     rsp,-32544(rsp)
> 00002514: 7C0802A6  mflr     r0
> 00002518: 90017F24  stw      r0,32548(rsp)
> 0000251C: 39617F20  addi     r11,rsp,32544
> 00002520: 48006745  bl       __save_fpr (0x8c64)
> 00002524: BDC17E48  stmw     r14,32328(rsp)
> 00002528: 7C3F0B78  mr       r31,rsp
> 0000252C: 80010000  lwz      r0,0(rsp)
> 00002530: 3D60FFFE  lis      r11,-2
> 00002534: 396B19F0  addi     r11,r11,6640
> 00002538: 7C01596E  stwux    r0,rsp,r11 <-------- at this 
instruction 
> it is jumping to "machine check exception"
> 0000253C: C84D8048  lfd      fp2,-32696(r13)
> 
>   double rtb_Abs_h;
>   double rtb_Sum1;
>   double rtb_Product3;
>   double rtb_Saturation3;
>   .....
>   .....
>   .....
> 
> }
> 
> //machine check exception assembly code
>  
> 00002290: 00000000  dc.l     0x00000000; Invalid opcode '....'
> }
> 00002294: 4E800020  blr
> 
> 
> Can someone please help on this, as I am stuck with this problem 
from 
> a long time and not able to fix it?
> 
> -regards
> Rajesh
>







------------------------ Yahoo! Groups Sponsor --------------------~--> 
See what's inside the new Yahoo! Groups email.
http://us.click.yahoo.com/3EuRwD/bOaOAA/yQLSAA/dN_tlB/TM
--------------------------------------------------------------------~-> 

-----------------------------------------------------------
To learn more about Freescale Microcontrollers, please visit
http://www.freescale.com/mcu


 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/MPC500/

<*> To unsubscribe from this group, send an email to:
    [email protected]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/