/* * Copyright (c) 2011, Texas Instruments Incorporated * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of Texas Instruments Incorporated nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ switch (Program.platformName) { case "ti.sdo.ipc.examples.platforms.evm6670": var nameList = ["CORE0", "CORE1", "CORE2", "CORE3"]; break; case "ti.platforms.evm6678": var nameList = ["CORE0", "CORE1"];//, "CORE2", "CORE3", "CORE4", "CORE5", "CORE6", "CORE7"]; break; default: throw("Platform " + Program.platformName + " not supported by this example"); break; } /* BIOS/XDC modules */ 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 Memory = xdc.useModule('xdc.runtime.Memory') var SysMin = xdc.useModule('xdc.runtime.SysMin'); var Text = xdc.useModule('xdc.runtime.Text'); var System = xdc.useModule('xdc.runtime.System'); var SysStd = xdc.useModule('xdc.runtime.SysStd'); System.SupportProxy = SysStd; var BIOS = xdc.useModule('ti.sysbios.BIOS'); var Hwi = xdc.useModule('ti.sysbios.hal.Hwi'); var Swi = xdc.useModule('ti.sysbios.knl.Swi'); var Task = xdc.useModule('ti.sysbios.knl.Task'); var Clock = xdc.useModule('ti.sysbios.knl.Clock'); var Event = xdc.useModule('ti.sysbios.knl.Event'); var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore'); /* * The BIOS module will create the default heap for the system. * Specify the size of this default heap. */ BIOS.heapSize = 0x10000; /* * Program.argSize sets the size of the .args section. * The examples don't use command line args so argSize is set to 0. */ Program.argSize = 0x0; /* ** Create the stack Thread Task for our application. */ var tsk = Task.create("&tsk0_func"); tsk.instance.name = "Task0_func"; /* * 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; */ /* System stack size (used by ISRs and Swis) */ Program.stack = 0x2000; /* Circular buffer size for System_printf() */ SysMin.bufSize = 0x200; /* * Create and install logger for the whole system */ var loggerBufParams = new LoggerBuf.Params(); loggerBufParams.numEntries = 16; var logger0 = LoggerBuf.create(loggerBufParams); Defaults.common$.logger = logger0; Main.common$.diags_INFO = Diags.ALWAYS_ON; /* Modules explicitly used in the application */ var Ipc = xdc.useModule('ti.sdo.ipc.Ipc'); /* Synchronize all processors (this will be done in Ipc_start) */ Ipc.procSync = Ipc.ProcSync_ALL; var HeapBufMP = xdc.useModule('ti.sdo.ipc.heaps.HeapBufMP'); var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc'); MultiProc.setConfig(null, nameList); var MessageQ = xdc.useModule('ti.sdo.ipc.MessageQ'); MessageQ.numHeaps = 7; /* ** Load DSPLIB Module */ xdc.loadPackage('ti.dsplib'); /* * Need to define the shared region. The IPC modules use this * to make portable pointers. All processors need to add this * call with their base address of the shared memory region. * If the processor cannot access the memory, do not add it. */ /* Shared Memory base address and length */ var SHAREDMEM = 0x0C000000; var SHAREDMEMSIZE = 0x00002000; var SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion'); SharedRegion.numEntries = 7; SharedRegion.setEntryMeta(0, { base: SHAREDMEM, len: SHAREDMEMSIZE, ownerProcId: 0, isValid: true, name: "DDR3_SHARED_0", }); SharedRegion.setEntryMeta(1, { base: SHAREDMEM+SHAREDMEMSIZE, len: SHAREDMEMSIZE, ownerProcId: 0, isValid: true, name: "DDR3_SHARED_1", }); SharedRegion.setEntryMeta(2, { base: SHAREDMEM+(2*SHAREDMEMSIZE), len: SHAREDMEMSIZE, ownerProcId: 0, isValid: true, name: "DDR3_SHARED_2", }); SharedRegion.setEntryMeta(3, { base: SHAREDMEM+(3*SHAREDMEMSIZE), len: SHAREDMEMSIZE, ownerProcId: 0, isValid: true, name: "DDR3_SHARED_3", }); SharedRegion.setEntryMeta(4, { base: SHAREDMEM+(4*SHAREDMEMSIZE), len: SHAREDMEMSIZE, ownerProcId: 0, isValid: true, name: "DDR3_SHARED_4", }); SharedRegion.setEntryMeta(5, { base: SHAREDMEM+(5*SHAREDMEMSIZE), len: SHAREDMEMSIZE, ownerProcId: 0, isValid: true, name: "DDR3_SHARED_5", }); SharedRegion.setEntryMeta(6, { base: SHAREDMEM+(6*SHAREDMEMSIZE), len: SHAREDMEMSIZE, ownerProcId: 0, isValid: true, name: "DDR3_SHARED_6", });