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.
hello,我用的3730的芯片。也碰到了DSP MMU Error Fault问题。
www.deyisupport.com/.../98366.aspx
这些帖子也都仔细看了。但是由于本人菜鸟,刚刚接触3730的项目。理解的不够深入,还是找不到该修改的地方。
恳请指教。 直接的解决方法,或者间接规避的方法都可以。恳请不吝指教。
这4个文件的原文件在附件里。
dsplink-omap3530-base.tci:
var RESET_VECTOR = prog.module("MEM").create("RESET_VECTOR");
RESET_VECTOR.base = 0x87E00000 ;
RESET_VECTOR.len = 0x00000080;
RESET_VECTOR.space = "code/data";
RESET_VECTOR.createHeap = false;
RESET_VECTOR.comment = "RESET_VECTOR";
/* ============================================================================
* MEM : Adjust DDR2
* ============================================================================
*/
var DDR2 = prog.module("MEM").instance("DDR2");
DDR2.base = RESET_VECTOR.base + RESET_VECTOR.len ;
DDR2.len = 0x000FFF80;
DDR2.space = "code/data";
DDR2.createHeap = true;
DDR2.heapSize = 0x10000;
DDR2.comment = "DDR2";
/* ============================================================================
* MEM : DSPLINKMEM
* ============================================================================
*/
var DSPLINKMEM = prog.module("MEM").create("DSPLINKMEM");
DSPLINKMEM.base = DDR2.base + DDR2.len ;
DSPLINKMEM.len = 0x00030000;
DSPLINKMEM.createHeap = false;
DSPLINKMEM.comment = "DSPLINKMEM";
/* ============================================================================
* MEM : DSPLINKMEM
* ============================================================================
*/
var POOLMEM = prog.module("MEM").create("POOLMEM");
POOLMEM.base = DSPLINKMEM.base + DSPLINKMEM.len ;
POOLMEM.len = 0xD0000;
POOLMEM.createHeap = false;
POOLMEM.comment = "POOLMEM";
CFG_OMAP3530_SHMEM.c:
#define DRVHANDSHAKEPOLLCOUNT ((Uint32) 0xFFFFFFFu)
/** ============================================================================
* @name RESETCTRLADDR
*
* @desc Indicates the start address of Reset Ctrl memory region.
* last two nibbles must be zero i.e. align to 256 boundary.
* ============================================================================
*/
#define RSTENTRYID 0u
#define RESETCTRLADDR 0x87E00000u
#define RESETCTRLSIZE 0x80u
/** ============================================================================
* @name CODEMEMORYADDR/CODEMEMORYSIZE
*
* @desc Indicates startaddress/size for dsplink code region.
* ============================================================================
*/
#define CODEENTRYID 1u
#define CODEMEMORYADDR (RESETCTRLADDR + RESETCTRLSIZE)
#define CODEMEMORYSIZE 0xFFF80u
/** ============================================================================
* @name SHAREDENTRYID/SHAREDMEMORYADDR/SHAREDMEMORYSIZE
*
* @desc Indicates startaddress/size for dsplink shared memory region.
* ============================================================================
*/
#define SHAREDENTRYID0 2u
#define SHAREDMEMORYADDR0 (CODEMEMORYADDR + CODEMEMORYSIZE)
#define SHAREDMEMORYSIZE0 0x5000u
/** ============================================================================
* @name SHAREDENTRYID/SHAREDMEMORYADDR/SHAREDMEMORYSIZE
*
* @desc Indicates startaddress/size for dsplink shared memory region.
* ============================================================================
*/
#define SHAREDENTRYID1 3u
#define SHAREDMEMORYADDR1 (SHAREDMEMORYADDR0 + SHAREDMEMORYSIZE0)
#define SHAREDMEMORYSIZE1 0x2B000u
/** ============================================================================
* @name POOLMEMORYADDR/POOLMEMORYSIZE
*
* @desc Indicates startaddress/size for dsplink POOL memory region.
* ============================================================================
*/
#define POOLENTRYID 4u
#define POOLMEMORYADDR (SHAREDMEMORYADDR1 + SHAREDMEMORYSIZE1)
#define POOLMEMORYSIZE 0x000D0000u
/** ============================================================================
* @name LINKCFG_memTable_00
*
* @desc Memory table ID 0.
* ============================================================================
*/
STATIC LINKCFG_MemEntry LINKCFG_memTable_00 [] =
{
{
RSTENTRYID, /* ENTRY : Entry number */
"RESETCTRL", /* NAME : Name of the memory region */
RESETCTRLADDR, /* ADDRPHYS : Physical address */
RESETCTRLADDR, /* ADDRDSPVIRT : DSP virtual address */
(Uint32) -1u, /* ADDRGPPVIRT : GPP virtual address (if known) */
RESETCTRLSIZE, /* SIZE : Size of the memory region */
TRUE, /* SHARED : Shared access memory? */
FALSE, /* SYNCD : Synchornized? */
},
{
CODEENTRYID, /* ENTRY : Entry number */
"DDR2", /* NAME : Name of the memory region */
CODEMEMORYADDR, /* ADDRPHYS : Physical address */
CODEMEMORYADDR, /* ADDRDSPVIRT : DSP virtual address */
(Uint32) -1u, /* ADDRGPPVIRT : GPP virtual address (if known) */
CODEMEMORYSIZE, /* SIZE : Size of the memory region */
TRUE, /* SHARED : Shared access memory? */
FALSE, /* SYNCD : Synchornized? */
},
{
SHAREDENTRYID0, /* ENTRY : Entry number */
"DSPLINKMEM", /* NAME : Name of the memory region */
SHAREDMEMORYADDR0, /* ADDRPHYS : Physical address */
SHAREDMEMORYADDR0, /* ADDRDSPVIRT : DSP virtual address */
(Uint32) -1u, /* ADDRGPPVIRT : GPP virtual address (if known) */
SHAREDMEMORYSIZE0, /* SIZE : Size of the memory region */
TRUE, /* SHARED : Shared access memory? */
FALSE, /* SYNCD : Synchornized? */
},
{
SHAREDENTRYID1, /* ENTRY : Entry number */
"DSPLINKMEM1", /* NAME : Name of the memory region */
SHAREDMEMORYADDR1, /* ADDRPHYS : Physical address */
SHAREDMEMORYADDR1, /* ADDRDSPVIRT : DSP virtual address */
(Uint32) -1u, /* ADDRGPPVIRT : GPP virtual address (if known) */
SHAREDMEMORYSIZE1, /* SIZE : Size of the memory region */
TRUE, /* SHARED : Shared access memory? */
FALSE, /* SYNCD : Synchornized? */
},
{
POOLENTRYID, /* ENTRY : Entry number */
"POOLMEM", /* NAME : Name of the memory region */
POOLMEMORYADDR, /* ADDRPHYS : Physical address */
POOLMEMORYADDR, /* ADDRDSPVIRT : DSP virtual address */
(Uint32) -1u, /* ADDRGPPVIRT : GPP virtual address (if known) */
POOLMEMORYSIZE, /* SIZE : Size of the memory region */
TRUE, /* SHARED : Shared access memory? Logically */
FALSE, /* SYNCD : Synchornized? */
},
{
5, /* ENTRY : Entry number */
"DSPIRAM", /* NAME : Name of the memory region */
0x5c7f8000, /* ADDRPHYS : Physical address */
0x107f8000, /* ADDRDSPVIRT : DSP virtual address */
(Uint32) -1, /* ADDRGPPVIRT : GPP virtual address (if known) */
0x00018000, /* SIZE : Size of the memory region */
TRUE, /* SHARED : Shared access memory? */
FALSE /* SYNCD : Synchornized? */
},
{
6, /* ENTRY : Entry number */
"DSPL1PRAM", /* NAME : Name of the memory region */
0x5cE00000, /* ADDRPHYS : Physical address */
0x10E00000, /* ADDRDSPVIRT : DSP virtual address */
(Uint32) -1, /* ADDRGPPVIRT : GPP virtual address (if known) */
0x00008000, /* SIZE : Size of the memory region */
TRUE, /* SHARED : Shared access memory? */
FALSE /* SYNCD : Synchornized? */
},
{
7, /* ENTRY : Entry number */
"DSPL1DRAM", /* NAME : Name of the memory region */
0x5cF04000, /* ADDRPHYS : Physical address */
0x10F04000, /* ADDRDSPVIRT : DSP virtual address */
(Uint32) -1, /* ADDRGPPVIRT : GPP virtual address (if known) */
0x00014000, /* SIZE : Size of the memory region */
TRUE, /* SHARED : Shared access memory? */
FALSE /* SYNCD : Synchornized? */
},
{
8, /* ENTRY : Entry number */
"L4_CORE", /* NAME : Name of the memory region */
0x48000000, /* ADDRPHYS : Physical address */
0x48000000, /* ADDRDSPVIRT : DSP virtual address */
(Uint32) -1, /* ADDRGPPVIRT : GPP virtual address (if known) */
0x01000000, /* SIZE : Size of the memory region */
FALSE, /* SHARED : Shared access memory? */
FALSE /* SYNCD : Synchornized? */
},
{
9, /* ENTRY : Entry number */
"L4_PER", /* NAME : Name of the memory region */
0x49000000, /* ADDRPHYS : Physical address */
0x49000000, /* ADDRDSPVIRT : DSP virtual address */
(Uint32) -1, /* ADDRGPPVIRT : GPP virtual address (if known) */
0x00100000, /* SIZE : Size of the memory region */
FALSE, /* SHARED : Shared access memory? */
FALSE /* SYNCD : Synchornized? */
}
} ;
/** ============================================================================
* @name LINKCFG_memTables
*
* @desc Array of memory tables in the system.
* ============================================================================
*/
STATIC LINKCFG_MemEntry * LINKCFG_memTables [] =
{
LINKCFG_memTable_00 /* Memory Table 0 */
} ;
/** ============================================================================
* @name LINKCFG_ipsTable_00
*
* @desc IPS table ID 0.
* ============================================================================
*/
STATIC LINKCFG_Ips LINKCFG_ipsTable_00 [] =
{
{
"IPS", /* NAME : Name of the Inter-Processor-Signaling component */
(Uint32) 32, /* NUMIPSEVENTS : Number of IPS events to be supported */
SHAREDENTRYID0, /* MEMENTRY : Memory entry ID (-1 if not needed) */
(Uint32) 26, /* GPPINTID : Interrupt no. to used by the IPS on GPP-side. (-1 if uni-directional to DSP) */
(Uint32) 55, /* DSPINTID : Interrupt no. to used by the IPS on DSP-side. (-1 if uni-directional to GPP) */
(Uint32) 5, /* DSPINTVECTORID : Interrupt vector no. to used by the IPS on DSP-side. (-1 if uni-directional to GPP) */
(Uint32) 50000000, /* ARGUMENT1 : Poll value for which IPS waits while sending event (-1 if infinite) */
0 /* ARGUMENT2 : Second IPS-specific argument */
}
} ;
all_evm3530.tci:
var mem_ext = [
{
comment: "DDRALGHEAP: off-chip memory for dynamic algmem allocation",
name: "DDRALGHEAP",
base: 0x82E00000,
len: 0x04000000, // 64 MB
space: "code/data"
},
{
comment: "DDR2: off-chip memory for application code and data",
name: "DDR2",
base: 0x86E00000,
len: 0x01000000, // 16 MB
space: "code/data"
},
{
comment: "RESET_VECTOR: off-chip memory for the reset vector table",
name: "RESET_VECTOR",
base: 0x87E00000,
len: 0x00000080, // 128B
space: "code/data"
},
{
comment: "DSPLINK: off-chip memory reserved for DSPLINK code and data",
name: "DSPLINKMEM",
base: 0x87E00080,
len: 0x000FFF80, // 1 MB-128B
space: "code/data"
},
{
comment: "L4CORE: L4-Core Interconnect Address Space",
name: "L4CORE",
base: 0x48000000,
len: 0x01000000, // 16 MB
space: "data"
},
{
comment: "L4PER: L4-Peripheral Interconnect Address Space",
name: "L4PER",
base: 0x49000000,
len: 0x00100000, // 1 MB
space: "data"
},
{
comment: "IVA Memory Management Unit",
name: "IVAMMU",
base: 0x5D000000,
len: 0x00001000, // 4 KB
space: "data"
}
];
串口打印:
ti.sdo.ce.video.VIDENC - VIDENC_create> Enter (engine=0xad400, name='face_detection', params=0x0)
[17:13:42]@60,303,527us: [+0 T:0x4f2ce060 S:0x4f2cd6b4] CV - VISA_create(0xad400, 'face_detection', 0x0, 0x472, 'ti.sdo.ce.video.IVIDENC')
[17:13:42]@60,303,558us: [+0 T:0x4f2ce060 S:0x4f2cd5ac] CV - VISA_create2(0xad400, 'face_detection', 0x0, 0x0, 0x472, 'ti.sdo.ce.video.IVIDENC')
[17:13:42]@60,303,619us: [+0 T:0x4f2ce060 S:0x4f2cd58c] OM - Memory_alloc> Enter(0x34)
[17:13:42]@60,303,649us: [+0 T:0x4f2ce060 S:0x4f2cd58c] OM - Memory_alloc> return (0x19fd90)
[17:13:42]@60,303,649us: [+0 T:0x4f2ce060 S:0x4f2cd58c] OM - Memory_alloc> Enter(0x4)
[17:13:42]@60,303,680us: [+0 T:0x4f2ce060 S:0x4f2cd58c] OM - Memory_alloc> return (0x19fdc8)
[17:13:42]@60,303,710us: [+0 T:0x4f2ce060 S:0x4f2cd58c] OC - Comm_alloc> Enter(poolId=0x0, msg=0x19fdc8, size=472)
[17:13:42]@60,303,894us: [+0 T:0x4f2ce060 S:0x4f2cd58c] OC - Comm_alloc> msg=0x42660900, returning (0)
[17:13:42]@60,303,924us: [+0 T:0x4f2ce060 S:0x4f2cd534] CE - Engine_createNode(0xad400, 'face_detection', 472, 0x0, 0x0, 0x4f2cd6a8)
[17:13:42]@60,303,955us: [+0 T:0x4f2ce060 S:0x4f2cd534] CE - Engine> allocNode Enter(engine=0xad400, impId='face_detection')
[17:13:42]@60,303,985us: [+0 T:0x4f2ce060 S:0x4f2cd514] OM - Memory_alloc> Enter(0x20)
[17:13:42]@60,303,985us: [+0 T:0x4f2ce060 S:0x4f2cd514] OM - Memory_alloc> return (0x19fde8)
[17:13:42]@60,304,016us: [+0 T:0x4f2ce060 S:0x4f2cd534] CE - Engine> allocNode(). Calling (Comm_create(gppfromnode_1508_2, 0x19fdf0, NULL)
[17:13:42]@60,304,046us: [+0 T:0x4f2ce060 S:0x4f2cd50c] OC - Comm_create> Enter(queueName='gppfromnode_1508_2', queue=0x19fdf0, attrs=0x0)
[17:13:42]@60,304,077us: [+0 T:0x4f2ce060 S:0x4f2cd4ec] OM - Memory_alloc> Enter(0x4)
[17:13:42]@60,304,107us: [+0 T:0x4f2ce060 S:0x4f2cd4ec] OM - Memory_alloc> return (0x1787b8)
[17:13:42]@60,304,351us: [+0 T:0x4f2ce060 S:0x4f2cd50c] OC - Comm_create> return (0x1787b8)
[17:13:42]@60,304,382us: [+0 T:0x4f2ce060 S:0x4f2cd514] OC - Comm_put> Enter(queue=0x0, msg=0x4265f900)
[17:13:42]@60,304,412us: [+0 T:0x4f2ce060 S:0x4f2cd514] OC - Comm_put> return (0)
[17:13:42]@60,304,443us: [+0 T:0x4f2ce060 S:0x4f2cd50c] OC - Comm_get> Enter(queue=0x10001, msg=0x4f2cd5bc, timeout=-1)
[17:13:42]@60,342,529us: [+0 T:0x4f2ce060 S:0x4f2cd50c] OC - Comm_get> MSGQ_get() status=0x8000, return (0)
[17:13:42]@60,342,590us: [+0 T:0x4f2ce060 S:0x4f2cd514] OC - Comm_put> Enter(queue=0x0, msg=0x4265f900)
[17:13:42]@60,342,651us: [+0 T:0x4f2ce060 S:0x4f2cd514] OC - Comm_put> return (0)
[17:13:42]@60,342,681us: [+0 T:0x4f2ce060 S:0x4f2cd50c] OC - Comm_get> Enter(queue=0x10001, msg=0x4f2cd5bc, timeout=-1)
[17:13:42]@60,342,773us: [+0 T:0x4f2ce060 S:0x4f2cd50c] OC - Comm_get> MSGQ_get() status=0x8000, return (0)
[17:13:42]@60,342,803us: [+4 T:0x4f2ce060 S:0x4f2cd534] CE - Engine_createNode> created node(stdIn=0x2, stdOut=0x10002, msgq=0x1787b8, algName='face_detection', rmsNode=0x86e328c8, algHandle=0x86e329b8)
[17:13:42]@60,342,834us: [+0 T:0x4f2ce060 S:0x4f2cd49c] OC - Comm_put> Enter(queue=0x0, msg=0x4265f900)
[17:13:42]@60,342,895us: [+0 T:0x4f2ce060 S:0x4f2cd49c] OC - Comm_put> return (0)
[17:13:42]@60,342,895us: [+0 T:0x4f2ce060 S:0x4f2cd494] OC - Comm_get> Enter(queue=0x10001, msg=0x4f2cd534, timeout=-1)
[17:13:42]@60,343,017us: [+0 T:0x4f2ce060 S:0x4f2cd494] OC - Comm_get> MSGQ_get() status=0x8000, return (0)
[17:13:42][DSP] @1,400,735tk: [+0 T:0x86e30e0c S:0x86e31dcc] CR - processRmsCmd(0x87e04928, 4056): cmd = 17
[17:13:42][DSP] @163,313,229tk: [+0 T:0x86e30e0c S:0x86e31dcc] CR - processRmsCmd(0x87e04928, 4056): cmd = 0
[17:13:42][DSP] @163,313,291tk: [+0 T:0x86e30e0c S:0x86e31cac] OM - Memory_alloc> Enter(size=0x18)
[17:13:42][DSP] @163,313,344tk: [+0 T:0x86e30e0c S:0x86e31cac] OM - Memory_alloc> return (0x86e328c8)
[17:13:42][DSP] @163,313,396tk: [+0 T:0x86e30e0c S:0x86e31cac] OM - Memory_alloc> Enter(size=0x11)
[17:13:42][DSP] @163,313,444tk: [+0 T:0x86e30e0c S:0x86e31cac] OM - Memory_alloc> return (0x86e328e0)
[17:13:42][DSP] @163,313,504tk: [+0 T:0x86e30e0c S:0x86e31c6c] OM - Memory_alloc> Enter(size=0x20)
[17:13:42][DSP] @163,313,552tk: [+0 T:0x86e30e0c S:0x86e31c6c] OM - Memory_alloc> return (0x86e328f8)
[17:13:42][DSP] @163,313,606tk: [+0 T:0x86e30e0c S:0x86e31c3c] OM - Memory_alloc> Enter(size=0x24)
[17:13:42][DSP] @163,313,654tk: [+0 T:0x86e30e0c S:0x86e31c3c] OM - Memory_alloc> return (0x86e32918)
[17:13:42][DSP] @163,313,731tk: [+0 T:0x86e30e0c S:0x86e31c54] ti.sdo.ce.video.VIDENC - VIDENC_create> Enter (engine=0x0, name='face_detection', params=0x0)
[17:13:42][DSP] @163,313,812tk: [+0 T:0x86e30e0c S:0x86e31c1c] CV - VISA_create(0x0, 'face_detection', 0x0, 0x472, 'ti.sdo.ce.video.IVIDENC')
[17:13:43][DSP] @163,313,885tk: [+0 T:0x86e30e0c S:0x86e31afc] CV - VISA_create2(0x0, 'face_detection', 0x0, 0x0, 0x472, 'ti.sdo.ce.video.IVIDENC')
[17:13:43][DSP] @163,313,969tk: [+0 T:0x86e30e0c S:0x86e31a94] CE - Engine_open> Enter('local', 0x86e31ae4, 0x0)
[17:13:43][DSP] @163,314,027tk: [+0 T:0x86e30e0c S:0x86e31a74] OM - Memory_alloc> Enter(size=0x34)
[17:13:43][DSP] @163,314,076tk: [+0 T:0x86e30e0c S:0x86e31a74] OM - Memory_alloc> return (0x86e32980)
[17:13:43][DSP] @163,314,137tk: [+4 T:0x86e30e0c S:0x86e31a94] CE - Engine_open> engine->server = 0x0
[17:13:43][DSP] @163,314,187tk: [+0 T:0x86e30e0c S:0x86e31a94] CE - Engine_open> return(-2031933056)
[17:13:43][DSP] @163,314,255tk: [+0 T:0x86e30e0c S:0x86e31adc] OM - Memory_alloc> Enter(size=0x34)
[17:13:43][DSP] @163,314,303tk: [+0 T:0x86e30e0c S:0x86e31adc] OM - Memory_alloc> return (0x86e329b8)
[17:13:43][DSP] @163,314,362tk: [+0 T:0x86e30e0c S:0x86e31ab4] ti.sdo.ce.alg.Algorithm - Algorithm_create> Enter(fxns=0x86e5a380, idma3Fxns=0x0, iresFxns=0x0, params=0x0, attrs=0x86e31c00)
[17:13:43][DSP] @163,314,451tk: [+0 T:0x86e30e0c S:0x86e31a94] OM - Memory_alloc> Enter(size=0x10)
[17:13:43][DSP] @163,314,499tk: [+0 T:0x86e30e0c S:0x86e31a94] OM - Memory_alloc> return (0x86e329f0)
[17:13:43][DSP] @163,314,644tk: [+0 T:0x86e30e0c S:0x86e31a1c] ti.sdo.ce.examples.codecs.face_detection - cui222222222222222222222
[17:13:43][DSP] @163,314,703tk: [+0 T:0x86e30e0c S:0x86e31a1c] ti.sdo.ce.examples.codecs.face_detection - cui,memTab[0].size is 0x80,memTab[0].alignment is 128,memTab[0].space is 17,memTab[0].attrs is 1 .
[17:13:43][DSP] @163,314,793tk: [+0 T:0x86e30e0c S:0x86e31a1c] ti.sdo.ce.examples.codecs.face_detection - cui,memTab[1].size is 0x100180,memTab[10].alignment is 128,memTab[1].space is 17,memTab[1].attrs is 1 .
[17:13:43][DSP] @163,314,885tk: [+0 T:0x86e30e0c S:0x86e31a1c] ti.sdo.ce.examples.codecs.face_detection - cui,memTab[2].size is 0x131980,memTab[2].alignment is 128,memTab[2].space is 17,memTab[2].attrs is 1 .
[17:13:43][DSP] @163,314,976tk: [+0 T:0x86e30e0c S:0x86e31a1c] ti.sdo.ce.examples.codecs.face_detection - cui,memTab[3].size is 0x500000,memTab[3].alignment is 128,memTab[3].space is 17,memTab[3].attrs is 1 .
[17:13:43][DSP] @163,423,705tk: [+0 T:0x86e30e0c S:0x86e31a04] ti.sdo.ce.examples.codecs.face_detection - cui5555555555555555555555555555555
[17:13:43][DSP] @163,431,466tk: [+0 T:0x86e30e0c S:0x86e31ab4] ti.sdo.ce.alg.Algorithm - Algorithm_create> return (0x86e329f0)
[17:13:43][DSP] @163,431,545tk: [+5 T:0x86e30e0c S:0x86e31afc] CV - VISA_create> local codec created (name='face_detection', handle=0x86e329f0)
[17:13:43][DSP] @163,431,615tk: [+0 T:0x86e30e0c S:0x86e31c54] ti.sdo.ce.video.VIDENC - VIDENC_create> return (0x86e329b8)
[17:13:43][DSP] @163,431,684tk: [+4 T:0x86e30e0c S:0x86e31c14] OT - Thread_create > name: "face_detection#0", pri: -1, stack size: 10024, stack seg: 0
[17:13:43][DSP] @163,432,739tk: [+0 T:0x86e30e0c S:0x86e31dcc] CR - processRmsCmd(0x87e04928, 4056): cmd = 1
[17:13:43][DSP] @163,433,427tk: [+0 T:0x86e30e0c S:0x86e31dcc] CR - processRmsCmd(0x87e04928, 4056): cmd = 5
[17:13:43][DSP] @163,433,485tk: [+0 T:0x86e30e0c S:0x86e31dcc] CR - remote time = 0x0, trace buffer size = 4032
[17:13:43]@60,680,267us: [+0 T:0x4f2ce060 S:0x4f2cd4cc] CE - Engine_fwriteTrace> returning count [4198]
[17:13:43]@60,680,328us: [+2 T:0x4f2ce060 S:0x4f2cd534] CE - Engine_createNode> Returning 0x19fde8
[17:13:43]@60,680,358us: [+5 T:0x4f2ce060 S:0x4f2cd5ac] CV - VISA_create> remote codec created (name='face_detection', localQueueID=0x10002, remoteQueueID=0x0002)
[17:13:43]@60,680,389us: [+0 T:0x4f2ce060 S:0x4f2cd6e4] ti.sdo.ce.video.VIDENC - VIDENC_create> return (0x19fd90)
[17:13:43]@60,680,419us: [+0 T:0x4f2ce060 S:0x4f2cd694] ti.sdo.ce.video.VIDENC - VIDENC_control> Enter (handle=0x19fd90, id=1, dynParams=0xad220 (size=0x30), status=0xad250 (size=0x90)
[17:13:43]@60,680,450us: [+4 T:0x4f2ce060 S:0x4f2cd654] CV - VISA_getMaxMsgSize(0x19fd90): returning 0x1000
[17:13:43]@60,680,480us: [+5 T:0x4f2ce060 S:0x4f2cd65c] CV - VISA_allocMsg> Allocating message for messageId=0x00029bfe
[17:13:43]@60,680,511us: [+0 T:0x4f2ce060 S:0x4f2cd63c] CV - VISA_call(visa=0x19fd90, msg=0x42660900): messageId=0x00029bfe, command=0x1
[17:13:43]@60,680,572us: [+0 T:0x4f2ce060 S:0x4f2cd604] OC - Comm_put> Enter(queue=0x2, msg=0x42660900)
[17:13:43]@61,014,495us: [+0 T:0x4f2ce060 S:0x4f2cd604] OC - Comm_put> return (0)
[17:13:43]@61,014,556us: [+0 T:0x4f2ce060 S:0x4f2cd5fc] OC - Comm_get> Enter(queue=0x10002, msg=0x4f2cd6ac, timeout=-1)
[17:13:43]@61,014,862us: [+0 T:0x4f2ce060 S:0x4f2cd5fc] OC - Comm_get> MSGQ_get() status=0x8000, return (0)
[17:13:43]@61,014,892us: [+0 T:0x4f2ce060 S:0x4f2cd58c] OC - Comm_put> Enter(queue=0x0, msg=0x4265f900)
[17:13:43]@61,014,923us: [+0 T:0x4f2ce060 S:0x4f2cd58c] OC - Comm_put> return (0)
[17:13:43]@61,014,984us: [+0 T:0x4f2ce060 S:0x4f2cd584] OC - Comm_get> Enter(queue=0x10001, msg=0x4f2cd624, timeout=-1)
[17:13:43]@61,015,045us: [+0 T:0x4f2ce060 S:0x4f2cd584] OC - Comm_get> MSGQ_get() status=0x8000, return (0)
[17:13:43][DSP] @165,532,202tk: [+5 T:0x86e32e24 S:0x86e35514] CN - NODE> 0x86e328f8(face_detection#0) call(algHandle=0x86e329b8, msg=0x87e05900); messageId=0x00029bfe
[17:13:43][DSP] @165,532,300tk: [+0 T:0x86e32e24 S:0x86e35454] ti.sdo.ce.video.VIDENC - VIDENC_control> Enter (handle=0x86e329b8, id=1, dynParams=0x87e05934 (size=0x30), status=0x87e05964 (size=0x90)
[17:13:43][DSP] @165,532,411tk: [+5 T:0x86e32e24 S:0x86e35434] CV - VISA_enter(visa=0x86e329b8): algHandle = 0x86e329f0
[17:13:43][DSP] @165,532,482tk: [+0 T:0x86e32e24 S:0x86e35414] ti.sdo.ce.alg.Algorithm - Algorithm_activate> Enter(alg=0x86e329f0)
[17:13:43][DSP] @165,532,556tk: [+0 T:0x86e32e24 S:0x86e35414] ti.sdo.ce.alg.Algorithm - Algorithm_activate> Exit
[17:13:43][DSP] @165,532,613tk: [+0 T:0x86e32e24 S:0x86e3540c] ti.sdo.ce.examples.codecs.face_detection - cui44444444444444444444,id is 1 .
[17:13:43][DSP] @165,532,685tk: [+5 T:0x86e32e24 S:0x86e35434] CV - VISA_exit(visa=0x86e329b8): algHandle = 0x86e329f0
[17:13:43][DSP] @165,532,751tk: [+0 T:0x86e32e24 S:0x86e35414] ti.sdo.ce.alg.Algorithm - Algorithm_deactivate> Enter(alg=0x86e329f0)
[17:13:43][DSP] @165,532,820tk: [+0 T:0x86e32e24 S:0x86e35414] ti.sdo.ce.alg.Algorithm - Algorithm_deactivate> Exit
[17:13:43][DSP] @165,532,878tk: [+0 T:0x86e32e24 S:0x86e35454] ti.sdo.ce.video.VIDENC - VIDENC_control> Exit (handle=0x86e329b8, retVal=0x0)
[17:13:43][DSP] @165,532,946tk: [+5 T:0x86e32e24 S:0x86e35514] CN - NODE> returned from call(algHandle=0x86e329b8, msg=0x87e05900); messageId=0x00029bfe
[17:13:43][DSP] @165,533,547tk: [+0 T:0x86e30e0c S:0x86e31dcc] CR - processRmsCmd(0x87e04928, 4056): cmd = 5
[17:13:43][DSP] @165,533,602tk: [+0 T:0x86e30e0c S:0x86e31dcc] CR - remote time = 0x0, trace buffer size = 4032
[17:13:43]@61,016,113us: [+0 T:0x4f2ce060 S:0x4f2cd5bc] CE - Engine_fwriteTrace> returning count [1626]
[17:13:43]@61,016,143us: [+0 T:0x4f2ce060 S:0x4f2cd63c] CV - VISA_call Completed: messageId=0x00029bfe, command=0x1, return(status=0)
[17:13:43]@61,016,174us: [+5 T:0x4f2ce060 S:0x4f2cd644] CV - VISA_freeMsg(0x19fd90, 0x42660900): Freeing message with messageId=0x00029bfe
[17:13:43]@61,016,204us: [+0 T:0x4f2ce060 S:0x4f2cd694] ti.sdo.ce.video.VIDENC - VIDENC_control> Exit (handle=0x19fd90, retVal=0x0)
[17:13:43]I0803 22:01:18.016356 1588 DspThread.cpp:333] (back):dsp start
[17:13:43]@61,017,791us: [+0 T:0x4f2ce060 S:0x4f2cd6bc] ti.sdo.ce.video.VIDENC - VIDENC_process> Enter (handle=0x19fd90, inBufs=0xad2e0, outBufs=0xad36c, inArgs=0xad180, outArgs=0xad184)
[17:13:43]@61,017,852us: [+4 T:0x4f2ce060 S:0x4f2cd644] CV - VISA_getMaxMsgSize(0x19fd90): returning 0x1000
[17:13:43]@61,017,883us: [+5 T:0x4f2ce060 S:0x4f2cd64c] CV - VISA_allocMsg> Allocating message for messageId=0x00029bff
[17:13:43]@61,017,913us: [+0 T:0x4f2ce060 S:0x4f2cd61c] OM - Memory_getBufferPhysicalAddress> Enter(virtAddr=0x426e3000, size=38400)
[17:13:43]@61,017,944us: [+1 T:0x4f2ce060 S:0x4f2cd61c] OM - Memory__getPhysicalAddress> Enter(virtAddr=0x426e3000, size=38400)
[17:13:43]@61,017,944us: [+1 T:0x4f2ce060 S:0x4f2cd61c] OM - Memory__getPhysicalAddress> found in cb(Sc=0x426e3000, Ec[ 172.094818] DSP MMU Error Fault! MMU_IRQSTATUS = [0x1]. Virtual DSP addr reference that generated the interrupt = [0xfec3fb80].
[17:13:43]=0x426ec600, Ss=0x426e3000, Es=0x426ec600, PSc=0x88014000)
[17:13:43]@61,017,974us: [+1 T:0x4f2ce060 S:0x4f2cd61c] OM - Memory__getPhysicalAddress> returning physAddr=0x88014000
[17:13:43]@61,018,005us: [+0 T:0x4f2ce060 S:0x4f2cd61c] OM - Memory_getBufferPhysicalAddress> return (0x88014000)
[17:13:43]@61,353,210us: [+0 T:0x4f2ce060 S:0x4f2cd61c] OM - Memory_getBufferPhysicalAddress> Enter(virtAddr=0x426ed000, size=38400)
[17:13:43]@61,353,271us: [+1 T:0x4f2ce060 S:0x4f2cd61c] OM - Memory__getPhysicalAddress> Enter(virtAddr=0x426ed000, size=38400)
[17:13:43]@61,353,302us: [+1 T:0x4f2ce060 S:0x4f2cd61c] OM - Memory__getPhysicalAddress> found in cb(Sc=0x426ed000, Ec=0x426f6600, Ss=0x426ed000, Es=0x426f6600, PSc=0x8801e000)
[17:13:43]@61,353,332us: [+1 T:0x4f2ce060 S:0x4f2cd61c] OM - Memory__getPhysicalAddress> returning physAddr=0x8801e000
[17:13:43]@61,353,363us: [+0 T:0x4f2ce060 S:0x4f2cd61c] OM - Memory_getBufferPhysicalAddress> return (0x8801e000)
[17:13:43]@61,353,393us: [+0 T:0x4f2ce060 S:0x4f2cd65c] CV - VISA_call(visa=0x19fd90, msg=0x42660900): messageId=0x00029bff, command=0x0
[17:13:43]@61,353,424us: [+0 T:0x4f2ce060 S:0x4f2cd624] OC - Comm_put> Enter(queue=0x2, msg=0x42660900)
[17:13:43]@61,353,485us: [+0 T:0x4f2ce060 S:0x4f2cd624] OC - Comm_put> return (0)
[17:13:43]@61,353,576us: [+0 T:0x4f2ce060 S:0x4f2cd61c] OC - Comm_get> Enter(queue=0x10002, msg=0x4f2cd6d4, timeout=-1)
[17:13:47]I0803 22:01:22.508330 1579 CanPtl.cpp:628] send a frame,frame type= 0xca
如下网址都看了。但是理解的不够深入。还是不清楚该修改哪里。谢谢。
1.http://processors.wiki.ti.com/index.php/DSP_MMU_Faults#Error_Messages
2.http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/t/41804
3.http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/t/160618
4.http://e2e.ti.com/support/dsp/omap_applications_processors/f/447/p/166339/610152#610152
5.http://hilbert-space.de/?p=55
6.http://processors.wiki.ti.com/index.php/DSPLink_POOL_FAQs
7.http://processors.wiki.ti.com/index.php/Changing_DSPLink_Memory_Map
9.http://processors.wiki.ti.com/index.php/Changing_the_DVEVM_memory_map
10.http://processors.wiki.ti.com/index.php/Configuring_Codec_Engine_in_Arm_apps_with_createFromServer
12.http://processors.wiki.ti.com/index.php/CMEM_Overview#Linux_Configuration
Ross,
你使用的是你自己的板子么?如果是,你的板子的DDR大小和DM3730 EVM上一样么?还是你修改了相关的memory配置? 从两者的不同地方来看看是否能找到错误的原因。
Chris Meng :
感谢回复。板子是公司做的,手上没有开发板,没办法对比。 硬件改版后,DDR从512M变为了1G。别的DSP server等配置都没改。只把uboot中的配置mem=45M@0x80000000 mem=350M@0x8A200000改为了mem=45M@0x80000000 mem=784M@0x8F000000。 改版前,这个bug出的概率很小。改版后,出的概率变大了。NFS下概率高,烧到nandflash中后,概率低一些。