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

TMS320C6678: 多核debug出现错误:ti.sdo.ipc.nsremote.NameServerRemoteNotify: line 161: E_internal: An internal error occurred

Part Number:TMS320C6678

我在多核debug时,出现了错误:

[C66xx_2] ti.sdo.ipc.nsremote.NameServerRemoteNotify: line 161: E_internal: An internal error occurred

查看ROV,发现不论点击哪一个核,都没有core7:

core7:

工程当中用了SYS/BIOS,请问有什么解决办法吗?

以下是我工程中的主函数:

Int main(Int argc, Char* argv[])
{
HeapBufMP_Handle heapHandle;
HeapBufMP_Params heapBufParams;
Task_Params params;

tw_fft_gen(fft_twiddle,SNAPSHOTS);
tw_ifft_gen(ifft_twiddle,SNAPSHOTS);
// twiddle_flag = 1;
// int i;
/*
* Ipc_start() calls Ipc_attach() to synchronize all remote processors
* because 'Ipc.procSync' is set to 'Ipc.ProcSync_ALL' in *.cfg
*/
Ipc_start();

if (MultiProc_self() == 0) {
#if !FUNCTIONAL_SIMULATOR
clearRegisters(0);
#endif

/*
* Create the heap that will be used to allocate messages.
*/
HeapBufMP_Params_init(&heapBufParams);

heapBufParams.regionId = 0;
heapBufParams.name = HEAP_NAME;
heapBufParams.numBlocks = 8;//24
heapBufParams.align = 128;
heapBufParams.blockSize = sizeof(deconvMessageQ_Msg);
heapHandle = HeapBufMP_create(&heapBufParams);
if (heapHandle == NULL) {
System_abort("HeapBufMP_create failed\n" );
}

/* Register this heap with MessageQ */
MessageQ_registerHeap((IHeap_Handle)heapHandle, HEAPID);
}
/* Generate queue names based on own proc ID and total number of procs */
System_sprintf(localQueueName, "CORE%d", MultiProc_self());
System_sprintf(core0QueueName, "CORE%d", 0 );
System_sprintf(core1QueueName, "CORE%d", 1 );
System_sprintf(core2QueueName, "CORE%d", 2 );
System_sprintf(core3QueueName, "CORE%d", 3 );
System_sprintf(core4QueueName, "CORE%d", 4 );
System_sprintf(core5QueueName, "CORE%d", 5 );
System_sprintf(core6QueueName, "CORE%d", 6 );
System_sprintf(core7QueueName, "CORE%d", 7 );

/* Create a unique 'master' Task if on proc 0 */
Task_Params_init(&params);
params.stackSize = 0x10000;
if (MultiProc_self() == 0) {
//Task_create(tsk0_func, NULL, NULL);

Task_create(deconv_master, &params, NULL);
}
else {
//Task_create(tsk1_func, NULL, NULL);
Task_create(deconv_slave, &params, NULL);
}

BIOS_start();
return (0);
}

 

xing zihan:

此外,我还在ROV中发现了Core1和Core2与其它核不同的地方:

Core0:

core1:

core2:与core1相同

其它核:no data to display

,

xing zihan:

,

Nancy Wang:

是否有单步调试过,运行到哪里开始报错的?

,

xing zihan:

运行到Ipc_start()就跑飞了

,

xing zihan:

我修改stacksize大小之后,报错信息就变了,是跟堆溢出有关吗?如果是,该如何解决?

,

Nancy Wang:

用ROV工具看一下stack/heap的使用情况,明确看一下是否有溢出。

software-dl.ti.com/…/rov.html

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6678: 多核debug出现错误:ti.sdo.ipc.nsremote.NameServerRemoteNotify: line 161: E_internal: An internal error occurred
分享到: 更多 (0)