TI中文支持网
TI专业的中文技术问题搜集分享网站

DM8168运行时M3核异常崩溃

芯片是DM8168,RDK用的是04.00.00.03,运行解码程序,程序是根据demo改写的,板子跑了大概半小时后,就没图像输出,出现了一下调试信息:

 [m3vpss ] Unhandled Exception:
 [m3vpss ] Exception occurred in ThreadType_Task
 [m3vpss ] handle: 0x3de968f8.
 [m3vpss ] stack base: 0x3de2d180.
 [m3vpss ] stack size: 0x8000.
 [m3vpss ] R0 = 0x00000012  R8  = 0x00000001
 [m3vpss ] R1 = 0x3de96908  R9  = 0x00000000
 [m3vpss ] R2 = 0x3de92e80  R10 = 0x00000000
 [m3vpss ] R3 = 0x9cd3c888  R11 = 0x00000000
 [m3vpss ] R4 = 0xb37a4400  R12 = 0x9ca14f30
 [m3vpss ] R5 = 0x00430a40  SP(R13) = 0x3de35020
 [m3vpss ] R6 = 0x00000f00  LR(R14) = 0x9c9e99cb
 [m3vpss ] R7 = 0x00000f00  PC(R15) = 0x00000000
 [m3vpss ] PSR = 0x20000000
 [m3vpss ] ICSR = 0x0440f803
 [m3vpss ] MMFSR = 0x00
 [m3vpss ] BFSR = 0x00
 [m3vpss ] UFSR = 0x0002
 [m3vpss ] HFSR = 0x40000000
 [m3vpss ] DFSR = 0x00000000
 [m3vpss ] MMAR = 0xe000ed34
 [m3vpss ] BFAR = 0xe000ed38
 [m3vpss ] AFSR = 0x00000000
 [m3vpss ] Terminating Execution…

A8还在运行,但是两个M3核好像就崩溃了,请问这是什么原因导致的呢?

Chris Meng:

Huang Ben,

请问问题能频繁复现么?如果能挂上仿真器,看看是否每次挂起的地方都一样?

可能的原因有很多。

1. 代码本身的问题。

2. 可能是DDR不稳定的问题。请问你是否有根据你使用的DDR调整过DDR时序,做过SW leveling?

user4546956:

回复 Chris Meng:

1.这个问题每次都会出现,都是半小时左右就出现了

2.没有引出jtag口,所以没办法挂上仿真器

3.没有做过SW leveling,只是根据DDR型号调整了一下时序,用的是镁光的内存,还有之前开发板用的是2G的内存,现在调试的板子用的是1G,不知道这个有没有影响呢?尝试过调低DDR频率和M3核的频率,问题没有得到解决

4.A8核是从来没有崩溃过的,一直都是M3核出现崩溃。如果板子散热不好会导致这个问题吗?

5.能麻烦你帮我定位一下这些调试信息在代码的哪个位置吗?

6.如果把M3核的调试信息关掉会有帮助吗,M3核的调试信息是在代码的哪里关掉呢?

7.我想每次挂起的地方是不一样的,有的时候上述调试信息没有出现,M3核就挂了,有的时候出现的调试信息如下:

[m3vpss ] Unhandled Exception: [m3vpss ] Exception occurred in ThreadType_SWI [m3vpss ] handle: 0x9b682078. [m3vpss ] stack base: 0x3c481880. [m3vpss ] stack size: 0x4000. [m3vpss ] R0 = 0x0007013c R8 = 0x00000001 [m3vpss ] R1 = 0x00000000 R9 = 0x00070113 [m3vpss ] R2 = 0x3c44c9cc R10 = 0x9b50dc9c [m3vpss ] R3 = 0x00000001 R11 = 0x9b50df48 [m3vpss ] R4 = 0x3c464a44 R12 = 0x9b5451d9 [m3vpss ] R5 = 0x9b681e70 SP(R13) = 0x3c485780 [m3vpss ] R6 = 0x9b681e70 LR(R14) = 0x9b545247 [m3vpss ] R7 = 0x9b50dc88 PC(R15) = 0x9b5417e2 [m3vpss ] PSR = 0x61000000 [m3vpss ] ICSR = 0x00400803 [m3vpss ] MMFSR = 0x00 [m3vpss ] BFSR = 0x00 [m3vpss ] UFSR = 0x0001 [m3vpss ] HFSR = 0x40000000 [m3vpss ] DFSR = 0x00000000 [m3vpss ] MMAR = 0xe000ed34 [m3vpss ] BFAR = 0xe000ed38 [m3vpss ] AFSR = 0x00000000 [m3vpss ] Terminating Execution…

8.如果挂的时候有调试信息出现,输出的画面会停留;没有调试信息出现的时候,输出会变成黑屏

Chris Meng:

回复 user4546956:

Ben,

你的DDR布线和EVM不可能完全一样吧。DDR SW leveling必须要做。请联系你们的硬件工程师焊上仿真器接口。

user4546956:

回复 Chris Meng:

1.做不做DDR SW leveling对板子的稳定性有很大的影响吗?

2.但是A8核是没有出现过挂掉的情况的,有没有可能是别的问题的可能性大一些呢,还是说依然是没有做DDR SW leveling导致了这个问题发生的可能性比较大呢?

Chris Meng:

回复 user4546956:

Ben Huang1.做不做DDR SW leveling对板子的稳定性有很大的影响吗?

是的。如果你的DDR布线严格按照TI数据手册上做,并且按照你使用的DDR调整过DDR时序参数,正确做过DDR SW leveling,TI可以保证硬件上DDR的稳定性。

Ben Huang2.但是A8核是没有出现过挂掉的情况的,有没有可能是别的问题的可能性大一些呢,还是说依然是没有做DDR SW leveling导致了这个问题发生的可能性比较大呢?

我这里有客户是因为DDR布线的问题导致M3挂起,但Linux一直都是正常的。当然我不能保证你的问题一定是DDR的问题,但是DDR SW Leveling是必须做的。

对了,请和你们的硬件确认DDR布线严格按照TI数据手册上做。

user4546956:

回复 Chris Meng:

好的,那我先去做DDR SW leveling,做DDR SW leveling是需要一个仿真器,和CCS软件是吧。能否指导一下该如何做DDR SW leveling

Chris Meng:

回复 user4546956:

Ben,

建议你多大到我们的置顶精华贴看看:

http://processors.wiki.ti.com/index.php/DM816x_Resource_Guide(English中文)

http://processors.wiki.ti.com/index.php/DM816x_C6A816x_AM389x_DDR3_Init

赞(0)
未经允许不得转载:TI中文支持网 » DM8168运行时M3核异常崩溃
分享到: 更多 (0)