1    /*
     2     *  Copyright 2013 by Texas Instruments Incorporated.
     3     *
     4     */
     5    
     6    /*
     7     * Copyright (c) 2012, Texas Instruments Incorporated
     8     * All rights reserved.
     9     *
    10     * Redistribution and use in source and binary forms, with or without
    11     * modification, are permitted provided that the following conditions
    12     * are met:
    13     *
    14     * *  Redistributions of source code must retain the above copyright
    15     *    notice, this list of conditions and the following disclaimer.
    16     *
    17     * *  Redistributions in binary form must reproduce the above copyright
    18     *    notice, this list of conditions and the following disclaimer in the
    19     *    documentation and/or other materials provided with the distribution.
    20     *
    21     * *  Neither the name of Texas Instruments Incorporated nor the names of
    22     *    its contributors may be used to endorse or promote products derived
    23     *    from this software without specific prior written permission.
    24     *
    25     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    26     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    27     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    28     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
    29     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    30     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    31     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    32     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    33     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
    34     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    35     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    36     *
    37     */
    38    
    39    /*!
    40     *  ======== Settings ========
    41     *  Global configuration settings for all Framework Components packages
    42     *
    43     *  This module provides high-level configuration settings for all
    44     *  Framework Components packages.
    45     *
    46     *  @a(Linking with Framework Components Libraries)
    47     *
    48     *  When linking an executable, this module's profile config param is
    49     *  used to select which libraries are used. See the {@link #profile}
    50     *  config param below. There are three typical use-cases.
    51     *
    52     *  1. Link with Framework Components libraries of a specific profile. Add the
    53     *  following to your application cfg script.
    54     *
    55     *  @p(code)
    56     *  // set all framework component libraries to the given profile
    57     *  xdc.useModule('ti.sdo.fc.global.Settings').profile = "debug";
    58     *  @p
    59     *
    60     *  2. Link with Framework Component libraries using the program's profile. Add
    61     *  the following to your application cfg script.
    62     *
    63     *  @p(code)
    64     *  // use the program's profile
    65     *  var Program = xdc.useModule('xdc.cfg.Program');
    66     *  xdc.useModule('ti.sdo.fc.global.Settings').profile = Program.build.profile;
    67     *  @p
    68     *
    69     *  3. Specify a profile on a per-package basis.
    70     *
    71     *  @p(code)
    72     *  // specify the profile for some select packages
    73     *  xdc.loadPackage('ti.sdo.fc').profile = "debug";
    74     *  xdc.loadPackage('ti.sdo.fc.rman').profile = "debug";
    75     *  xdc.loadPackage('ti.sdo.fc.dman3').profile = "debug";
    76     *  xdc.loadPackage('ti.sdo.fc.edma3').profile = "debug";
    77     *  @p
    78     *
    79     *  Note that the third method above does not actually use the `profile`
    80     *  config param. It sets the package's profile config param directly.
    81     *
    82     *  The default value for the `profile` config param is `release`.
    83     *  Thus, even when building your executable using a debug profile, the
    84     *  Framework Component release libraries will be used. This helps to keep the
    85     *  executable size smaller when you want to debug the application code.
    86     */
    87    
    88    @Template("./Settings.xdt")
    89    
    90    metaonly module Settings
    91    {
    92        /*!
    93         * ======== multiProcess ========
    94         * Add multi-process support for Framework Components libraries.
    95         *
    96         * This flag indicates whether an OSAL's multi-process support should
    97         * be linked in.
    98         */
    99        config Bool multiProcess = true;
   100    
   101        /*!
   102         * ======== osalPackage ========
   103         * Name of the package supplying osal libraries.
   104         *
   105         * Some FC packages (such as ti.sdo.fc.rman and
   106         * ti.sdo.fc.ires.* on Linux) need implementation
   107         * of some OSAL APIs (LockMP_acquire/release/create/delete
   108         * and Sem_create/delete/pend/post).
   109         *
   110         * Assign this to a package name that implements these
   111         * signatures of the Lock functions are available at
   112         * ti/sdo/fc/utils/lock.h
   113         */
   114        config String osalPackage;
   115    
   116        /*!
   117         *  ======== profile ========
   118         *  Name the library profile to use at link time
   119         *
   120         *  If the Framework Component libraries have been built using the profile
   121         *  named by this config param, then these libraries will be used
   122         *  when linking the final executable. Otherwise, a substitute
   123         *  library will be used. For example, if this config param is set to
   124         *  debug but there are only release libraries available, then the
   125         *  release library is used.
   126         */
   127        config String profile = "release";
   128    
   129        /*!
   130         *  ======== enableLogFC ========
   131         *  Globally enable or disable logging in Framework components.
   132         *
   133         *  If enableLogFC is set to false, any Diags masks of a Framework
   134         *  Components module that have not been set in the application's
   135         *  configuration file, will be set to Diags.ALWAYS_OFF. However,
   136         *  the if the module's 'enableLog' configuration parameter has been
   137         *  set, it will override this.
   138         *
   139         *  If enableLogFC has been set to true, or has not been set at all,
   140         *  the default value for unset FC Diags masks will be RUNTIME_OFF.
   141         *
   142         *  @sa xdc.runtime.Diags
   143         *  @sa xdc.runtime.Log
   144         */
   145        config Bool enableLogFC;
   146    
   147        /*!
   148         *  ======== useDNUM ========
   149         *  Use DNUM to convert internal memory addresses to core-specific
   150         *  addresses, that peripherals such as the EDMA3 can understand.
   151         *  This is automatically done for devices such as 6472, 6474, 6486, 6488
   152         *  Should be explicitly set for others, others FC will return un-modified
   153         *  internal memory addresses.
   154         */
   155        config Bool useDNUM;
   156    
   157        config Bool useL3MemoryMap;
   158    }
   159    /*
   160     *  @(#) ti.sdo.fc.global; 1, 0, 0,8; 7-23-2013 11:59:10; /db/atree/library/trees/fc/fc-t12/src/ xlibrary
   161    
   162     */
   163