1    /*
     2     *  Copyright (c) 2012 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    package ti.platforms.stellaris;
    17    
    18    /*!
    19     *  ======== Platform ========
    20     *  A generic platform that supports any Stellaris device
    21     *
    22     *  The device to be used by this platform is passed as the platform instance
    23     *  name. On the `xdc.tools.configuro` command line, it is done in the
    24     *  following way:
    25     *  @p(code)
    26     *  xs xdc.tools.configuro ... -p "ti.platforms.stellaris:LM3S8971"
    27     *  @p
    28     *
    29     *  In package.bld, the platform instance is selected as in:
    30     *  @p(code)
    31     *  Pkg.addExecutable("test", target, "ti.platforms.stellaris:LM3S8971");
    32     *  @p
    33     */
    34    metaonly module Platform inherits xdc.platform.IPlatform
    35    {
    36        config xdc.platform.IPlatform.Board BOARD = { 
    37            id:             "0",
    38            boardName:      "stellaris",
    39            boardFamily:    null,
    40            boardRevision:  null
    41        };
    42    
    43        /*!
    44         *  ======== nameFormat ========
    45         *  Encoding of instance creation parameters in the instance's name
    46         * 
    47         *  For this platform, the parameters `deviceName` and `includeLinkCmdFile`
    48         *  can be encoded in the instance name supplied on `xdc.tools.configuro`
    49         *  command line, for example:
    50         *  @p(code)
    51         *      xs xdc.tools.configuro ... -p ti.platforms.stellaris:LM3S8971:1
    52         *  @p
    53         *  Optional parameters can be omitted:
    54         *  @p(code)
    55         *      xs xdc.tools.configuro ... -p ti.platforms.stellaris:LM3S8971
    56         *  @p
    57         */
    58         readonly config string nameFormat = "$(deviceName):$(includeLinkCmdFile)";
    59    
    60    instance:
    61    
    62        /*
    63         *  This platform supports either M3 or M4.  M3 or M4 is selected
    64         *  in Platform.xs based on target.isa.
    65         */
    66        config xdc.platform.IExeContext.Cpu M3 = {
    67            id:             "0",
    68            clockRate:      1.0,
    69            catalogName:    "ti.catalog.arm.cortexm3",
    70            deviceName:     "Stellaris",
    71            revision:       "",
    72        };
    73    
    74        config xdc.platform.IExeContext.Cpu M4 = {
    75            id:             "0",
    76            clockRate:      1.0,
    77            catalogName:    "ti.catalog.arm.cortexm4",
    78            deviceName:     "Stellaris",
    79            revision:       "",
    80        };
    81    
    82        /*!
    83         *  ======== deviceName ========
    84         *  The name of an `ICpuDataSheet` module for the device
    85         *
    86         *  This parameter is required, but it does not have to be set explicitly;
    87         *  it can be encoded in the instance's name.
    88         */
    89        config string deviceName;
    90    
    91        /*!
    92         *  ======== clockRate ========
    93         *  The clock rate for this device.
    94         */
    95        config Double clockRate = 20;
    96    
    97        override config string codeMemory = null;
    98    
    99        override config string dataMemory = null;
   100    
   101        override config string stackMemory = null;
   102    
   103        /*!
   104         *  ======== includeLinkCmdFile ========
   105         *  The flag that specifies if the platform should include a linker command
   106         *  file.
   107         *
   108         *  By default, a user is responsible for adding a linker command file to
   109         *  the project, or to the linker command line. However, if this flag is
   110         *  set, this platform will include a default linker command file for the
   111         *  selected device.
   112         */
   113        config Bool includeLinkCmdFile = false;
   114    };
   115    /*
   116     *  @(#) ti.platforms.stellaris; 1, 0, 0,50; 4-24-2012 15:01:48; /db/ztree/library/trees/platform/platform-n20x/src/
   117     */
   118