1    /*
     2     *  Copyright (c) 2014 by Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     *
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     *
    11     * */
    12    
    13    /*
    14     *  ======== Platform.xdc ========
    15     */
    16    
    17    package ti.platforms.arp32;
    18    
    19    /*!
    20     *  ======== Platform ========
    21     *  Generic platform support for the arp32
    22     *
    23     *  This platform requires a memory map file called `board.xs` to be available 
    24     *  in the same directory as the application config file. It should define 
    25     *  values for the config parameters which are declared in this platform.
    26     *
    27     *  @a(Examples)
    28     *  A sample `board.xs` file.
    29     *
    30     *  @p(code)
    31     *  var boardARP32 = {
    32     *      CPU: {
    33     *          clockRate:      200.0,
    34     *          catalogName:    "ti.catalog.arp32",
    35     *          deviceName:     "Arctic",
    36     *      },
    37     *      externalMemoryMap: [
    38     *          ["ARP32VECS", {
    39     *              comment: "External memory for ARP32 interrupt vectors",
    40     *              name:  "ARP32VECS",
    41     *              base:  0x80000000,
    42     *              len:   0x00000100,
    43     *              page:  0,
    44     *              space: "code/data"
    45     *          }],
    46     *
    47     *          ["ARP32", {
    48     *              comment: "External memory for ARP32 use",
    49     *              name:  "ARP32",
    50     *              base:  0x80000100,
    51     *              len:   0x0fffff00,
    52     *              page:  1,
    53     *              space: "code/data"
    54     *          }]
    55     *      ],
    56     *      codeMemory:  "ARP32",
    57     *      dataMemory:  "DMEM",
    58     *      stackMemory: "DMEM",
    59     *  };
    60     *  @p
    61     */
    62    metaonly module Platform inherits xdc.platform.IPlatform
    63    {
    64        config xdc.platform.IPlatform.Board BOARD;
    65    
    66    instance:
    67    
    68        /*!
    69         *  ======== CPU ========
    70         *  CPU Attributes necessary to create an execution context 
    71         *
    72         *  The platform requires these attributes to get the device internal
    73         *  memory map.
    74         *
    75         *  @see xdc.platform.IExeContext#Cpu
    76         */
    77        config xdc.platform.IExeContext.Cpu CPU = { 
    78            id:             "0",
    79            clockRate:      1.0,
    80            catalogName:    "ti.catalog.arp32",
    81            deviceName:     "",
    82            revision:       "",
    83        };
    84        
    85        override config String codeMemory = null;
    86        
    87        override config String dataMemory = null;
    88    
    89        override config String stackMemory = null;
    90        
    91        /*!
    92         *  ======== sectionMap ========
    93         *  A section name to SectionSpec mapping
    94         *
    95         *  @see xdc.cfg.Program#sectMap
    96         */
    97        config Any sectionMap[string];
    98    
    99        /*!
   100         *  ======== sectionsExclude ========
   101         *  Section to exclude from linker command file generation
   102         *
   103         *  @see xdc.cfg.Program#sectionsExclude
   104         */
   105        config String sectionsExclude = null;
   106    
   107        /*!
   108         *  ======== memoryExclude ========
   109         *  Section to exclude from linker command file generation
   110         *
   111         *  @see xdc.cfg.Program#memoryExclude
   112         */
   113        config Bool memoryExclude = false;
   114    
   115        /*!
   116         *  ======== sectionsTemplate ========
   117         *  Replace the sections portion of the generated linker command file.
   118         *
   119         *  @see xdc.cfg.Program#sectionsTemplate
   120         */
   121        config String sectionsTemplate = null;
   122    
   123        /*!
   124         *  ======== sectMap ========
   125         *  @_nodoc
   126         */
   127        override config String sectMap[string];
   128    
   129        /*!
   130         *  ======== getCpuDataSheet ========
   131         *  @_nodoc    
   132         */
   133        override function getCpuDataSheet(cpuId);
   134     
   135        /*!
   136         *  ======== getExeContext ========
   137         *  @_nodoc
   138         */
   139        override function getExeContext(prog);
   140    
   141        /*!
   142         *  ======== getExecCmd ========
   143         *  @_nodoc
   144         */
   145        override function getExecCmd(prog, platPath);
   146    
   147        /*!
   148         *  ======== getLinkTemplate ========
   149         *  @_nodoc
   150         */
   151        override function getLinkTemplate(prog);
   152    };
   153    /*
   154     *  @(#) ti.platforms.arp32; 1, 0, 0,59; 3-22-2014 18:56:55; /db/ztree/library/trees/platform/platform-o48x/src/
   155     */
   156