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(¶ms);
params.stackSize = 0x10000;
if (MultiProc_self() == 0) {
//Task_create(tsk0_func, NULL, NULL);
Task_create(deconv_master, ¶ms, NULL);
}
else {
//Task_create(tsk1_func, NULL, NULL);
Task_create(deconv_slave, ¶ms, 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