1    /* 
     2     * Copyright (c) 2012, Texas Instruments Incorporated
     3     * All rights reserved.
     4     *
     5     * Redistribution and use in source and binary forms, with or without
     6     * modification, are permitted provided that the following conditions
     7     * are met:
     8     *
     9     * *  Redistributions of source code must retain the above copyright
    10     *    notice, this list of conditions and the following disclaimer.
    11     *
    12     * *  Redistributions in binary form must reproduce the above copyright
    13     *    notice, this list of conditions and the following disclaimer in the
    14     *    documentation and/or other materials provided with the distribution.
    15     *
    16     * *  Neither the name of Texas Instruments Incorporated nor the names of
    17     *    its contributors may be used to endorse or promote products derived
    18     *    from this software without specific prior written permission.
    19     *
    20     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    21     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    22     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    23     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
    24     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    25     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    26     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    27     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    28     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
    29     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    30     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    31     * */
    32    /*
    33     *  ======== Agent.xdc ========
    34     *
    35     */
    36    
    37    package ti.sysbios.rta;
    38    
    39    import xdc.rov.ViewInfo;
    40    import xdc.runtime.LoggerBuf;
    41    import xdc.runtime.Log;
    42    import xdc.runtime.Assert;
    43    import xdc.runtime.Error;
    44    import xdc.runtime.Diags;
    45    import ti.sysbios.knl.Clock;
    46    import ti.sysbios.knl.Event;
    47    
    48    /*! 
    49     *  ======== Agent ========
    50     *  The Agent module provides target support for the CCS RTA tools.
    51     *
    52     *  The Agent module includes configuration parameters to help set up the
    53     *  SYS/BIOS logging on the target.
    54     *  
    55     *  Earlier versions of the Agent provided support for transfer of data
    56     *  during runtime.   Runtime support has been removed and
    57     *  the Agent now only supports "stop mode" updates.   Log data is stored
    58     *  in buffers in RAM and only updated on the host with the target is halted.
    59     *
    60     *  Runtime support is now handled via the System Analyzer and UIA products.
    61     */
    62    metaonly module Agent
    63    {
    64        /*!
    65         *  ======== loadLogging ========
    66         *  Enable the Load module event logging.
    67         *
    68         *  If this is false, the events will be disabled and cannot be enabled
    69         *  at runtime (ALWAYS_OFF).
    70         *  If this is true, the events will be enabled and can also be modified
    71         *  at runtime (RUNTIME_ON).
    72         */
    73        metaonly config Bool loadLogging = true;
    74        
    75        /*!
    76         *  ======== loadLoggingRuntimeControl ========
    77         *  Specify whether load logging can be enabled / disabled at runtime.
    78         *
    79         *  This determines what diags settings are applied to the module's diags
    80         *  mask. If 'false', the diags bits will be configured as ALWAYS_OFF or 
    81         *  ALWAYS_ON, meaning they can't be changed at runtime. If 'true', the 
    82         *  bits will be configured as 'RUNTIME_OFF' or 'RUNTIME_ON'.
    83         */
    84        metaonly config Bool loadLoggingRuntimeControl = true;
    85        
    86        /*!
    87         *  ======== loadLoggerSize ========
    88         *  Size (in MAUs) of logger used for the Load module Log events.
    89         *
    90         *  To specify the size in number of records, instead of MAUs, use the
    91         *  following code:
    92         *  
    93         *  @p(code)
    94         *  var Agent = xdc.useModule('ti.sysbios.rta.Agent');
    95         *  var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
    96         *  
    97         *  // Set the load logger size to 50 records.
    98         *  Agent.loadLoggerSize = 50 * LoggerBuf.Entry.$sizeof();
    99         *
   100         *  // Print the final size to see how much memory is used.
   101         *  print("Load Logger Size (MAUs): " + Agent.loadLoggerSize);
   102         *  @p
   103         */
   104        metaonly config SizeT loadLoggerSize = 512;
   105    
   106        /*!
   107         *  ======== loadLoggerBufferSection ========
   108         *  Section to place the Load LoggerBuf's buffer.
   109         */
   110        metaonly config String loadLoggerBufferSection = "[Default]";
   111            
   112        /*!
   113         *  ======== mainLogging ========
   114         *  Enable main and non-XDC modules event logging.
   115         */
   116        metaonly config Bool mainLogging = true;
   117       
   118        /*!
   119         *  ======== mainLoggingRuntimeControl ========
   120         *  Specify whether main logging can be enabled / disabled at runtime.
   121         *
   122         *  This determines what diags settings are applied to the module's diags
   123         *  mask. If 'false', the diags bits will be configured as ALWAYS_OFF or 
   124         *  ALWAYS_ON, meaning they can't be changed at runtime. If 'true', the 
   125         *  bits will be configured as 'RUNTIME_OFF' or 'RUNTIME_ON'.
   126         */
   127        metaonly config Bool mainLoggingRuntimeControl = true;
   128        
   129        /*!
   130         *  ======== mainLoggerSize ========
   131         *  Size (in MAUs) of logger used for main and non-XDC modules Log events.
   132         *
   133         *  To specify the size in number of records, instead of MAUs, use the
   134         *  following code:
   135         *  
   136         *  @p(code)
   137         *  var Agent = xdc.useModule('ti.sysbios.rta.Agent');
   138         *  var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
   139         *  
   140         *  // Set the main logger size to 50 records.
   141         *  Agent.mainLoggerSize = 50 * LoggerBuf.Entry.$sizeof();
   142         *
   143         *  // Print the final size to see how much memory is used.
   144         *  print("Application Logger Size (MAUs): " + Agent.mainLoggerSize);
   145         *  @p
   146         */
   147        metaonly config SizeT mainLoggerSize = 1024;
   148        
   149        /*!
   150         *  ======== mainLoggerBufferSection ========
   151         *  Section to place the Main LoggerBuf's buffer.
   152         */
   153        metaonly config String mainLoggerBufferSection = "[Default]";
   154        
   155        /*!
   156         *  ======== sysbiosHwiLogging ========
   157         *  Enable SYSBIOS Hwi module's event logging.
   158         */
   159        metaonly config Bool sysbiosHwiLogging = false;
   160        
   161        /*!
   162         *  ======== sysbiosHwiLoggingRuntimeControl ========
   163         *  Specify whether Hwi logging can be enabled / disabled at runtime.
   164         *
   165         *  This determines what diags settings are applied to the module's diags
   166         *  mask. If 'false', the diags bits will be configured as ALWAYS_OFF or 
   167         *  ALWAYS_ON, meaning they can't be changed at runtime. If 'true', the 
   168         *  bits will be configured as 'RUNTIME_OFF' or 'RUNTIME_ON'.
   169         */
   170        metaonly config Bool sysbiosHwiLoggingRuntimeControl = false;
   171        
   172        /*!
   173         *  ======== sysbiosSwiLogging ========
   174         *  Enable SYSBIOS Swi module's event logging.
   175         */
   176        metaonly config Bool sysbiosSwiLogging = false;
   177    
   178        /*!
   179         *  ======== sysbiosSwiLoggingRuntimeControl ========
   180         *  Specify whether Swi logging can be enabled / disabled at runtime.
   181         *
   182         *  This determines what diags settings are applied to the module's diags
   183         *  mask. If 'false', the diags bits will be configured as ALWAYS_OFF or 
   184         *  ALWAYS_ON, meaning they can't be changed at runtime. If 'true', the 
   185         *  bits will be configured as 'RUNTIME_OFF' or 'RUNTIME_ON'.
   186         */
   187        metaonly config Bool sysbiosSwiLoggingRuntimeControl = false;
   188        
   189        /*!
   190         *  ======== sysbiosTaskLogging ========
   191         *  Enable SYSBIOS Task module's event logging.
   192         */
   193        metaonly config Bool sysbiosTaskLogging = true;
   194    
   195        /*!
   196         *  ======== sysbiosTaskLoggingRuntimeControl ========
   197         *  Specify whether Task logging can be enabled / disabled at runtime.
   198         *
   199         *  This determines what diags settings are applied to the module's diags
   200         *  mask. If 'false', the diags bits will be configured as ALWAYS_OFF or 
   201         *  ALWAYS_ON, meaning they can't be changed at runtime. If 'true', the 
   202         *  bits will be configured as 'RUNTIME_OFF' or 'RUNTIME_ON'.
   203         */
   204        metaonly config Bool sysbiosTaskLoggingRuntimeControl = true;
   205        
   206        /*!
   207         *  ======== sysbiosLoggerSize ========
   208         *  Size (in MAUs) of the logger used for the SYS/BIOS modules' Log events.
   209         *
   210         *  To specify the size in number of records, instead of MAUs, use the
   211         *  following code:
   212         *  
   213         *  @p(code)
   214         *  var Agent = xdc.useModule('ti.sysbios.rta.Agent');
   215         *  var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf');
   216         *  
   217         *  // Set the SYS/BIOS logger size to 50 records.
   218         *  Agent.sysbiosLoggerSize = 50 * LoggerBuf.Entry.$sizeof();
   219         *
   220         *  // Print the final size to see how much memory is used.
   221         *  print("SYS/BIOS Logger Size (MAUs): " + Agent.sysbiosLoggerSize);
   222         *  @p
   223         */
   224        metaonly config SizeT sysbiosLoggerSize = 4096;
   225        
   226        /*!
   227         *  ======== sysbiosLoggerBufferSection ========
   228         *  Section to place the SYS/BIOS LoggerBuf's buffer.
   229         */
   230        metaonly config String sysbiosLoggerBufferSection = "[Default]";
   231        
   232        /*!
   233         *  ======== configureSystemLog ========
   234         *  Deprecated.
   235         */
   236        metaonly config Bool configureSystemLog = true;
   237        
   238        /*!
   239         *  @_nodoc
   240         *  ======== numSystemRecords ========
   241         *  Deprecated.
   242         */
   243        metaonly config Int numSystemRecords = 64;
   244        
   245        /*!
   246         *  @_nodoc
   247         *  ======== configureLoadLog ========
   248         *  Deprecated.
   249         */
   250        metaonly config Bool configureLoadLog = true;
   251        
   252        /*!
   253         *  @_nodoc
   254         *  ======== numLoadRecords ========
   255         *  Deprecated.
   256         */
   257        metaonly config Int numLoadRecords = 64;
   258        
   259        /*!
   260         *  @_nodoc
   261         *  ======== periodInMs ========
   262         *  This configuration parameter is no longer supported since the I/O part
   263         *  of the Agent is no longer supported.
   264         */
   265        metaonly config Int periodInMs = 100;
   266        
   267        /*!
   268         *  @_nodoc
   269         *  ======== priority ========
   270         *  This configuration parameter is no longer supported since the I/O part
   271         *  of the Agent is no longer supported.
   272         */
   273        metaonly config Int priority = 1;
   274        
   275        /*!
   276         *  @_nodoc
   277         *  ======== agentStackSize ========
   278         *  This configuration parameter is no longer supported since the I/O part
   279         *  of the Agent is no longer supported.
   280         */
   281        metaonly config SizeT agentStackSize = 1024;
   282        
   283        /*!
   284         *  @_nodoc
   285         *  ======== agentStackSection ========
   286         *  This configuration parameter is no longer supported since the I/O part
   287         *  of the Agent is no longer supported.
   288         */
   289        metaonly config String agentStackSection = "[Default]";
   290        
   291        /*!
   292         *  @_nodoc
   293         *  ======== transferBufferSize ========
   294         *  This configuration parameter is no longer supported since the I/O part
   295         *  of the Agent is no longer supported.
   296         */
   297        config Int transferBufferSize = 85;
   298        
   299        /*!
   300         *  @_nodoc
   301         *  ======== transferBufferSection ========
   302         *  This configuration parameter is no longer supported since the I/O part
   303         *  of the Agent is no longer supported.
   304         */
   305        metaonly config String transferBufferSection;
   306        
   307        /*! 
   308         *  @_nodoc
   309         *  ======== addSupportLogger ========
   310         *  Whether to include the SupportLogger module.
   311         *
   312         *  The SupportLogger module logs timestamp information for use by the
   313         *  RTA tools on the host side.
   314         *
   315         *  Default is true.
   316         */
   317        metaonly config Bool addSupportLogger = true;
   318        
   319        /*!
   320         *  @_nodoc
   321         *  ======== supportControl ========
   322         *  This configuration parameter is no longer supported since the I/O part
   323         *  of the Agent is no longer supported.
   324         */
   325        metaonly config Bool supportControl = true;
   326        
   327        /*!
   328         *  @_nodoc
   329         *  ======== Transport ========
   330         *  The Transport enum lists the transports which the Agent is able
   331         *  to automatically configure. See the {@link #transport} config parameter.
   332         */
   333        metaonly enum Transport {
   334            Transport_RTDX,  //! RTDX (no longer supported).
   335            Transport_STOP_MODE_ONLY, //! Stop Mode Only
   336            Transport_USER  //! (not supported)
   337        };
   338    
   339        /*!
   340         *  @_nodoc
   341         *  ======== transport ========
   342         *  This configuration parameter is no longer supported since the I/O part
   343         *  of the Agent is no longer supported.
   344         */
   345        metaonly config Transport transport = Transport_STOP_MODE_ONLY;
   346        
   347        /*!
   348         *  @_nodoc
   349         *  ======== dataStream ========
   350         *  This configuration parameter is no longer supported since the I/O part
   351         *  of the Agent is no longer supported.
   352         */
   353        metaonly config String dataStream = "/rtdx0";
   354        
   355        /*!
   356         *  @_nodoc
   357         *  ======== commandStream ========
   358         *  This configuration parameter is no longer supported since the I/O part
   359         *  of the Agent is no longer supported.
   360         */
   361        metaonly config String commandStream = "/rtdx1";
   362    
   363        /*!
   364         *  @_nodoc
   365         *  ======== responseStream ========
   366         *  This configuration parameter is no longer supported since the I/O part
   367         *  of the Agent is no longer supported.
   368         */
   369        config String responseStream = "/rtdx1";
   370    }
   371    /*
   372     *  @(#) ti.sysbios.rta; 2, 0, 0, 0,345; 2-24-2012 11:41:08; /db/vtree/library/trees/avala/avala-q28x/src/ xlibrary
   373    
   374     */
   375