|
大家好,我在用telink zigbee sdk ,版本是v3.6.7.8,8258芯片,基于demo light开发,开发过程遇到程序奔溃,无法定位,通过BTD工具,读取了寄存器地址,显示是在打印的函数里面出错,我想继续追踪下去,我不知道如何追踪,可以帮助我么,以下是我抓取到的log,
读取r0-r15的值如下:
000680: 00 00 00 00 68 37 1e 08 13 00 00 00 18 26 84 00
000690: 70 ff 84 00 01 00 00 00 01 00 00 00 00 00 00 00
0006a0: f8 43 84 00 00 00 00 00 00 00 00 00 00 00 00 00
0006b0: 04 00 00 00 54 ff 84 00 4a 17 01 00 b0 26 01 00
PC指针:0x0126b0
LR:0x01174a
R13: 84ff54
找到 lst文件对应位置是:
PC停留在函数:
000126a0 <RGBCCT_LightSysException>:
RGBCCT_LightSysException():
126a0: 6500 tpush {lr}
126a2: 0804 tloadr r0, [pc, #16] ; (126b4 <RGBCCT_LightSysException+0x14>)
126a4: 97ff 9b64 tjl 11d70 <Tl_printf>
126a8: 0b03 tloadr r3, [pc, #12] ; (126b8 <RGBCCT_LightSysException+0x18>)
126aa: 285a tloadrh r2, [r3, #2]
126ac: 0b03 tloadr r3, [pc, #12] ; (126bc <RGBCCT_LightSysException+0x1c>)
126ae: 201a tstorerh r2, [r3, #0]
126b0: 87fe tj.n 126b0 <RGBCCT_LightSysException+0x10>
126b2: 46c0 tnop ; (mov r8, r8)
126b4: 00032878 tandeq r2, r3, r8, ror r8
126b8: 008425d0 undefined instruction 0x008425d0
126bc: 00842618 taddeq r2, r4, r8, lsl r6
LR(R14)则是在打印驱动里面,如下:
00011740 <drv_putchar>:
drv_putchar():
11740: 6500 tpush {lr}
11742: f600 tshftls r0, r0, #24
11744: fe00 tshftrs r0, r0, #24
11746: 97ef 9885 tjl 854 <soft_uart_putc>
1174a: 6d00 tpop {pc}
最后我通过BTD工具获取T_debug_except_code值为0x13,对应代码为:SYS_EXCEPTTION_ZB_BUFFER_EXCEPTION
但我还是没找到是哪个地方导致这个问题,你们能帮助我分析下么,lst文件附上,希望得到你们专业的帮助
,因为这个问题困扰我很久了
|
|