Part Number: TMS320TCI6608
Tool/software: TI-RTOS
Dear Champs,
My customer wants to implement IPC using IPC framework, but it was not worked.
Is there 'DEBUG' option to print out debug information for IPC debugging?
Could you please let me know how customer can debug IPC efficiently?
In my customer case, even IPC_start() function was not worked. I think there should be an issue in their cfg file.
And could you please check their cfg file?
var Program = xdc.useModule('xdc.cfg.Program');
// Program.heap = 0x1000;
Program.endian = "big";
var BIOS = xdc.useModule('ti.sysbios.BIOS');
var HeapMem = xdc.useModule('ti.sysbios.heaps.HeapMem');
var ti_sysbios_knl_Clock = xdc.useModule('ti.sysbios.knl.Clock');
var Memory = xdc.useModule('xdc.runtime.Memory');
var ti_sysbios_knl_Event = xdc.useModule('ti.sysbios.knl.Event');
var ti_sysbios_hal_Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
var xdc_runtime_Timestamp = xdc.useModule('xdc.runtime.Timestamp');
var xdc_runtime_TimestampStd = xdc.useModule('xdc.runtime.TimestampStd');
var ti_sysbios_hal_Cache = xdc.useModule('ti.sysbios.hal.Cache');
//var Timer = xdc.useModule('ti.sysbios.hal.Timer');
var Timer = xdc.useModule('ti.sysbios.timers.timer64.Timer');
Timer.timerSettings[8].ownerCoreId = 0;
Timer.timerSettings[9].ownerCoreId = 1;
Timer.timerSettings[10].ownerCoreId = 2;
Timer.timerSettings[11].ownerCoreId = 3;
Timer.timerSettings[12].ownerCoreId = 4;
Timer.timerSettings[13].ownerCoreId = 5;
Timer.timerSettings[14].ownerCoreId = 6;
Timer.timerSettings[15].ownerCoreId = 7;
var Reset=xdc.useModule('xdc.runtime.Reset');
Reset.fxns[Reset.fxns.length++]='&ResetFunc';
/*
* These modules are included to support functionalities as system_printf - Optionals Includes
*/
//var System = xdc.useModule('xdc.runtime.System');
//var SysStd = xdc.useModule('xdc.runtime.SysStd');
//System.SupportProxy = SysStd;
/*
* Memory Sections defined for the system default heap and the shared heap(used by MCN)
*/
Program.sectMap[".systemHeap"] = new Program.SectionSpec();
Program.sectMap[".systemHeap"].loadSegment = "L2SRAM";
/* Create a default system heap using ti.bios.HeapMem. */
var defaultHeapMemParams = new HeapMem.Params;
defaultHeapMemParams.size = 2 * 1024;
defaultHeapMemParams.sectionName = ".systemHeap";
Program.global.defaultHeap = HeapMem.create(defaultHeapMemParams);
Memory.defaultHeapInstance = Program.global.defaultHeap;/* This is the default memory heap. */
/* Check !! */
Program.sectMap[".cppiSharedHeapMem"] = new Program.SectionSpec();
Program.sectMap[".cppiSharedHeapMem"].loadSegment = "MSMCSYSTEM";
var sharedHeapMemParamsC0 = new HeapMem.Params;
sharedHeapMemParamsC0.size = 16 * 1024;
sharedHeapMemParamsC0.align = 64;
sharedHeapMemParamsC0.sectionName = ".cppiSharedHeapMem";
Program.global.cppiSharedHeapC0 = HeapMem.create(sharedHeapMemParamsC0);
var sharedHeapMemParamsC1 = new HeapMem.Params;
sharedHeapMemParamsC1.size = 16 * 1024;
sharedHeapMemParamsC1.align = 64;
sharedHeapMemParamsC1.sectionName = ".cppiSharedHeapMem";
Program.global.cppiSharedHeapC1 = HeapMem.create(sharedHeapMemParamsC1);
var sharedHeapMemParamsC2 = new HeapMem.Params;
sharedHeapMemParamsC2.size = 16 * 1024;
sharedHeapMemParamsC2.align = 64;
sharedHeapMemParamsC2.sectionName = ".cppiSharedHeapMem";
Program.global.cppiSharedHeapC2 = HeapMem.create(sharedHeapMemParamsC2);
var sharedHeapMemParamsC3 = new HeapMem.Params;
sharedHeapMemParamsC3.size = 1 * 1024;
sharedHeapMemParamsC3.align = 64;
sharedHeapMemParamsC3.sectionName = ".cppiSharedHeapMem";
Program.global.cppiSharedHeapC3 = HeapMem.create(sharedHeapMemParamsC3);
var sharedHeapMemParamsC4 = new HeapMem.Params;
sharedHeapMemParamsC4.size = 1 * 1024;
sharedHeapMemParamsC4.align = 64;
sharedHeapMemParamsC4.sectionName = ".cppiSharedHeapMem";
Program.global.cppiSharedHeapC4 = HeapMem.create(sharedHeapMemParamsC4);
var sharedHeapMemParamsC5 = new HeapMem.Params;
sharedHeapMemParamsC5.size = 1 * 1024;
sharedHeapMemParamsC5.align = 64;
sharedHeapMemParamsC5.sectionName = ".cppiSharedHeapMem";
Program.global.cppiSharedHeapC5 = HeapMem.create(sharedHeapMemParamsC5);
var sharedHeapMemParamsC6 = new HeapMem.Params;
sharedHeapMemParamsC6.size = 1 * 1024;
sharedHeapMemParamsC6.align = 64;
sharedHeapMemParamsC6.sectionName = ".cppiSharedHeapMem";
Program.global.cppiSharedHeapC6 = HeapMem.create(sharedHeapMemParamsC6);
var sharedHeapMemParamsC7 = new HeapMem.Params;
sharedHeapMemParamsC7.size = 1 * 1024;
sharedHeapMemParamsC7.align = 64;
sharedHeapMemParamsC7.sectionName = ".cppiSharedHeapMem";
Program.global.cppiSharedHeapC7 = HeapMem.create(sharedHeapMemParamsC7);
Program.sectMap[".csl_vect"] = new Program.SectionSpec();
Program.sectMap[".csl_vect"].loadSegment = "L2SRAM";
Program.sectMap[".ethDrvData"] = new Program.SectionSpec();
Program.sectMap[".ethDrvData"].loadSegment = "L2SRAM";
Program.sectMap[".ethDrvSharedData"] = new Program.SectionSpec();
Program.sectMap[".ethDrvSharedData"].loadSegment = "MSMCSYSTEM";
Program.sectMap[".mcnDriverInternalMem"] = new Program.SectionSpec();
Program.sectMap[".mcnDriverInternalMem"].loadSegment = "L2SRAM";
Program.sectMap[".ipcDataMem"] = new Program.SectionSpec();
Program.sectMap[".ipcDataMem"].loadSegment = "L2SRAM";
Program.sectMap[".sharedDescMemory"] = new Program.SectionSpec();
Program.sectMap[".sharedDescMemory"].loadSegment = "MSMCSYSTEM";
Program.sectMap[".qmss"] = new Program.SectionSpec();
Program.sectMap[".qmss"].loadSegment = "MSMCSYSTEM";
Program.sectMap[".cppi"] = new Program.SectionSpec();
Program.sectMap[".cppi"].loadSegment = "MSMCSYSTEM";
Program.sectMap[".sharedMemory"] = new Program.SectionSpec();
Program.sectMap[".sharedMemory"].loadSegment = "MSMCSYSTEM";
var ti_sysbios_knl_Task = xdc.useModule('ti.sysbios.knl.Task');
ti_sysbios_knl_Task.enableIdleTask = true;
ti_sysbios_knl_Task.idleTaskStackSize = 2048;
ti_sysbios_knl_Task.allBlockedFunc = ti_sysbios_knl_Task.allBlockedFunction;
var sysbios_knl_Task0Params0 = new ti_sysbios_knl_Task.Params();
sysbios_knl_Task0Params0.instance.name = "DownlinkSchedulingThread";
sysbios_knl_Task0Params0.priority = 12;
sysbios_knl_Task0Params0.stackSize = 4096;
sysbios_knl_Task0Params0.stackSection = ".taskStackSection";
Program.global.Task0 = ti_sysbios_knl_Task.create("&DownlinkSchedulingThread", sysbios_knl_Task0Params0);
var sysbios_knl_Task1Params0 = new ti_sysbios_knl_Task.Params();
sysbios_knl_Task1Params0.instance.name = "DownlinkSchedulingInitThread";
sysbios_knl_Task1Params0.priority = 13;
sysbios_knl_Task1Params0.stackSize = 4096;
sysbios_knl_Task1Params0.stackSection = ".taskStackSection";
Program.global.Task1 = ti_sysbios_knl_Task.create("&DownlinkSchedulingInitThread", sysbios_knl_Task1Params0);
var ti_sysbios_knl_Idle = xdc.useModule('ti.sysbios.knl.Idle');
ti_sysbios_knl_Idle.addFunc('&IdleTask');
/*
* Semaphore Handling
*/
var ti_sysbios_knl_Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
ti_sysbios_knl_Semaphore.supportsEvents = true;
var sysbios_knl_Semaphore0Params0 = new ti_sysbios_knl_Semaphore.Params();
sysbios_knl_Semaphore0Params0.instance.name = "DownlinkSchedulingSemaphore";
Program.global.DownlinkSchedulingSemaphore = ti_sysbios_knl_Semaphore.create(null, sysbios_knl_Semaphore0Params0);
var sysbios_knl_Semaphore0Params0 = new ti_sysbios_knl_Semaphore.Params();
sysbios_knl_Semaphore0Params0.instance.name = "DownlinkSchedulingInitSemaphore";
Program.global.DownlinkSchedulingInitSemaphore = ti_sysbios_knl_Semaphore.create(null, sysbios_knl_Semaphore0Params0);
ti_sysbios_knl_Clock.tickPeriod = 1;
var ExceptionISR_HwiParams = new ti_sysbios_hal_Hwi.Params();
ExceptionISR_HwiParams.enableInt = false;
ExceptionISR_HwiParams.eventId = 3;
var sysbios_hal_Hwi0 = ti_sysbios_hal_Hwi.create(4, "&ExceptionISR", ExceptionISR_HwiParams);
var SlotInterrupt_HwiParams = new ti_sysbios_hal_Hwi.Params();
SlotInterrupt_HwiParams.enableInt = false;
SlotInterrupt_HwiParams.eventId = 86;
var sysbios_hal_Hwi1 = ti_sysbios_hal_Hwi.create(5, "&DownlinkInterrupt", SlotInterrupt_HwiParams);
var IpcInterrupt_HwiParams = new ti_sysbios_hal_Hwi.Params();
IpcInterrupt_HwiParams.enableInt = false;
IpcInterrupt_HwiParams.eventId = 91;
var sysbios_hal_Hwi2 = ti_sysbios_hal_Hwi.create(6, "&IpcInterrupt", IpcInterrupt_HwiParams);
/********************** EDMA LLD **********************/
/*use modules*/
var Task = xdc.useModule ("ti.sysbios.knl.Task");
var BIOS = xdc.useModule ("ti.sysbios.BIOS");
var ECM = xdc.useModule ("ti.sysbios.family.c64p.EventCombiner");
var Startup = xdc.useModule ("xdc.runtime.Startup");
var System = xdc.useModule ("xdc.runtime.System");
var Log = xdc.useModule ("xdc.runtime.Log");
var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');
var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');
var Cache = xdc.useModule('ti.sysbios.hal.Cache');
var CpIntc = xdc.useModule('ti.sysbios.family.c66.tci66xx.CpIntc');
/* USE EDMA3 Sample App */
xdc.loadPackage('ti.sdo.edma3.drv.sample');
var ti_sdo_edma3_drv_DRV = xdc.useModule('ti.sdo.edma3.drv.DRV');
var ti_sdo_edma3_drv_sample_DrvSample = xdc.useModule('ti.sdo.edma3.drv.sample.DrvSample');
var Exception = xdc.useModule('ti.sysbios.family.c64p.Exception');
Exception.exceptionHook = "&ExceptionHook";
var PlatformLib = xdc.loadPackage('ti.platform.evmc6678l');
My customer's SW are
- IPC Version: 1.22.05.27
- SYS/BIOS: 6.31.04.27
- XDC tool : xdctools_3_20_08_88
Thanks and Best Regards,
SI.