大家好,
我目前在dm3730设备上集成了自己的程序,在程序稳定性运行过程中,会不定期(有时候10分钟,有时候几小时)出现崩溃的情况,从串口中得到的信息如下:
DSP MMU Error Fault! MMU_IRQSTATUS = [0x1]. Virtual DSP addr reference that generated the interrupt = [0x86a18000].
我的内存格局如下:
0x80000000-0x8fffffff:linux内存空间,供arm端使用
0x90000000-0x93ffffff:cmem空间
0x94000000-0x9effffff:DDRALGHEAP空间
...
串口中报中断的地方是0x86a18000,对应的应该是linux的空间,为什么会和dsp有关系的?我使用Memory_contigAlloc分配出来的内存对应的虚拟地址如下:
ptrLastInBuf:43997000 ptrCurInBuf:43a2d000 ptrCurOutBuf:43ac3000
ptrH264OutBuf:43b59000 ptrJpegOutBuf:43bef000 ptrCapBuf:43c85008
这一块的虚拟地址范围也不会去到0x86a18000这边。
另外,我在dsp中的算法程序用到比较多的全局变量,这一块的内存空间是从哪里分配的?会不会和这块有关系呢?