1    /*
     2     *  Copyright (c) 2015 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.simplelink;
    17    
    18    /*!
    19     *  ======== Platform ========
    20     *  A generic platform that supports any CC13xx, CC26xx, or CC32xx 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.simplelink:CC3200"
    27     *  @p
    28     *
    29     *  In package.bld, the platform instance is selected as in:
    30     *  @p(code)
    31     *  Pkg.addExecutable("test", target, "ti.platforms.simplelink:CC3200");
    32     *  @p
    33     */
    34    @Template ("./Platform.xdt")
    35    metaonly module Platform inherits xdc.platform.IPlatform
    36    {
    37        config xdc.platform.IPlatform.Board BOARD = {
    38            id:             "0",
    39            boardName:      "simplelink",
    40            boardFamily:    null,
    41            boardRevision:  null
    42        };
    43    
    44        /*!
    45         *  ======== nameFormat ========
    46         *  Encoding of instance creation parameters in the instance's name
    47         *
    48         *  For this platform, the parameters `deviceName`, `includeLinkCmdFile`
    49         *  and `clockRate` can be encoded in the instance name supplied on
    50         *  `xdc.tools.configuro` command line, for example:
    51         *  @p(code)
    52         *      xs xdc.tools.configuro ... -p ti.platforms.simplelink:CC3200:1:20
    53         *  @p
    54         *  Optional parameters can be omitted:
    55         *  @p(code)
    56         *      xs xdc.tools.configuro ... -p ti.platforms.simplelink:CC3200
    57         *  @p
    58         */
    59         readonly config string nameFormat
    60             = "$(deviceName):$(includeLinkCmdFile):$(clockRate)";
    61    
    62        /*!
    63         *  ======== useGnuRomLinkCmd ========
    64         *  Use ROM compatible linker script when building using GNU tools
    65         *
    66         *  If this config param is set to true and "includeLinkCmdFile" is true,
    67         *  the ROM compatible linker script will be used. The ROM compatible
    68         *  linker script is required when building a ROM based application.
    69         */
    70         config Bool useGnuRomLinkCmd = false;
    71    
    72    instance:
    73    
    74        /*
    75         *  This platform supports either Cortex M3 or M4 cores.
    76         *  The corresponding "actual" catalogName is overwritten
    77         *  in Platform.instance$meta$init() based on the device name
    78         */
    79    
    80        config xdc.platform.IExeContext.Cpu CPU = {
    81            id:             "0",
    82            clockRate:      80.0,
    83            catalogName:    "ti.catalog.arm.cortexm4",
    84            deviceName:     "CC32xx",
    85            revision:       "",
    86        };
    87    
    88        /*!
    89         *  ======== deviceName ========
    90         *  The name of an `ICpuDataSheet` module for the device
    91         *
    92         *  This parameter is required, but it does not have to be set explicitly;
    93         *  it can be encoded in the instance's name.
    94         */
    95        config string deviceName;
    96    
    97        /*!
    98         *  ======== clockRate ========
    99         *  The clock rate for this device.
   100         */
   101        config Double clockRate;
   102    
   103        override config string codeMemory = null;
   104    
   105        override config string dataMemory = null;
   106    
   107        override config string stackMemory = null;
   108    
   109        /*!
   110         *  ======== includeLinkCmdFile ========
   111         *  The flag that specifies if the platform should include a linker command
   112         *  file.
   113         *
   114         *  By default, a user is responsible for adding a linker command file to
   115         *  the project, or to the linker command line. However, if this flag is
   116         *  set, this platform will include a default linker command file for the
   117         *  selected device.
   118         */
   119        config Bool includeLinkCmdFile = false;
   120    };
   121    /*
   122     *  @(#) ti.platforms.simplelink; 1, 0, 0,; 8-14-2015 13:42:09; /db/ztree/library/trees/platform/platform-q07/src/
   123     */
   124