This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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核好像就崩溃了,请问这是什么原因导致的呢?

  • Huang Ben,

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

    可能的原因有很多。

    1. 代码本身的问题。

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

  • 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.如果挂的时候有调试信息出现,输出的画面会停留;没有调试信息出现的时候,输出会变成黑屏

  • Ben,

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

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

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

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

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

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

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

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

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

  • Ben,

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

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

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