0

Could somebody give me some clue about how to resolve this error:

At runtime my program crash on bare metal coreb:

.....
COREB: test mdct36                                                           
COREB: execption 24 addr 3c0746c                                             
COREB: coreb dump stack                                                      
COREB: found fp: ff700c1c                                                    
COREB:  call frame 0 -12 feb05676                                            
COREB:  call frame 0 -11 00000000                                            
COREB:  call frame 0 -9 00000000                                             
COREB:  call frame 0 -8 ff700bec    
.....

when debugging, this assembler line of code is in cause.

  A1 = A0 = 0 || R3 = [P5++] || [I0--] = R1; 

is there is something wrong with it?


here is the debugging details from gdb using .align 8:

just before:

p5          0x3c0b792    0x3c0b792


r3          0x8006a830    -2147047376
i0          0xff700c98    -9433960
r1          0xd73f1a2    225702306




sp          0xff700ca0    0xff700ca0


fp          0xff700cf4    0xff700cf4
a0x         0xffffffff    -1


a0w         0xf1a24400    -241024000


a1x         0x0    0
a1w         0xd735c00    225664000

after exception:

r0          *value not available*

for all registers value

using .align 4 as suggested it crash the same way. the register values are:

before crash:

p5          0x3c0b78e    0x3c0b78e


r3          0x10b57ee7    280329959


i0          0xff700c98    -9433960




sp          0xff700ca0    0xff700ca0
fp          0xff700cf4    0xff700cf4
a0x         0xffffffff    -1
a0w         0xefb55880    -273328000
a1x         0x0    0
a1w         0xeed8880    250448000

after crash:

same as before:

(

gdb) break +1

Breakpoint 3 at 0x3c0722c: file signal_processing/mdct36.asm, line 213.

(gdb) c

Continuing.



Program received signal SIGTRAP, Trace/breakpoint trap.

0xff600000 in ?? ()

(gdb) bt

#0  0xff600000 in ?? ()

(gdb) info registers

r0             *value not available*

r1             *value not available*

r2             *value not available*

r3             *value not available*
4

0 回答 0