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