1 %%{
2 /*
3 * Copyright (c) 2012-2013, Texas Instruments Incorporated
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 *
13 * * Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 *
17 * * Neither the name of Texas Instruments Incorporated nor the names of
18 * its contributors may be used to endorse or promote products derived
19 * from this software without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
23 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
25 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
28 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
31 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 */
33 %%}
34 %%{
35 /*
36 * Add SharedRegions to the linker map when heaps are created.
37 * This is to prevent the user from placing other code/data
38 * in the same memory location where heaps will be created.
39 */
40 %%}
41 %var SharedRegion = xdc.module("ti.sdo.ipc.SharedRegion");
42 %var Ipc = xdc.module("ti.sdo.ipc.Ipc");
43 %
44 %var regions = SharedRegion.$object.regions;
45 %
47 % if (Program.build.target.$name.match(/ti/)) {
48 SECTIONS
49 {
50 % for (var i=0; i < regions.length; i++) {
51 % if ((regions[i].entry.isValid) &&
52 % (regions[i].entry.ownerProcId != SharedRegion.DEFAULTOWNERID) &&
53 % (SharedRegion.genSectionInLinkCmd[i])) {
54 % var sectName = "ti.sdo.ipc.SharedRegion_" + i;
55 % var len = utils.toHex(regions[i].entry.len);
56 % var base = utils.toHex(Number(regions[i].entry.base));
57 % if (Program.build.target.$name.match(/ARP32/)) {
58 `sectName`: { . += `len`;} run > `base` PAGE 1, type = NOLOAD
59 % }
60 % else {
61 `sectName`: { . += `len`;} run > `base`, type = NOLOAD
62 % }
63 % }
64 % }
65 %
66 % if (Ipc.generateSlaveDataForHost &&
67 % (Program.sectMap["ti_sdo_ipc_init"] == undefined)) {
69 % if (Program.build.target.$name.match(/ARP32/)) {
70 ti_sdo_ipc_init: load > `Program.platform.dataMemory` PAGE 1, type = NOINIT
71 % }
72 % else {
73 ti_sdo_ipc_init: load > `Program.platform.dataMemory`, type = NOINIT
74 % }
75 % }
76 }
77 % }