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*