Assembly bf561的coreb上的运行时汇编程序错误

Assembly bf561的coreb上的运行时汇编程序错误,assembly,embedded,runtime,processor,bare-metal,Assembly,Embedded,Runtime,Processor,Bare Metal,谁能给我一些关于如何解决此错误的线索: 运行时,我的程序在裸机coreb上崩溃: ..... COREB: test mdct36 COREB: execption 24 addr 3c0746c COREB: coreb dump stack

谁能给我一些关于如何解决此错误的线索:

运行时,我的程序在裸机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    
.....
调试时,此汇编程序代码行处于原因中

  A1 = A0 = 0 || R3 = [P5++] || [I0--] = R1; 
有什么问题吗


以下是使用.align 8从gdb进行调试的详细信息:

就在之前:

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
例外情况后:

r0          *value not available*

for all registers value
使用建议的.align 4,它会以相同的方式崩溃。寄存器值为:

坠机前:

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
坠机后:

同上:

(


试图使用错误的内存地址读/写内存?可能,这是我从VDSP转换为GCC裸机的代码。所以我不确定跟踪这一点的最佳方法。有什么想法吗?嗯,调试代码如何?真的很有趣,实际上你看到的是,通过调试代码,我发现了问题所在。我需要知道的是为什么…你需要充分理解该算法,找出它访问预期范围之外内存的位置/原因。这里的调试应该有所帮助。
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*