1    /*
     2     *  Copyright (c) 2010 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    requires xdc.platform [1,0,1];
    14    
    15    /*!
    16     *  ======== ti.platforms.generic ========
    17     *  Platform package for the generic platform.
    18     *
    19     *  This package implements the interfaces (xdc.platform.IPlatform)
    20     *  necessary to build and run executables on a "generic" platform; a
    21     *  platform specified by:
    22     *  @p(blist)
    23     *      - device name; e.g., "TMS320C2812"
    24     *      - catalog name; the name of a package containing the device named above
    25     *      - clock rate; the clock rate in MHz of the CPU
    26     *      - external memory map; an array of memory blocks external to the device
    27     *  @p
    28     *  For a complate list of parameters that can be specified when creating a
    29     *  platform instance see the instance configuration parameters specified
    30     *  by `{@link ti.platforms.generic.Platform}`.  This list, of course,
    31     *  includes all the instance config parameters specified by the
    32     *  `{@link xdc.platform.IPlatform}` interface.
    33     *
    34     *
    35     *  @a(Throws)
    36     *  `XDCException` exceptions are thrown for fatal errors. The following error
    37     *  codes are reported in the exception message:
    38     *  @p(dlist)                            
    39     *      -  `ti.platfoms.generic.LINK_TEMPLATE_ERROR`
    40     *           This error is raised when this platform cannot found the default
    41     *           linker command template `linkcmd.xdt` in the build target's
    42     *           package. When a target does not contain this file, the config
    43     *           parameter `{@link xdc.cfg.Program#linkTemplate}` must be set.
    44     *  @p
    45     *
    46     *  @a(EXAMPLES)
    47     *  Example 1: Suppose you need to create an application for a HW platform
    48     *  that uses the TMS320C2812 running at 150 MHz.  You can use this package
    49     *  (in lieu of one specifically created for the HW platform) by defining a
    50     *  named instance of this package's Platform module.  Add the following
    51     *  statements to your `config.bld` file to add the platform instance named
    52     *  "ti.platforms.generic:C28".
    53     *  @p(code)
    54     *      Build.platformTable["ti.platforms.generic:C28"] = {
    55     *          clockRate:   150,
    56     *          catalogName: "ti.catalog.c2800",
    57     *          deviceName:  "TMS320C2812"
    58     *      };
    59     *  @p
    60     *  With this name defined, it is now possible to configure an application
    61     *  using the platform instance name "ti.platforms.generic:C28".  For example,
    62     *  if you are using `{@link xdc.tools.configuro}` to configure your
    63     *  application, the string "ti.platforms.generic:C28" can now be used to
    64     *  identify your platform:
    65     *  @p(code)
    66     *      xs xdc.tools.configuro -b config.bld -p ti.platforms.generic:C28 ...
    67     *  @p
    68     *
    69     *  @p(html)
    70     *  <hr/>
    71     *  @p
    72     *
    73     *  Example 2: The following example illustrates how to specify a platform 
    74     *  instance with memory regions external to the specified device.  In this
    75     *  case, we define a platform using a TMS320C6416 running at 600 MHz on a
    76     *  board with two external SDRAM memory blocks.
    77     *  @p(code)
    78     *      Build.platformTable["ti.platforms.generic:C64"] = {
    79     *          clockRate:          600,
    80     *          catalogName:        "ti.catalog.c6000",
    81     *          deviceName:         "TMS320C6416",
    82     *          externalMemoryMap : [
    83     *              ["SDRAM1", {
    84     *                  name: "SDRAM1",
    85     *                  base: 0x80000000, len: 0x1000000, space: "code/data"
    86     *              }],
    87     *              ["SDRAM2", {
    88     *                  name: "SDRAM2",
    89     *                  base: 0x90000000, len: 0x1000000, space: "code/data"
    90     *              }],
    91     *          ]
    92     *      }
    93     *  @p
    94     *
    95     *  The `externalMemoryMap` attribute is a map of string names to
    96     *  `{@link xdc.platform.IPlatform#Memory}` structures.
    97     *
    98     *  @see ti.platforms.generic.Platform
    99     *  @see xdc.bld.BuildEnvironment#platformTable
   100     *  @see xdc.platform.IPlatform
   101     */
   102    package ti.platforms.generic [1,0,0,1] {
   103        module Platform;
   104    }
   105    /*
   106     *  @(#) ti.platforms.generic; 1, 0, 0, 1,297; 8-7-2010 18:31:16; /db/ztree/library/trees/platform/platform-l20x/src/
   107     */
   108