/* * Copyright (c) 2012-2013, 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. * */ var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc'); /* * Get the list of names that the build device supports. * I.e. ["CORE0", "CORE1", "CORE2" ... ] */ var nameList = ["CORE0", "CORE1"]; /* * Since this is a single-image example, we don't (at build-time) which * processor we're building for. We therefore supply 'null' * as the local procName and allow IPC to set the local procId at runtime. */ MultiProc.setConfig(null, nameList); /* * The SysStd System provider is a good one to use for debugging * but does not have the best performance. Use xdc.runtime.SysMin * for better performance. */ var System = xdc.useModule('xdc.runtime.System'); var SysStd = xdc.useModule('xdc.runtime.SysStd'); System.SupportProxy = SysStd; /* Modules explicitly used in the application */ var MessageQ = xdc.useModule('ti.sdo.ipc.MessageQ'); var Ipc = xdc.useModule('ti.sdo.ipc.Ipc'); var HeapBufMP = xdc.useModule('ti.sdo.ipc.heaps.HeapBufMP'); var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc'); /* BIOS/XDC modules */ var BIOS = xdc.useModule('ti.sysbios.BIOS'); BIOS.heapSize = 0x10000; var Task = xdc.useModule('ti.sysbios.knl.Task'); Program.sectMap[".text"] = "MSMCSRAM"; Program.sectMap[".const"] = "MSMCSRAM"; Program.sectMap[".cinit"] = "MSMCSRAM"; Program.sectMap[".switch"] = "MSMCSRAM"; Program.sectMap[".rmSharedHandleTest"] = new Program.SectionSpec(); Program.sectMap[".rmSharedHandleTest"] = "MSMCSRAM"; /* Read once when RM_SHARED_SERVER is initialized */ Program.sectMap[".sharedGRL"] = new Program.SectionSpec(); Program.sectMap[".sharedGRL"] = "L2SRAM"; Program.sectMap[".sharedGlobalPolicy"] = new Program.SectionSpec(); Program.sectMap[".sharedGlobalPolicy"] = "L2SRAM"; /* Synchronize all processors (this will be done in Ipc_start) */ Ipc.procSync = Ipc.ProcSync_ALL; /* * 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. */ var SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion'); SharedRegion.translate = false; SharedRegion.setEntryMeta(0, { base: 0x0C000000, len: 0x00040000, ownerProcId: 0, isValid: true, name: "sharemem", }); /* PDK packages */ var devType = "c6657" var Csl = xdc.useModule('ti.csl.Settings'); Csl.deviceType = devType; var Rm = xdc.loadPackage('ti.drv.rm');