%%{ /* * 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. */ %%} %%{ /* * Add SharedRegions to the linker map when heaps are created. * This is to prevent the user from placing other code/data * in the same memory location where heaps will be created. */ %%} %var SharedRegion = xdc.module("ti.sdo.ipc.SharedRegion"); %var Ipc = xdc.module("ti.sdo.ipc.Ipc"); % %var regions = SharedRegion.$object.regions; % % if (Program.build.target.$name.match(/ti/)) { SECTIONS { % for (var i=0; i < regions.length; i++) { % if ((regions[i].entry.isValid) && % (regions[i].entry.ownerProcId != SharedRegion.DEFAULTOWNERID) && % (SharedRegion.genSectionInLinkCmd[i])) { % var sectName = "ti.sdo.ipc.SharedRegion_" + i; % var len = utils.toHex(regions[i].entry.len); % var base = utils.toHex(Number(regions[i].entry.base)); % if (Program.build.target.$name.match(/ARP32/)) { `sectName`: { . += `len`;} run > `base` PAGE 1, type = NOLOAD % } % else { `sectName`: { . += `len`;} run > `base`, type = NOLOAD % } % } % } % % if (Ipc.generateSlaveDataForHost && % (Program.sectMap["ti_sdo_ipc_init"] == undefined)) { % if (Program.build.target.$name.match(/ARP32/)) { ti_sdo_ipc_init: load > `Program.platform.dataMemory` PAGE 1, type = NOINIT % } % else { ti_sdo_ipc_init: load > `Program.platform.dataMemory`, type = NOINIT % } % } } % }