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