Hello all,
I am using EVMK2H with mcsdk3.xx. I have all the ipc and bios packaged downloaded.
I am trying to build a simple dsp0("CORE0") to dsp1 ("CORE1") IPC example using shared Memory and MessageQ. I am building my example based on the example provided by the ipc package under /ti/ipc_3_35_01_07/examples/TCI6638_linux_elf and /ti/ipc_3_35_01_07/examples/C6678_bios_elf .I ran into trouble trying to configure ShareRegion for the purpose of this project. CCSV6 returns this error message
"
Description Resource Path Location Type
Cannot read property "base" from undefined (/home/wei/workspace_v6_2/ipc_dsp/app.cfg#142) .xdchelp /ipc_dsp line 142 C/C++ Problem
"
Here is my .cfg file for dsp0
var Defaults = xdc.useModule('xdc.runtime.Defaults'); var Diags = xdc.useModule('xdc.runtime.Diags'); var Error = xdc.useModule('xdc.runtime.Error'); var Log = xdc.useModule('xdc.runtime.Log'); var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf'); var Main = xdc.useModule('xdc.runtime.Main'); var SysMin = xdc.useModule('xdc.runtime.SysMin'); var System = xdc.useModule('xdc.runtime.System'); var Text = xdc.useModule('xdc.runtime.Text'); var BIOS = xdc.useModule('ti.sysbios.BIOS'); var Hwi = xdc.useModule('ti.sysbios.hal.Hwi'); var Task = xdc.useModule('ti.sysbios.knl.Task'); /* * Uncomment this line to globally disable Asserts. * All modules inherit the default from the 'Defaults' module. You * can override these defaults on a per-module basis using Module.common$. * Disabling Asserts will save code space and improve runtime performance. Defaults.common$.diags_ASSERT = Diags.ALWAYS_OFF; */ /* * Uncomment this line to keep module names from being loaded on the target. * The module name strings are placed in the .const section. Setting this * parameter to false will save space in the .const section. Error and * Assert messages will contain an "unknown module" prefix instead * of the actual module name. */ Defaults.common$.namedModule = false; /* * Minimize exit handler array in System. The System module includes * an array of functions that are registered with System_atexit() to be * called by System_exit(). */ System.maxAtexitHandlers = 4; /* * Uncomment this line to disable the Error print function. * We lose error information when this is disabled since the errors are * not printed. Disabling the raiseHook will save some code space if * your app is not using System_printf() since the Error_print() function * calls System_printf(). Error.raiseHook = null; */ /* * Uncomment this line to keep Error, Assert, and Log strings from being * loaded on the target. These strings are placed in the .const section. * Setting this parameter to false will save space in the .const section. * Error, Assert and Log message will print raw ids and args instead of * a formatted message. */ Text.isLoaded = false; /* * Uncomment this line to disable the output of characters by SysMin * when the program exits. SysMin writes characters to a circular buffer. * This buffer can be viewed using the SysMin Output view in ROV. */ SysMin.flushAtExit = false; /* * The BIOS module will create the default heap for the system. * Specify the size of this default heap. */ BIOS.heapSize = 0x0; /* System stack size (used by ISRs and Swis) */ Program.stack = 0x400; /* Circular buffer size for System_printf() */ SysMin.bufSize = 128; /* * Create and install logger for the whole system */ var loggerBufParams = new LoggerBuf.Params(); loggerBufParams.numEntries = 4; var logger0 = LoggerBuf.create(loggerBufParams); Defaults.common$.logger = logger0; Main.common$.diags_INFO = Diags.ALWAYS_ON; System.SupportProxy = SysMin; /* * Build a custom BIOS library. The custom library will be smaller than the * pre-built "instrumented" (default) and "non-instrumented" libraries. * * The BIOS.logsEnabled parameter specifies whether the Logging is enabled * within BIOS for this custom build. These logs are used by the RTA and * UIA analysis tools. * * The BIOS.assertsEnabled parameter specifies whether BIOS code will * include Assert() checks. Setting this parameter to 'false' will generate * smaller and faster code, but having asserts enabled is recommended for * early development as the Assert() checks will catch lots of programming * errors (invalid parameters, etc.) */ BIOS.libType = BIOS.LibType_Custom; BIOS.logsEnabled = false; BIOS.assertsEnabled = true; /* * Create a task. The 'taskFxn' function can be found in main.c. */ var task0Params = new Task.Params(); var task0 = Task.create("&taskFxn", task0Params); /* ipc configuration */ /* ipc setup */ var Ipc = xdc.useModule('ti.sdo.ipc.Ipc'); Ipc.procSync = Ipc.ProcSync_ALL; Ipc.sr0MemorySetup = true; //Needd to use Ipc_Attach later in run time /* messageQ setup */ var MesaageQ = xdc.useModule('ti.sdo.ipc.MessageQ'); /* multiProc setup */ var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc'); var procNameAry = [ "HOST","CORE0", "CORE1", "CORE2", "CORE3", "CORE4", "CORE5", "CORE6", "CORE7" ]; MultiProc.setConfig("CORE0", procNameAry); /* sharedRegion setup */ var SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion'); var SR0Mem = Program.cpu.memoryMap["SR_0"]; SharedRegion.setEntryMeta(0, new SharedRegion.Entry( {base:SR0Mem.base, name: "SR_0", len: SR0Mem.len, ownerProcId: 1, isValid: true, cacheEnable: true }) );