Initial version
authorMing Wei <mwei@ti.com>
Fri, 10 Jun 2016 21:33:46 +0000 (16:33 -0500)
committerMing Wei <mwei@ti.com>
Fri, 10 Jun 2016 21:33:46 +0000 (16:33 -0500)
Signed-off-by: Ming Wei <mwei@ti.com>
137 files changed:
Version.h [new file with mode: 0644]
Version.xdc [new file with mode: 0644]
asnr.h [new file with mode: 0644]
gel/DA830_DSK_USB560M.ccxml [new file with mode: 0644]
gel/dskda830_dsp.gel [new file with mode: 0644]
gel/mics/y16L8g3m7090_1.pcm [new file with mode: 0644]
gel/mics/y16L8g3m7090_2.pcm [new file with mode: 0644]
gel/mics/y16L8g3m7090_3.pcm [new file with mode: 0644]
gel/mics/y16L8g3m7090_4.pcm [new file with mode: 0644]
gel/mics/y16L8g3m7090_5.pcm [new file with mode: 0644]
gel/mics/y16L8g3m7090_6.pcm [new file with mode: 0644]
gel/mics/y16L8g3m7090_7.pcm [new file with mode: 0644]
gel/mics/y16L8g3m7090_8.pcm [new file with mode: 0644]
hlc.h [new file with mode: 0644]
lib/vpe_a.a64P [new file with mode: 0644]
lib/vpe_a.a64P_size.txt [new file with mode: 0644]
lib/vpe_a.a64Pe [new file with mode: 0644]
lib/vpe_a.a64Pe_size.txt [new file with mode: 0644]
lib/vpe_a.ae64P [new file with mode: 0644]
lib/vpe_a.ae64Pe [new file with mode: 0644]
lib/vpe_c.a64P [new file with mode: 0644]
lib/vpe_c.a64P_size.txt [new file with mode: 0644]
lib/vpe_c.a64Pe [new file with mode: 0644]
lib/vpe_c.a64Pe_size.txt [new file with mode: 0644]
lib/vpe_c.ae64P [new file with mode: 0644]
lib/vpe_c.ae64Pe [new file with mode: 0644]
lib/vpe_cm.a64P [new file with mode: 0644]
lib/vpe_cm.a64P_size.txt [new file with mode: 0644]
lib/vpe_cm.a64Pe [new file with mode: 0644]
lib/vpe_cm.a64Pe_size.txt [new file with mode: 0644]
lib/vpe_cm.ae64P [new file with mode: 0644]
lib/vpe_cm.ae64Pe [new file with mode: 0644]
package.xdc [new file with mode: 0644]
package.xs [new file with mode: 0644]
package/.vers_b150 [new file with mode: 0644]
package/.vers_g180 [new file with mode: 0644]
package/.vers_r170 [new file with mode: 0644]
package/.xdc-y50 [new file with mode: 0644]
package/build.cfg [new file with mode: 0644]
package/package.bld.xml [new file with mode: 0644]
package/package.defs.h [new file with mode: 0644]
package/package.rel.xml [new file with mode: 0644]
package/package_ti.mas.vpe.c [new file with mode: 0644]
package/ti.mas.vpe.ccs [new file with mode: 0644]
package/ti.mas.vpe.sch [new file with mode: 0644]
package/ti_mas_vpe.class [new file with mode: 0644]
package/ti_mas_vpe.java [new file with mode: 0644]
pcm.h [new file with mode: 0644]
readme.txt [new file with mode: 0644]
sfc.h [new file with mode: 0644]
slm.h [new file with mode: 0644]
snl.h [new file with mode: 0644]
svd.h [new file with mode: 0644]
test/Makedocs.mk [new file with mode: 0644]
test/ccsProjects/test_rel_c64Ple_C64PLE_LE_COFF/.ccsproject [new file with mode: 0644]
test/ccsProjects/test_rel_c64Ple_C64PLE_LE_COFF/.cproject [new file with mode: 0644]
test/ccsProjects/test_rel_c64Ple_C64PLE_LE_COFF/.launches/test_rel_c64Ple_C64PLE_LE_COFF.launch [new file with mode: 0644]
test/ccsProjects/test_rel_c64Ple_C64PLE_LE_COFF/.project [new file with mode: 0644]
test/ccsProjects/test_rel_c64Ple_C64PLE_LE_COFF/.settings/org.eclipse.cdt.codan.core.prefs [new file with mode: 0644]
test/ccsProjects/test_rel_c64Ple_C64PLE_LE_COFF/.settings/org.eclipse.cdt.debug.core.prefs [new file with mode: 0644]
test/ccsProjects/test_rel_c64Ple_C64PLE_LE_COFF/.settings/org.eclipse.core.resources.prefs [new file with mode: 0644]
test/ccsProjects/test_rel_c64Ple_C64PLE_LE_COFF/macros.ini_initial [new file with mode: 0644]
test/ccsProjects/test_rel_ce64Ple_CE64PLE_LE_ELF/.ccsproject [new file with mode: 0644]
test/ccsProjects/test_rel_ce64Ple_CE64PLE_LE_ELF/.cproject [new file with mode: 0644]
test/ccsProjects/test_rel_ce64Ple_CE64PLE_LE_ELF/.launches/test_rel_ce64Ple_CE64PLE_LE_ELF.launch [new file with mode: 0644]
test/ccsProjects/test_rel_ce64Ple_CE64PLE_LE_ELF/.project [new file with mode: 0644]
test/ccsProjects/test_rel_ce64Ple_CE64PLE_LE_ELF/.settings/org.eclipse.cdt.codan.core.prefs [new file with mode: 0644]
test/ccsProjects/test_rel_ce64Ple_CE64PLE_LE_ELF/.settings/org.eclipse.cdt.debug.core.prefs [new file with mode: 0644]
test/ccsProjects/test_rel_ce64Ple_CE64PLE_LE_ELF/.settings/org.eclipse.core.resources.prefs [new file with mode: 0644]
test/ccsProjects/test_rel_ce64Ple_CE64PLE_LE_ELF/Debug/test_rel_ce64Ple_CE64PLE_LE_ELF.map [new file with mode: 0644]
test/ccsProjects/test_rel_ce64Ple_CE64PLE_LE_ELF/Debug/test_rel_ce64Ple_CE64PLE_LE_ELF.out [new file with mode: 0644]
test/ccsProjects/test_rel_ce64Ple_CE64PLE_LE_ELF/macros.ini_initial [new file with mode: 0644]
test/ccsmake.mk [new file with mode: 0644]
test/docs/doxygen/Doxyfile [new file with mode: 0644]
test/docs/doxygen/VPE_TEST.chm [new file with mode: 0644]
test/docs/doxygen/doxyfile.xdt [new file with mode: 0644]
test/docs/doxygen/doxygen.h [new file with mode: 0644]
test/lnkr/c64Pbe/test_rel_c64Pbe.cmd [new file with mode: 0644]
test/lnkr/c64Pbe/test_rel_c64Pbe.x64Pe [new file with mode: 0644]
test/lnkr/c64Pbe/test_rel_c64Pbe.x64Pe.mk [new file with mode: 0644]
test/lnkr/c64Pbe/test_rel_c64Pbe.xdt [new file with mode: 0644]
test/lnkr/c64Pbe/test_rel_c64Pbe_ccs.cmd [new file with mode: 0644]
test/lnkr/c64Ple/test_rel_c64Ple.cmd [new file with mode: 0644]
test/lnkr/c64Ple/test_rel_c64Ple.x64P [new file with mode: 0644]
test/lnkr/c64Ple/test_rel_c64Ple.x64P.mk [new file with mode: 0644]
test/lnkr/c64Ple/test_rel_c64Ple.xdt [new file with mode: 0644]
test/lnkr/c64Ple/test_rel_c64Ple_ccs.cmd [new file with mode: 0644]
test/lnkr/ce64Pbe/test_rel_ce64Pbe.cmd [new file with mode: 0644]
test/lnkr/ce64Pbe/test_rel_ce64Pbe.xdt [new file with mode: 0644]
test/lnkr/ce64Pbe/test_rel_ce64Pbe.xe64Pe [new file with mode: 0644]
test/lnkr/ce64Pbe/test_rel_ce64Pbe.xe64Pe.mk [new file with mode: 0644]
test/lnkr/ce64Pbe/test_rel_ce64Pbe_ccs.cmd [new file with mode: 0644]
test/lnkr/ce64Ple/test_rel_ce64Ple.cmd [new file with mode: 0644]
test/lnkr/ce64Ple/test_rel_ce64Ple.xdt [new file with mode: 0644]
test/lnkr/ce64Ple/test_rel_ce64Ple.xe64P [new file with mode: 0644]
test/lnkr/ce64Ple/test_rel_ce64Ple.xe64P.mk [new file with mode: 0644]
test/lnkr/ce64Ple/test_rel_ce64Ple_ccs.cmd [new file with mode: 0644]
test/logs/cycles.txt [new file with mode: 0644]
test/makefile [new file with mode: 0644]
test/package.bld [new file with mode: 0644]
test/package.xdc [new file with mode: 0644]
test/package/.vers_b150 [new file with mode: 0644]
test/package/.vers_g180 [new file with mode: 0644]
test/package/.vers_r170 [new file with mode: 0644]
test/package/.xdc-y50 [new file with mode: 0644]
test/package/build.cfg [new file with mode: 0644]
test/package/package.bld.xml [new file with mode: 0644]
test/package/package.defs.h [new file with mode: 0644]
test/package/package.rel.xml [new file with mode: 0644]
test/package/package_ti.mas.vpe.test.c [new file with mode: 0644]
test/package/projects/test_rel_c55l_c55l.xml [new file with mode: 0644]
test/package/projects/test_rel_c64Pbe_c64Pbe.xml [new file with mode: 0644]
test/package/projects/test_rel_c64Ple_c64Ple.xml [new file with mode: 0644]
test/package/projects/test_rel_ce64Pbe_ce64Pbe.xml [new file with mode: 0644]
test/package/projects/test_rel_ce64Ple_ce64Ple.xml [new file with mode: 0644]
test/package/ti.mas.vpe.test.ccs [new file with mode: 0644]
test/package/ti.mas.vpe.test.sch [new file with mode: 0644]
test/package/ti_mas_vpe_test.class [new file with mode: 0644]
test/package/ti_mas_vpe_test.java [new file with mode: 0644]
test/src/arm/nrbufst.h [new file with mode: 0644]
test/src/bf_asnr_mss_vau.c [new file with mode: 0644]
test/src/bf_asnr_mss_vau.h [new file with mode: 0644]
test/src/c55/nrbufst.h [new file with mode: 0644]
test/src/c64/nrbufst.h [new file with mode: 0644]
test/src/mem.c [new file with mode: 0644]
test/src/mem.h [new file with mode: 0644]
test/src/siubf.h [new file with mode: 0644]
test/src/siuloc.h [new file with mode: 0644]
test/src/siuport.h [new file with mode: 0644]
test/src/sysbfflt.c [new file with mode: 0644]
test/src/sysbfflt.h [new file with mode: 0644]
test/src/vausim.c [new file with mode: 0644]
test/src/vausim.h [new file with mode: 0644]
test/src/vpesim.h [new file with mode: 0644]
test/test.cfg [new file with mode: 0644]
test/vectors/outVauDecisions.txt [new file with mode: 0644]
vpe_3_6_0_0_release_notes.html [new file with mode: 0644]

diff --git a/Version.h b/Version.h
new file mode 100644 (file)
index 0000000..0643c61
--- /dev/null
+++ b/Version.h
@@ -0,0 +1,98 @@
+/*
+ *  Do not modify this file; it is automatically 
+ *  generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-t35
+ */
+
+/*
+ * ======== GENERATED SECTIONS ========
+ *     
+ *     PROLOGUE
+ *     INCLUDES
+ *     EPILOGUE
+ *     PREFIX ALIASES
+ */
+
+
+/*
+ * ======== PROLOGUE ========
+ */
+
+#ifndef ti_mas_vpe_Version__include
+#define ti_mas_vpe_Version__include
+
+#ifndef __nested__
+#define __nested__
+#define ti_mas_vpe_Version__top__
+#endif
+
+#ifdef __cplusplus
+#define __extern extern "C"
+#else
+#define __extern extern
+#endif
+
+#define ti_mas_vpe_Version___VERS 150
+
+
+/*
+ * ======== INCLUDES ========
+ */
+
+
+
+/*
+ * ======== AUXILIARY DEFINITIONS ========
+ */
+
+/* MAJOR */
+#define ti_mas_vpe_Version_MAJOR (3)
+
+/* MINOR */
+#define ti_mas_vpe_Version_MINOR (6)
+
+/* XVERTICAL */
+#define ti_mas_vpe_Version_XVERTICAL (0)
+
+/* PATCH */
+#define ti_mas_vpe_Version_PATCH (0)
+
+/* BUILD */
+#define ti_mas_vpe_Version_BUILD (0)
+
+/* QUALITY */
+#define ti_mas_vpe_Version_QUALITY (3)
+
+/* BTYPE */
+#define ti_mas_vpe_Version_BTYPE (0)
+
+/* WIDTH */
+#define ti_mas_vpe_Version_WIDTH (0)
+
+/*
+ * ======== EPILOGUE ========
+ */
+
+#ifdef ti_mas_vpe_Version__top__
+#undef __nested__
+#endif
+
+#endif /* ti_mas_vpe_Version__include */
+
+/*
+ * ======== PREFIX ALIASES ========
+ */
+
+#if !defined(__nested__) && !defined(ti_mas_vpe_Version__nolocalnames)
+
+/* module prefix */
+#define Version_MAJOR      ti_mas_vpe_Version_MAJOR
+#define Version_MINOR      ti_mas_vpe_Version_MINOR
+#define Version_XVERTICAL  ti_mas_vpe_Version_XVERTICAL
+#define Version_PATCH      ti_mas_vpe_Version_PATCH
+#define Version_BUILD      ti_mas_vpe_Version_BUILD 
+#define Version_QUALITY    ti_mas_vpe_Version_QUALITY 
+#define Version_BTYPE      ti_mas_vpe_Version_BTYPE 
+#define Version_WIDTH      ti_mas_vpe_Version_WIDTH
+#endif
diff --git a/Version.xdc b/Version.xdc
new file mode 100644 (file)
index 0000000..5f3899f
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ *  DO NOT MODIFY THIS FILE
+ *  This file is generated by this package's build script (package.bld).
+ */
+/*!
+ *  ======== Version ========
+ *  Version for the ti.mas.vpe package
+ */
+metaonly module Version inherits ti.mas.swtools.IVersion2 {
+
+    /*
+     *  ======== MAJOR ========
+     *  Major version number of ti.mas.vpe
+     */
+    override const UInt16 MAJOR = 3;
+
+    /*
+     *  ======== MINOR ========
+     *  Minor version number of ti.mas.vpe
+     */
+    override const UInt16 MINOR = 6;
+
+    /*
+     *  ======== PATCH ========
+     *  Patch level of ti.mas.vpe
+     */
+    override const UInt16 PATCH = 0;
+    
+    /*
+     *  ======== BUILD ========
+     *  Build Number of ti.mas.vpe
+     */
+    const UInt16 BUILD = 0;
+    
+    /*
+     *  ======== QUALITY ========
+     *  Quality level of ti.mas.vpe
+     */
+    override const UInt16 QUALITY = 3;
+
+    /*
+     *  ======== BTYPE ========
+     *  Built type of ti.mas.vpe
+     */
+    override const UInt16 BTYPE = 0;
+
+  /*
+     *  ======== WIDTH ========
+     *  Minimum print width for ti.mas.vpe
+     */
+    override const UInt16 WIDTH = 0;
+
+  /*
+     *  ======== PACKAGING STD COMPLIANCE ========
+     *  Packaging Standard Compliance field
+     */
+    const UInt16 PKGSTD = 2;    
+    
+}
diff --git a/asnr.h b/asnr.h
new file mode 100644 (file)
index 0000000..70e18c0
--- /dev/null
+++ b/asnr.h
@@ -0,0 +1,523 @@
+/******************************************************************************\r
+ * FILE PURPOSE: Adaptive Spectral Noise Reduction (ASNR) module\r
+ *               \r
+ ******************************************************************************\r
+ * FILE NAME: asnr.h  \r
+ *\r
+ * DESCRIPTION: Implements adaptive noise reduction in frequency domain. \r
+ *\r
+ *        Copyright (c) 2007 – 2013 Texas Instruments Incorporated                \r
+ *                                                                                \r
+ *              All rights reserved not granted herein.                           \r
+ *                                                                                \r
+ *                         Limited License.                                       \r
+ *                                                                                \r
+ *  Texas Instruments Incorporated grants a world-wide, royalty-free,             \r
+ *  non-exclusive license under copyrights and patents it now or hereafter owns   \r
+ *  or controls to make, have made, use, import, offer to sell and sell           \r
+ *  ("Utilize") this software subject to the terms herein.  With respect to the   \r
+ *  foregoing patent license, such license is granted solely to the extent that   \r
+ *  any such patent is necessary to Utilize the software alone.  The patent       \r
+ *  license shall not apply to any combinations which include this software,      \r
+ *  other than combinations with devices manufactured by or for TI (“TI           \r
+ *  Devices”).  No hardware patent is licensed hereunder.                         \r
+ *                                                                                \r
+ *  Redistributions must preserve existing copyright notices and reproduce this   \r
+ *  license (including the above copyright notice and the disclaimer and (if      \r
+ *  applicable) source code license limitations below) in the documentation       \r
+ *  and/or other materials provided with the distribution                         \r
+ *                                                                                \r
+ *  Redistribution and use in binary form, without modification, are permitted    \r
+ *  provided that the following conditions are met:                               \r
+ *                                                                                \r
+ *    *  No reverse engineering, decompilation, or disassembly of this software   \r
+ *  is permitted with respect to any software provided in binary form.            \r
+ *                                                                                \r
+ *    *  any redistribution and use are licensed by TI for use only with TI       \r
+ *  Devices.                                                                      \r
+ *                                                                                \r
+ *    *  Nothing shall obligate TI to provide you with source code for the        \r
+ *  software licensed and provided to you in object code.                         \r
+ *                                                                                \r
+ *  If software source code is provided to you, modification and redistribution   \r
+ *  of the source code are permitted provided that the following conditions are   \r
+ *  met:                                                                          \r
+ *                                                                                \r
+ *    *  any redistribution and use of the source code, including any resulting   \r
+ *  derivative works, are licensed by TI for use only with TI Devices.            \r
+ *                                                                                \r
+ *    *  any redistribution and use of any object code compiled from the source   \r
+ *  code and any resulting derivative works, are licensed by TI for use only      \r
+ *  with TI Devices.                                                              \r
+ *                                                                                \r
+ *  Neither the name of Texas Instruments Incorporated nor the names of its       \r
+ *  suppliers may be used to endorse or promote products derived from this        \r
+ *  software without specific prior written permission.                           \r
+ *                                                                                \r
+ *  DISCLAIMER.                                                                   \r
+ *                                                                                \r
+ *  THIS SOFTWARE IS PROVIDED BY TI AND TI’S LICENSORS "AS IS" AND ANY EXPRESS    \r
+ *  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED             \r
+ *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE        \r
+ *  DISCLAIMED. IN NO EVENT SHALL TI AND TI’S LICENSORS BE LIABLE FOR ANY         \r
+ *  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    \r
+ *  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR            \r
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER    \r
+ *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT            \r
+ *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY     \r
+ *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH   \r
+ *  DAMAGE.                                                                       \r
+ *****************************************************************************/\r
+#ifndef _ASNR_H\r
+#define _ASNR_H\r
+\r
+/**\r
+ *  @file   asnr.h\r
+ *  @brief  Contains external API for the Adaptive Spectral Noise Reduction \r
+ *          (ASNR) module.\r
+ *\r
+ */\r
+\r
+/* System include files and utilities' APIs */\r
+#include <ti/mas/types/types.h>               /* DSP types                   */\r
+#include <ti/mas/util/ecomem.h>               /* memory descriptor structure */\r
+\r
+/* Define ASNR Module as a master group in Doxygen format and add all ASNR API\r
+   definitions to this group. */\r
+/** @defgroup asnr_module ASNR Module API\r
+ *  @{\r
+ */\r
+/** @} */\r
+\r
+/** @defgroup asnr_api_functions ASNR Functions\r
+ *  @ingroup asnr_module\r
+ */\r
+\r
+/** @defgroup asnr_api_structures ASNR Data Structures\r
+ *  @ingroup asnr_module\r
+ */\r
+\r
+/** @defgroup asnr_api_constants ASNR Constants (enum's and define's)\r
+ *  @ingroup asnr_module\r
+ */\r
+\r
+/** @defgroup asnr_api_return_codes ASNR API Function Return Codes\r
+ *  @ingroup asnr_api_constants\r
+ *  @{\r
+ *\r
+ *  Error codes returned by ASNR API functions.\r
+ */\r
+/*@{*/\r
+enum {\r
+  asnr_NOERR              = 0,  /**< success, no error                        */\r
+  asnr_ERR_NOMEMORY       = 1,  /**< supplied memory are not enough           */\r
+  asnr_ERR_NOTOPENED      = 2,  /**< asnr instance has not been opened yet    */\r
+  asnr_ERR_NOTCLOSED      = 3,  /**< asnr instance has not been closed yet    */\r
+  asnr_ERR_INVALIDPAR     = 4,  /**< configuration parameter is invalid       */\r
+  asnr_ERR_INVALIDNBUFS   = 5   /**< incorrect number of memory buffers       */\r
+};\r
+/*@}*/\r
+/** @} */\r
+\r
+\r
+/** @defgroup ASNR_samp_rate ASNR Sampling Rates Definitions\r
+ *  @ingroup asnr_api_constants\r
+ *  @{\r
+ *\r
+ *  Sampling rates that are supported by ASNR. Used to define sampling_rate\r
+ *  of \ref asnrOpenConfig_t, asnrSizeConfig_t, and asnrControl_t.\r
+*/\r
+/*@{*/\r
+enum {\r
+  asnr_SRATE_8K  = 0,                  /**<  8kHz */\r
+  asnr_SRATE_16K = 1                   /**< 16kHz */\r
+};\r
+\r
+\r
+typedef tint asnrSrate_t;       /**< used by \ref asnrOpenConfig_t,\r
+                                     asnrSizeConfig_t, and asnrControl_t   */\r
+/*@}*/\r
+/** @} */\r
+\r
+/**\r
+ *  @ingroup asnr_api_structures\r
+ *\r
+ *  @brief Configuration structure for asnrGetSizes()\r
+ *  \brief This structure specifies the maximum sampling rate. It is also\r
+ *         part of structure asnrNewConfig_s used by asnrNew().\r
+ */\r
+typedef struct asnrSizeConfig_s {\r
+\r
+  asnrSrate_t  max_sampling_rate; /**< Maximum sampling rate of the system:\r
+                                       8kHz:  set to asnr_SRATE_8K.\r
+                                       16kHz: set to asnr_SRATE_16K.   */\r
+} asnrSizeConfig_t;\r
+\r
+/**\r
+ *  @ingroup asnr_api_structures\r
+ *\r
+ *  @brief Configuration structure for asnrNew()\r
+ *  \brief This structure is used for creating a new ASNR instance through\r
+ *         function asnrNew().\r
+ */\r
+typedef struct asnrNewConfig_s {\r
+  void  *handle;             /**< handle can be used by a user to identify the \r
+                                  ASNR that communicates to it, e.g. when a \r
+                                  debug call out function is called by a certain \r
+                                  ASNR instance.                              */\r
+  asnrSizeConfig_t  sizeCfg; /**< size configration   */\r
+} asnrNewConfig_t;\r
+\r
+\r
+/**\r
+ *  @ingroup asnr_api_structures\r
+ *\r
+ *  @brief Configuration structure for asnrOpen()\r
+ *  \brief This structure contains ASNR parameters that must be configured \r
+ *         through asnrOpen(). \r
+ */\r
+typedef struct asnrOpenConfig_s {\r
+\r
+  asnrSrate_t  sampling_rate; /**< Sampling rate of the system:\r
+                                   8kHz:  set to asnr_SRATE_8K.\r
+                                   16kHz: set to asnr_SRATE_16K.        */\r
+} asnrOpenConfig_t;\r
+\r
+\r
+/**\r
+ *  @ingroup asnr_api_structures\r
+ *\r
+ *  @brief Configuration structure for asnrControl()\r
+ *  \brief This structure contains ASNR parameters that can be configured \r
+ *         through asnrControl(). \r
+ */\r
+typedef struct asnrControl_s {\r
+  tuint valid_bitfield;  /**< To indicate which parameters to be changed */\r
+#define asnr_CTL_VALID_ENABLE           0x0001\r
+#define asnr_CTL_VALID_SAMP_RATE        0x0002\r
+#define asnr_CTL_VALID_DELAY            0x0004\r
+#define asnr_CTL_VALID_BAND_BIN1        0x0008\r
+#define asnr_CTL_VALID_BAND_BIN2        0x0010\r
+#define asnr_CTL_VALID_BAND1_MAX_ATTEN  0x0020\r
+#define asnr_CTL_VALID_BAND2_MAX_ATTEN  0x0040\r
+#define asnr_CTL_VALID_BAND3_MAX_ATTEN  0x0080\r
+#define asnr_CTL_VALID_SIG_UPD_RATE_MIN 0x0100\r
+#define asnr_CTL_VALID_SIG_UPD_RATE_MAX 0x0200\r
+#define asnr_CTL_VALID_NOISE_THRESH     0x0400\r
+#define asnr_CTL_VALID_NOISE_HANGOVER   0x0800\r
+\r
+  tint enable;     /**< <B>Enable flag:</B> 0 - disable ASNR, 1 - enable ASNR.*/\r
+#define asnr_DISABLE 0  \r
+#define asnr_ENABLE  1\r
+  \r
+  tint samp_rate;  /**< <B>Sampling rate:</B> asnr_SRATE_8K or asnr_SRATE_16K.*/\r
+  \r
+  tint delay;      /**< <B>Signal delay:</B>\r
+       This parameter specifies signal delay in msecs, which determines the  \r
+       shape of FFT windowing function. It may be 3, 4, 5, or 6 (ms). ASNR may \r
+       produce less unwanted noise and speech artifacts with a longer delay. \r
+       Default is 5. \r
+       *\r
+       \remark If this parameter is out of the valid range specified by\r
+              [\ref asnr_DELAY_LOWER_LIMIT \ref asnr_DELAY_UPPER_LIMIT],  \r
+              asnrControl() will take no action and return an error.          */\r
+#define asnr_DELAY_LOWER_LIMIT 3\r
+#define asnr_DELAY_UPPER_LIMIT 6\r
+\r
+  tint band_bin1;  /**< <B>Frequency bands boundary bin 1:</B>\r
+       This parameter defines the first boundary of frequency bands for which \r
+       different amount of noise attenuation is applied. The corresponding \r
+       frequency is (parameter value)*62.5Hz. Default is 10 (625Hz).\r
+       *\r
+       \remark If this parameter is out of the valid range specified by\r
+       [\ref asnr_BAND_BIN_LOWER_LIMIT \ref asnr_BAND_BIN_UPPER_LIMIT_8K] for 8kHz, \r
+          or [\ref asnr_BAND_BIN_LOWER_LIMIT \ref asnr_BAND_BIN_UPPER_LIMIT_16K] \r
+          for 16kHz, asnrControl() will take no action and return an error.       */\r
+#define asnr_BAND_BIN_LOWER_LIMIT          1\r
+#define asnr_BAND_BIN_UPPER_LIMIT_8K      63\r
+#define asnr_BAND_BIN_UPPER_LIMIT_16K    127\r
+\r
+  tint band_bin2;  /**< <B>Frequency bands boundary bin 2:</B> \r
+       This parameter defines the second boundary of frequency bands for which \r
+       different amount of noise attenuation is applied. It must be larger than\r
+       band_bin1. Default is 32 (2000Hz). \r
+       *\r
+       \remark If this parameter is out of the valid range specified by\r
+       [\ref asnr_BAND_BIN_LOWER_LIMIT \ref asnr_BAND_BIN_UPPER_LIMIT_8K] for 8kHz, \r
+          or [\ref asnr_BAND_BIN_LOWER_LIMIT \ref asnr_BAND_BIN_UPPER_LIMIT_16K],  \r
+       or if it is smaller than band_bin1, asnrControl() will take no action and \r
+          return an error.                                                       */\r
+  \r
+  Fract band1_max_atten; /**< <B>Maximum attenuation in band 1:</B>\r
+        </B> This parameter specifies the maximum attenuation (dB) that ASNR may \r
+        apply for frequency band 1 - [0, band_bin1-1]*62.5 Hz. Default is 9(dB).       \r
+        *\r
+        \remark If this parameter is out of the valid range specified by\r
+          [\ref asnr_MAX_ATTEN_LOWER_LIMIT \ref asnr_MAX_ATTEN_UPPER_LIMIT], \r
+          asnrControl() will take no action and return an error.              */\r
+#define asnr_MAX_ATTEN_LOWER_LIMIT   0\r
+#define asnr_MAX_ATTEN_UPPER_LIMIT  90\r
+  \r
+  Fract band2_max_atten; /**< <B>Maximum attenuation in band 2:</B>\r
+        </B> This parameter specifies the maximum attenuation (dB) that ASNR may \r
+        apply for frequency band 2 - [band_bin1, band_bin2-1]*62.5 Hz. \r
+        Default is 9(dB).       \r
+        *\r
+        \remark If this parameter is out of the valid range specified by\r
+          [\ref asnr_MAX_ATTEN_LOWER_LIMIT \ref asnr_MAX_ATTEN_UPPER_LIMIT], \r
+          asnrControl() will take no action and return an error.              */\r
+          \r
+  Fract band3_max_atten; /**< <B>Maximum attenuation in band 3:</B>\r
+        </B> This parameter specifies the maximum attenuation (dB) that ASNR may \r
+        apply for frequency band 3 - [band_bin2*62.5Hz, Nyquist]. \r
+        Default is 9(dB).       \r
+        *\r
+        \remark If this parameter is out of the valid range specified by\r
+          [\ref asnr_MAX_ATTEN_LOWER_LIMIT \ref asnr_MAX_ATTEN_UPPER_LIMIT], \r
+          asnrControl() will take no action and return an error.              */\r
+\r
+  Fract sig_upd_rate_max; /**< <B>Maximum signal update rate:</B>\r
+        ASNR adaptive speech signal estimate inverse update rate upper bound.\r
+        The actual inverse update rate is varied internally by ASNR between \r
+        the configured maximum (this parameter) and mimimum constraints. A higher \r
+        inverse update rate reduces frame to frame changes yielding greater \r
+        temporal smoothing and less time varying ASNR distortion artifacts during \r
+        speech or noise. A lower inverse update rate yields quicker speech onset \r
+        "breaking in" to remove ASNR attenuation. \r
+        *\r
+        This parameter is in Q.15 format. Default is 31129 (0.95).            \r
+        *\r
+        \remark If this parameter is smaller than sig_upd_rate_min, asnrControl() \r
+        will take no action and return an error.                              */\r
+\r
+  Fract sig_upd_rate_min; /**< <B>Minimum signal update rate:</B> \r
+        This is the minimum constraint on the ASNR adaptive speech signal estimate \r
+        inverse update rate.\r
+        *\r
+        This parameter is in Q.15 format. Default is 29818 (0.91).            */\r
+\r
+  tint noise_thresh;    /**< <B>Noise threshold:</B>\r
+       ASNR will not reduce noise below this level, and when noise is already \r
+       lower than this level, ASNR will not apply any attenuation to the signal. \r
+       ASNR spectral noise estimate will continue to update even if Tx signal \r
+       is below this noise threshold.\r
+       *\r
+       This parameter is in dBm0. Default is -75dBm0. Valid range is specified \r
+       by [\ref asnr_NOISE_THR_LOWER_LIMIT, \ref asnr_NOISE_THR_UPPER_LIMIT]. If \r
+       it is outside of this range, asnrControl() will take no action and return \r
+          an error.                                                              */\r
+#define asnr_NOISE_THR_LOWER_LIMIT (-80)\r
+#define asnr_NOISE_THR_UPPER_LIMIT (-40)\r
+\r
+  tint noise_hangover;  /**< <B>Noise hangover:</B>\r
+       When noise is lower than parameter noise_thresh, ASNR will not apply any \r
+       attenuation to the signal. After noise goes above noise_thresh, ASNR \r
+       waits a period of time specified by this parameter before applying \r
+       attenuation again. \r
+       *\r
+       This parameter is in 10 msec units. Default is 150 (1.5 seconds).      */ \r
+\r
+} asnrControl_t;\r
\r
+\r
+/**\r
+ *  @ingroup asnr_api_functions\r
+ *\r
+ *  @brief Function asnrGetSizes() obtains the memory requirements of an ASNR\r
+ *         instance.\r
+ *\r
+ *  @param[in]   cfg     Pointer to a size configuration structure.\r
+ *  @param[out]  nbufs   Memory location to store the returned number of buffers\r
+ *                       required by the instance.\r
+ *  @param[out]  bufs    Memory location to store the returned address of the\r
+ *                       vector of memory buffer descriptions required by the\r
+ *                       instance.\r
+ *  @remark Type ecomemBuffer_t is defined in ecomem.h of util package.\r
+ *\r
+ *  @retval              ASNR error code. \r
+ *  @verbatim\r
+    error code               description\r
+    asnr_NOERR                 success\r
+    asnr_ERR_INVALIDPAR        max_sampling_rate of asnrSizeConfig_t is neither \r
+                               asnr_SRATE_8K nor asnr_SRATE_16K. \r
+    \endverbatim\r
+ *\r
+ */\r
+\r
+tint asnrGetSizes(tint *nbufs, const ecomemBuffer_t **bufs, asnrSizeConfig_t *cfg);\r
+\r
+/**\r
+ *  @ingroup asnr_api_functions\r
+ *\r
+ *  @brief Function asnrNew() creates a new ASNR instance.\r
+ *  \remark Function asnrNew() must be called before asnrOpen()is called.\r
+ *\r
+ *  @param[in,out] asnrInst  Memory location that will receive a pointer to\r
+ *                           the created ASNR instance.\r
+ *  @param[in]     nbufs     Number of memory buffers allocated by the user.\r
+ *  @param[in]     bufs      Pointer to memory buffer descriptors defined by\r
+ *                           the user.\r
+ *  \remark Buffer alignment property of each buffer passed to asnrNew() must be\r
+ *          equal to or better than what is returned by asnrGetSizes(), and must\r
+ *          be in consistency with the base address of the buffer.\r
+ *\r
+ *  @param[in]     cfg       Pointer to new instance configuration structure.\r
+ *  @retval                  ASNR error code. \r
+ *  @verbatim\r
+     error code            description\r
+     asnr_NOERR               success\r
+     asnr_ERR_INVALIDPAR      *asnrInst is not NULL or nbufs is not correct\r
+     asnr_ERR_NOMEMORY        properties of one or more buffers are bad:\r
+                               - size is less than what's requested\r
+                               - size is not zero but base address is NULL,\r
+                               - alignment and base address are not consistent,\r
+                               - volatility does not meet requirement.\r
+    \endverbatim\r
+ *\r
+ *  @pre  The pointer at the location pointed to by asnrInst must be set to NULL\r
+ *        before this function is called.\r
+ *  @post A pointer to the created instance will be returned to the location\r
+ *        pointed to by asnrInst. Instance state will be set to closed.\r
+ */\r
+tint asnrNew(void **asnrInst, tint nbufs, ecomemBuffer_t *bufs, asnrNewConfig_t *cfg);\r
+\r
+/**\r
+ *  @ingroup asnr_api_functions\r
+ *\r
+ *  @brief Function asnrDelete() deletes the ASNR instance identified by asnrInst\r
+ *         and returns the addresses of those buffers used by this instance.\r
+ *\r
+ *  @param[in]      nbufs     Number of buffers used by this instance.\r
+ *  @param[in,out]  asnrInst  Memory location where the pointer to ASNR instance\r
+ *                            is stored.\r
+ *  @param[in,out]  bufs      Pointer to buffer descriptors to store returned\r
+ *                            addresses of the buffers used by this instance.\r
+ *  @retval                   ASNR error code. \r
+ *  @verbatim\r
+     error code           description\r
+     asnr_NOERR               success\r
+     asnr_ERR_NOTCLOSED       ASNR instance has not been closed.\r
+     asnr_ERR_INVALIDNBUFS    incorrect number of memory buffers\r
+    \endverbatim\r
+ *\r
+ *  @pre  ASNR instance must be closed by asnrClose() before asnrDelete() is called.\r
+ *  @post After asnrDelete() is called, ASNR instance pointer stored at asnrInst\r
+          will be set to NULL, and the addresses of the buffers used by this\r
+          instance will be returned to the location pointed to by bufs.\r
+ */\r
+tint asnrDelete(void **asnrInst, tint nbufs, ecomemBuffer_t *bufs);\r
+\r
+/**\r
+ *  @ingroup asnr_api_functions\r
+ *\r
+ *  @brief Function asnrOpen() initializes and configures an ASNR instance.\r
+ *\r
+ *  @remark This function may be called after asnrNew() to initialize a new ASNR\r
+ *          instance. It may also be called to reconfigure an instance that\r
+ *          has been closed by asnrClose() but not deleted by asnrDelete().\r
+ *\r
+ *  @param[in]      cfg       Pointer to ASNR configuration parameter.\r
+ *  @param[in]      asnrInst  Pointer to ASNR instance.\r
+ *  @retval                   ASNR error code. \r
+ *  @verbatim\r
+     error code              description\r
+     asnr_NOERR              success\r
+     asnr_ERR_INVALIDPAR     sampling rate is larger than max_sampling_rate of \r
+                                asnrSizeConfig_t.\r
+    \endverbatim\r
+ *\r
+ *  @pre  Function asnrNew() must be called before asnrOpen() is called the first\r
+ *        time to open a new instance. For subsequent calls to open an existing\r
+ *        instance, asnrClose() must be called before asnrOpen() to close the\r
+ *        instance.\r
+ *  @post After ASNR instance is opened, asnrControl() or asnrProcess() may be\r
+ *        called for control or processing.\r
+ *\r
+ */\r
+tint asnrOpen(void *inst, asnrOpenConfig_t *cfg);\r
+\r
+/**\r
+ *  @ingroup asnr_api_functions\r
+ *\r
+ *  @brief Function asnrClose() closes an ASNR instance.\r
+ *  \remark Function asnrClose() must be called before asnrDelete() is called.\r
+ *\r
+ *  @param[in]  asnrInst     pointer to the instance to be closed\r
+ *  @retval                  ASNR error code. \r
+ *  @verbatim\r
+     error code              description\r
+     asnr_NOERR              success\r
+     asnr_ERR_NOTOPENED      ASNR instance is not in open state\r
+    \endverbatim\r
+ *\r
+ */\r
+tint asnrClose(void *asnrInst);\r
+\r
+/**\r
+ *  @ingroup asnr_api_functions\r
+ *\r
+ *  @brief Function asnrControl() enables/disables ASNR or changes one or more\r
+ *         parameters.\r
+ *\r
+ *  @param[in]      asnrInst  Pointer to ASNR instance.\r
+ *  @param[in]      ctl       Pointer to ASNR control structure. \r
+ *\r
+ *  @retval                   ASNR error code. \r
+ *  @verbatim\r
+     error code              description\r
+     asnr_NOERR               success\r
+     asnr_ERR_NOTOPENED       ASNR instance has not been opened\r
+     asnr_ERR_INVALIDPAR      Parameters are out of the allowed range.\r
+    \endverbatim\r
+ *\r
+ */\r
+tint asnrControl(void *asnrInst, asnrControl_t *ctl);\r
+\r
+/**\r
+ *  @ingroup asnr_api_functions\r
+ *\r
+ *  @brief Function asnrProcess() performs noise reduction processing on one \r
+ *         frame of data.\r
+ *\r
+ *  @param[in]      asnrInst  Pointer to ASNR instance.\r
+ *  @param[in]      *input    Input buffer. \r
+ *  @param[out]     *output   Output buffer. \r
+ *\r
+ *  \remark  Input must be one frame of 16-bit linear samples. Frame length MUST\r
+ *           be 10msec. Output are also one frame of 16-bit linear samples.\r
+ *\r
+ *  \remark  Input and output pointers can be the same (in place processing) or\r
+ *           different (out of place processing). \r
+ *  @retval                   ASNR error code. \r
+ *  @verbatim\r
+     error code               description\r
+     asnr_NOERR               success\r
+     asnr_ERR_INVALIDPAR      either input buffer or output buffer is NULL\r
+    \endverbatim\r
+ *\r
+ */\r
+tint asnrProcess(void *asnrInst,void *input,void *output);\r
+\r
+/* -------------------------- ASNR Call Table -------------------------------- */\r
+/**\r
+ *  @ingroup asnr_api_structures\r
+ *\r
+ *  @brief ASNR call table\r
+ *\r
+ */\r
+typedef struct {\r
+  tint (*asnrGetSizes)   (tint *nbufs, const ecomemBuffer_t **bufs, \r
+                        asnrSizeConfig_t *cfg);\r
+  tint (*asnrNew)        (void **asnrInst, tint nbufs, ecomemBuffer_t *bufs, \r
+                        asnrNewConfig_t *cfg);\r
+  tint (*asnrDelete)     (void **asnrInst, tint nbufs, ecomemBuffer_t *bufs);\r
+  tint (*asnrOpen)       (void *inst, asnrOpenConfig_t *cfg);\r
+  tint (*asnrClose)      (void *asnrInst);\r
+  tint (*asnrControl)    (void *asnrInst, asnrControl_t *ctl);\r
+  tint (*asnrProcess)    (void *asnrInst,void *input,void *output);\r
+} asnrCallTable_t;\r
+\r
+#endif\r
+\r
+/* nothing past this point */\r
+\r
diff --git a/gel/DA830_DSK_USB560M.ccxml b/gel/DA830_DSK_USB560M.ccxml
new file mode 100644 (file)
index 0000000..4787996
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<configurations XML_version="1.2" id="configurations_0">\r
+    <configuration XML_version="1.2" id="Blackhawk USB560-M Emulator_0">\r
+        <instance XML_version="1.2" desc="Blackhawk USB560-M Emulator_0" href="connections/BH-USB560m_Connection.xml" id="Blackhawk USB560-M Emulator_0" xml="BH-USB560m_Connection.xml" xmlpath="connections"/>\r
+        <connection XML_version="1.2" id="Blackhawk USB560-M Emulator_0">\r
+            <instance XML_version="1.2" href="drivers/tixds560icepick_c.xml" id="drivers" xml="tixds560icepick_c.xml" xmlpath="drivers"/>\r
+            <instance XML_version="1.2" href="drivers/tixds560c674x.xml" id="drivers" xml="tixds560c674x.xml" xmlpath="drivers"/>\r
+            <instance XML_version="1.2" href="drivers/tixds560arm9.xml" id="drivers" xml="tixds560arm9.xml" xmlpath="drivers"/>\r
+            <instance XML_version="1.2" href="drivers/tixds560etb11.xml" id="drivers" xml="tixds560etb11.xml" xmlpath="drivers"/>\r
+            <platform XML_version="1.2" id="platform_0">\r
+                <instance XML_version="1.2" desc="DSKDA830_0" href="boards/dskda830.xml" id="DSKDA830_0" xml="dskda830.xml" xmlpath="boards"/>\r
+            <board XML_version="1.2" description="Spectrum Digital DA830 DSK Board" id="DSKDA830_0">\r
+                    <device HW_revision="1" XML_version="1.2" description="Performance Audio Device" id="DA830/DA828_0" partnum="DA830/DA828">\r
+                        <router HW_revision="1.0" XML_version="1.2" description="ICEPick_C Router" id="IcePick_C_0" isa="ICEPICK_C">\r
+                            <subpath id="DSP">\r
+                                <cpu HW_revision="1.0" XML_version="1.2" description="TMS320C6747" id="TMS320C6747" isa="TMS320C674X">\r
+                                    <property Type="filepathfield" Value="./dskda830_dsp.gel" id="GEL File"/>\r
+                                </cpu>\r
+                            </subpath>\r
+                        </router>\r
+                    </device>\r
+                </board>\r
+            </platform>\r
+        </connection>\r
+    </configuration>\r
+</configurations>\r
diff --git a/gel/dskda830_dsp.gel b/gel/dskda830_dsp.gel
new file mode 100644 (file)
index 0000000..e1d7f17
--- /dev/null
@@ -0,0 +1,979 @@
+/* ------------------------------------------------------------------------ *\r
+ *                                                                          *\r
+ *  dskda830_dsp.gel                                                        *\r
+ *  Version 1.06                                                            *\r
+ *                                                                          *\r
+ *  This GEL file is designed to be used in conjunction with                *\r
+ *  CCStudio 3.3+ and the DA830 based DSK.                                  *\r
+ *                                                                          *\r
+ *  SDI Version History:                                                    *\r
+ *  1.00 Initial Release                                                    *\r
+ *  1.01 Added USB1 clock enable in CFGCGHIP2                               *\r
+ *  1.02 Added Setup_Data_Cache(), added hotmenu item Setup_EMIFA_PinMux()  *\r
+ *  1.03 Corrected PINMUX0, 11 settings to enable EMB_CLK, AXR2[0]          *\r
+ *  1.04 General cleanup                                                    *\r
+ *  1.05 Corrected ARM INTC in Memory map                                   *\r
+ *  1.06 Fixed tRFC SDRAM timing parameter                                  *\r
+ * ------------------------------------------------------------------------ */\r
\r
+/* ------------------------------------------------------------------------ *\r
+ *                                                                          *\r
+ *  StartUp( )                                                              *\r
+ *      Setup Memory Map                                                    *\r
+ *                                                                          *\r
+ * ------------------------------------------------------------------------ */\r
+StartUp( )\r
+{\r
+    Setup_Memory_Map( );\r
+}\r
+\r
+/* ------------------------------------------------------------------------ *\r
+ *                                                                          *\r
+ *  OnTargetConnect( )                                                      *\r
+ *      Setup PinMux, Power, PLLs, SDRAM & EMIFs                            *\r
+ *                                                                          *\r
+ * ------------------------------------------------------------------------ */\r
+OnTargetConnect( )\r
+{\r
+    GEL_TextOut( "\nDA830 DSP Startup Sequence\n\n" );\r
+\r
+    Setup_Data_Cache();             // Setup L1D to 32 KB cache\r
+\r
+    Setup_System_Config( );         // Setup Pin Mux and other system module registers\r
+    Setup_PLL();                    // Setup PLL0 (300MHZ ARM, 300MHz DSP, 133MHz EMIFs\r
+\r
+    Setup_Psc_All_On( );            // Setup All Power Domains\r
+\r
+    Setup_EMIFA();                  // Async EMIF\r
+    Setup_EMIFB();                  // Setup SDRAM\r
+\r
+    Enable_ARM();\r
+\r
+    GEL_TextOut( "\nStartup Complete.\n\n" );\r
+}\r
+\r
+/* ------------------------------------------------------------------------ *\r
+ *                                                                          *\r
+ *  OnPreFileLoaded( )                                                      *\r
+ *      This function is called automatically when the 'Load Program'       *\r
+ *      Menu item is selected.                                              *\r
+ *                                                                          *\r
+ * ------------------------------------------------------------------------ */\r
+OnPreFileLoaded( )\r
+{\r
+    /*\r
+     *  GEL_Reset() is used to deal with the worst case senario of\r
+     *  unknown target state.  If for some reason a reset is not desired\r
+     *  upon target connection, GEL_Reset() may be removed and replaced\r
+     *  with something "less brutal" like a cache initialization\r
+     *  function.\r
+     */\r
+    GEL_Reset( );\r
+\r
+//    Disable_EDMA( );                // Disable EDMA\r
+\r
+    GEL_TextOut( "\n" );\r
+}\r
+\r
+/* ------------------------------------------------------------------------ *\r
+ *                                                                          *\r
+ *  OnRestart( )                                                            *\r
+ *      This function is called by CCS when you do Debug->Restart.          *\r
+ *      The goal is to put the CPU into a known good state with respect to  *\r
+ *      edma.                                                               *\r
+ *      Failure to do this can cause problems when you restart and          *\r
+ *      run your application code multiple times.  This is different        *\r
+ *      then OnPreFileLoaded() which will do a GEL_Reset() to get the       *\r
+ *      ARM9 into a known good state.                                       *\r
+ *                                                                          *\r
+ * ------------------------------------------------------------------------ */\r
+OnRestart( int nErrorCode )\r
+{\r
+    Disable_EDMA( );                // Disable EDMA\r
+\r
+    GEL_TextOut( "\n" );\r
+}\r
+\r
+menuitem "DA830 Memory Map";\r
+\r
+/* ------------------------------------------------------------------------ *\r
+ *                                                                          *\r
+ *  Setup_Memory_Map( )                                                     *\r
+ *      Setup the Memory Map for DSP.                                       *\r
+ *                                                                          *\r
+ * ------------------------------------------------------------------------ */\r
+hotmenu\r
+Setup_Memory_Map( )\r
+{\r
+    GEL_MapOn( );\r
+    GEL_MapReset( );\r
+\r
+    /* ARM */\r
+    GEL_MapAddStr( 0xFFFD0000, 0, 0x00010000, "R|W|AS4", 0 );   // ARM Local ROM\r
+    GEL_MapAddStr( 0xFFFEE000, 0, 0x00002000, "R|W|AS4", 0 );   // ARM INTC\r
+    GEL_MapAddStr( 0xFFFF0000, 0, 0x00002000, "R|W|AS4", 0 );   // ARM Local RAM\r
+    GEL_MapAddStr( 0x01BC0000, 0, 0x00001000, "R|W|AS4", 0 );   // ARM ETB Memory\r
+    GEL_MapAddStr( 0x01BC1000, 0, 0x00000800, "R|W|AS4", 0 );   // ARM ETB Regs\r
+    GEL_MapAddStr( 0x01BC1800, 0, 0x00000100, "R|W|AS4", 0 );   // ARM Ice Crusher\r
+\r
+    /* DSP */\r
+    GEL_MapAddStr( 0x00700000, 0, 0x00100000, "R|W|AS4", 0 );   // DSP L2 ROM\r
+    GEL_MapAddStr( 0x00800000, 0, 0x00040000, "R|W|AS4", 0 );   // DSP l2 RAM\r
+    GEL_MapAddStr( 0x00E00000, 0, 0x00008000, "R|W|AS4", 0 );   // DSP L1P RAM\r
+    GEL_MapAddStr( 0x00F00000, 0, 0x00008000, "R|W|AS4", 0 );   // DSP L1D RAM\r
+    GEL_MapAddStr( 0x01800000, 0, 0x00010000, "R|W|AS4", 0 );   // DSP Interrupt Controller\r
+    GEL_MapAddStr( 0x01810000, 0, 0x00001000, "R|W|AS4", 0 );   // DSP Powerdown Controller\r
+    GEL_MapAddStr( 0x01811000, 0, 0x00001000, "R|W|AS4", 0 );   // DSP Security ID\r
+    GEL_MapAddStr( 0x01812000, 0, 0x00008000, "R|W|AS4", 0 );   // DSP Revision ID\r
+    GEL_MapAddStr( 0x01820000, 0, 0x00010000, "R|W|AS4", 0 );   // DSP EMC\r
+    GEL_MapAddStr( 0x01830000, 0, 0x00010000, "R|W|AS4", 0 );   // DSP Internal Reserved\r
+    GEL_MapAddStr( 0x01840000, 0, 0x00010000, "R|W|AS4", 0 );   // DSP Memory System\r
+\r
+    GEL_MapAddStr( 0x11700000, 0, 0x00100000, "R|W|AS4", 0 );   // DSP L2 ROM (mirror)\r
+    GEL_MapAddStr( 0x11800000, 0, 0x00040000, "R|W|AS4", 0 );   // DSP l2 RAM (mirror)\r
+    GEL_MapAddStr( 0x11E00000, 0, 0x00008000, "R|W|AS4", 0 );   // DSP L1P RAM (mirror)\r
+    GEL_MapAddStr( 0x11F00000, 0, 0x00008000, "R|W|AS4", 0 );   // DSP L1D RAM (mirror)\r
\r
+    /* Shared RAM */\r
+    GEL_MapAddStr( 0x80000000, 0, 0x00020000, "R|W|AS4", 0 );   // Shared RAM\r
+\r
+    /* EMIFA */\r
+    GEL_MapAddStr( 0x68000000, 0, 0x00008000, "R|W|AS4", 0 );   // EMIFA Control\r
+    GEL_MapAddStr( 0x40000000, 0, 0x20000000, "R|W|AS4", 0 );   // EMIFA SDRAM Data\r
+    GEL_MapAddStr( 0x60000000, 0, 0x02000000, "R|W|AS4", 0 );   // AEMIF CS2\r
+    GEL_MapAddStr( 0x62000000, 0, 0x02000000, "R|W|AS4", 0 );   // AEMIF CS3\r
+    GEL_MapAddStr( 0x64000000, 0, 0x02000000, "R|W|AS4", 0 );   // AEMIF CS4\r
+    GEL_MapAddStr( 0x66000000, 0, 0x02000000, "R|W|AS4", 0 );   // AEMIF CS5\r
+\r
+    /* DDR */\r
+    GEL_MapAddStr( 0xB0000000, 0, 0x00008000, "R|W|AS4", 0 );   // EMIFB Control\r
+    GEL_MapAddStr( 0xC0000000, 0, 0x20000000, "R|W|AS4", 0 );   // EMIFB SDRAM Data\r
+\r
+    /* Peripherals */\r
+    GEL_MapAddStr( 0x01C00000, 0, 0x00008000, "R|W|AS4", 0 );   // TPCC\r
+    GEL_MapAddStr( 0x01C08000, 0, 0x00000400, "R|W|AS4", 0 );   // TPTC0\r
+    GEL_MapAddStr( 0x01C08400, 0, 0x00000400, "R|W|AS4", 0 );   // TPTC1\r
+    GEL_MapAddStr( 0x01C10000, 0, 0x00001000, "R|W|AS4", 0 );   // PSC 0\r
+    GEL_MapAddStr( 0x01C11000, 0, 0x00001000, "R|W|AS4", 0 );   // PLL Controller 0\r
+    GEL_MapAddStr( 0x01C12000, 0, 0x00001000, "R|W|AS4", 0 );   // Key Manager\r
+    GEL_MapAddStr( 0x01C13000, 0, 0x00001000, "R|W|AS4", 0 );   // Security Controller\r
+    GEL_MapAddStr( 0x01C14000, 0, 0x00001000, "R|W|AS4", 0 );   // BootConfig\r
+    GEL_MapAddStr( 0x01C16000, 0, 0x00001000, "R|W|AS4", 0 );   // IOPU 0\r
+    GEL_MapAddStr( 0x01C17000, 0, 0x00001000, "R|W|AS4", 0 );   // IOPU 2\r
+    GEL_MapAddStr( 0x01C20000, 0, 0x00001000, "R|W|AS4", 0 );   // Timer64P 0\r
+    GEL_MapAddStr( 0x01C21000, 0, 0x00001000, "R|W|AS4", 0 );   // Timer64P 1\r
+    GEL_MapAddStr( 0x01C22000, 0, 0x00001000, "R|W|AS4", 0 );   // I2C 0\r
+    GEL_MapAddStr( 0x01C23000, 0, 0x00001000, "R|W|AS4", 0 );   // RTC\r
+    GEL_MapAddStr( 0x01C24000, 0, 0x00001000, "R|W|AS4", 0 );   // IOPU 1\r
+    GEL_MapAddStr( 0x01C30000, 0, 0x00000200, "R|W|AS4", 0 );   // dMax Data RAM 0\r
+    GEL_MapAddStr( 0x01C32000, 0, 0x00000200, "R|W|AS4", 0 );   // dMax Data RAM 1\r
+    GEL_MapAddStr( 0x01C34000, 0, 0x00004000, "R|W|AS4", 0 );   // dMax Control Registers\r
+    GEL_MapAddStr( 0x01C38000, 0, 0x00001000, "R|W|AS4", 0 );   // dMAX MAX0 Config Memory\r
+    GEL_MapAddStr( 0x01C3C000, 0, 0x00001000, "R|W|AS4", 0 );   // dMAX MAX1 Config Memory\r
+    GEL_MapAddStr( 0x01C40000, 0, 0x00001000, "R|W|AS4", 0 );   // MMC/SD 0\r
+    GEL_MapAddStr( 0x01C41000, 0, 0x00001000, "R|W|AS4", 0 );   // SPI 0\r
+    GEL_MapAddStr( 0x01C42000, 0, 0x00001000, "R|W|AS4", 0 );   // UART 0\r
+    GEL_MapAddStr( 0x01C43000, 0, 0x00001000, "R|W|AS4", 0 );   // MPU 0\r
+    GEL_MapAddStr( 0x01D00000, 0, 0x00001000, "R|W|AS4", 0 );   // McASP 0 Control\r
+    GEL_MapAddStr( 0x01D01000, 0, 0x00001000, "R|W|AS4", 0 );   // McASP 0 FIFO Ctrl\r
+    GEL_MapAddStr( 0x01D02000, 0, 0x00001000, "R|W|AS4", 0 );   // McASP 0 Data\r
+    GEL_MapAddStr( 0x01D04000, 0, 0x00001000, "R|W|AS4", 0 );   // McASP 1 Control\r
+    GEL_MapAddStr( 0x01D05000, 0, 0x00001000, "R|W|AS4", 0 );   // McASP 1 FIFO Ctrl\r
+    GEL_MapAddStr( 0x01D06000, 0, 0x00001000, "R|W|AS4", 0 );   // McASP 1 Data\r
+    GEL_MapAddStr( 0x01D08000, 0, 0x00001000, "R|W|AS4", 0 );   // McASP 2 Control\r
+    GEL_MapAddStr( 0x01D09000, 0, 0x00001000, "R|W|AS4", 0 );   // McASP 2 FIFO Ctrl\r
+    GEL_MapAddStr( 0x01D0A000, 0, 0x00001000, "R|W|AS4", 0 );   // McASP 2 Data\r
+    GEL_MapAddStr( 0x01D0C000, 0, 0x00001000, "R|W|AS4", 0 );   // UART 1\r
+    GEL_MapAddStr( 0x01D0D000, 0, 0x00001000, "R|W|AS4", 0 );   // UART 2\r
+    GEL_MapAddStr( 0x01D0E000, 0, 0x00001000, "R|W|AS4", 0 );   // IOPU 4\r
+    GEL_MapAddStr( 0x01E00000, 0, 0x00010000, "R|W|AS4", 0 );   // USB0 (USB HS) Cfg\r
+    GEL_MapAddStr( 0x01E10000, 0, 0x00001000, "R|W|AS4", 0 );   // UHPI Cfg\r
+    GEL_MapAddStr( 0x01E11000, 0, 0x00001000, "R|W|AS4", 0 );   // UHPI (IODFT)\r
+    GEL_MapAddStr( 0x01E12000, 0, 0x00001000, "R|W|AS4", 0 );   // SPI 1\r
+    GEL_MapAddStr( 0x01E13000, 0, 0x00001000, "R|W|AS4", 0 );   // LCD Controller\r
+    GEL_MapAddStr( 0x01E14000, 0, 0x00001000, "R|W|AS4", 0 );   // MPU 1\r
+    GEL_MapAddStr( 0x01E15000, 0, 0x00001000, "R|W|AS4", 0 );   // MPU 2\r
+    GEL_MapAddStr( 0x01E20000, 0, 0x00002000, "R|W|AS4", 0 );   // EMAC CPPI port\r
+    GEL_MapAddStr( 0x01E22000, 0, 0x00001000, "R|W|AS4", 0 );   // EMAC CPGMACSS registers\r
+    GEL_MapAddStr( 0x01E23000, 0, 0x00001000, "R|W|AS4", 0 );   // EMAC CPGMAC registers\r
+    GEL_MapAddStr( 0x01E24000, 0, 0x00001000, "R|W|AS4", 0 );   // EMAC MDIO port\r
+    GEL_MapAddStr( 0x01E25000, 0, 0x00001000, "R|W|AS4", 0 );   // USB1 (USB FS)\r
+    GEL_MapAddStr( 0x01E26000, 0, 0x00001000, "R|W|AS4", 0 );   // GPIO\r
+    GEL_MapAddStr( 0x01E27000, 0, 0x00001000, "R|W|AS4", 0 );   // PSC 1\r
+    GEL_MapAddStr( 0x01E28000, 0, 0x00001000, "R|W|AS4", 0 );   // I2C 1\r
+    GEL_MapAddStr( 0x01E29000, 0, 0x00001000, "R|W|AS4", 0 );   // IOPU 3\r
+    GEL_MapAddStr( 0x01E2A000, 0, 0x00001000, "R|W|AS4", 0 );   // PBIST Controller\r
+    GEL_MapAddStr( 0x01E2B000, 0, 0x00001000, "R|W|AS4", 0 );   // PBIST Combiner\r
+    GEL_MapAddStr( 0x01F00000, 0, 0x00001000, "R|W|AS4", 0 );   // EPWM 0\r
+    GEL_MapAddStr( 0x01F01000, 0, 0x00001000, "R|W|AS4", 0 );   // HRPWM 0\r
+    GEL_MapAddStr( 0x01F02000, 0, 0x00001000, "R|W|AS4", 0 );   // EPWM 1\r
+    GEL_MapAddStr( 0x01F03000, 0, 0x00001000, "R|W|AS4", 0 );   // HRPWM 1\r
+    GEL_MapAddStr( 0x01F04000, 0, 0x00001000, "R|W|AS4", 0 );   // EPWM 2\r
+    GEL_MapAddStr( 0x01F05000, 0, 0x00001000, "R|W|AS4", 0 );   // HRPWM 2\r
+    GEL_MapAddStr( 0x01F06000, 0, 0x00001000, "R|W|AS4", 0 );   // ECAP 0\r
+    GEL_MapAddStr( 0x01F07000, 0, 0x00001000, "R|W|AS4", 0 );   // ECAP 1\r
+    GEL_MapAddStr( 0x01F08000, 0, 0x00001000, "R|W|AS4", 0 );   // ECAP 2\r
+    GEL_MapAddStr( 0x01F09000, 0, 0x00001000, "R|W|AS4", 0 );   // EQEP 0\r
+    GEL_MapAddStr( 0x01F0A000, 0, 0x00001000, "R|W|AS4", 0 );   // EQEP 1\r
+    GEL_MapAddStr( 0x01F0B000, 0, 0x00001000, "R|W|AS4", 0 );   // IOPU 5\r
+}\r
+\r
+/* ------------------------------------------------------------------------ *\r
+ *                                                                          *\r
+ *  Clear_Memory_Map( )                                                     *\r
+ *      Clear the Memory Map                                                *\r
+ *                                                                          *\r
+ * ------------------------------------------------------------------------ */\r
+hotmenu\r
+Clear_Memory_Map( )\r
+{\r
+    GEL_MapOff( );\r
+    GEL_MapReset( );\r
+}\r
+\r
+menuitem "DSKDA830 Functions";\r
+\r
+_wait( int delay )\r
+{\r
+    int i;\r
+    for( i = 0 ; i < delay ; i++ ){}\r
+}\r
+\r
+#define SYS_BASE            0x01C14000\r
+#define REVID               *(unsigned int*)(SYS_BASE + 0x000)  \r
+#define DIEIDR0             *(unsigned int*)(SYS_BASE + 0x008)\r
+#define DIEIDR1             *(unsigned int*)(SYS_BASE + 0x00C)\r
+#define DIEIDR2             *(unsigned int*)(SYS_BASE + 0x010)\r
+#define DIEIDR3             *(unsigned int*)(SYS_BASE + 0x014)\r
+#define DEVIDR0             *(unsigned int*)(SYS_BASE + 0x018)\r
+#define DEVIDR1             *(unsigned int*)(SYS_BASE + 0x01C)\r
+#define BOOTCFG             *(unsigned int*)(SYS_BASE + 0x020)\r
+#define CHIPREVIDR          *(unsigned int*)(SYS_BASE + 0x024)\r
+#define KICK0R              *(unsigned int*)(SYS_BASE + 0x038)  \r
+#define KICK1R              *(unsigned int*)(SYS_BASE + 0x03c)  \r
+#define HOST0CFG            *(unsigned int*)(SYS_BASE + 0x040)  //ARM HOST0CFG\r
+#define HOST1CFG            *(unsigned int*)(SYS_BASE + 0x044)\r
+#define IRAWSTAT            *(unsigned int*)(SYS_BASE + 0x0E0)  \r
+#define IENSTAT             *(unsigned int*)(SYS_BASE + 0x0E4)  \r
+#define IENSET              *(unsigned int*)(SYS_BASE + 0x0E8)  \r
+#define IENCLR              *(unsigned int*)(SYS_BASE + 0x0EC)  \r
+#define EOI                 *(unsigned int*)(SYS_BASE + 0x0F0)  \r
+#define FLTADDRR            *(unsigned int*)(SYS_BASE + 0x0F4)  \r
+#define FLTSTAT             *(unsigned int*)(SYS_BASE + 0x0F8)  \r
+#define MSTPRI0             *(unsigned int*)(SYS_BASE + 0x110)  \r
+#define MSTPRI1             *(unsigned int*)(SYS_BASE + 0x114)  \r
+#define MSTPRI2             *(unsigned int*)(SYS_BASE + 0x118) \r
+#define PINMUX0                    *(unsigned int*)(SYS_BASE + 0x120)  //PINMUX0\r
+#define PINMUX1                    *(unsigned int*)(SYS_BASE + 0x124)  //PINMUX1\r
+#define PINMUX2                    *(unsigned int*)(SYS_BASE + 0x128)  //PINMUX2\r
+#define PINMUX3                    *(unsigned int*)(SYS_BASE + 0x12C)  //PINMUX3\r
+#define PINMUX4                    *(unsigned int*)(SYS_BASE + 0x130)  //PINMUX4\r
+#define PINMUX5                    *(unsigned int*)(SYS_BASE + 0x134)  //PINMUX5\r
+#define PINMUX6                    *(unsigned int*)(SYS_BASE + 0x138)  //PINMUX6\r
+#define PINMUX7                    *(unsigned int*)(SYS_BASE + 0x13C)  //PINMUX7\r
+#define PINMUX8                    *(unsigned int*)(SYS_BASE + 0x140)  //PINMUX8\r
+#define PINMUX9                    *(unsigned int*)(SYS_BASE + 0x144)  //PINMUX9\r
+#define PINMUX10            *(unsigned int*)(SYS_BASE + 0x148) //PINMUX10\r
+#define PINMUX11            *(unsigned int*)(SYS_BASE + 0x14C) //PINMUX11\r
+#define PINMUX12            *(unsigned int*)(SYS_BASE + 0x150) //PINMUX12\r
+#define PINMUX13            *(unsigned int*)(SYS_BASE + 0x154) //PINMUX13\r
+#define PINMUX14            *(unsigned int*)(SYS_BASE + 0x158) //PINMUX14\r
+#define PINMUX15            *(unsigned int*)(SYS_BASE + 0x15C) //PINMUX15\r
+#define PINMUX16            *(unsigned int*)(SYS_BASE + 0x160) //PINMUX16\r
+#define PINMUX17            *(unsigned int*)(SYS_BASE + 0x164) //PINMUX17\r
+#define PINMUX18            *(unsigned int*)(SYS_BASE + 0x168) //PINMUX18\r
+#define PINMUX19            *(unsigned int*)(SYS_BASE + 0x16C) //PINMUX19\r
+#define SUSPSRC             *(unsigned int*)(SYS_BASE + 0x170) \r
+#define CHIPSIG                    *(unsigned int*)(SYS_BASE + 0x174) \r
+#define CHIPSIG_CLR         *(unsigned int*)(SYS_BASE + 0x178) \r
+#define CFGCHIP0            *(unsigned int*)(SYS_BASE + 0x17C) \r
+#define CFGCHIP1            *(unsigned int*)(SYS_BASE + 0x180) \r
+#define CFGCHIP2            *(unsigned int*)(SYS_BASE + 0x184) \r
+#define CFGCHIP3            *(unsigned int*)(SYS_BASE + 0x188) \r
+#define CFGCHIP4            *(unsigned int*)(SYS_BASE + 0x18C) \r
+\r
+#define PLL0_BASE      0x01C11000                                                      /*SYSTEM PLL BASE ADDRESS*/\r
+\r
+#define PLL0_PID       *(unsigned int*) (PLL0_BASE + 0x00)             /*PID*/\r
+#define PLL0_FUSERR    *(unsigned int*) (PLL0_BASE + 0xE0)             /*x*FuseFarm Error Reg*/\r
+#define PLL0_RSTYPE        *(unsigned int*) (PLL0_BASE + 0xE4)         /*Reset Type status Reg*/\r
+#define PLL0_PLLCTL     *(unsigned int*) (PLL0_BASE + 0x100)   /*PLL Control Register*/\r
+#define PLL0_OCSEL      *(unsigned int*) (PLL0_BASE + 0x104)   /*OBSCLK Select Register*/\r
+#define PLL0_SECCTL     *(unsigned int*) (PLL0_BASE + 0x108)   /*PLL Secondary Control Register*/\r
+#define PLL0_PLLM       *(unsigned int*) (PLL0_BASE + 0x110)    /*PLL Multiplier*/     \r
+#define PLL0_PREDIV     *(unsigned int*) (PLL0_BASE + 0x114)    /*Pre divider*/        \r
+#define PLL0_PLLDIV1    *(unsigned int*) (PLL0_BASE + 0x118)    /*Diveder-1*/  \r
+#define PLL0_PLLDIV2    *(unsigned int*) (PLL0_BASE + 0x11C)    /*Diveder-2*/  \r
+#define PLL0_PLLDIV3    *(unsigned int*) (PLL0_BASE + 0x120)    /*Diveder-3*/  \r
+#define PLL0_OSCDIV1    *(unsigned int*) (PLL0_BASE + 0x124)    /*Oscilator Divider*/  \r
+#define PLL0_POSTDIV    *(unsigned int*) (PLL0_BASE + 0x128)    /*Post Divider*/       \r
+#define PLL0_BPDIV      *(unsigned int*) (PLL0_BASE + 0x12C)   /*Bypass Divider*/\r
+#define PLL0_WAKEUP     *(unsigned int*) (PLL0_BASE + 0x130)   /*Wakeup Reg*/\r
+#define PLL0_PLLCMD     *(unsigned int*) (PLL0_BASE + 0x138)   /*Command Reg*/\r
+#define PLL0_PLLSTAT    *(unsigned int*) (PLL0_BASE + 0x13C)   /*Status Reg*/\r
+#define PLL0_ALNCTL     *(unsigned int*) (PLL0_BASE + 0x140)   /*Clock Align Control Reg*/\r
+#define PLL0_DCHANGE    *(unsigned int*) (PLL0_BASE + 0x144)   /*PLLDIV Ratio Chnage status*/\r
+#define PLL0_CKEN       *(unsigned int*) (PLL0_BASE + 0x148)   /*Clock Enable Reg*/\r
+#define PLL0_CKSTAT     *(unsigned int*) (PLL0_BASE + 0x14C)   /*Clock Status Reg*/\r
+#define PLL0_SYSTAT     *(unsigned int*) (PLL0_BASE + 0x150)   /*Sysclk status reg*/\r
+#define PLL0_PLLDIV4    *(unsigned int*) (PLL0_BASE + 0x160)   /*Divider 4*/\r
+#define PLL0_PLLDIV5    *(unsigned int*) (PLL0_BASE + 0x164)   /*Divider 5*/\r
+#define PLL0_PLLDIV6    *(unsigned int*) (PLL0_BASE + 0x168)   /*Divider 6*/\r
+#define PLL0_PLLDIV7    *(unsigned int*) (PLL0_BASE + 0x16C)   /*Divider 7*/\r
+#define PLL0_PLLDIV8    *(unsigned int*) (PLL0_BASE + 0x170)   /*Divider 8*/\r
+#define PLL0_PLLDIV9    *(unsigned int*) (PLL0_BASE + 0x174)   /*Divider 9*/\r
+#define PLL0_PLLDIV10   *(unsigned int*) (PLL0_BASE + 0x178)   /*Divider 10*/\r
+#define PLL0_PLLDIV11   *(unsigned int*) (PLL0_BASE + 0x17C)   /*Divider 11*/\r
+#define PLL0_PLLDIV12   *(unsigned int*) (PLL0_BASE + 0x180)   /*Divider 12*/\r
+#define PLL0_PLLDIV13   *(unsigned int*) (PLL0_BASE + 0x184)   /*Divider 13*/\r
+#define PLL0_PLLDIV14   *(unsigned int*) (PLL0_BASE + 0x188)   /*Divider 14*/\r
+#define PLL0_PLLDIV15   *(unsigned int*) (PLL0_BASE + 0x18C)   /*Divider 15*/\r
+#define PLL0_PLLDIV16   *(unsigned int*) (PLL0_BASE + 0x190)   /*Divider 16*/\r
+#define PLLEN_MUX_SWITCH  4 \r
+#define PLL_LOCK_TIME_CNT 2400\r
+\r
+\r
+/*PSC Module Related Registers*/              \r
+#define PSC0_BASE          0x01C10000\r
+#define PSC1_BASE          0x01E27000\r
+\r
+#define PSC0_MDCTL             (PSC0_BASE+0xA00)\r
+#define PSC0_MDSTAT    (PSC0_BASE+0x800)\r
+#define PSC0_PTCMD     *(unsigned int*) (PSC0_BASE + 0x120)\r
+#define PSC0_PTSTAT    *(unsigned int*) (PSC0_BASE + 0x128)\r
+\r
+#define PSC1_MDCTL             (PSC1_BASE+0xA00)\r
+#define PSC1_MDSTAT    (PSC1_BASE+0x800)\r
+#define PSC1_PTCMD     *(unsigned int*) (PSC1_BASE + 0x120)\r
+#define PSC1_PTSTAT    *(unsigned int*) (PSC1_BASE + 0x128)\r
+\r
+\r
+/*Enable Function for PSC0*/\r
+PSC0_lPSC_enable(unsigned int PD, unsigned int LPSC_num) {\r
+\r
+  *(unsigned int*) (PSC0_MDCTL+4*LPSC_num) = (*(unsigned int*) (PSC0_MDCTL+4*LPSC_num) & 0xFFFFFFE0) | 0x0003;\r
+  PSC0_PTCMD = 0x1<<PD;\r
+  while( (PSC0_PTSTAT & (0x1<<PD) ) !=0) ; /*Wait for power state transition to finish*/\r
+  while( (*(unsigned int*)(PSC0_MDSTAT+4 * LPSC_num) & 0x1F) !=0x3);\r
+}\r
+\r
+/*Enable Function for PSC1*/\r
+PSC1_lPSC_enable(unsigned int PD, unsigned int LPSC_num) {\r
+\r
+  *(unsigned int*) (PSC1_MDCTL+4*LPSC_num) = (*(unsigned int*) (PSC1_MDCTL+4*LPSC_num) & 0xFFFFFFE0) | 0x0003;\r
+  PSC1_PTCMD = 0x1<<PD;\r
+  while( (PSC1_PTSTAT & (0x1<<PD) ) !=0) ; /*Wait for power state transition to finish*/\r
+  while( (*(unsigned int*)(PSC1_MDSTAT+4 * LPSC_num) & 0x1F) !=0x3);\r
+}\r
+\r
+#define L1DCFG              0x01840040\r
+#define L1DWB               0x01845040\r
+\r
+Setup_Data_Cache ()\r
+{\r
+    // Flush L1D\r
+    *((unsigned int *) L1DWB) = 0x01;\r
+    // Reconfigure L1D to default state (full cache)\r
+    *((unsigned int *) L1DCFG) = 0x07;\r
+}\r
+\r
+hotmenu\r
+Setup_PLL()\r
+{\r
+    int i = 0;\r
+\r
+    /* Configure ARM, DSP at 300MHz, EMIFs at 133MHz */\r
+    unsigned int DIV45_EN = 1;\r
+    unsigned int CLKMODE = 0;\r
+    unsigned int PLLM = 24;\r
+    unsigned int POSTDIV = 1;\r
+    unsigned int PLLDIV3 = 2;\r
+    unsigned int PLLDIV5 = 5;\r
+    unsigned int PLLDIV7 = 7;\r
+\r
+       // Moved step 2c and 2d to step 0\r
+   /*Set PLLEN=0 and PLLRST=0, Reset the PLL*/\r
+    PLL0_PLLCTL &=  0xFFFFFFFE;        /*PLL BYPASS MODE*/\r
+   \r
+   /*wait for 4 cycles to allow PLLEN mux switches properly to bypass clock*/\r
+   for(i=0; i<PLLEN_MUX_SWITCH; i++) {;}   /*Make PLLEN_MUX_SWITCH as bootpacket*/\r
+\r
+   /*Select the Clock Mode bit 8 as External Clock or On Chip Oscilator*/\r
+       PLL0_PLLCTL &= 0xFFFFFEFF;  \r
+    PLL0_PLLCTL |= (CLKMODE<<8);  /* Make CLKSRC as BootPacket to pass the value*/\r
+\r
+   /*Set PLLENSRC '0',bit 5, PLL Enable(PLLEN) selection is controlled through MMR*/\r
+    PLL0_PLLCTL &=  0xFFFFFFDF; \r
+   \r
+   /*PLLCTL.EXTCLKSRC bit 9 should be left at 0 for Primus*/\r
+    PLL0_PLLCTL &=  0xFFFFFDFF;\r
+\r
+   /* Clear PLLRST bit to 0 -Reset the PLL */\r
+   PLL0_PLLCTL &= 0xFFFFFFF7;  \r
+  \r
+   /*Disable the PLL output*/ \r
+   PLL0_PLLCTL |= 0x10;                \r
+   \r
+   /*PLL initialization sequence*/\r
+   \r
+   /*Power up the PLL- PWRDN bit set to 0 to bring the PLL out of power down bit*/\r
+   PLL0_PLLCTL &= 0xFFFFFFFD;\r
+   \r
+   /*Enable the PLL from Disable Mode PLLDIS bit to 0 - This is step is not required for Primus*/\r
+   PLL0_PLLCTL &= 0xFFFFFFEF;\r
+   \r
+   /*PLL stabilisation time- take out this step , not required here when PLL in bypassmode*/\r
+  /* for(i=0; i<PLL_STABILIZATION_TIME; i++) {;}  /* Make PLL_STABILIZATION_TIME as bootpacket*/\r
+   \r
+   /*Program the required multiplier value in PLLM*/\r
+   PLL0_PLLM    = PLLM; /* Make PLLMULTIPLEIR as bootpacket*/\r
+\r
+   /*If desired to scale all the SYSCLK frequencies of a given PLLC, program the POSTDIV ratio*/\r
+   PLL0_POSTDIV = 0x8000 | POSTDIV; /* Make POSTDIV as bootpacket*/\r
+\r
+   /*If Necessary program the PLLDIVx*/\r
+   /*Check for the GOSTAT bit in PLLSTAT to clear to 0 to indicate that no GO operation is currently in progress*/\r
+   while(PLL0_PLLSTAT & 0x1==1){}\r
+\r
+   /*Program the RATIO field in PLLDIVx with the desired divide factors. In addition, make sure in this step you leave the PLLDIVx.DxEN bits set so clocks are still enabled (default).*/\r
+    PLL0_PLLDIV3 = 0x8000 | PLLDIV3; /* Make PLLDIV3 as bootpacket, do it for other PLLDIVx to if required*/\r
+    PLL0_PLLDIV5 = 0x8000 | PLLDIV5; /* Make PLLDIV5 as bootpacket, do it for other PLLDIVx to if required*/\r
+    PLL0_PLLDIV7 = 0x8000 | PLLDIV7; /* Make PLLDIV7 as bootpacket, do it for other PLLDIVx to if required*/\r
+\r
+    /*Set the GOSET bit in PLLCMD to 1 to initiate a new divider transition.*/\r
+    PLL0_PLLCMD |= 0x1;\r
+\r
+       /*Wait for the GOSTAT bit in PLLSTAT to clear to 0 (completion of phase alignment).*/\r
+    while(PLL0_PLLSTAT & 0x1==1) { } \r
+   \r
\r
+   /*Wait for PLL to reset properly. See PLL spec for PLL reset time - This step is not required here -step11*/\r
+  /* for(i=0; i<PLL_RESET_TIME_CNT; i++) {;}   /*128 MXI Cycles*/ /*Make PLL_RESET_TIME_CNT as boot packet*/\r
+      \r
+   /*Set the PLLRST bit in PLLCTL to 1 to bring the PLL out of reset*/\r
+   PLL0_PLLCTL |= 0x8;\r
+   \r
+   /*Wait for PLL to lock. See PLL spec for PLL lock time*/\r
+   for(i=0; i<PLL_LOCK_TIME_CNT; i++) {;} /*Make PLL_LOCK_TIME_CNT as boot Packet*/ \r
+   \r
+   /*Set the PLLEN bit in PLLCTL to 1 to remove the PLL from bypass mode*/\r
+   PLL0_PLLCTL |=  0x1;\r
+\r
+   KICK0R = 0x83e70b13;  // Kick0 register + data (unlock)\r
+   KICK1R = 0x95a4f1e0;  // Kick1 register + data (unlock)\r
+   CFGCHIP3 |= 0x4;       // Enable 4.5 divider PLL\r
+   CFGCHIP3 |= 0x1;       // Select 4.5 divider for EMIFB clock source only (not EMIFA)\r
+\r
+   GEL_TextOut( "PLL Setup Complete\n" );\r
+}\r
+\r
+\r
+\r
+/* ------------------------------------------------------------------------ *\r
+ *                                                                          *\r
+ *  setup_pll_0( )                                                          *\r
+ *                                                                          *\r
+ *      clock_source    <- 0: Onchip Oscillator                             *\r
+ *                         1: External Clock                                *\r
+ *                                                                          *\r
+ *      pll_mult        <- 21: 22x Multiplier * 27MHz Clk = 594 MHz         *\r
+ *                                                                          *\r
+ * ------------------------------------------------------------------------ */\r
+setup_pll_0( int clock_source, int pll_mult )\r
+{\r
+    unsigned int* pll_ctl       = ( unsigned int* )( 0x01c11100 );\r
+    unsigned int* pll_pllm      = ( unsigned int* )( 0x01c11110 );\r
+    unsigned int* pll_cmd       = ( unsigned int* )( 0x01c11138 );\r
+    unsigned int* pll_postdiv   = ( unsigned int* )( 0x01c11128 );\r
+    unsigned int* pll_bpdiv     = ( unsigned int* )( 0x01c1112c );\r
+    unsigned int* pll_div1      = ( unsigned int* )( 0x01c11118 );\r
+    unsigned int* pll_div2      = ( unsigned int* )( 0x01c1111c );\r
+    unsigned int* pll_div3      = ( unsigned int* )( 0x01c11120 );\r
+    unsigned int* pll_div4      = ( unsigned int* )( 0x01c11160 );\r
+    unsigned int* pll_div5      = ( unsigned int* )( 0x01c11164 );\r
+    unsigned int* pll_div6      = ( unsigned int* )( 0x01c11168 );\r
+    unsigned int* pll_div7      = ( unsigned int* )( 0x01c1116c );\r
+    unsigned int* pll_div8      = ( unsigned int* )( 0x01c11170 );\r
+    unsigned int* pll_div9      = ( unsigned int* )( 0x01c11174 );\r
+\r
+    int pll0_freq = 24 * ( pll_mult + 1 );\r
+\r
+    GEL_TextOut( "Setup PLL0 " );\r
+\r
+    /*\r
+     *  Step 1 - Set clock mode\r
+     */\r
+    if ( clock_source == 0 )\r
+        *pll_ctl &= ~0x0100;        // Onchip Oscillator\r
+    else\r
+        *pll_ctl |= 0x0100;         // External Clock\r
+\r
+    /*\r
+     *  Step 2 - Set PLL to bypass\r
+     *         - Wait for PLL to stabilize\r
+     */\r
+    *pll_ctl &= ~0x0020;\r
+    *pll_ctl &= ~0x0001;\r
+    _wait( 150 );\r
+\r
+    /*\r
+     *  Step 3 - Reset PLL\r
+     */\r
+    *pll_ctl |= 0x0008;\r
+\r
+    /*\r
+     *  Step 4 - Disable PLL\r
+     *  Step 5 - Powerup PLL\r
+     *  Step 6 - Enable PLL\r
+     *  Step 7 - Wait for PLL to stabilize\r
+     */\r
+    *pll_ctl |= 0x0010;             // Disable PLL\r
+    *pll_ctl &= ~0x0002;            // Power up PLL\r
+    *pll_ctl &= ~0x0010;            // Enable PLL\r
+    _wait( 150 );                   // Wait for PLL to stabilize\r
+\r
+    /*\r
+     *  Step 8 - Load PLL multiplier\r
+     */\r
+    *pll_pllm = pll_mult & 0x3f;\r
+\r
+    /*\r
+     *  Step 9 - Set PLL post dividers\r
+     */\r
+\r
+    *pll_postdiv= 0x8000 | 1; // Post divider \r
+    *pll_div5 = 0x8001;\r
+    *pll_cmd   |= 0x0001;           // GO\r
+    _wait( 2000 );\r
+\r
+    /*\r
+     *  Step 10 - Wait for PLL to reset ( 2000 cycles )\r
+     *  Step 11 - Release from reset\r
+     */\r
+    _wait( 2000 );\r
+    *pll_ctl &= ~0x0008;\r
+\r
+    /*\r
+     *  Step 12 - Wait for PLL to re-lock ( 2000 cycles )\r
+     *  Step 13 - Switch out of BYPASS mode\r
+     */\r
+    _wait( 2000 );\r
+    *pll_ctl |= 0x0001;\r
+\r
+    // Enable 4.5X divider\r
+    KICK0R = 0x83e70b13;  // Kick0 register + data (unlock)\r
+    KICK1R = 0x95a4f1e0;  // Kick1 register + data (unlock)\r
+    CFGCHIP3 |= 0x4;       // Enable 4.5 divider PLL\r
+//    CFGCHIP3 |= 0x3;       // Select 4.5 divider for EMIFA / EMIFB clock source\r
+\r
+    pll0_freq = 24 * ( ( *pll_pllm & 0x3f ) + 1 ) / 2;\r
+\r
+    GEL_TextOut( "(DSP = %d MHz + ",,,,, pll0_freq );\r
+    GEL_TextOut( "ARM = %d MHz + ",,,,, pll0_freq );\r
+\r
+    if ( clock_source == 0 )\r
+        GEL_TextOut( "Onchip Oscillator)... " );\r
+    else\r
+        GEL_TextOut( "External Clock)... " );\r
+\r
+    GEL_TextOut( "[Done]\n" );\r
+}\r
+\r
+\r
+\r
+\r
+/* ------------------------------------------------------------------------ *\r
+ *                                                                          *\r
+ *  Disable_IRQ_Flush_Cache( )                                              *\r
+ *      Flush Cache & Disable Interrupts                                    *\r
+ *                                                                          *\r
+ * ------------------------------------------------------------------------ */\r
+Disable_IRQ_Flush_Cache( )\r
+{\r
+\r
+}\r
+\r
+\r
+/* ------------------------------------------------------------------------ *\r
+ *                                                                          *\r
+ *  Disable_EDMA( )                                                         *\r
+ *      Disabe EDMA events and interrupts, clear any pending events         *\r
+ *                                                                          *\r
+ * ------------------------------------------------------------------------ */\r
+Disable_EDMA( )\r
+{\r
+    #define EDMA_3CC_IECRH          *( unsigned int* )( 0x01c0105c )\r
+    #define EDMA_3CC_EECRH          *( unsigned int* )( 0x01c0102c )\r
+    #define EDMA_3CC_ICRH           *( unsigned int* )( 0x01c01074 )\r
+    #define EDMA_3CC_ECRH           *( unsigned int* )( 0x01c0100c )\r
+\r
+    #define EDMA_3CC_IECR           *( unsigned int* )( 0x01c01058 )\r
+    #define EDMA_3CC_EECR           *( unsigned int* )( 0x01c01028 )\r
+    #define EDMA_3CC_ICR            *( unsigned int* )( 0x01c01070 )\r
+    #define EDMA_3CC_ECR            *( unsigned int* )( 0x01c01008 )\r
+\r
+    GEL_TextOut( "Disable EDMA events\n" );\r
+\r
+    EDMA_3CC_IECRH  = 0xffffffff;   // IERH - Disable high interrupts\r
+    EDMA_3CC_EECRH  = 0xffffffff;   // EERH - Disable high events\r
+    EDMA_3CC_ICRH   = 0xffffffff;   // ICRH - Clear high interrupts\r
+    EDMA_3CC_ECRH   = 0xffffffff;   // ICRH - Clear high events\r
+\r
+    EDMA_3CC_IECR   = 0xffffffff;   // IER  - Disable low interrupts\r
+    EDMA_3CC_EECR   = 0xffffffff;   // EER  - Disable low events\r
+    EDMA_3CC_ICR    = 0xffffffff;   // ICR  - Clear low interrupts\r
+    EDMA_3CC_ECR    = 0xffffffff;   // ICRH - Clear low events\r
+}\r
+\r
+/* ------------------------------------------------------------------------ *\r
+ *                                                                          *\r
+ *  Enable_Instruction_Cache( )                                             *\r
+ *      Enable I-Cache                                                      *\r
+ *                                                                          *\r
+ * ------------------------------------------------------------------------ */\r
+hotmenu Enable_Instruction_Cache( )\r
+{\r
+    GEL_TextOut( "\Enable Instruction Cache.\n\n" );\r
+\r
+    CPSR = 0x400000d3;              // Set to supervisor mode, disable IRQ/FIQ\r
+    REG_CP15_I_CACHE = 1;           // Enable Instruction Cache\r
+} \r
+\r
+\r
+\r
+/* ------------------------------------------------------------------------ *\r
+ *                                                                          *\r
+ *  Setup_System_Config( )                                                  *\r
+ *      Configure PINMUX and other system module registers                  *\r
+ *                                                                          *\r
+ * ------------------------------------------------------------------------ */\r
+hotmenu\r
+Setup_System_Config( )\r
+{\r
+\r
+    GEL_TextOut( "Setup PINMUX Registers... " );\r
+    KICK0R = 0x83e70b13;  // Kick0 register + data (unlock)\r
+    KICK1R = 0x95a4f1e0;  // Kick1 register + data (unlock)\r
+\r
+    PINMUX0  = 0x11112188;  // EMIFB, Check EMU0/RTCK\r
+    PINMUX1  = 0x11111111;  // EMIFB\r
+    PINMUX2  = 0x11111111;  // EMIFB\r
+    PINMUX3  = 0x11111111;  // EMIFB\r
+    PINMUX4  = 0x11111111;  // EMIFB\r
+    PINMUX5  = 0x11111111;  // EMIFB\r
+    PINMUX6  = 0x11111111;  // EMIFB\r
+    PINMUX7  = 0x11111111;  // EMIFB, SPI0\r
+    PINMUX8  = 0x21122111;  // UART2, McASP1, I2C0, I2C1\r
+    PINMUX9  = 0x11011112;  // RMII CLK, McASP0, USB_DRVVBUS, UART2\r
+    PINMUX10 = 0x22222221;  // RMII/ McASP0\r
+    PINMUX11 = 0x11142222;  // McASP1, AXR2[0] (DIT), UART1, McASP0, MDIO (last 2 digits 0x22 for MDIO instead of GPIO)\r
+    PINMUX12 = 0x11111111;  // McASP0 / McASP1\r
+    PINMUX13 = 0x22111111;  // SD / McASP1\r
+    PINMUX14 = 0x88222222;  // SD / EMIFA\r
+    PINMUX15 = 0x21888888;  // SD / EMIFA\r
+    PINMUX16 = 0x11111112;  // SD / EMIFA\r
+    PINMUX17 = 0x00100111;  // EMIFA\r
+    PINMUX18 = 0x11111111;  // EMIFA\r
+    PINMUX19 = 0x00000001;  // EMIFA\r
+\r
+    CFGCHIP2 |= 0x00001000; // Enable USB1 clock\r
+\r
+    GEL_TextOut( "[Done]\n" );\r
+}\r
+\r
+hotmenu\r
+Setup_EMIFA_PinMux()\r
+{\r
+    PINMUX13 &= 0x00FFFFFF;\r
+    PINMUX13 |= 0x11000000;\r
+    PINMUX14  = 0x11111111;\r
+    PINMUX15  = 0x11111111;\r
+    PINMUX16  = 0x11111111;\r
+    PINMUX17  = 0x11111111;\r
+    PINMUX18  = 0x11111111;\r
+    PINMUX19 &= 0xFFFFFFF0;\r
+    PINMUX19 |= 0x00000001;\r
+\r
+    GEL_TextOut( "[Done]\n" );\r
+}\r
+\r
+/*Enable Function for PSC0*/\r
+PSC0_lPSC_enableARM(unsigned int PD, unsigned int LPSC_num) {\r
+\r
+  *(unsigned int*) (PSC0_MDCTL+4*LPSC_num) = (*(unsigned int*) (PSC0_MDCTL+4*LPSC_num) & 0xFFFFFEE0) | 0x0103;\r
+\r
+  PSC0_PTCMD = 0x1<<PD;\r
+  while( (PSC0_PTSTAT & (0x1<<PD) ) !=0) ; /*Wait for power state transition to finish*/\r
+  while( (*(unsigned int*)(PSC0_MDSTAT+4 * LPSC_num) & 0x1F) !=0x3);\r
+}\r
+\r
+hotmenu Enable_ARM()\r
+{\r
+    /* Turn on ARM RAM */\r
+    PSC0_lPSC_enable(0, 7);\r
+\r
+    /* Put branch to self at ARM vector table before releasing PSC */\r
+    *( unsigned int* )( 0xFFFF0000 ) = 0xEAFFFFFE;\r
+    *( unsigned int* )( 0xFFFF0004 ) = 0xEAFFFFFE;\r
+    *( unsigned int* )( 0xFFFF0008 ) = 0xEAFFFFFE;\r
+    *( unsigned int* )( 0xFFFF000C ) = 0xEAFFFFFE;\r
+\r
+    HOST0CFG = 0x00000001; \r
+\r
+    /* Turn on ARM */\r
+    PSC0_lPSC_enableARM(0, 14);\r
+\r
+       GEL_TextOut(" ARM Enabled\n");\r
+}\r
+\r
+/* ------------------------------------------------------------------------ *\r
+ *                                                                          *\r
+ *  Setup_Psc_All_On( )                                                     *\r
+ *      Enable all PSC modules on ALWAYSON and DSP power dominas.           *\r
+ *                                                                          *\r
+ * ------------------------------------------------------------------------ */\r
+hotmenu\r
+Setup_Psc_All_On( )\r
+{\r
+    int i;\r
+    GEL_TextOut( "Setup Power Modules (All on)... " );\r
+\r
+    // PSC0\r
+    PSC0_lPSC_enable(0, 0);\r
+    PSC0_lPSC_enable(0, 1);\r
+    PSC0_lPSC_enable(0, 2);\r
+    PSC0_lPSC_enable(0, 3);  // EMIFA\r
+    PSC0_lPSC_enable(0, 4);\r
+    PSC0_lPSC_enable(0, 5);\r
+    PSC0_lPSC_enable(0, 6);\r
+    PSC0_lPSC_enable(0, 8);\r
+    PSC0_lPSC_enable(0, 9);\r
+    PSC0_lPSC_enable(0, 10);\r
+    PSC0_lPSC_enable(0, 11);\r
+    PSC0_lPSC_enable(0, 12);\r
+    PSC0_lPSC_enable(0, 13);\r
+\r
+       // PSC1\r
+    PSC1_lPSC_enable(0, 1);\r
+    PSC1_lPSC_enable(0, 2);\r
+    PSC1_lPSC_enable(0, 3);\r
+       PSC1_lPSC_enable(0, 4);\r
+    PSC1_lPSC_enable(0, 5);\r
+    PSC1_lPSC_enable(0, 6);  // EMIFB\r
+    PSC1_lPSC_enable(0, 7);\r
+    PSC1_lPSC_enable(0, 8);\r
+    PSC1_lPSC_enable(0, 9);\r
+    PSC1_lPSC_enable(0, 10);\r
+    PSC1_lPSC_enable(0, 11);\r
+    PSC1_lPSC_enable(0, 12);\r
+    PSC1_lPSC_enable(0, 13);\r
+    PSC1_lPSC_enable(0, 16);\r
+    PSC1_lPSC_enable(0, 17);\r
+    PSC1_lPSC_enable(0, 20);\r
+    PSC1_lPSC_enable(0, 21);\r
+    PSC1_lPSC_enable(0, 24);\r
+    PSC1_lPSC_enable(0, 25);\r
+    PSC1_lPSC_enable(0, 26);\r
+    PSC1_lPSC_enable(0, 31);\r
+\r
+    GEL_TextOut( "[Done]\n" );\r
+}\r
+\r
+\r
+/* ------------------------------------------------------------------------ *\r
+ *                                                                          *\r
+ *  Setup_EMIFA( )                                                          *\r
+ *      Setup Async-EMIF to the specified timings using either NAND Hw      *\r
+ *      controller or normal EMIF controller                                *\r
+ *                                                                          *\r
+ * ------------------------------------------------------------------------ */\r
+#define AEMIF_AWCCR             *( unsigned int* )( 0x68000004 )\r
+#define AEMIF_A1CR              *( unsigned int* )( 0x68000010 )\r
+#define AEMIF_A2CR              *( unsigned int* )( 0x68000014 )\r
+#define AEMIF_A3CR              *( unsigned int* )( 0x68000018 )\r
+#define AEMIF_A4CR              *( unsigned int* )( 0x6800001C )\r
+#define AEMIF_NANDFCR           *( unsigned int* )( 0x68000060 )\r
+\r
+Setup_EMIFA( )\r
+{\r
+    /* Use extended wait cycles to keep CE low during NAND access */\r
+    AEMIF_AWCCR = 0xff;\r
+\r
+    /* Setup CS2 - 8-bit normal async */\r
+    AEMIF_A1CR = 0x00300608;\r
+    AEMIF_NANDFCR &= ~1;\r
+\r
+    /* Setup CS3 - 8-bit NAND */\r
+    AEMIF_A2CR = 0x00300388;\r
+    AEMIF_NANDFCR |= 2;\r
+\r
+    /* Setup CS4 - 8-bit normal async */\r
+    AEMIF_A3CR = 0x00a00504;  // Setup=0, Strobe=A, Hold=0, TA=1, 8-bit\r
+    AEMIF_NANDFCR &= ~4;\r
+\r
+    /* Setup CS5 - 8-bit normal async */\r
+    AEMIF_A4CR = 0x00a00504;  // Setup=0, Strobe=A, Hold=0, TA=1, 8-bit\r
+    AEMIF_NANDFCR &= ~8;\r
+}\r
+\r
+\r
+/* ------------------------------------------------------------------------ *\r
+ *                                                                          *\r
+ *  Setup_EMIFB( )                                                          *\r
+ *      Configure SDRAM.                                                    *\r
+ *                                                                          *\r
+ * ------------------------------------------------------------------------ */\r
+#define EMIFB_BASE              0xB0000000\r
+#define EMIFB_SDSTAT            *(unsigned int*)(EMIFB_BASE + 0x04)    //SDRAM Status Register  \r
+#define EMIFB_SDCFG             *(unsigned int*)(EMIFB_BASE + 0x08)    //SDRAM Bank Config Register\r
+#define EMIFB_SDREF             *(unsigned int*)(EMIFB_BASE + 0x0C)    //SDRAM Refresh Control Register\r
+#define EMIFB_SDTIM1            *(unsigned int*)(EMIFB_BASE + 0x10)    //SDRAM Timing Register\r
+#define EMIFB_SDTIM2            *(unsigned int*)(EMIFB_BASE + 0x14)    //SDRAM Timing Register\r
+\r
+\r
+\r
+Setup_EMIFB()\r
+{\r
+    // ISSI IS42S16160B-6BL SDRAM, 2 x 16M x 16 (32-bit data path), 133MHz\r
+    EMIFB_SDCFG = 0         // SDRAM Bank Config Register\r
+        |( 1 << 15)         // Unlock timing registers\r
+        |( 2 << 9 )         // CAS latency is 2\r
+        |( 2 << 4 )         // 4 bank SDRAM devices\r
+        |( 1 << 0 );        // 512-word pages requiring 9 column address bits\r
+\r
+    EMIFB_SDREF = 0         // SDRAM Refresh Control Register\r
+        |( 0 << 31)         // Low power mode disabled\r
+        |( 0 << 30)         // MCLK stoping disabled\r
+        |( 0 << 23)         // Selects self refresh instead of power down\r
+        |( 1040 <<0);       // Refresh rate = 7812.5ns / 7.5ns\r
+\r
+    EMIFB_SDTIM1 = 0        // SDRAM Timing Register 1\r
+        |( 8 << 25)         // (67.5ns / 7.55ns) - 1 = TRFC  @ 133MHz\r
+        |( 2 << 22 )        // (20ns / 7.5ns) - 1 =TRP\r
+        |( 2 << 19 )        // (20ns / 7.5ns) - 1 = TRCD\r
+        |( 1 << 16 )        // (14ns / 7.5ns) - 1 = TWR\r
+        |( 5 << 11 )        // (45ns / 7.5ns) - 1 = TRAS\r
+        |( 8 <<  6 )        // (67.5ns / 7.5ns) - 1 = TRC\r
+        |( 2 <<  3 );       // *(((4 * 14ns) + (2 * 7.5ns)) / (4 * 7.5ns)) -1. = TRRD\r
+                            // but it says to use this formula if 8 banks but only 4 are used here.\r
+                            // and SDCFG1 register only suports upto 4 banks.\r
+\r
+    EMIFB_SDTIM2 = 0        // SDRAM Timing Register 2\r
+        |( 14<< 27)         // not sure how they got this number. the datasheet says value should be\r
+                            // "Maximum number of refresh_rate intervals from Activate to Precharge command"\r
+                            // but has no equation. TRASMAX is 120k.\r
+        |( 9 << 16)         // ( 70 / 7.5) - 1\r
+        |( 5 << 0 );        // ( 45 / 7.5 ) - 1\r
+\r
+    EMIFB_SDCFG = 0         // SDRAM Bank Config Register\r
+           |( 1 << 16)\r
+        |( 0 << 15)         // Unlock timing registers\r
+        |( 2 << 9 )         // CAS latency is 2\r
+        |( 2 << 4 )         // 4 bank SDRAM devices\r
+        |( 1 << 0 );        // 512-word pages requiring 9 column address bits\r
+\r
+  /*Program the EMIF3C_SDRAM Controller*/\r
+//  EMIF3C_SDCFG  = 0x00008421;\r
+//  EMIF3C_SDTIM1 = 0x10912A10;  \r
+//  EMIF3C_SDTIM2 = 0x70090005;\r
+//  EMIF3C_SDREF  = 0x410;\r
+}\r
+\r
+/* GEL file to load microphone files */\r
+\r
+#define MIC1PATH  "$(GEL_file_dir)/mics/y16L8g3m7090_1.pcm"\r
+#define MIC2PATH  "$(GEL_file_dir)/mics/y16L8g3m7090_2.pcm"\r
+#define MIC3PATH  "$(GEL_file_dir)/mics/y16L8g3m7090_3.pcm"\r
+#define MIC4PATH  "$(GEL_file_dir)/mics/y16L8g3m7090_4.pcm"\r
+#define MIC5PATH  "$(GEL_file_dir)/mics/y16L8g3m7090_5.pcm"\r
+#define MIC6PATH  "$(GEL_file_dir)/mics/y16L8g3m7090_6.pcm"\r
+#define MIC7PATH  "$(GEL_file_dir)/mics/y16L8g3m7090_7.pcm"\r
+#define MIC8PATH  "$(GEL_file_dir)/mics/y16L8g3m7090_8.pcm"\r
+\r
+#define OUTPUTPATH  "$(GEL_file_dir)/mics/fileOutput.bin"\r
+\r
+BFLoadMic(buffer,micpath)\r
+{\r
+    GEL_MemoryLoad(buffer,0,160,micpath,32);\r
+}\r
+\r
+BFSaveMic(buffer,micpath)\r
+{\r
+    GEL_MemorySave(buffer,0,320000,micpath,8,0,32);\r
+}\r
+\r
+menuitem "Microphone Load Functions";\r
+\r
+dialog BFLoadOneMic(buffer "Buffer Address",micpath "Microphone File Path")\r
+{\r
+    GEL_TextOut("Loading %s\n","",,,,micpath);\r
+    BFLoadMic(buffer,micpath);\r
+}\r
+\r
+hotmenu BFLoadMic1()\r
+{\r
+    GEL_TextOut("Loading %s\n","",,,,MIC1PATH);\r
+    BFLoadMic(fileInBufs[0],MIC1PATH);\r
+}\r
+\r
+hotmenu BFLoadMic2()\r
+{\r
+    GEL_TextOut("Loading %s\n","",,,,MIC2PATH);\r
+    BFLoadMic(fileInBufs[1],MIC2PATH);\r
+}\r
+\r
+hotmenu BFLoadMic3()\r
+{\r
+    GEL_TextOut("Loading %s\n","",,,,MIC3PATH);\r
+    BFLoadMic(fileInBufs[2],MIC3PATH);\r
+}\r
+\r
+hotmenu BFLoadMic4()\r
+{\r
+    GEL_TextOut("Loading %s\n","",,,,MIC4PATH);\r
+    BFLoadMic(fileInBufs[3],MIC4PATH);\r
+}\r
+\r
+hotmenu BFLoadMic5()\r
+{\r
+    GEL_TextOut("Loading %s\n","",,,,MIC5PATH);\r
+    BFLoadMic(fileInBufs[4],MIC5PATH);\r
+}\r
+\r
+hotmenu BFLoadMic6()\r
+{\r
+    GEL_TextOut("Loading %s\n","",,,,MIC6PATH);\r
+    BFLoadMic(fileInBufs[5],MIC6PATH);\r
+}\r
+\r
+hotmenu BFLoadMic7()\r
+{\r
+    GEL_TextOut("Loading %s\n","",,,,MIC7PATH);\r
+    BFLoadMic(fileInBufs[6],MIC7PATH);\r
+}\r
+\r
+hotmenu BFLoadMic8()\r
+{\r
+    GEL_TextOut("Loading %s\n","",,,,MIC8PATH);\r
+    BFLoadMic(fileInBufs[7],MIC8PATH);\r
+}\r
+\r
+hotmenu BFLoadMicAll()\r
+{\r
+    BFLoadMic1();\r
+    BFLoadMic2();\r
+    BFLoadMic3();\r
+    BFLoadMic4();\r
+    BFLoadMic5();\r
+    BFLoadMic6();\r
+    BFLoadMic7();\r
+    BFLoadMic8();\r
+}\r
+\r
+menuitem "Microphone Save Functions";\r
+\r
+hotmenu BFSaveOutput()\r
+{\r
+    GEL_TextOut("Saving %s\n","",,,,OUTPUTPATH);\r
+    BFSaveMic(fileOutBufs,OUTPUTPATH);\r
+}\r
diff --git a/gel/mics/y16L8g3m7090_1.pcm b/gel/mics/y16L8g3m7090_1.pcm
new file mode 100644 (file)
index 0000000..146ad8a
Binary files /dev/null and b/gel/mics/y16L8g3m7090_1.pcm differ
diff --git a/gel/mics/y16L8g3m7090_2.pcm b/gel/mics/y16L8g3m7090_2.pcm
new file mode 100644 (file)
index 0000000..1429b3e
Binary files /dev/null and b/gel/mics/y16L8g3m7090_2.pcm differ
diff --git a/gel/mics/y16L8g3m7090_3.pcm b/gel/mics/y16L8g3m7090_3.pcm
new file mode 100644 (file)
index 0000000..d9de2c4
Binary files /dev/null and b/gel/mics/y16L8g3m7090_3.pcm differ
diff --git a/gel/mics/y16L8g3m7090_4.pcm b/gel/mics/y16L8g3m7090_4.pcm
new file mode 100644 (file)
index 0000000..d515aff
Binary files /dev/null and b/gel/mics/y16L8g3m7090_4.pcm differ
diff --git a/gel/mics/y16L8g3m7090_5.pcm b/gel/mics/y16L8g3m7090_5.pcm
new file mode 100644 (file)
index 0000000..8d5776d
Binary files /dev/null and b/gel/mics/y16L8g3m7090_5.pcm differ
diff --git a/gel/mics/y16L8g3m7090_6.pcm b/gel/mics/y16L8g3m7090_6.pcm
new file mode 100644 (file)
index 0000000..cc92c93
Binary files /dev/null and b/gel/mics/y16L8g3m7090_6.pcm differ
diff --git a/gel/mics/y16L8g3m7090_7.pcm b/gel/mics/y16L8g3m7090_7.pcm
new file mode 100644 (file)
index 0000000..95014cd
Binary files /dev/null and b/gel/mics/y16L8g3m7090_7.pcm differ
diff --git a/gel/mics/y16L8g3m7090_8.pcm b/gel/mics/y16L8g3m7090_8.pcm
new file mode 100644 (file)
index 0000000..a4e382a
Binary files /dev/null and b/gel/mics/y16L8g3m7090_8.pcm differ
diff --git a/hlc.h b/hlc.h
new file mode 100644 (file)
index 0000000..d71541f
--- /dev/null
+++ b/hlc.h
@@ -0,0 +1,300 @@
+/******************************************************************************\r
+ * FILE PURPOSE:header file of HLC (high-level compensation)\r
+ ******************************************************************************\r
+ * FILE NAME:   hlc.h\r
+ *\r
+ * DESCRIPTION: Contains external definitions&functions prototypes for HLC\r
+ *\r
+ *        Copyright (c) 2007 \96 2013 Texas Instruments Incorporated                
+ *                                                                                
+ *              All rights reserved not granted herein.                           
+ *                                                                                
+ *                         Limited License.                                       
+ *                                                                                
+ *  Texas Instruments Incorporated grants a world-wide, royalty-free,             
+ *  non-exclusive license under copyrights and patents it now or hereafter owns   
+ *  or controls to make, have made, use, import, offer to sell and sell           
+ *  ("Utilize") this software subject to the terms herein.  With respect to the   
+ *  foregoing patent license, such license is granted solely to the extent that   
+ *  any such patent is necessary to Utilize the software alone.  The patent       
+ *  license shall not apply to any combinations which include this software,      
+ *  other than combinations with devices manufactured by or for TI (\93TI           
+ *  Devices\94).  No hardware patent is licensed hereunder.                         
+ *                                                                                
+ *  Redistributions must preserve existing copyright notices and reproduce this   
+ *  license (including the above copyright notice and the disclaimer and (if      
+ *  applicable) source code license limitations below) in the documentation       
+ *  and/or other materials provided with the distribution                         
+ *                                                                                
+ *  Redistribution and use in binary form, without modification, are permitted    
+ *  provided that the following conditions are met:                               
+ *                                                                                
+ *    *  No reverse engineering, decompilation, or disassembly of this software   
+ *  is permitted with respect to any software provided in binary form.            
+ *                                                                                
+ *    *  any redistribution and use are licensed by TI for use only with TI       
+ *  Devices.                                                                      
+ *                                                                                
+ *    *  Nothing shall obligate TI to provide you with source code for the        
+ *  software licensed and provided to you in object code.                         
+ *                                                                                
+ *  If software source code is provided to you, modification and redistribution   
+ *  of the source code are permitted provided that the following conditions are   
+ *  met:                                                                          
+ *                                                                                
+ *    *  any redistribution and use of the source code, including any resulting   
+ *  derivative works, are licensed by TI for use only with TI Devices.            
+ *                                                                                
+ *    *  any redistribution and use of any object code compiled from the source   
+ *  code and any resulting derivative works, are licensed by TI for use only      
+ *  with TI Devices.                                                              
+ *                                                                                
+ *  Neither the name of Texas Instruments Incorporated nor the names of its       
+ *  suppliers may be used to endorse or promote products derived from this        
+ *  software without specific prior written permission.                           
+ *                                                                                
+ *  DISCLAIMER.                                                                   
+ *                                                                                
+ *  THIS SOFTWARE IS PROVIDED BY TI AND TI\92S LICENSORS "AS IS" AND ANY EXPRESS    
+ *  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED             
+ *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE        
+ *  DISCLAIMED. IN NO EVENT SHALL TI AND TI\92S LICENSORS BE LIABLE FOR ANY         
+ *  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    
+ *  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR            
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER    
+ *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT            
+ *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY     
+ *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH   
+ *  DAMAGE.                                                                       \r
+ *****************************************************************************/\r
+#ifndef _HLC_H\r
+#define _HLC_H\r
+\r
+/**\r
+ *  @file   hlc.h\r
+ *  @brief  Contains external APIs for the HLC module.\r
+ *\r
+ */\r
+\r
+/* System level header files */\r
+#include <ti/mas/types/types.h>            /* DSP types */\r
+\r
+/** \r
+ * @defgroup HLC High Level Compensation (HLC) \r
+ *\r
+ * @brief HLC is designed to attenuate the incoming signal when the signal level \r
+ *        exceeds certain pre-configured threshold to avoid possible distortion \r
+ *        due to future flat-top saturation. HLC is a frame-based operation and \r
+ *        there's a requirement of minimum 5ms frame size, after HLC parameters \r
+ *        are properly configured the signal level will be measured and compared \r
+ *        with the threshold, then an attenuation will be calculated and applied \r
+ *        to the signal.\r
+ *\r
+ *        Application of attenuation to the signal should not be instantaneous. \r
+ *        Rather HLC should gradually ramp in and eventually apply the complete \r
+ *        attenuation. The ramping in time constant is relatively low to ensure \r
+ *        fast action so that the signal level can be reduced before saturation \r
+ *        actually occurs.  It is fixed to 10ms/dB for now. Ramping in should be \r
+ *        triggered only when the power exceeds thresh. During this period, \r
+ *        attenuation could increase or stay constant, based on the changes in \r
+ *        signal power.\r
+ *\r
+ *        In the case the signal level goes below thresh, HLC attenuation should \r
+ *        disengage, although slowly, so as not to cause sudden changes in the \r
+ *        signal level heard by the listener, especially during short pauses in \r
+ *        speech. The ramping out time constant is configurable between 10ms to \r
+ *        1000ms per dB reduction in attenuation, specified in 10ms steps. Ramping \r
+ *        out should be triggered only for powers below thresh. During this period, \r
+ *        attenuation should gradually reduce based on the setting of the ramp-out \r
+ *        time period. \r
+ *\r
+ */\r
\r
+/** @ingroup HLC */\r
+/* @{ */\r
+\r
+/** @defgroup hlc_api_return_codes HLC API return codes\r
+ *  These are the return codes for the HLC module API functions.\r
+ *  \r
+ * @{\r
+ * @name HLC Function Return Value Definitions\r
+ *\r
+ */\r
+/* @{ */\r
+enum {\r
+ hlc_NOERR    = 0,   /**< Returned from function without error */\r
+ hlc_ERROR    = 1,   /**< Returned from function with error    */       \r
+ hlc_BADPARAM = 2    /**< Returned from function with wrong parameters */       \r
+};\r
+/*  @} */\r
+/** @} */\r
+\r
\r
+/**\r
+ *  @name HLC sampling rate factor\r
+ *  \remark These numbers are used as multipliers, so can't be changed to other values.\r
+ */\r
+enum {\r
+  hlc_SRATE_FACTOR_8K  = 1, /**< sampling rate is 8kHz  */\r
+  hlc_SRATE_FACTOR_16K = 2  /**< sampling rate is 16kHz */\r
+};                           \r
+\r
+\r
+/**\r
+ *  @name HLC configure bit fields\r
+ *  \r
+ */\r
+enum {\r
+  hlc_CFG_BIT_THRESH      = 0,  /**< Bit 0 for threshold                  */\r
+  hlc_CFG_BIT_RAMP_OUT    = 1,  /**< Bit 1 for ramp out period            */\r
+  hlc_CFG_BIT_POWER_TC    = 2,  /**< Bit 2 for power calculation constant */\r
+  hlc_CFG_BIT_FRM_LEN     = 3,  /**< Bit 3 for frame length               */\r
+  hlc_CFG_BIT_SRATE_FACT  = 4   /**< Bit 4 for sampling rate factor       */\r
+};\r
+\r
+/**\r
+ *  @name HLC state\r
+ *  \r
+ */\r
+enum {\r
+  hlc_DISABLED = 0,       /**< HLC is disabled */\r
+  hlc_ENABLED  = 1        /**< HLC is enabled  */\r
+};\r
+\r
+/**\r
+ *  @name HLC power calculation constant \r
+ *\r
+ */\r
+enum {\r
+  hlc_TC_PWR_4_MS  = 1,   /**< 4 msec time constant  */\r
+  hlc_TC_PWR_8_MS  = 2,   /**< 8 msec time constant  */\r
+  hlc_TC_PWR_16_MS = 3    /**< 16 msec time constant */\r
+};\r
+\r
+/** \r
+ * \brief HLC configure Structure\r
+ *  \r
+ * Contains parameters that can be chosen to be configured by user or using \r
+ * the default when initializing HLC\r
+ *\r
+ */\r
+typedef struct{\r
+  tuint      valid_bf;            /**< Bit-fields indicating which parameters to configure \n\r
+                                       \link HLC::hlc_CFG_BIT_THRESH bitfield definitions \endlink */\r
+  Fract      thresh;              /**< Threshold (0.5 dBm0 units) in S14.1 format \n\r
+                                      valid range: -96 ~ +6 corresponding to -48~+3 dBm0 \n\r
+                                      default: 0 dBm0*/\r
+  tint       ramp_out_period;     /**< Ramping out period in ms/dB \n\r
+                                      valid range: 10~1000ms/dB, default 700ms/dB*/ \r
+  tint       power_tc;            /**< Power measurement time constant \r
+                                       valid numbers: \n\r
+                                       \link HLC::hlc_TC_PWR_4_MS  hlc_TC_PWR_4_MS  \endlink \n\r
+                                       \link HLC::hlc_TC_PWR_8_MS  hlc_TC_PWR_8_MS  \endlink \n\r
+                                       \link HLC::hlc_TC_PWR_16_MS hlc_TC_PWR_16_MS \endlink \r
+                                  */\r
+  tint       srate_factor;        /**< Sampling rate factor: \n\r
+                                      \link HLC::hlc_SRATE_FACTOR_8K hlc_SRATE_FACTOR_8K \endlink \n\r
+                                      \link HLC::hlc_SRATE_FACTOR_16K hlc_SRATE_FACTOR_16K \endlink \n \r
+                                  */\r
+  tint       frm_len;             /**< Input signal frame length in samples, must be multiple of 5ms */\r
+} hlcConfig_t;\r
+\r
+/**\r
+ *  @name HLC control code\r
+ *  \r
+ */\r
+enum {\r
+  hlc_CTL_DIS = 0,    /**< Disable HLC */\r
+  hlc_CTL_ENA = 1,    /**< Enable HLC */\r
+  hlc_CTL_THR = 2     /**< Set \link hlcConfig_t::thresh thresh\endlink in hlcConfig_t */\r
+};\r
+\r
+\r
+/** \r
+ * \brief  HLC Control Structure.\r
+ * Contains control commands to change HLC parameters without \r
+ * resetting other parameters\r
+ *\r
+ */\r
+typedef struct{\r
+  tint    ctl_code;    /**< Set to one of hlc_CTL_XXX control codes, \n\r
+                        \link HLC::hlc_CTL_DIS  Control Code \endlink */\r
+  union {\r
+    Fract   thresh;    /**< If ctl_code is \link HLC::hlc_CTL_THR hlc_CTL_THR \endlink, \r
+                            set the \link hlcConfig_t::thresh thresh\endlink in the HLC instance */\r
+  } u;\r
+} hlcControl_t;\r
+\r
+/**\r
+ * @name External APIs for HLC\r
+ *\r
+ */\r
+/* @{ */\r
+/**\r
+ *  @brief To get the size of a HLC instance structure\r
+ *            \r
+ *  \remark Function hlcGetSizes() is the first function to be called.  \r
+ *   \r
+ *\r
+ *  @param[in, out]   instsize        Pointer to the size of a HLC instance.\r
+ *            \r
+ *  @return           \link HLC::hlc_NOERR     hlc_NOERR,   \endlink \n\r
+ *                    \link HLC::hlc_ERROR     hlc_ERROR,   \endlink \n\r
+ *                    \link HLC::hlc_BADPARAM  hlc_BADPARAM \endlink \r
+ */ \r
+tint hlcGetSizes (tint *instsize); \r
+\r
+/**\r
+ *  @brief Init HLC according to the user configurations.\r
+ *            \r
+ *  \remark Function hlcInit() needs be called after hlcGetSizes().  After\r
+ *  this function call, HLC is disabled.  \r
+ *   \r
+ *\r
+ *  @param[in, out]   inst         Pointer to a HLC instance structure.\r
+ *  @param[in]        hlcCfg_info  Pointer to a configuration structure hlcConfig_t.\r
+ *              \r
+ *  @return           \link HLC::hlc_NOERR     hlc_NOERR,   \endlink \n\r
+ *                    \link HLC::hlc_ERROR     hlc_ERROR,   \endlink \n\r
+ *                    \link HLC::hlc_BADPARAM  hlc_BADPARAM \endlink \r
+ * \r
+ */\r
+tint hlcInit(void *inst, hlcConfig_t *hlcCfg_info);\r
+\r
+/**\r
+ *  @brief Change parameters on the fly without re-initialzing all HLC parameters\r
+ *            \r
+ *  \remark Function hlcControl() must be called after hlcInit() to enable HLC.  Also\r
+ *   it can be called anytime to reconfigure \link hlcConfig_t::thresh thresh\endlink \r
+ *   in the HLC instance. \r
+ *   \r
+ *\r
+ *  @param[in, out]   hlcInst     Pointer to a HLC instance.\r
+ *  @param[in]        hlc_ctrl    Pointer to a control structure hlcControl_t.\r
+ *             \r
+ *  @return           \link HLC::hlc_NOERR     hlc_NOERR,   \endlink \n\r
+ *                    \link HLC::hlc_ERROR     hlc_ERROR    \endlink \r
+ *                   \r
+ */\r
+tint hlcControl(void *hlcInst, hlcControl_t *hlc_ctrl);\r
+\r
+/**\r
+ *  @brief Calculate and apply attenuation when HLC is enabled\r
+ *\r
+ *  \remark This function is the function that processes the voice\r
+ *  samples and needs to be called every frame.\r
+ *\r
+ *  @param[in]        hlcInst     Pointer to a HLC instance.\r
+ *  @param[in, out]   samples     Pointer to the input/output signal buffer\r
+ *             \r
+ *  @return           \link HLC::hlc_NOERR     hlc_NOERR,   \endlink \n\r
+ *                    \link HLC::hlc_ERROR     hlc_ERROR    \endlink \r
+ */\r
+tint hlcProcess (void *hlcInst, void *samples);\r
+\r
+/* @} */\r
+/* @} */ /* ingroup HLC */\r
+#endif\r
+\r
+/* end of hlc.h */\r
+\r
diff --git a/lib/vpe_a.a64P b/lib/vpe_a.a64P
new file mode 100644 (file)
index 0000000..14cd267
Binary files /dev/null and b/lib/vpe_a.a64P differ
diff --git a/lib/vpe_a.a64P_size.txt b/lib/vpe_a.a64P_size.txt
new file mode 100644 (file)
index 0000000..424cd97
--- /dev/null
@@ -0,0 +1,16 @@
+====================================================================\r
+REPORT FOR LIBRARY: lib/vpe_a.a64P\r
+====================================================================\r
+\r
+\r
+************************************************************\r
+REPORT FOR FILE: nrfft32x32_sa.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        832  0x00000340  CODE \r
+\r
+------------------------------------------------------------\r
+Totals by section type\r
+------------------------------------------------------------\r
+                Code :        832  0x00000340\r
diff --git a/lib/vpe_a.a64Pe b/lib/vpe_a.a64Pe
new file mode 100644 (file)
index 0000000..432c3a1
Binary files /dev/null and b/lib/vpe_a.a64Pe differ
diff --git a/lib/vpe_a.a64Pe_size.txt b/lib/vpe_a.a64Pe_size.txt
new file mode 100644 (file)
index 0000000..c4b837a
--- /dev/null
@@ -0,0 +1,16 @@
+====================================================================\r
+REPORT FOR LIBRARY: lib/vpe_a.a64Pe\r
+====================================================================\r
+\r
+\r
+************************************************************\r
+REPORT FOR FILE: nrfft32x32be_sa.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        832  0x00000340  CODE \r
+\r
+------------------------------------------------------------\r
+Totals by section type\r
+------------------------------------------------------------\r
+                Code :        832  0x00000340\r
diff --git a/lib/vpe_a.ae64P b/lib/vpe_a.ae64P
new file mode 100644 (file)
index 0000000..c0f597c
Binary files /dev/null and b/lib/vpe_a.ae64P differ
diff --git a/lib/vpe_a.ae64Pe b/lib/vpe_a.ae64Pe
new file mode 100644 (file)
index 0000000..1955a0c
Binary files /dev/null and b/lib/vpe_a.ae64Pe differ
diff --git a/lib/vpe_c.a64P b/lib/vpe_c.a64P
new file mode 100644 (file)
index 0000000..cbdfacf
Binary files /dev/null and b/lib/vpe_c.a64P differ
diff --git a/lib/vpe_c.a64P_size.txt b/lib/vpe_c.a64P_size.txt
new file mode 100644 (file)
index 0000000..a8b374a
--- /dev/null
@@ -0,0 +1,177 @@
+====================================================================\r
+REPORT FOR LIBRARY: lib/vpe_c.a64P\r
+====================================================================\r
+\r
+\r
+************************************************************\r
+REPORT FOR FILE: hlc.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       1408  0x00000580  CODE \r
+         .const:_hlcdBLinTable :         24  0x00000018  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: slm.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        384  0x00000180  CODE \r
+               .const:_slm_tbl :        190  0x000000be  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: snl.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       1184  0x000004a0  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: svd.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        288  0x00000120  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: pcm.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       2880  0x00000b40  CODE \r
+           .const:_pcm_seg_end :         16  0x00000010  DATA \r
+     .const:_pcm_seg_base_ulaw :         16  0x00000010  DATA \r
+     .const:_pcm_seg_base_alaw :         16  0x00000010  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrprocess.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       2656  0x00000a60  CODE \r
+          .const:_nr_sqrt_coef :         10  0x0000000a  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrgain.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        352  0x00000160  CODE \r
+          .const:_nrdBLinTable :         24  0x00000018  DATA \r
+      .const:_nrdBCorrLinTable :         16  0x00000010  DATA \r
+    .const:_nrInterpolateCoeff :         20  0x00000014  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: hlcinit.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        288  0x00000120  CODE \r
+                        .const :          4  0x00000004  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: slminit.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        128  0x00000080  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: snlinit.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        160  0x000000a0  CODE \r
+                        .const :          4  0x00000004  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: svdinit.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        128  0x00000080  CODE \r
+                        .const :          4  0x00000004  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: sfc_coef.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+.const:_sfc_def_decim_interp_filt :         36  0x00000024  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: nr.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       2080  0x00000820  CODE \r
+                        .cinit :         92  0x0000005c  DATA \r
+                          .far :         84  0x00000054  UDATA\r
+                        .const :         32  0x00000020  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrtbl.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                        .cinit :         40  0x00000028  DATA \r
+         .const:_nr_win_3ms_8k :         48  0x00000030  DATA \r
+         .const:_nr_win_4ms_8k :         64  0x00000040  DATA \r
+         .const:_nr_win_5ms_8k :         80  0x00000050  DATA \r
+         .const:_nr_win_6ms_8k :         96  0x00000060  DATA \r
+        .const:_nr_win_3ms_16k :         96  0x00000060  DATA \r
+        .const:_nr_win_4ms_16k :        128  0x00000080  DATA \r
+        .const:_nr_win_5ms_16k :        160  0x000000a0  DATA \r
+        .const:_nr_win_6ms_16k :        192  0x000000c0  DATA \r
+                          .far :         32  0x00000020  UDATA\r
+\r
+************************************************************\r
+REPORT FOR FILE: hlcnum.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        256  0x00000100  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: sfc.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        640  0x00000280  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: slmnum.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        160  0x000000a0  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrnum.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       3456  0x00000d80  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrfft.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       1728  0x000006c0  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrffttb.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+           .const:_nr_fft_w256 :       1008  0x000003f0  DATA \r
+           .const:_nr_fft_w128 :        480  0x000001e0  DATA \r
+    .const:_nr_sine_cosine_tbl :       1024  0x00000400  DATA \r
+\r
+------------------------------------------------------------\r
+Totals by section type\r
+------------------------------------------------------------\r
+  Uninitialized Data :        116  0x00000074\r
+    Initialized Data :       3920  0x00000f50\r
+                Code :      18176  0x00004700\r
diff --git a/lib/vpe_c.a64Pe b/lib/vpe_c.a64Pe
new file mode 100644 (file)
index 0000000..e7eb167
Binary files /dev/null and b/lib/vpe_c.a64Pe differ
diff --git a/lib/vpe_c.a64Pe_size.txt b/lib/vpe_c.a64Pe_size.txt
new file mode 100644 (file)
index 0000000..8ccbd42
--- /dev/null
@@ -0,0 +1,177 @@
+====================================================================\r
+REPORT FOR LIBRARY: lib/vpe_c.a64Pe\r
+====================================================================\r
+\r
+\r
+************************************************************\r
+REPORT FOR FILE: hlc.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       1408  0x00000580  CODE \r
+         .const:_hlcdBLinTable :         24  0x00000018  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: slm.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        384  0x00000180  CODE \r
+               .const:_slm_tbl :        190  0x000000be  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: snl.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       1184  0x000004a0  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: svd.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        288  0x00000120  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: pcm.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       2880  0x00000b40  CODE \r
+           .const:_pcm_seg_end :         16  0x00000010  DATA \r
+     .const:_pcm_seg_base_ulaw :         16  0x00000010  DATA \r
+     .const:_pcm_seg_base_alaw :         16  0x00000010  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrprocess.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       2656  0x00000a60  CODE \r
+          .const:_nr_sqrt_coef :         10  0x0000000a  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrgain.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        352  0x00000160  CODE \r
+          .const:_nrdBLinTable :         24  0x00000018  DATA \r
+      .const:_nrdBCorrLinTable :         16  0x00000010  DATA \r
+    .const:_nrInterpolateCoeff :         20  0x00000014  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: hlcinit.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        288  0x00000120  CODE \r
+                        .const :          4  0x00000004  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: slminit.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        128  0x00000080  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: snlinit.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        160  0x000000a0  CODE \r
+                        .const :          4  0x00000004  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: svdinit.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        128  0x00000080  CODE \r
+                        .const :          4  0x00000004  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: sfc_coef.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+.const:_sfc_def_decim_interp_filt :         36  0x00000024  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: nr.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       2080  0x00000820  CODE \r
+                        .cinit :         92  0x0000005c  DATA \r
+                          .far :         84  0x00000054  UDATA\r
+                        .const :         32  0x00000020  DATA \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrtbl.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                        .cinit :         40  0x00000028  DATA \r
+         .const:_nr_win_3ms_8k :         48  0x00000030  DATA \r
+         .const:_nr_win_4ms_8k :         64  0x00000040  DATA \r
+         .const:_nr_win_5ms_8k :         80  0x00000050  DATA \r
+         .const:_nr_win_6ms_8k :         96  0x00000060  DATA \r
+        .const:_nr_win_3ms_16k :         96  0x00000060  DATA \r
+        .const:_nr_win_4ms_16k :        128  0x00000080  DATA \r
+        .const:_nr_win_5ms_16k :        160  0x000000a0  DATA \r
+        .const:_nr_win_6ms_16k :        192  0x000000c0  DATA \r
+                          .far :         32  0x00000020  UDATA\r
+\r
+************************************************************\r
+REPORT FOR FILE: hlcnum.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        256  0x00000100  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: sfc.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        608  0x00000260  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: slmnum.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        160  0x000000a0  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrnum.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       3456  0x00000d80  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrfft.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       1696  0x000006a0  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrffttb.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+           .const:_nr_fft_w256 :       1008  0x000003f0  DATA \r
+           .const:_nr_fft_w128 :        480  0x000001e0  DATA \r
+    .const:_nr_sine_cosine_tbl :       1024  0x00000400  DATA \r
+\r
+------------------------------------------------------------\r
+Totals by section type\r
+------------------------------------------------------------\r
+  Uninitialized Data :        116  0x00000074\r
+    Initialized Data :       3920  0x00000f50\r
+                Code :      18112  0x000046c0\r
diff --git a/lib/vpe_c.ae64P b/lib/vpe_c.ae64P
new file mode 100644 (file)
index 0000000..ddb1d4f
Binary files /dev/null and b/lib/vpe_c.ae64P differ
diff --git a/lib/vpe_c.ae64Pe b/lib/vpe_c.ae64Pe
new file mode 100644 (file)
index 0000000..8bc1564
Binary files /dev/null and b/lib/vpe_c.ae64Pe differ
diff --git a/lib/vpe_cm.a64P b/lib/vpe_cm.a64P
new file mode 100644 (file)
index 0000000..313d3c2
Binary files /dev/null and b/lib/vpe_cm.a64P differ
diff --git a/lib/vpe_cm.a64P_size.txt b/lib/vpe_cm.a64P_size.txt
new file mode 100644 (file)
index 0000000..9e6950d
--- /dev/null
@@ -0,0 +1,59 @@
+====================================================================\r
+REPORT FOR LIBRARY: lib/vpe_cm.a64P\r
+====================================================================\r
+\r
+\r
+************************************************************\r
+REPORT FOR FILE: hlcnum.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        256  0x00000100  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: sfc.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        800  0x00000320  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: slmnum.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        384  0x00000180  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrnum.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       5056  0x000013c0  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrfft.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       2592  0x00000a20  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrops.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        512  0x00000200  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrffttb.o64P\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+           .const:_nr_ffttable :        768  0x00000300  DATA \r
+\r
+------------------------------------------------------------\r
+Totals by section type\r
+------------------------------------------------------------\r
+    Initialized Data :        768  0x00000300\r
+                Code :       9600  0x00002580\r
diff --git a/lib/vpe_cm.a64Pe b/lib/vpe_cm.a64Pe
new file mode 100644 (file)
index 0000000..35d8a18
Binary files /dev/null and b/lib/vpe_cm.a64Pe differ
diff --git a/lib/vpe_cm.a64Pe_size.txt b/lib/vpe_cm.a64Pe_size.txt
new file mode 100644 (file)
index 0000000..01621ca
--- /dev/null
@@ -0,0 +1,59 @@
+====================================================================\r
+REPORT FOR LIBRARY: lib/vpe_cm.a64Pe\r
+====================================================================\r
+\r
+\r
+************************************************************\r
+REPORT FOR FILE: hlcnum.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        256  0x00000100  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: sfc.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        800  0x00000320  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: slmnum.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        384  0x00000180  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrnum.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       5056  0x000013c0  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrfft.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :       2592  0x00000a20  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrops.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+                         .text :        512  0x00000200  CODE \r
+\r
+************************************************************\r
+REPORT FOR FILE: nrffttb.o64Pe\r
+************************************************************\r
+                          Name : Size (dec)  Size (hex)  Type\r
+------------------------------ : ----------  ----------  ----\r
+           .const:_nr_ffttable :        768  0x00000300  DATA \r
+\r
+------------------------------------------------------------\r
+Totals by section type\r
+------------------------------------------------------------\r
+    Initialized Data :        768  0x00000300\r
+                Code :       9600  0x00002580\r
diff --git a/lib/vpe_cm.ae64P b/lib/vpe_cm.ae64P
new file mode 100644 (file)
index 0000000..d4efbbc
Binary files /dev/null and b/lib/vpe_cm.ae64P differ
diff --git a/lib/vpe_cm.ae64Pe b/lib/vpe_cm.ae64Pe
new file mode 100644 (file)
index 0000000..576a8f1
Binary files /dev/null and b/lib/vpe_cm.ae64Pe differ
diff --git a/package.xdc b/package.xdc
new file mode 100644 (file)
index 0000000..da5f8f4
--- /dev/null
@@ -0,0 +1,91 @@
+requires ti.mas.types[5,0,8,1];\r
+requires ti.mas.fract[2,0,8,1];\r
+requires ti.mas.util[5,0,0,0];\r
+requires internal ti.mas.swtools[3,0,0,0];\r
+\r
+/*! VPE package\r
+ * \r
+ * @a(NAME)  `ti.mas.vpe`\r
+ *\r
+ * @a(DESCRIPTION)\r
+ *\r
+ *        This package creates the VPE package. It depends on the following packages:\r
+ * @p(dlist)\r
+ * - `ti.mas.types`\r
+ * - `ti.mas.fract`\r
+ * - `ti.mas.util`\r
+ *\r
+ * @a(CONTENTS)\r
+ * @p(dlist)\r
+ * - 'hlc' module\r
+ *      provides high level compensation functionality\r
+ * - 'slm' module\r
+ *      provides signal limitation functionality\r
+ * - `Version` module\r
+ *      provides version numbering for VPE package and is described in\r
+ *      `Version.xdc`. Note that `Version.xdc` is generated from the template file \r
+ *      `Version.xdt`.\r
+ * @p\r
+ * @a(TARGETS) The following architecture targets are supported:\r
+ *\r
+ * @p(dlist)\r
+ * - `C55`\r
+ * - `C55_large`\r
+ * - `C64`\r
+ * - `C64Plus`\r
+ * @p\r
+ * @a(BUILD)  The build options are implemented in the file `package.bld`.\r
+ *\r
+ * Build command: `xdc XDCARGS="option"`.\r
+ * option1 = [c55s, c55l, c64le, c64be, c64Ple, c64Pbe, all]\r
+ * option2 = [obj, src, docs]\r
+ * option3 = []\r
+ * If any other option other than above is used then the package is not built correctly\r
+ * and will crash when used in conjunction with other packages.\r
+ *\r
+ *\r
+ * Generated files:\r
+ *\r
+ * @p(dlist)\r
+ * -  `Version.h`\r
+ * @p\r
+ *\r
+ * Command to clean: `xdc clean`\r
+ *\r
+ * @a(Online API documentation)\r
+ *\r
+ * `xdc XDCARGS="option" gendocs`\r
+ *\r
+ * @a(RELEASES)\r
+ *\r
+ * Release creation: `xdc XDCARGS="option1 option2" [gendocs] release`\r
+ * option1 = [c55s, c55l, c64le, c64be, c64Ple, c64Pbe]\r
+ * option2 = [obj, src, docs]\r
+ * option3 = []\r
+ *\r
+ * Using the option1 as given and option2="obj" creates the released tar file containing object code only:\r
+ * `ti_mas_vpe_<arch>_src_<v>_<r>_<x>_<p>.tar` ???? src or obj ???\r
+ * \r
+ * Using the option1 as given and option2="src" creates the released tar file containing source with object code:\r
+ * `ti_mas_vpe_<arch>_src_<v>_<r>_<x>_<p>.tar`\r
+ *\r
+ * To generate document only the following should be used:\r
+ * `xdc XDCARGS="docs" release` or `xdc XDCARGS="option1,docs"`\r
+ * and `ti_mas_vpe_docs_<v>_<r>_<x>_<p>.tar` is created\r
+ * \r
+ * If any other option other than the ones listed above is used, no release is created.\r
+ * \r
+ *\r
+ * \r
+ *\r
+ * @a(Copyright)\r
+ * @p(html)\r
+ * &#169; 2008 Texas Instruments, Inc.\r
+ * @p\r
+ */\r
+\r
+package ti.mas.vpe[4,0,1,0] {\r
+   module Version;\r
+}\r
+\r
+/* nothing past this point */\r
diff --git a/package.xs b/package.xs
new file mode 100644 (file)
index 0000000..89ae416
--- /dev/null
@@ -0,0 +1,85 @@
+/******************************************************************************\r
+ * FILE PURPOSE: Defines libarary directory name using getLibs\r
+ ******************************************************************************\r
+ * FILE NAME: package.xs\r
+ *\r
+ * DESCRIPTION: This file defines the library directory name for proper build\r
+ *              in case a different directory name for storing library files \r
+ *              other than "lib" is used. XDC by default assumes that the \r
+ *              library directory is "lib" is not sepcifically indicated by use\r
+ *              the attributes in a file called package.xs  \r
+ *\r
+ * TABS: NONE\r
+ *\r
+ * Copyright (C) 2012, Texas Instruments, Inc.\r
+ *****************************************************************************/\r
+\r
+/* "mangle" program build attrs into an appropriate directory name */\r
+function getLibs (prog)\r
+{\r
+  var name = prog.build.target.name;\r
+  var suff = prog.build.target.suffix;\r
+  var lib  = "";\r
+\r
+  /* "mangle" program build attrs into an appropriate directory name */\r
+  if      (name == 'C64') {\r
+    lib = "lib/vpe_c.a64;lib/vpe_cm.a64";\r
+  }\r
+  else if (name == 'C64_big_endian') {\r
+    lib = "c64e/vpe_c.a64e;lib/vpe_cm.a64e";\r
+  }\r
+  else if (name == 'C64P' && suff == '64P') {\r
+    lib = "lib/vpe_a.a64P;lib/vpe_c.a64P;lib/vpe_cm.a64P";\r
+  }\r
+  else if (name == 'C64P' && suff == 'e64P') {\r
+    lib = "lib/vpe_a.ae64P;lib/vpe_c.ae64P;lib/vpe_cm.ae64P";\r
+  }\r
+  else if (name == 'C64P_big_endian' && suff == '64Pe') {\r
+    lib = "lib/vpe_a.a64Pe;lib/vpe_c.a64Pe;lib/vpe_cm.a64Pe";\r
+  }\r
+  else if (name == 'C64P_big_endian' && suff == 'e64Pe') {\r
+    lib = "lib/vpe_a.ae64Pe;lib/vpe_c.ae64Pe;lib/vpe_cm.ae64Pe";\r
+  }\r
+  else if (name == 'C66' && suff == '66') {\r
+    lib = "lib/vpe_a.a66;lib/vpe_c.a66;lib/vpe_cm.a66";\r
+  }\r
+  else if (name == 'C66' && suff == 'e66') {\r
+    lib = "lib/vpe_a.ae66;lib/vpe_c.ae66;lib/vpe_cm.ae66";\r
+  }\r
+  else if (name == 'C66_big_endian' && suff == '66e') {\r
+    lib = "lib/vpe_a.a66e;lib/vpe_c.a66e;lib/vpe_cm.a66e";\r
+  }\r
+  else if (name == 'C66_big_endian' && suff == 'e66e') {\r
+    lib = "lib/vpe_a.ae66e;lib/vpe_c.ae66e;lib/vpe_cm.ae66e";\r
+  }\r
+  else if (name == 'C674' && suff == '674') {\r
+    lib = "lib/vpe_a.a674;lib/vpe_c.a674;lib/vpe_cm.a674";\r
+  }\r
+  else if (name == 'C674' && suff == 'e674') {\r
+    lib = "lib/vpe_a.ae674;lib/vpe_c.ae674;lib/vpe_cm.ae674";\r
+  }\r
+  else if (name == 'C674_big_endian' && suff == '674e') {\r
+    lib = "lib/vpe_a.a674e;lib/vpe_c.a674e;lib/vpe_cm.a674e";\r
+  }\r
+  else if (name == 'C674_big_endian' && suff == 'e674e') {\r
+    lib = "lib/vpe_a.ae674e;lib/vpe_c.ae674e;lib/vpe_cm.ae674e";\r
+  }\r
+  else if (name == 'C55') {\r
+    lib = "lib/vpe_c.a55;lib/vpe_a.a55;lib/vpe_cm.a55";\r
+  }\r
+  else if (name == 'C55_large') {\r
+    lib = "lib/vpe_c.a55L;lib/vpe_a.a55L;lib/vpe_cm.a55L";\r
+  }\r
+  else if (name == 'C54') {\r
+    lib = "lib/vpe_c.a54";\r
+  }\r
+  else if (name == 'C54_far') {\r
+    lib = "lib/vpe_c.a54f";\r
+  }\r
+  else if (name == 'GCArmv7A') { \r
+    lib = "lib/vpe_a.av7A;lib/vpe_c.av7A";\r
+  }\r
+  \r
+  return (lib);\r
+}\r
+\r
diff --git a/package/.vers_b150 b/package/.vers_b150
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/package/.vers_g180 b/package/.vers_g180
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/package/.vers_r170 b/package/.vers_r170
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/package/.xdc-y50 b/package/.xdc-y50
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/package/build.cfg b/package/build.cfg
new file mode 100644 (file)
index 0000000..5ec1eb1
--- /dev/null
@@ -0,0 +1,9 @@
+if (pkg.$vers.length >= 3) {
+    pkg.$vers.push(Packages.xdc.services.global.Vers.getDate(xdc.csd() + '/..'));
+}
+
+pkg.build.libraries = [
+];
+
+pkg.build.libDesc = [
+];
diff --git a/package/package.bld.xml b/package/package.bld.xml
new file mode 100644 (file)
index 0000000..aea8bf3
--- /dev/null
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="windows-1252"?>
+<!--  This file conforms to the DTD xdc/bld/build.dtd -->
+<package name="ti.mas.vpe" version="4, 0, 1, 0" producerId="undefined">
+    <units>
+        <module name="Version"/>
+    </units>
+    <sources>
+    </sources>
+    <configscripts>
+    </configscripts>
+    <makefiles>
+        <srcFile name="package.mak" src="package.bld"/>
+        <srcFile name="package/package.xdc.dep" src="package.xdc"/>
+        <srcFile name="package/package.cfg.dep" src="package.xdc"/>
+        <srcFile name="package/rel/ti_mas_vpe_obj_c64Px_3_6_0_0.zip.dep" src="package/rel/ti_mas_vpe_obj_c64Px_3_6_0_0.xdc.inc"/>
+    </makefiles>
+    <targets>
+    </targets>
+    <libraries>
+    </libraries>
+    <configurations>
+    </configurations>
+    <executables>
+    </executables>
+    <tests>
+    </tests>
+    <releases relDir="package/rel/">
+    <release name="ti_mas_vpe_obj_c64Px_3_6_0_0"
+        pname="ti_mas_vpe_obj_c64Px_3_6_0_0.zip"
+        label="default"
+    >
+        <file name="package/package.bld.xml"/>
+        <file name="package/build.cfg"/>
+        <file name="lib/vpe_cm.a64P"/>
+        <file name="lib/vpe_cm.a64P_size.txt"/>
+        <file name="lib/vpe_c.a64P"/>
+        <file name="lib/vpe_c.a64P_size.txt"/>
+        <file name="lib/vpe_a.a64P"/>
+        <file name="lib/vpe_a.a64P_size.txt"/>
+        <file name="lib/vpe_cm.a64Pe"/>
+        <file name="lib/vpe_cm.a64Pe_size.txt"/>
+        <file name="lib/vpe_c.a64Pe"/>
+        <file name="lib/vpe_c.a64Pe_size.txt"/>
+        <file name="lib/vpe_a.a64Pe"/>
+        <file name="lib/vpe_a.a64Pe_size.txt"/>
+        <file name="lib/vpe_cm.ae64P"/>
+        <file name="lib/vpe_c.ae64P"/>
+        <file name="lib/vpe_a.ae64P"/>
+        <file name="lib/vpe_cm.ae64Pe"/>
+        <file name="lib/vpe_c.ae64Pe"/>
+        <file name="lib/vpe_a.ae64Pe"/>
+        <file name="docs//doxygen//APIDoxyfile.xdt"/>
+        <file name="docs//doxygen//doxyfile.xdt"/>
+        <file name="docs//doxygen//html//../VPEAPI.chm"/>
+        <file name="./hlc.h"/>
+        <file name="./slm.h"/>
+        <file name="./snl.h"/>
+        <file name="./svd.h"/>
+        <file name="./sfc.h"/>
+        <file name="./pcm.h"/>
+        <file name="./asnr.h"/>
+        <file name="./vpe_3_6_0_0_release_notes.html"/>
+        <file name="./Version.h"/>
+        <file name="docs/manifest/Software_Manifest.html"/>
+        <file name="docs/relnotes_archive"/>
+        <file name="package/package.xdc.inc"/>
+        <file name="package/package.cfg.xdc.inc"/>
+    </release>
+    </releases>
+    <repositories>
+    </repositories>
+</package>
diff --git a/package/package.defs.h b/package/package.defs.h
new file mode 100644 (file)
index 0000000..5fdc9b5
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+ *  Do not modify this file; it is automatically 
+ *  generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-y50
+ */
+
+#ifndef ti_mas_vpe__
+#define ti_mas_vpe__
+
+
+
+#endif /* ti_mas_vpe__ */ 
diff --git a/package/package.rel.xml b/package/package.rel.xml
new file mode 100644 (file)
index 0000000..a5d2552
--- /dev/null
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="windows-1252"?>
+<!--  This file conforms to the DTD xdc/bld/release.dtd -->
+<release name="ti_mas_vpe_obj_c64Px_3_6_0_0" label="default" date="1373054541386" buildCount="3" producerId="undefined">
+<package name="ti.mas.vpe"
+    version="4, 0, 1, 0"/>
+<imports>
+    <package name="ti.mas.types"
+        version="5, 0, 8, 1"/>
+    <package name="ti.mas.fract"
+        version="2, 0, 8, 1"/>
+    <package name="ti.mas.util"
+        version="5, 0, 0, 0"/>
+</imports>
+<references>
+    <package name="xdc"
+        version="1, 1, 1, 1359065657193"
+        providerId="xdccore">
+        <file name="IPackage.xdc"/>
+        <file name="IPackage.xs"/>
+        <file name="om2.xs"/>
+        <file name="package.xs"/>
+        <file name="template.xs"/>
+        <file name="xdc.tci"/>
+        <file name="xmlgen.xs"/>
+        <file name="xmlgen2.xs"/>
+    </package>
+    <package name="xdc.services.global"
+        version="1, 0, 0, 1359065675206"
+        providerId="xdccore">
+        <file name="Clock.xs"/>
+        <file name="Trace.xs"/>
+        <file name="java\package.jar"/>
+    </package>
+    <package name="xdc.bld"
+        version="1, 0, 2, 1359065660380"
+        providerId="xdccore">
+        <file name="BuildEnvironment.xs"/>
+        <file name="Configuration.xs"/>
+        <file name="Executable.xs"/>
+        <file name="ITarget.xs"/>
+        <file name="ITarget2.xs"/>
+        <file name="ITargetFilter.xs"/>
+        <file name="Library.xs"/>
+        <file name="Manifest.xs"/>
+        <file name="PackageContents.xs"/>
+        <file name="Repository.xs"/>
+        <file name="Script.xs"/>
+        <file name="Utils.xs"/>
+        <file name="_gen.xs"/>
+        <file name="bld.js"/>
+        <file name="package.xs"/>
+    </package>
+    <package name="ti.mas.swtools"
+        version="3, 0, 0, 0, 1373054377000"
+        providerId="M:/TI_MAS_VOLIB_2_1_0_1_bldforge/dsps_gtmas">
+        <file name="CommonBld.xs"/>
+        <file name="Copy.xs"/>
+        <file name="IVersion2.xdc"/>
+        <file name="Version2.h.xdt"/>
+        <file name="Version2.xdt"/>
+        <file name="config.bld"/>
+        <file name="targParams.xs"/>
+    </package>
+    <package name="ti.targets"
+        version="1, 0, 3, 1359054132244"
+        providerId="xdccore">
+        <file name="C28_float.xs"/>
+        <file name="C28_large.xs"/>
+        <file name="ITarget.xs"/>
+        <file name="package.xs"/>
+    </package>
+    <package name="ti.targets.elf"
+        version="1, 0, 0, 1359054139876"
+        providerId="xdccore">
+        <file name="ITarget.xs"/>
+        <file name="package.xs"/>
+    </package>
+    <package name="ti.mas.volib"
+        version="2, 0, 0, 0, 1373051393000"
+        providerId="M:/TI_MAS_VOLIB_2_1_0_1_bldforge/dsps_gtmas">
+        <file name="xdcargs_C64x+.xs"/>
+    </package>
+    <package name="xdc.services.io"
+        version="1, 0, 0, 1359065681607"
+        providerId="xdccore">
+        <file name="File.xs"/>
+        <file name="package.xs"/>
+    </package>
+    <package name="xdc.shelf"
+        version="1, 0, 0, 1359065689041"
+        providerId="xdccore">
+        <file name="java\antlr.jar"/>
+        <file name="java\ecj.jar"/>
+        <file name="java\js.jar"/>
+        <file name="java\tar.jar"/>
+    </package>
+    <package name="xdc.services.spec"
+        version="1, 0, 0, 0, 1359065681606"
+        providerId="xdccore">
+        <file name="java\package.jar"/>
+    </package>
+    <package name="xdc.services.intern.gen"
+        version="1, 0, 0, 0, 1359065678695"
+        providerId="xdccore">
+        <file name="java\package.jar"/>
+    </package>
+    <package name="xdc.services.intern.cmd"
+        version="1, 0, 0, 0, 1359065678086"
+        providerId="xdccore">
+        <file name="java\package.jar"/>
+    </package>
+    <package name="xdc.services.intern.xsr"
+        version="1, 0, 0, 1359065679578"
+        providerId="xdccore">
+        <file name="java\package.jar"/>
+    </package>
+    <xdcRoot base="C:/MAS_Tools/xdctools_3_24_06_63/">
+        <file name="/packages/xdc/package.xdc"/>
+        <file name="include\utils.tci"/>
+        <xdcCorePkg version="16, 0, 2, 0, 1359065661968" producerId="/db/ztree/library/trees/xdc/xdc-y50x/src/packages" buildCount="391" releaseName="xdc_corevers" label="default" date="1359065661968"/>
+    </xdcRoot>
+</references>
+<orphans>
+</orphans>
+</release>
diff --git a/package/package_ti.mas.vpe.c b/package/package_ti.mas.vpe.c
new file mode 100644 (file)
index 0000000..4734a37
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ *  Do not modify this file; it is automatically 
+ *  generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-y50
+ */
+
+#include <xdc/std.h>
+
+__FAR__ char ti_mas_vpe__dummy__;
+
+#define __xdc_PKGVERS 4, 0, 1, 0
+#define __xdc_PKGNAME ti.mas.vpe
+#define __xdc_PKGPREFIX ti_mas_vpe_
+
+#ifdef __xdc_bld_pkg_c__
+#define __stringify(a) #a
+#define __local_include(a) __stringify(a)
+#include __local_include(__xdc_bld_pkg_c__)
+#endif
+
diff --git a/package/ti.mas.vpe.ccs b/package/ti.mas.vpe.ccs
new file mode 100644 (file)
index 0000000..66586f5
Binary files /dev/null and b/package/ti.mas.vpe.ccs differ
diff --git a/package/ti.mas.vpe.sch b/package/ti.mas.vpe.sch
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/package/ti_mas_vpe.class b/package/ti_mas_vpe.class
new file mode 100644 (file)
index 0000000..8df8cd1
Binary files /dev/null and b/package/ti_mas_vpe.class differ
diff --git a/package/ti_mas_vpe.java b/package/ti_mas_vpe.java
new file mode 100644 (file)
index 0000000..7891271
--- /dev/null
@@ -0,0 +1,276 @@
+/*
+ *  Do not modify this file; it is automatically 
+ *  generated and any modifications will be overwritten.
+ *
+ * @(#) xdc-y50
+ */
+import java.util.*;
+import org.mozilla.javascript.*;
+import xdc.services.intern.xsr.*;
+import xdc.services.spec.Session;
+
+public class ti_mas_vpe
+{
+    static final String VERS = "@(#) xdc-y50\n";
+
+    static final Proto.Elm $$T_Bool = Proto.Elm.newBool();
+    static final Proto.Elm $$T_Num = Proto.Elm.newNum();
+    static final Proto.Elm $$T_Str = Proto.Elm.newStr();
+    static final Proto.Elm $$T_Obj = Proto.Elm.newObj();
+
+    static final Proto.Fxn $$T_Met = new Proto.Fxn(null, null, 0, -1, false);
+    static final Proto.Map $$T_Map = new Proto.Map($$T_Obj);
+    static final Proto.Arr $$T_Vec = new Proto.Arr($$T_Obj);
+
+    static final XScriptO $$DEFAULT = Value.DEFAULT;
+    static final Object $$UNDEF = Undefined.instance;
+
+    static final Proto.Obj $$Package = (Proto.Obj)Global.get("$$Package");
+    static final Proto.Obj $$Module = (Proto.Obj)Global.get("$$Module");
+    static final Proto.Obj $$Instance = (Proto.Obj)Global.get("$$Instance");
+    static final Proto.Obj $$Params = (Proto.Obj)Global.get("$$Params");
+
+    static final Object $$objFldGet = Global.get("$$objFldGet");
+    static final Object $$objFldSet = Global.get("$$objFldSet");
+    static final Object $$proxyGet = Global.get("$$proxyGet");
+    static final Object $$proxySet = Global.get("$$proxySet");
+    static final Object $$delegGet = Global.get("$$delegGet");
+    static final Object $$delegSet = Global.get("$$delegSet");
+
+    Scriptable xdcO;
+    Session ses;
+    Value.Obj om;
+
+    boolean isROV;
+    boolean isCFG;
+
+    Proto.Obj pkgP;
+    Value.Obj pkgV;
+
+    ArrayList<Object> imports = new ArrayList<Object>();
+    ArrayList<Object> loggables = new ArrayList<Object>();
+    ArrayList<Object> mcfgs = new ArrayList<Object>();
+    ArrayList<Object> icfgs = new ArrayList<Object>();
+    ArrayList<String> inherits = new ArrayList<String>();
+    ArrayList<Object> proxies = new ArrayList<Object>();
+    ArrayList<Object> sizes = new ArrayList<Object>();
+    ArrayList<Object> tdefs = new ArrayList<Object>();
+
+    void $$IMPORTS()
+    {
+        Global.callFxn("loadPackage", xdcO, "ti.mas.types");
+        Global.callFxn("loadPackage", xdcO, "ti.mas.fract");
+        Global.callFxn("loadPackage", xdcO, "ti.mas.util");
+        Global.callFxn("loadPackage", xdcO, "xdc");
+        Global.callFxn("loadPackage", xdcO, "xdc.corevers");
+        Global.callFxn("loadPackage", xdcO, "ti.mas.swtools");
+    }
+
+    void $$OBJECTS()
+    {
+        pkgP = (Proto.Obj)om.bind("ti.mas.vpe.Package", new Proto.Obj());
+        pkgV = (Value.Obj)om.bind("ti.mas.vpe", new Value.Obj("ti.mas.vpe", pkgP));
+    }
+
+    void Version$$OBJECTS()
+    {
+        Proto.Obj po, spo;
+        Value.Obj vo;
+
+        po = (Proto.Obj)om.bind("ti.mas.vpe.Version.Module", new Proto.Obj());
+        vo = (Value.Obj)om.bind("ti.mas.vpe.Version", new Value.Obj("ti.mas.vpe.Version", po));
+        pkgV.bind("Version", vo);
+        // decls 
+    }
+
+    void Version$$CONSTS()
+    {
+        // module Version
+        om.bind("ti.mas.vpe.Version.MAJOR", 3L);
+        om.bind("ti.mas.vpe.Version.MINOR", 6L);
+        om.bind("ti.mas.vpe.Version.PATCH", 0L);
+        om.bind("ti.mas.vpe.Version.BUILD", 0L);
+        om.bind("ti.mas.vpe.Version.QUALITY", 3L);
+        om.bind("ti.mas.vpe.Version.BTYPE", 0L);
+        om.bind("ti.mas.vpe.Version.WIDTH", 0L);
+        om.bind("ti.mas.vpe.Version.PKGSTD", 2L);
+    }
+
+    void Version$$CREATES()
+    {
+        Proto.Fxn fxn;
+        StringBuilder sb;
+
+    }
+
+    void Version$$FUNCTIONS()
+    {
+        Proto.Fxn fxn;
+
+    }
+
+    void Version$$SIZES()
+    {
+    }
+
+    void Version$$TYPES()
+    {
+        Scriptable cap;
+        Proto.Obj po;
+        Proto.Str ps;
+        Proto.Typedef pt;
+        Object fxn;
+
+        po = (Proto.Obj)om.findStrict("ti.mas.vpe.Version.Module", "ti.mas.vpe");
+        po.init("ti.mas.vpe.Version.Module", om.findStrict("ti.mas.swtools.IVersion2.Module", "ti.mas.vpe"));
+                po.addFld("$hostonly", $$T_Num, 1, "r");
+                po.addFld("QUALITY_PREALPHA", Proto.Elm.newCNum("(xdc_UInt16)"), 0L, "rh");
+                po.addFld("QUALITY_ALPHA", Proto.Elm.newCNum("(xdc_UInt16)"), 1L, "rh");
+                po.addFld("QUALITY_BETA", Proto.Elm.newCNum("(xdc_UInt16)"), 2L, "rh");
+                po.addFld("QUALITY_GA", Proto.Elm.newCNum("(xdc_UInt16)"), 3L, "rh");
+                po.addFld("BTYPE_STANDARD", Proto.Elm.newCNum("(xdc_UInt16)"), 0L, "rh");
+                po.addFld("BTYPE_ENGINEERING", Proto.Elm.newCNum("(xdc_UInt16)"), 1L, "rh");
+                po.addFld("BTYPE_DEBUG", Proto.Elm.newCNum("(xdc_UInt16)"), 2L, "rh");
+                po.addFld("MAJOR", Proto.Elm.newCNum("(xdc_UInt16)"), 3L, "rh");
+                po.addFld("MINOR", Proto.Elm.newCNum("(xdc_UInt16)"), 6L, "rh");
+                po.addFld("PATCH", Proto.Elm.newCNum("(xdc_UInt16)"), 0L, "rh");
+                po.addFld("BUILD", Proto.Elm.newCNum("(xdc_UInt16)"), 0L, "rh");
+                po.addFld("QUALITY", Proto.Elm.newCNum("(xdc_UInt16)"), 3L, "rh");
+                po.addFld("BTYPE", Proto.Elm.newCNum("(xdc_UInt16)"), 0L, "rh");
+                po.addFld("WIDTH", Proto.Elm.newCNum("(xdc_UInt16)"), 0L, "rh");
+                po.addFld("PKGSTD", Proto.Elm.newCNum("(xdc_UInt16)"), 2L, "rh");
+                po.addFxn("getString", (Proto.Fxn)om.findStrict("ti.mas.swtools.IVersion2$$getString", "ti.mas.vpe"), $$UNDEF);
+    }
+
+    void Version$$ROV()
+    {
+    }
+
+    void $$SINGLETONS()
+    {
+        pkgP.init("ti.mas.vpe.Package", (Proto.Obj)om.findStrict("xdc.IPackage.Module", "ti.mas.vpe"));
+        Scriptable cap = (Scriptable)Global.callFxn("loadCapsule", xdcO, "ti/mas/vpe/package.xs");
+        om.bind("xdc.IPackage$$capsule", cap);
+        Object fxn;
+                fxn = Global.get(cap, "init");
+                if (fxn != null) pkgP.addFxn("init", (Proto.Fxn)om.findStrict("xdc.IPackage$$init", "ti.mas.vpe"), fxn);
+                fxn = Global.get(cap, "close");
+                if (fxn != null) pkgP.addFxn("close", (Proto.Fxn)om.findStrict("xdc.IPackage$$close", "ti.mas.vpe"), fxn);
+                fxn = Global.get(cap, "validate");
+                if (fxn != null) pkgP.addFxn("validate", (Proto.Fxn)om.findStrict("xdc.IPackage$$validate", "ti.mas.vpe"), fxn);
+                fxn = Global.get(cap, "exit");
+                if (fxn != null) pkgP.addFxn("exit", (Proto.Fxn)om.findStrict("xdc.IPackage$$exit", "ti.mas.vpe"), fxn);
+                fxn = Global.get(cap, "getLibs");
+                if (fxn != null) pkgP.addFxn("getLibs", (Proto.Fxn)om.findStrict("xdc.IPackage$$getLibs", "ti.mas.vpe"), fxn);
+                fxn = Global.get(cap, "getSects");
+                if (fxn != null) pkgP.addFxn("getSects", (Proto.Fxn)om.findStrict("xdc.IPackage$$getSects", "ti.mas.vpe"), fxn);
+        pkgP.bind("$capsule", cap);
+        pkgV.init2(pkgP, "ti.mas.vpe", Value.DEFAULT, false);
+        pkgV.bind("$name", "ti.mas.vpe");
+        pkgV.bind("$category", "Package");
+        pkgV.bind("$$qn", "ti.mas.vpe.");
+        pkgV.bind("$vers", Global.newArray("4, 0, 1, 0"));
+        Value.Map atmap = (Value.Map)pkgV.getv("$attr");
+        atmap.seal("length");
+        imports.clear();
+        imports.add(Global.newArray("ti.mas.types", Global.newArray(5, 0, 8, 1)));
+        imports.add(Global.newArray("ti.mas.fract", Global.newArray(2, 0, 8, 1)));
+        imports.add(Global.newArray("ti.mas.util", Global.newArray(5, 0, 0, 0)));
+        imports.add(Global.newArray("*ti.mas.swtools", Global.newArray(3, 0, 0, 0)));
+        pkgV.bind("$imports", imports);
+        StringBuilder sb = new StringBuilder();
+        sb.append("var pkg = xdc.om['ti.mas.vpe'];\n");
+        sb.append("if (pkg.$vers.length >= 3) {\n");
+            sb.append("pkg.$vers.push(Packages.xdc.services.global.Vers.getDate(xdc.csd() + '/..'));\n");
+        sb.append("}\n");
+        sb.append("pkg.build.libraries = [\n");
+        sb.append("];\n");
+        sb.append("pkg.build.libDesc = [\n");
+        sb.append("];\n");
+        Global.eval(sb.toString());
+    }
+
+    void Version$$SINGLETONS()
+    {
+        Proto.Obj po;
+        Value.Obj vo;
+
+        vo = (Value.Obj)om.findStrict("ti.mas.vpe.Version", "ti.mas.vpe");
+        po = (Proto.Obj)om.findStrict("ti.mas.vpe.Version.Module", "ti.mas.vpe");
+        vo.init2(po, "ti.mas.vpe.Version", $$DEFAULT, false);
+        vo.bind("Module", po);
+        vo.bind("$category", "Module");
+        vo.bind("$capsule", $$UNDEF);
+        vo.bind("$package", om.findStrict("ti.mas.vpe", "ti.mas.vpe"));
+        tdefs.clear();
+        proxies.clear();
+        mcfgs.clear();
+        icfgs.clear();
+        inherits.clear();
+        vo.bind("$$tdefs", Global.newArray(tdefs.toArray()));
+        vo.bind("$$proxies", Global.newArray(proxies.toArray()));
+        vo.bind("$$mcfgs", Global.newArray(mcfgs.toArray()));
+        vo.bind("$$icfgs", Global.newArray(icfgs.toArray()));
+        inherits.add("ti.mas.swtools");
+        vo.bind("$$inherits", Global.newArray(inherits.toArray()));
+        ((Value.Arr)pkgV.getv("$modules")).add(vo);
+        ((Value.Arr)om.findStrict("$modules", "ti.mas.vpe")).add(vo);
+        vo.bind("$$instflag", 0);
+        vo.bind("$$iobjflag", 1);
+        vo.bind("$$sizeflag", 1);
+        vo.bind("$$dlgflag", 0);
+        vo.bind("$$iflag", 1);
+        vo.bind("$$romcfgs", "|");
+        vo.bind("$$nortsflag", 0);
+        Proto.Str ps = (Proto.Str)vo.find("Module_State");
+        if (ps != null) vo.bind("$object", ps.newInstance());
+        vo.bind("$$meta_iobj", om.has("ti.mas.vpe.Version$$instance$static$init", null) ? 1 : 0);
+        vo.bind("$$fxntab", Global.newArray());
+        vo.bind("$$logEvtCfgs", Global.newArray());
+        vo.bind("$$errorDescCfgs", Global.newArray());
+        vo.bind("$$assertDescCfgs", Global.newArray());
+        Value.Map atmap = (Value.Map)vo.getv("$attr");
+        atmap.seal("length");
+        pkgV.bind("Version", vo);
+        ((Value.Arr)pkgV.getv("$unitNames")).add("Version");
+    }
+
+    void $$INITIALIZATION()
+    {
+        Value.Obj vo;
+
+        if (isCFG) {
+        }//isCFG
+        Global.callFxn("module$meta$init", (Scriptable)om.findStrict("ti.mas.vpe.Version", "ti.mas.vpe"));
+        Global.callFxn("init", pkgV);
+        ((Value.Obj)om.getv("ti.mas.vpe.Version")).bless();
+        ((Value.Arr)om.findStrict("$packages", "ti.mas.vpe")).add(pkgV);
+    }
+
+    public void exec( Scriptable xdcO, Session ses )
+    {
+        this.xdcO = xdcO;
+        this.ses = ses;
+        om = (Value.Obj)xdcO.get("om", null);
+
+        Object o = om.geto("$name");
+        String s = o instanceof String ? (String)o : null;
+        isCFG = s != null && s.equals("cfg");
+        isROV = s != null && s.equals("rov");
+
+        $$IMPORTS();
+        $$OBJECTS();
+        Version$$OBJECTS();
+        Version$$CONSTS();
+        Version$$CREATES();
+        Version$$FUNCTIONS();
+        Version$$SIZES();
+        Version$$TYPES();
+        if (isROV) {
+            Version$$ROV();
+        }//isROV
+        $$SINGLETONS();
+        Version$$SINGLETONS();
+        $$INITIALIZATION();
+    }
+}
diff --git a/pcm.h b/pcm.h
new file mode 100644 (file)
index 0000000..3135032
--- /dev/null
+++ b/pcm.h
@@ -0,0 +1,244 @@
+#ifndef _PCM_H\r
+#define _PCM_H\r
+\r
+/** \r
+ *  @file  pcm.h\r
+ *  @brief Contains external API for PCM (G.711) encoder/decoder module.\r
+ *\r
+ *        Copyright (c) 2007 \96 2013 Texas Instruments Incorporated                
+ *                                                                                
+ *              All rights reserved not granted herein.                           
+ *                                                                                
+ *                         Limited License.                                       
+ *                                                                                
+ *  Texas Instruments Incorporated grants a world-wide, royalty-free,             
+ *  non-exclusive license under copyrights and patents it now or hereafter owns   
+ *  or controls to make, have made, use, import, offer to sell and sell           
+ *  ("Utilize") this software subject to the terms herein.  With respect to the   
+ *  foregoing patent license, such license is granted solely to the extent that   
+ *  any such patent is necessary to Utilize the software alone.  The patent       
+ *  license shall not apply to any combinations which include this software,      
+ *  other than combinations with devices manufactured by or for TI (\93TI           
+ *  Devices\94).  No hardware patent is licensed hereunder.                         
+ *                                                                                
+ *  Redistributions must preserve existing copyright notices and reproduce this   
+ *  license (including the above copyright notice and the disclaimer and (if      
+ *  applicable) source code license limitations below) in the documentation       
+ *  and/or other materials provided with the distribution                         
+ *                                                                                
+ *  Redistribution and use in binary form, without modification, are permitted    
+ *  provided that the following conditions are met:                               
+ *                                                                                
+ *    *  No reverse engineering, decompilation, or disassembly of this software   
+ *  is permitted with respect to any software provided in binary form.            
+ *                                                                                
+ *    *  any redistribution and use are licensed by TI for use only with TI       
+ *  Devices.                                                                      
+ *                                                                                
+ *    *  Nothing shall obligate TI to provide you with source code for the        
+ *  software licensed and provided to you in object code.                         
+ *                                                                                
+ *  If software source code is provided to you, modification and redistribution   
+ *  of the source code are permitted provided that the following conditions are   
+ *  met:                                                                          
+ *                                                                                
+ *    *  any redistribution and use of the source code, including any resulting   
+ *  derivative works, are licensed by TI for use only with TI Devices.            
+ *                                                                                
+ *    *  any redistribution and use of any object code compiled from the source   
+ *  code and any resulting derivative works, are licensed by TI for use only      
+ *  with TI Devices.                                                              
+ *                                                                                
+ *  Neither the name of Texas Instruments Incorporated nor the names of its       
+ *  suppliers may be used to endorse or promote products derived from this        
+ *  software without specific prior written permission.                           
+ *                                                                                
+ *  DISCLAIMER.                                                                   
+ *                                                                                
+ *  THIS SOFTWARE IS PROVIDED BY TI AND TI\92S LICENSORS "AS IS" AND ANY EXPRESS    
+ *  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED             
+ *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE        
+ *  DISCLAIMED. IN NO EVENT SHALL TI AND TI\92S LICENSORS BE LIABLE FOR ANY         
+ *  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    
+ *  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR            
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER    
+ *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT            
+ *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY     
+ *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH   
+ *  DAMAGE.                                                                       \r
+ */\r
+\r
+#include <ti/mas/types/types.h>               /* DSP types                   */\r
+\r
+/**\r
+ *  @brief PCM mu-law encoder.\r
+ *\r
+ *  @param[in]  lin_in       Input frame of 16-bit linear samples. \r
+ *                           For each linear sample, the 14 MSBs are taken to\r
+ *                           generate the mu-law codeword according to ITU-T \r
+ *                           G.711. The 2 LSBs are ignored.\r
+ *  @param[in]  frame_len    Length of the input frame. It MUST be an integer\r
+ *                           multiple of 4. \r
+ *  @param[out] ulaw_out     Output frame of G.711 mu-law codewords. \r
+ *                           The codewords will be stored in an array of type \r
+ *                           "tword". The total number of elements in this array\r
+ *                           is frame_len. For CPUs with 16-bit machine word,\r
+ *                           each codeword will occupy the lower byte, as \r
+ *                           illustrated below (L = frame_len):\r
+ *  @verbatim\r
+ *                           output buffer  upper byte      lower byte\r
+ *                            ulaw_out[0]:      0         ulaw(lin_in[0])\r
+ *                            ulaw_out[1]:      0         ulaw(lin_in[1])\r
+ *                            ulaw_out[2]:      0         ulaw(lin_in[2])\r
+ *                            ulaw_out[L-1]:    0         ulaw(lin_in[L-1])\r
+ *  \endverbatim\r
+ *                           For CPUs with 8-bit machine word, each\r
+ *                           codeword occupies one byte, as illustrated below:\r
+ *  @verbatim \r
+ *                            ulaw_out[0]:     ulaw(lin_in[0])\r
+ *                            ulaw_out[1]:     ulaw(lin_in[1])\r
+ *                            ulaw_out[2]:     ulaw(lin_in[2])\r
+ *                            ulaw_out[L-1]:   ulaw(lin_in[L-1])\r
+ *  \endverbatim\r
+ */ \r
+void pcmUlawEncoder(linSample *lin_in, tword *ulaw_out, tint frame_len);\r
+\r
+/** \r
+ *  @brief PCM A-law encoder.\r
+ *  @param[in]  lin_in       Input frame of 16-bit linear samples. \r
+ *                           For each linear sample, the 13 MSBs are taken to\r
+ *                           generate the A-law codeword according to ITU-T \r
+ *                           G.711. The 3 LSBs are ignored.\r
+ *  @param[in]  frame_len    Length of the input frame. It MUST be an integer\r
+ *                           multiple of 4. \r
+ *  @param[out] alaw_out     Output frame of G.711 A-law codewords. Refer to\r
+ *                           pcmUlawEncoder() for output format.  \r
+ */\r
+void pcmAlawEncoder(linSample *lin_in, tword *alaw_out, tint frame_len);\r
+\r
+\r
+/**\r
+ *  @brief PCM mu-law decoder.\r
+ *\r
+ *  @param[in]  frame_len    Length of the input frame. It MUST be an integer\r
+ *                           multiple of 4. \r
+ *  @param[in]  ulaw_in      Input frame of G.711 mu-law codewords. \r
+ *                           The codewords must be provided in an array of type \r
+ *                           "tword". The total number of elements in this array\r
+ *                           is frame_len. For CPUs with 16-bit machine word,\r
+ *                           each codeword occupies the lower byte, as \r
+ *                           illustrated below (L = frame_len):\r
+ *  @verbatim\r
+ *                            input buffer  upper byte      lower byte\r
+ *                            ulaw_in[0]:      0         ulaw codeword 0\r
+ *                            ulaw_in[1]:      0         ulaw codeword 1\r
+ *                            ulaw_in[2]:      0         ulaw codeword 2\r
+ *                            ulaw_in[L-1]:    0         ulaw codeword L-1\r
+ *  \endverbatim\r
+ *                           For CPUs with 8-bit machine word, each\r
+ *                           codeword occupies one byte, as illustrated below:\r
+ *  @verbatim \r
+ *                            ulaw_in[0]:      ulaw codeword 0\r
+ *                            ulaw_in[1]:      ulaw codeword 1\r
+ *                            ulaw_in[2]:      ulaw codeword 2\r
+ *                            ulaw_in[L-1]:    ulaw codeword L-1\r
+ *  \endverbatim\r
+ *  @param[out] lin_out      Output frame of 16-bit linear samples. \r
+ *                           Each u-law codeword will be decoded according to \r
+ *                           ITU-T G.711 and the decoded value will be placed \r
+ *                           into the 14 MSBs of each linear sample. The 2 LSBs \r
+ *                           will be filled with 0's. \r
+ */ \r
+void pcmUlawDecoder(tword *ulaw_in, linSample *lin_out, tint frame_len);\r
+\r
+/**\r
+ *  @brief PCM A-law decoder.\r
+ *\r
+ *  @param[in]  frame_len    Length of the input frame. It MUST be an integer\r
+ *                           multiple of 4. \r
+ *  @param[in]  alaw_in      Input frame of G.711 A-law codewords. \r
+ *                           The codewords must be provided in an array of type \r
+ *                           "tword". The total number of elements in this array\r
+ *                           is frame_len. For input format, refer to \r
+ *                           pcmUlawDecoder().\r
+ *  @param[out] lin_out      Output frame of 16-bit linear samples. \r
+ *                           Each A-law codeword will be decoded according to \r
+ *                           ITU-T G.711 and the decoded value will be placed \r
+ *                           into the 13 MSBs of each linear sample. The 3 LSBs \r
+ *                           will be filled with 0's. \r
+ */ \r
+void pcmAlawDecoder(tword *alaw_in, linSample *lin_out, tint frame_len);\r
+\r
+/**\r
+ *  @brief PCM mu-law encoder with packed output codewords.\r
+ *\r
+ *  @param[in]  frame_len    Length of the input frame. It MUST be an integer\r
+ *                           multiple of 4. \r
+ *  @param[in]  lin_in       Input frame of 16-bit linear samples. \r
+ *                           Refer to pcmUlawEncoder() for input format.\r
+ *  @param[out] ulaw_out     Output frame of G.711 mu-law codewords. \r
+ *                           The codewords will be packed and stored in an array\r
+ *                           of type "tuint" in big endian format, as \r
+ *                           illustrated below (L = frame_len):\r
+ *  @verbatim\r
+ *                  output buffer         upper byte           lower byte\r
+ *                   ulaw_out[0]:       ulaw(lin_in[0])      ulaw(lin_in[1])\r
+ *                   ulaw_out[1]:       ulaw(lin_in[2])      ulaw(lin_in[3])\r
+ *                   ulaw_out[2]:       ulaw(lin_in[4])      ulaw(lin_in[5])\r
+ *                   ulaw_out[L/2-1]:   ulaw(lin_in[L-2])    ulaw(lin_in[L-1])\r
+ *  \endverbatim\r
+ */ \r
+void pcmUlawEncoderP(linSample *lin_in, tuint *ulaw_out, tint frame_len);\r
+\r
+/** \r
+ *  @brief PCM A-law encoder with packed output codewords.\r
+ *\r
+ *  @param[in]  frame_len    Length of the input frame. It MUST be an integer\r
+ *                           multiple of 4. \r
+ *  @param[in]  lin_in       Input frame of 16-bit linear samples. \r
+ *                           Refer to pcmAlawEncoder() for input format.\r
+ *  @param[out] alaw_out     Output frame of G.711 A-law codewords. Refer to\r
+ *                           pcmUlawEncoderP() for output format.  \r
+ */\r
+void pcmAlawEncoderP(linSample *lin_in, tuint *alaw_out, tint frame_len);\r
+\r
+/**\r
+ *  @brief PCM mu-law decoder with packed input codewords.\r
+ *\r
+ *  @param[in]  frame_len    Length of the input frame, ie. the number of mu-law \r
+ *                           codewords to be decoded. It MUST be an integer\r
+ *                           multiple of 4. \r
+ *  @param[in]  ulaw_in      Input frame of G.711 mu-law codewords. \r
+ *                           The codewords must be packed and stored in an array\r
+ *                           of type "tuint" in big endian format,\r
+ *                           as illustrated below (L = frame_len):\r
+ *  @verbatim \r
+ *                  input buffer        upper byte           lower byte\r
+ *                   ulaw_in[0]:      ulaw codeword 0      ulaw codeword 1\r
+ *                   ulaw_in[1]:      ulaw codeword 2      ulaw codeword 3\r
+ *                   ulaw_in[2]:      ulaw codeword 4      ulaw codeword 5\r
+ *                   ulaw_in[L/2-1]:  ulaw codeword L-2    ulaw codeword L-1\r
+ *  \endverbatim\r
+ *  @param[out] lin_out      Output frame of 16-bit linear samples. \r
+ *                           Refer to pcmUlawDecoder() for output format.\r
+ */ \r
+void pcmUlawDecoderP(tuint *ulaw_in, linSample *lin_out, tint frame_len);\r
+\r
+/**\r
+ *  @brief PCM A-law decoder with packed input codewords.\r
+ *\r
+ *  @param[in]  frame_len    Length of the input frame, ie. the number of A-law \r
+ *                           codewords to be decoded. It MUST be an integer\r
+ *                           multiple of 4. \r
+ *  @param[in]  alaw_in      Input frame of G.711 A-law codewords. \r
+ *                           The codewords must be packed and stored in an array\r
+ *                           of type "tuint" in big endian format. Refer to \r
+ *                           pcmUlawDecoderP() for format. \r
+ *  @param[out] lin_out      Output frame of 16-bit linear samples. Linear sample\r
+ *                           value of 32767 corresponds to load capacity of \r
+ *                           3.17dBm0 according to ITU-T G.711. \r
+ */ \r
+void pcmAlawDecoderP(tuint *alaw_in, linSample *lin_out, tint frame_len);\r
+\r
+#endif\r
+/* Nothing past this point */\r
diff --git a/readme.txt b/readme.txt
new file mode 100644 (file)
index 0000000..6cd56c5
--- /dev/null
@@ -0,0 +1,24 @@
+1. Download AEC-AER and VOLIB from http://www.ti.com/tool/telecomlib\r
+2. Install AEC-AER and VOLIB at C:\ti\r
+3. Download xdais_7_23_00_06 and xdctools_3_24_07_73 from TI website \r
+4. copy this directory to C:\ti\volib_C64P_2_1_0_1\packages\ti\mas\r
+5. Downlaod CCS 6.1.3 from TI website\r
+6. Install CCS 6.1.3 at C:\ti\r
+7. Launch CCS 6.1.3\r
+8. Import test_rel_ce64Ple_CE64PLE_LE_ELF from C:\ti\volib_C64P_2_1_0_1\packages\ti\mas\bf_asnr_mss_vau\test\ccsProjects\r
+9. Build the imported project\r
+10. Import the target configuration file DA830_DSK_USB560M.ccxml from C:\ti\volib_C64P_2_1_0_1\packages\ti\mas\bf_asnr_mss_vau\gel\r
+11. Connect the Blackhawk USB 560M JTAG to J4 on DA830 DSK\r
+12. Power on the DA830DSK\r
+13. Connect to the DA830 DSK via JTAG using CCS 6.1.3\r
+13. Load the test_rel_ce64Ple_CE64PLE_LE_ELF.out from C:\ti\volib_C64P_2_1_0_1\packages\ti\mas\bf_asnr_mss_vau\test\ccsProjects\test_rel_ce64Ple_CE64PLE_LE_ELF\Debug\r
+14. Execute GEL function Scripts-->Microphone Load Functions-->BFMicLoadAll to load all 8 microphone input files \r
+    (C:\ti\volib_C64P_2_1_0_1\packages\ti\mas\bf_asnr_mss_vau\gel\mics\y16L8g3m7090_x.pcm) into external memory buffers\r
+15. Run the program (loaded in step 13) by pressing F8\r
+16. The program will print out the statistics and "Simulation End" when the program completes the prosessing\r
+17. Execute GEL function Scripts-->Microphone Save Functions-->BFSaveOutput to save the processed auido output from external memory buffer to a file \r
+    (C:\ti\volib_C64P_2_1_0_1\packages\ti\mas\bf_asnr_mss_vau\gel\mics\fileOutput.bin)\r
+18. You can change the "#define NUM_BF_ANALOG_MIC 8" and "#define NUM_BF_VIRTUAL_MIC 12" in bf_asnr_mss_vau.h. \r
+    The allowed value for NUM_BF_ANALOG_MIC is 1-8. The allowed value for NUM_BF_VIRTUAL_MIC is either 12 (30 degree apart) \r
+    or 8 (45 degree apart)\r
+\r
diff --git a/sfc.h b/sfc.h
new file mode 100644 (file)
index 0000000..06a1ccf
--- /dev/null
+++ b/sfc.h
@@ -0,0 +1,185 @@
+#ifndef _SFC_H\r
+#define _SFC_H\r
+\r
+/** \r
+ *  @file  sfc.h\r
+ *  @brief Contains external API for the Sample Frequency Converter (SFC) module.\r
+ *\r
+ *        Copyright (c) 2007 \96 2013 Texas Instruments Incorporated                
+ *                                                                                
+ *              All rights reserved not granted herein.                           
+ *                                                                                
+ *                         Limited License.                                       
+ *                                                                                
+ *  Texas Instruments Incorporated grants a world-wide, royalty-free,             
+ *  non-exclusive license under copyrights and patents it now or hereafter owns   
+ *  or controls to make, have made, use, import, offer to sell and sell           
+ *  ("Utilize") this software subject to the terms herein.  With respect to the   
+ *  foregoing patent license, such license is granted solely to the extent that   
+ *  any such patent is necessary to Utilize the software alone.  The patent       
+ *  license shall not apply to any combinations which include this software,      
+ *  other than combinations with devices manufactured by or for TI (\93TI           
+ *  Devices\94).  No hardware patent is licensed hereunder.                         
+ *                                                                                
+ *  Redistributions must preserve existing copyright notices and reproduce this   
+ *  license (including the above copyright notice and the disclaimer and (if      
+ *  applicable) source code license limitations below) in the documentation       
+ *  and/or other materials provided with the distribution                         
+ *                                                                                
+ *  Redistribution and use in binary form, without modification, are permitted    
+ *  provided that the following conditions are met:                               
+ *                                                                                
+ *    *  No reverse engineering, decompilation, or disassembly of this software   
+ *  is permitted with respect to any software provided in binary form.            
+ *                                                                                
+ *    *  any redistribution and use are licensed by TI for use only with TI       
+ *  Devices.                                                                      
+ *                                                                                
+ *    *  Nothing shall obligate TI to provide you with source code for the        
+ *  software licensed and provided to you in object code.                         
+ *                                                                                
+ *  If software source code is provided to you, modification and redistribution   
+ *  of the source code are permitted provided that the following conditions are   
+ *  met:                                                                          
+ *                                                                                
+ *    *  any redistribution and use of the source code, including any resulting   
+ *  derivative works, are licensed by TI for use only with TI Devices.            
+ *                                                                                
+ *    *  any redistribution and use of any object code compiled from the source   
+ *  code and any resulting derivative works, are licensed by TI for use only      
+ *  with TI Devices.                                                              
+ *                                                                                
+ *  Neither the name of Texas Instruments Incorporated nor the names of its       
+ *  suppliers may be used to endorse or promote products derived from this        
+ *  software without specific prior written permission.                           
+ *                                                                                
+ *  DISCLAIMER.                                                                   
+ *                                                                                
+ *  THIS SOFTWARE IS PROVIDED BY TI AND TI\92S LICENSORS "AS IS" AND ANY EXPRESS    
+ *  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED             
+ *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE        
+ *  DISCLAIMED. IN NO EVENT SHALL TI AND TI\92S LICENSORS BE LIABLE FOR ANY         
+ *  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    
+ *  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR            
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER    
+ *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT            
+ *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY     
+ *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH   
+ *  DAMAGE.                                                                       \r
+ */\r
+\r
+ #include <ti/mas/types/types.h>               /* DSP types                   */\r
+\r
+/**\r
+ *  \r
+ *  @defgroup SFC Source Frequency Converter (SFC) \r
+ */\r
\r
+/** @ingroup SFC */\r
+/* @{ */\r
+\r
+/**\r
+ * @name External APIs for SFC\r
+ *\r
+ */\r
+/* @{ */\r
+/**\r
+ *  @brief Sample frequency converter sfcDecimationBy2 performs decimation by 2.\r
+ *\r
+ *  @param[in]  filt_len      Length of the decimation filter. It MUST be integer\r
+ *                            multiple of 4 plus 1, ie., 4*k+1. This parameter \r
+ *                            is ignored if parameter coeffs is NULL. \r
+ *  @param[in]  frame_len_in  Length of the data frame to be processed. \r
+ *  @param[in]  delay_line    Filter delay line. It must have filt_len-1 samples \r
+ *                            from previous frames and frame_len_in samples from\r
+ *                            current frame. The samples in this buffer must\r
+ *                            be packed as illustrated below:\r
+ *  @verbatim\r
+        |   previous frames   |   current frame   | \r
+        x(n-N+1), ..., x(n-M),  x(n-M+1), ..., x(n)\r
+        where N=M+L-1, M is input frame length, L is filter length.\r
+    \endverbatim\r
+ *  @param[in]   coeffs       Left half of the decimation filter coefficients \r
+ *                            including the center. Total number of coefficients\r
+ *                            provided by user must be (filt_len+1)/2.\r
+ *                            The decimation filter must be a symetric FIR filter\r
+ *                            with length filt_len. The gain of the filter must be \r
+ *                            less than or equal to 0dB. If this pointer is NULL, \r
+ *                            the \ref sfc_default_filter will be used.\r
+ *  @param[out]  sig_out      Output signal after decimation. Number of output \r
+ *                            samples is frame_len_in/2.\r
+ */ \r
+void sfcDecimationBy2(linSample *delay_line, linSample *sig_out, \r
+                      const Fract *coeffs, tint filt_len, tint frame_len_in);\r
+\r
+/**\r
+ *  @brief Sample frequency converter sfcInterpolationBy2 performs \r
+ *         interpolation by 2.\r
+ *\r
+ *  @param[in]  filt_len      Length of the interpolation filter. It MUST be \r
+ *                            integer multiple of 4 plus 1, ie., 4*k+1. This  \r
+ *                            parameter is ignored if parameter coeffs is NULL. \r
+ *  @param[in]  frame_len_in  Length of the data frame to be processed. \r
+ *  @param[in]  delay_line    Filter delay line. It must have (filt_len-1)/2\r
+ *                            samples from previous frames and frame_len_in \r
+ *                            samples from current frame. The samples in this \r
+ *                            buffer must be packed as illustrated below:\r
+ *  @verbatim\r
+        |   previous frames   |   current frame   | \r
+        x(n-N+1), ..., x(n-M),  x(n-M+1), ..., x(n)\r
+        where N=M+(L-1)/2, M is input frame length, L is filter length.\r
+    \endverbatim\r
+ *  @param[in]   coeffs      Left half of the interpolation filter coefficients \r
+ *                           including the center. Total number of coefficients\r
+ *                           provided by user must be (filt_len+1)/2.\r
+ *                           The interpolation filter must be a symetric FIR filter\r
+ *                           with length filt_len. The gain of the filter must be \r
+ *                           less than or equal to 0dB. If this pointer is NULL, \r
+ *                           the \ref sfc_default_filter will be used.\r
+ *  @param[out]  sig_out     Output signal after interpolation. Number of output \r
+ *                           samples is frame_len_in*2.\r
+ */ \r
+void sfcInterpolationBy2(linSample *delay_line, linSample *sig_out, \r
+                         const Fract *coeffs, tint filt_len, tint frame_len_in);\r
+/* @} */\r
+\r
+/** @defgroup sfc_default_filter SFC Default Filter\r
+ *  \r
+ *  @brief Default decimation/interpolation filter coefficients. This filter \r
+ *         will be used if the user doesn't provide coefficients for \r
+ *         decimation/interpolation. \r
+ *\r
+ *         This filter has cutoff frequency at 0.426 PI, or 3.4kHz for 16kHz \r
+ *         sampling frequency. It has 59dB out-of-band rejection above 0.548 PI, \r
+ *         or 4.34kHz for 16kHz sampling frequency. \r
+ *\r
+ *  @verbatim\r
+    Fract sfc_decim_interp_filt[sfc_NUM_DEF_COEFS] = {\r
+           9,\r
+         105,\r
+         108,\r
+        -105,\r
+        -251,\r
+          74,\r
+         479,\r
+          85,\r
+        -766,\r
+        -463,\r
+        1075,\r
+        1224,\r
+       -1354,\r
+       -2891,\r
+        1548,\r
+       10171,\r
+       14672  -> center coefficient\r
+    \endverbatim\r
+ */\r
+/* @{ */\r
+#define sfc_DEF_FILT_LEN 33\r
+#define sfc_NUM_DEF_COEFS (sfc_DEF_FILT_LEN+1)/2\r
+extern const Fract sfc_def_decim_interp_filt[sfc_NUM_DEF_COEFS];\r
+/* @} */\r
+                              \r
+/* @} */ /* ingroup SFC */\r
+#endif\r
+/* Nothing past this point */\r
diff --git a/slm.h b/slm.h
new file mode 100644 (file)
index 0000000..c1df5a9
--- /dev/null
+++ b/slm.h
@@ -0,0 +1,227 @@
+/******************************************************************************\r
+ * FILE PURPOSE:header file of SLM (signal limiter)\r
+ ******************************************************************************\r
+ * FILE NAME:   slm.h\r
+ *\r
+ * DESCRIPTION: Contains external definitions&functions prototypes for SLIM\r
+ *\r
+ *        Copyright (c) 2007 \96 2013 Texas Instruments Incorporated                
+ *                                                                                
+ *              All rights reserved not granted herein.                           
+ *                                                                                
+ *                         Limited License.                                       
+ *                                                                                
+ *  Texas Instruments Incorporated grants a world-wide, royalty-free,             
+ *  non-exclusive license under copyrights and patents it now or hereafter owns   
+ *  or controls to make, have made, use, import, offer to sell and sell           
+ *  ("Utilize") this software subject to the terms herein.  With respect to the   
+ *  foregoing patent license, such license is granted solely to the extent that   
+ *  any such patent is necessary to Utilize the software alone.  The patent       
+ *  license shall not apply to any combinations which include this software,      
+ *  other than combinations with devices manufactured by or for TI (\93TI           
+ *  Devices\94).  No hardware patent is licensed hereunder.                         
+ *                                                                                
+ *  Redistributions must preserve existing copyright notices and reproduce this   
+ *  license (including the above copyright notice and the disclaimer and (if      
+ *  applicable) source code license limitations below) in the documentation       
+ *  and/or other materials provided with the distribution                         
+ *                                                                                
+ *  Redistribution and use in binary form, without modification, are permitted    
+ *  provided that the following conditions are met:                               
+ *                                                                                
+ *    *  No reverse engineering, decompilation, or disassembly of this software   
+ *  is permitted with respect to any software provided in binary form.            
+ *                                                                                
+ *    *  any redistribution and use are licensed by TI for use only with TI       
+ *  Devices.                                                                      
+ *                                                                                
+ *    *  Nothing shall obligate TI to provide you with source code for the        
+ *  software licensed and provided to you in object code.                         
+ *                                                                                
+ *  If software source code is provided to you, modification and redistribution   
+ *  of the source code are permitted provided that the following conditions are   
+ *  met:                                                                          
+ *                                                                                
+ *    *  any redistribution and use of the source code, including any resulting   
+ *  derivative works, are licensed by TI for use only with TI Devices.            
+ *                                                                                
+ *    *  any redistribution and use of any object code compiled from the source   
+ *  code and any resulting derivative works, are licensed by TI for use only      
+ *  with TI Devices.                                                              
+ *                                                                                
+ *  Neither the name of Texas Instruments Incorporated nor the names of its       
+ *  suppliers may be used to endorse or promote products derived from this        
+ *  software without specific prior written permission.                           
+ *                                                                                
+ *  DISCLAIMER.                                                                   
+ *                                                                                
+ *  THIS SOFTWARE IS PROVIDED BY TI AND TI\92S LICENSORS "AS IS" AND ANY EXPRESS    
+ *  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED             
+ *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE        
+ *  DISCLAIMED. IN NO EVENT SHALL TI AND TI\92S LICENSORS BE LIABLE FOR ANY         
+ *  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    
+ *  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR            
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER    
+ *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT            
+ *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY     
+ *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH   
+ *  DAMAGE.                                                                       \r
+ *****************************************************************************/\r
+#ifndef _SLM_H\r
+#define _SLM_H\r
+\r
+/**\r
+ *  @file   slm.h\r
+ *  @brief  Contains external APIs for the slm module.\r
+ *\r
+ */\r
+\r
+/* System level header files */\r
+#include <ti/mas/types/types.h>            /* DSP types */\r
+\r
+/**  \r
+ * @defgroup SLM Signal Limiter(SLM)\r
+ * \r
+ * @brief When a voice signal is saturated, the resulting signal is generally nonlinear \r
+ *        in nature due to the (non-linear) saturation process. The Signal Limiter \r
+ *        reduces the voice signal to prevent the undesirable effects of hard limiting.\r
+ */\r
+/** @ingroup SLM */\r
+/* @{ */\r
+\r
+/**\r
+ *  @name SLM Mode Definitions\r
+ *  \r
+ */\r
+enum {\r
+  slm_DISABLE    =    0,      /**< Disable signal limiter */\r
+  slm_MODE1      =    1,      /**< Signal limiter mode 1: Max -10.38 dBm0, Min -17.25 dBm0 */\r
+  slm_MODE2      =    2,      /**< Signal limiter mode 2: Max  -8.25 dBm0, Min -15.34 dBm0 */  \r
+  slm_MODE3      =    3,      /**< Signal limiter mode 3: Max  -6.44 dBm0, Min -13.43 dBm0 */\r
+  slm_MODE4      =    4,      /**< Signal limiter mode 4: Max  -4.28 dBm0, Min -11.41 dBm0 */\r
+  slm_MODE5      =    5,      /**< Signal limiter mode 5: Max  -2.17 dBm0, Min  -9.18 dBm0 */  \r
+  slm_NUMOF_MODE = slm_MODE5  /**< Number of different SLM */ \r
+};\r
+\r
+/** @defgroup slm_api_return_codes SLM API return codes\r
+ *  These are the return codes for the SLM module API functions.\r
+ *  \r
+ * @{\r
+ * @name SLM Function Return Value Definitions\r
+ *\r
+ */\r
+/* @{ */\r
+enum {\r
+  slm_NOERR    = 0,     /**< Functions returned without error */\r
+  slm_ERROR    = 1,     /**< Functions returned with error, such as NULL point */\r
+  slm_BADPARAM = 2      /**< Functions returned with bad parameters */  \r
+};\r
+/*  @} */\r
+/** @} */\r
+\r
+/**\r
+ *  @name SLM sampling rate factor\r
+ *  \remark These numbers are used as table indeces, so can't be changed.\r
+ */\r
+enum {\r
+  slm_SRATE_FACTOR_16K = 1, /**< sampling rate is 16kHz */\r
+  slm_SRATE_FACTOR_8K  = 2  /**< sampling rate is 8kHz  */\r
+};                           \r
+\r
+/**\r
+ *  @name SLM Configuration Structure Valid Bit-field\r
+ *  \r
+ */\r
+enum {\r
+  slm_CFG_BIT_SRATE      = 0     /**< Bit 0: sampling rate factor */\r
+};\r
+\r
+/** \r
+ * \brief SLM configure Structure\r
+ *  \r
+ * Contains parameters that can be chosen to be configured by user when initializing SLM\r
+ *\r
+ */\r
+/* @{ */\r
+typedef struct{\r
+  tuint      valid_bf;            /**< Bit-fields indicating which parameters to configure \n\r
+                                  \link SLM::slm_CFG_BIT_SRATE bitfield definition \endlink */\r
+  tint       srate_factor;        /**< Sampling rate factor:\n\r
+                                  \link SLM::slm_SRATE_FACTOR_8K slm_SRATE_FACTOR_8K   \endlink \n \r
+                                  \link SLM::slm_SRATE_FACTOR_16K slm_SRATE_FACTOR_16K \endlink */\r
+} slmConfig_t;\r
+/* @} */\r
+\r
+/**\r
+ * @name External APIs for SLM \r
+ *\r
+ */\r
+/* @{ */\r
+/**\r
+ *  @brief Function slmGetSizes() get the size of a SLM instance \r
+ *            \r
+ *  \remark Function slmGetSizes() is the first function to be called.  \r
+ *\r
+ *  @param[in, out] instsize     Pointer to the size of a SLM instance .\r
+ *\r
+ *  @return           \link SLM::slm_NOERR     slm_NOERR,   \endlink \n\r
+ *                    \link SLM::slm_ERROR     slm_ERROR    \endlink \r
+ */\r
+tint slmGetSizes (tint *instsize);\r
+   \r
+/**\r
+ *  @brief Function slmInit() initializes SLM  \r
+ *            \r
+ *  \remark Function slmInit() must be called after slmGetSizes(). After the\r
+ *  function call, SLM is disabled.  \r
+ *      \r
+ *\r
+ *  @param[in, out] inst    Pointer to a SLM instance structure\r
+ *  @param[in]      cfg     Pointer to a configuration structure slmConfig_t\r
+ *\r
+ *  @return           \link SLM::slm_NOERR     slm_NOERR,   \endlink \n\r
+ *                    \link SLM::slm_ERROR     slm_ERROR,   \endlink \n\r
+ *                    \link SLM::slm_BADPARAM  slm_BADPARAM \endlink \r
+ *       \r
+ */ \r
+tint slmInit (void *inst, slmConfig_t *cfg);\r
+\r
+/**\r
+ *  @brief Function slmControl() configure SLM with different types of limiter\r
+ *            \r
+ *  \remark Function slmControl() must be called after slmInit() to enable SLM by\r
+ *  setting the mode to one of the operational modes.\r
+ *  All internal parameters will be reset whenever there's a mode change \r
+ *   \r
+ *\r
+ *  @param[in, out]  inst     Pointer to a SLM instance structure.\r
+ *  @param[in]       mode     one of \link SLM::slm_DISABLE slm modes \endlink.\r
+ *\r
+ *  @return           \link SLM::slm_NOERR     slm_NOERR,   \endlink \n\r
+ *                    \link SLM::slm_ERROR     slm_ERROR,   \endlink \n\r
+ *                    \link SLM::slm_BADPARAM  slm_BADPARAM \endlink \r
+ */\r
+tint slmControl (void *inst, tint mode);\r
+\r
+/**\r
+ *  @brief This is the function that performs the signal attenuation\r
+ *            \r
+ *  \remark This function can only be called after slmInit() and slmControl()\r
+ *  to make SLM take effect and it needs to be called every frame.  \r
+ *   \r
+ *\r
+ *  @param[in]        inst            Pointer to a SLM instance structure.\r
+ *  @param[in, out]   speechSamples   Pointer to the voice buffer\r
+ *  @param[in]        frame_length    Number of samples processed\r
+ *\r
+ *  @return           \link SLM::slm_NOERR     slm_NOERR   \endlink\r
+ *\r
+ */\r
+tint slmProcess (void *inst, void *speechSamples, tint frame_length);\r
+\r
+/* @} */\r
+/* @} */ /* ingroup SLM */\r
+#endif\r
+\r
+/* end of slm.h */\r
+\r
diff --git a/snl.h b/snl.h
new file mode 100644 (file)
index 0000000..d556cf1
--- /dev/null
+++ b/snl.h
@@ -0,0 +1,204 @@
+/******************************************************************************\r
+ * FILE PURPOSE: Speech and Noise level estimation\r
+ *               \r
+ ******************************************************************************\r
+ * FILE NAME: snl.h  \r
+ *\r
+ * DESCRIPTION: Implements active speech and noise level estimation for the purposes\r
+ *              of voice doctor \r
+ *\r
+ *        Copyright (c) 2007 \96 2013 Texas Instruments Incorporated                
+ *                                                                                
+ *              All rights reserved not granted herein.                           
+ *                                                                                
+ *                         Limited License.                                       
+ *                                                                                
+ *  Texas Instruments Incorporated grants a world-wide, royalty-free,             
+ *  non-exclusive license under copyrights and patents it now or hereafter owns   
+ *  or controls to make, have made, use, import, offer to sell and sell           
+ *  ("Utilize") this software subject to the terms herein.  With respect to the   
+ *  foregoing patent license, such license is granted solely to the extent that   
+ *  any such patent is necessary to Utilize the software alone.  The patent       
+ *  license shall not apply to any combinations which include this software,      
+ *  other than combinations with devices manufactured by or for TI (\93TI           
+ *  Devices\94).  No hardware patent is licensed hereunder.                         
+ *                                                                                
+ *  Redistributions must preserve existing copyright notices and reproduce this   
+ *  license (including the above copyright notice and the disclaimer and (if      
+ *  applicable) source code license limitations below) in the documentation       
+ *  and/or other materials provided with the distribution                         
+ *                                                                                
+ *  Redistribution and use in binary form, without modification, are permitted    
+ *  provided that the following conditions are met:                               
+ *                                                                                
+ *    *  No reverse engineering, decompilation, or disassembly of this software   
+ *  is permitted with respect to any software provided in binary form.            
+ *                                                                                
+ *    *  any redistribution and use are licensed by TI for use only with TI       
+ *  Devices.                                                                      
+ *                                                                                
+ *    *  Nothing shall obligate TI to provide you with source code for the        
+ *  software licensed and provided to you in object code.                         
+ *                                                                                
+ *  If software source code is provided to you, modification and redistribution   
+ *  of the source code are permitted provided that the following conditions are   
+ *  met:                                                                          
+ *                                                                                
+ *    *  any redistribution and use of the source code, including any resulting   
+ *  derivative works, are licensed by TI for use only with TI Devices.            
+ *                                                                                
+ *    *  any redistribution and use of any object code compiled from the source   
+ *  code and any resulting derivative works, are licensed by TI for use only      
+ *  with TI Devices.                                                              
+ *                                                                                
+ *  Neither the name of Texas Instruments Incorporated nor the names of its       
+ *  suppliers may be used to endorse or promote products derived from this        
+ *  software without specific prior written permission.                           
+ *                                                                                
+ *  DISCLAIMER.                                                                   
+ *                                                                                
+ *  THIS SOFTWARE IS PROVIDED BY TI AND TI\92S LICENSORS "AS IS" AND ANY EXPRESS    
+ *  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED             
+ *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE        
+ *  DISCLAIMED. IN NO EVENT SHALL TI AND TI\92S LICENSORS BE LIABLE FOR ANY         
+ *  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    
+ *  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR            
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER    
+ *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT            
+ *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY     
+ *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH   
+ *  DAMAGE.                                                                       \r
+ *****************************************************************************/\r
+#ifndef _SNL_H\r
+#define _SNL_H\r
+\r
+#include <ti/mas/types/types.h>              /* DSP types */\r
+\r
+/**\r
+ *  @file   snl.h\r
+ *  @brief  Contains external APIs for the SNL module.\r
+ *\r
+ */\r
+\r
+/** \r
+ *  @defgroup SNL Siganl and Noise Level estimator (SNL)\r
+ *\r
+ *  @brief SNL estimates the speech and background noise level of the incoming \r
+ *         voice signal.\r
+ *\r
+ */\r
+/** @ingroup SNL */\r
+/* @{ */\r
+\r
+/** @defgroup snl_api_return_codes SNL API return codes\r
+ *  These are the return codes for the SNL module API functions.\r
+ *  \r
+ * @{\r
+ * @name SNL Function Return Value Definitions\r
+ *\r
+ */\r
+/* @{ */\r
+enum {\r
+  snl_NOERR    = 0,  /**< success, no error   */\r
+  snl_ERR      = 1,  /**< failed              */\r
+  snl_BADPARAM = 2   /**< Returned from function with wrong parameters */       \r
+};                            \r
+/*  @} */\r
+/** @} */\r
+\r
+/**\r
+ *  @name SNL sampling rate factor\r
+ *  \remark These numbers are used as multipliers, so can't be changed to other values.\r
+ *\r
+ */\r
+enum {\r
+  snl_SRATE_FACTOR_8K  = 1, /**< sampling rate is 8kHz  */\r
+  snl_SRATE_FACTOR_16K = 2  /**< sampling rate is 16kHz */\r
+};                           \r
+\r
+/**\r
+ *  @def  snl_ENV_Q\r
+ *        The Fract Q format for the adaptive envelope threshold returned by\r
+ *        snlGetLevels().       \r
+ */\r
+#define snl_ENV_Q               3\r
+\r
+/**\r
+ *  @def  snl_INVALID_POW_DB\r
+ *        The initialization value for the signal and noise dB value.  It's not a \r
+ *        valid result for either signal or noise level estimation.  \r
+ *  @sa \r
+ */\r
+#define snl_INVALID_POW_DB      0x7F\r
+\r
+/**\r
+ * @name External APIs for SNL\r
+ *\r
+ */\r
+/* @{ */\r
+/**\r
+ *  @brief Obtain from SNL the memory requirements of an instance. \r
+ *  \remark This must be the first function to be called before calling any other SNL APIs\r
+ *            \r
+ *\r
+ *  @param[out]   instsize  The size of the instance\r
+ *\r
+ *  @return           \link SNL::snl_NOERR     snl_NOERR,   \endlink \n\r
+ *                    \link SNL::snl_ERR       snl_ERR      \endlink: if instsize==NULL \r
+ */\r
+tint snlGetSizes (tint *instsize);\r
+\r
+/**\r
+ *  @brief  Initialize signal level estimator\r
+ *  \remark This is the function to call after calling snlGetSizes(), only samp_rate is user configurable.\r
+ *          After this function call, both signal and noise level are initialized to \r
+ *          \link SNL::snl_INVALID_POW_DB snl_INVALID_POW_DB,\endlink  which is not considered\r
+ *          a valid result from SNL\r
+ *\r
+ *  @param[out]       *inst      Pointer to the SNL instance\r
+ *  @param[in]        samp_rate  \link SNL::snl_SRATE_FACTOR_8K  snl_SRATE_FACTOR_8K  \endlink \n\r
+ *                               \link SNL::snl_SRATE_FACTOR_16K snl_SRATE_FACTOR_16K \endlink \n \r
+ *\r
+ *  @return           \link SNL::snl_NOERR     snl_NOERR,   \endlink  \n\r
+ *                    \link SNL::snl_ERR       snl_ERR,     \endlink :if inst==NULL \n \r
+ *                    \link SNL::snl_BADPARAM  snl_BADPARAM \endlink :if samp_rate is not one of snl_SRATE_FACTOR_8K\r
+ *                                                                    and snl_SRATE_FACTOR_16K\r
+ *\r
+ */\r
+tint snlInit      (void *inst, tint samp_rate);\r
+\r
+/**\r
+ *  @brief  Signal and noise level estimator\r
+ *  \remark This is the function that processes the signal and calculates various parameters needed for level\r
+ *          estimation.  This function needs to be called every frame. There is a limitation of 1.5ms for the \r
+ *          frame size, which will equivalent to 12 for the nSamps parameter for 8kHz sampling rate and 24\r
+ *          for the nSamps parameter for 16kHz sampling rate.\r
+ *\r
+ *  @param[in, out]   *inst     Pointer to the instance\r
+ *  @param[in]        *samples  Pointer to samples\r
+ *  @param[in]        nSamps    Number of samples\r
+ *\r
+ *  @return           \link SNL::snl_NOERR     snl_NOERR   \endlink\r
+ */\r
+tint snlProcess   (void *inst, linSample *samples, tuint nSamps);\r
+\r
+/**\r
+ *  @brief  Get speech and noise levels\r
+ *  \remark This is the function to be called whenever the levels are needed.  It can be called every frame\r
+ *          or when requested.\r
+ *\r
+ *  @param[in]   *inst    Pointer to the instance\r
+ *  @param[out]  *spchdB  pointer to returned speech power level in Q0 dB\r
+ *  @param[out]  *noisedB pointer to returned noise  power level in Q0 dB\r
+ *  @param[out]  *thresh  pointer to returned adaptive threshold for envelope \r
+ *                        in Q\link SNL::snl_ENV_Q snl_ENV_Q \endlink linear amplitude.\r
+ * \r
+ *  @return           \link SNL::snl_NOERR     snl_NOERR   \endlink\r
+ */\r
+tint snlGetLevels (void *inst, Fract *spchdB, Fract *noisedB, UFract *thresh);\r
+\r
+/* @} */\r
+/* @} */ /* ingroup SNL */\r
+#endif\r
+\r
+/* Nothing past this point */\r
diff --git a/svd.h b/svd.h
new file mode 100644 (file)
index 0000000..b3fec70
--- /dev/null
+++ b/svd.h
@@ -0,0 +1,232 @@
+/******************************************************************************\r
+ * FILE PURPOSE: Simple Voice Activity Detection (SVD) module\r
+ *               \r
+ ******************************************************************************\r
+ * FILE NAME: svd.h  \r
+ *\r
+ * DESCRIPTION: Implements a (very) simple Voice Activity Detector (VAD) based \r
+ *              almost solely on the SNL module.\r
+ *\r
+ *        Copyright (c) 2007 \96 2013 Texas Instruments Incorporated                
+ *                                                                                
+ *              All rights reserved not granted herein.                           
+ *                                                                                
+ *                         Limited License.                                       
+ *                                                                                
+ *  Texas Instruments Incorporated grants a world-wide, royalty-free,             
+ *  non-exclusive license under copyrights and patents it now or hereafter owns   
+ *  or controls to make, have made, use, import, offer to sell and sell           
+ *  ("Utilize") this software subject to the terms herein.  With respect to the   
+ *  foregoing patent license, such license is granted solely to the extent that   
+ *  any such patent is necessary to Utilize the software alone.  The patent       
+ *  license shall not apply to any combinations which include this software,      
+ *  other than combinations with devices manufactured by or for TI (\93TI           
+ *  Devices\94).  No hardware patent is licensed hereunder.                         
+ *                                                                                
+ *  Redistributions must preserve existing copyright notices and reproduce this   
+ *  license (including the above copyright notice and the disclaimer and (if      
+ *  applicable) source code license limitations below) in the documentation       
+ *  and/or other materials provided with the distribution                         
+ *                                                                                
+ *  Redistribution and use in binary form, without modification, are permitted    
+ *  provided that the following conditions are met:                               
+ *                                                                                
+ *    *  No reverse engineering, decompilation, or disassembly of this software   
+ *  is permitted with respect to any software provided in binary form.            
+ *                                                                                
+ *    *  any redistribution and use are licensed by TI for use only with TI       
+ *  Devices.                                                                      
+ *                                                                                
+ *    *  Nothing shall obligate TI to provide you with source code for the        
+ *  software licensed and provided to you in object code.                         
+ *                                                                                
+ *  If software source code is provided to you, modification and redistribution   
+ *  of the source code are permitted provided that the following conditions are   
+ *  met:                                                                          
+ *                                                                                
+ *    *  any redistribution and use of the source code, including any resulting   
+ *  derivative works, are licensed by TI for use only with TI Devices.            
+ *                                                                                
+ *    *  any redistribution and use of any object code compiled from the source   
+ *  code and any resulting derivative works, are licensed by TI for use only      
+ *  with TI Devices.                                                              
+ *                                                                                
+ *  Neither the name of Texas Instruments Incorporated nor the names of its       
+ *  suppliers may be used to endorse or promote products derived from this        
+ *  software without specific prior written permission.                           
+ *                                                                                
+ *  DISCLAIMER.                                                                   
+ *                                                                                
+ *  THIS SOFTWARE IS PROVIDED BY TI AND TI\92S LICENSORS "AS IS" AND ANY EXPRESS    
+ *  OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED             
+ *  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE        
+ *  DISCLAIMED. IN NO EVENT SHALL TI AND TI\92S LICENSORS BE LIABLE FOR ANY         
+ *  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    
+ *  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR            
+ *  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER    
+ *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT            
+ *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY     
+ *  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH   
+ *  DAMAGE.                                                                       \r
+ *****************************************************************************/\r
+#ifndef _SVD_H\r
+#define _SVD_H\r
+\r
+/**\r
+ *  @file   svd.h\r
+ *  @brief  Contains external APIs for the SVD module.\r
+ *\r
+ */\r
+\r
+/** \r
+ *  @defgroup SVD Simple Voice activity Detector (SVD)\r
+ *\r
+ *  @brief The SVD module examines the signal and noise levels measured by SNL \r
+ *         and makes a decision whether voice is active or not. \r
+ */\r
+/** @ingroup SVD */\r
+/* @{ */\r
+\r
+#include <ti/mas/types/types.h>              /* DSP types            */\r
+\r
+/** @defgroup svd_api_return_codes SVD API return codes\r
+ *  These are the return codes for the SVD module API functions.\r
+ *  \r
+ * @{\r
+ * @name SVD Function Return Value Definitions\r
+ *\r
+ */\r
+/* @{ */\r
+enum{\r
+  svd_NOERR    = 0,  /**< success, no error   */\r
+  svd_ERR      = 1,  /**< failed              */\r
+  svd_BADPARAM = 2   /**< Returned from function with wrong parameters */       \r
+};                            \r
+/*  @} */\r
+/** @} */\r
+\r
+/**\r
+ *  @name SVD decision codes\r
+ *\r
+ */\r
+enum{\r
+  svd_VOICE_UNDEFINED = -1,  /**< VAD decision undefined */\r
+  svd_VOICE_INACTIVE  = 0,   /**< VAD decision NO VOICE  */\r
+  svd_VOICE_ACTIVE    = 1    /**< VAD decision VOICE     */\r
+};                           \r
+\r
+/**\r
+ *  @name SVD sampling rate factor\r
+ *  \remark These numbers are used as multipliers, so can't be changed to other values.\r
+ *\r
+ */\r
+enum{\r
+  svd_SRATE_8K  = 1,         /**< sampling rate is 8kHz  */\r
+  svd_SRATE_16K = 2          /**< sampling rate is 16kHz */\r
+};                           \r
+\r
+/**\r
+ *  @def  svd_ENV_Q\r
+ *        The Fract Q format for the adaptive envelope threshold returned by\r
+ *        svdGetLevels().       \r
+ */\r
+#define svd_ENV_Q               3\r
+\r
+/**\r
+ *  @def  svd_PWR_Q\r
+ *        The Fract Q format for the speech and noise power level returned by\r
+ *        svdGetLevels().       \r
+ */\r
+#define svd_PWR_Q               0\r
+\r
+/**\r
+ *  @def  svd_INVALID_POW_DB\r
+ *        The initialization value for the signal and noise dB value.  It's not a \r
+ *        valid result for either signal or noise level estimation.  \r
+ *  @sa \r
+ */\r
+#define svd_INVALID_POW_DB      0x7F\r
+\r
+/**\r
+ * @name External APIs for SVD\r
+ *\r
+ */\r
+/* @{ */\r
+/**\r
+ *  @brief Obtain from SVD the instance memory requirements. \r
+ *  \remark This must be the first function to be called before calling any other SVD APIs\r
+ *            \r
+ *  @param[out]   instsize  The size of the instance\r
+ *\r
+ *  @return           \link SVD::svd_NOERR     svd_NOERR,   \endlink \n\r
+ *                    \link SVD::svd_ERR       svd_ERR      \endlink: if instsize==NULL \r
+ */\r
+tint svdGetSizes (tint *instsize);\r
+\r
+/**\r
+ *  @brief  Initialize simple voice activity detector\r
+ *  \remark This function is called after svdGetSizes(), and initializes the instance. \r
+ *\r
+ *  @param[in]        *inst      Pointer to the SVD instance memory, must NOT be NULL.\r
+ *  @param[in]        samp_rate  \link SVD::svd_SRATE_8K  svd_SRATE_8K  \endlink \n\r
+ *                               \link SVD::svd_SRATE_16K svd_SRATE_16K \endlink \n \r
+ *  @param[out]       *inst      Initialized SVD instance memory.\r
+ *\r
+ *  @return           \link SVD::svd_NOERR     svd_NOERR,   \endlink  \n\r
+ *                    \link SVD::svd_ERR       svd_ERR,     \endlink :if inst==NULL \n \r
+ *                    \link SVD::svd_BADPARAM  svd_BADPARAM \endlink :if samp_rate is not one of \r
+ *                                                                       svd_SRATE_8K\r
+ *                                                                    or svd_SRATE_16K\r
+ *\r
+ */\r
+tint svdInit (void *inst, tint samp_rate);\r
+\r
+/**\r
+ *  @brief  Simple VAD detection process\r
+ *  \remark This is the function that processes the signal and makes the Voice/Noise decision.  The \r
+ *          function should be called every frame. The frame size must be at least 1.5ms (12 for 8kHz, \r
+ *          24 for 16kHz).\r
+ *\r
+ *  @param[in, out]   *inst     Pointer to the instance\r
+ *  @param[in]        *samples  Pointer to samples\r
+ *  @param[in]        nSamps    Number of samples, or frame size\r
+ *\r
+ *  @return           \link SVD::svd_NOERR     svd_NOERR,   \endlink  \n\r
+ *                    \link SVD::svd_ERR       svd_ERR,     \endlink  \n \r
+ */\r
+tint svdProcess (void *inst, linSample *samples, tuint nSamps);\r
+\r
+/**\r
+ *  @brief  Get Voice decision\r
+ *  \remark This is the function to call when a Voice/Noise decision is needed.  It can be called \r
+ *          as needed.\r
+ *\r
+ *  @param[in]   *inst     Pointer to the instance\r
+ *  @param[out]  sig_pow   Exponentially averaged signal power\r
+ *                        \r
+ *  @return      \link SVD::svd_VOICE_UNDEFINED svd_VOICE_UNDEFINED \endlink \n\r
+ *               \link SVD::svd_VOICE_INACTIVE  svd_VOICE_INACTIVE  \endlink \n \r
+ *               \link SVD::svd_VOICE_ACTIVE    svd_VOICE_ACTIVE    \endlink \n \r
+ */\r
+tint svdGetDecision (void *inst, LFract *sig_pow);\r
+\r
+/**\r
+ *  @brief  Get speech and noise levels\r
+ *  \remark This is the function to be called whenever the levels are needed.  \r
+ *          It can be called every frame or when requested.\r
+ *\r
+ *  @param[in]   *inst    Pointer to the instance\r
+ *  @param[out]  *spchdB  pointer to returned speech power level in Q0 dB\r
+ *  @param[out]  *noisedB pointer to returned noise  power level in Q0 dB\r
+ *  @param[out]  *thresh  pointer to returned adaptive threshold for envelope \r
+ *                        in Q\link SVD::svd_ENV_Q svd_ENV_Q \endlink linear amplitude.\r
+ * \r
+ *  @return           \link SVD::svd_NOERR     svd_NOERR   \endlink\r
+ */\r
+tint svdGetLevels (void *inst, Fract *spchdB, Fract *noisedB, UFract *thresh);\r
+\r
+/* @} */\r
+/* @} */ /* ingroup SVD */\r
+#endif\r
+\r
+/* Nothing past this point */\r
diff --git a/test/Makedocs.mk b/test/Makedocs.mk
new file mode 100644 (file)
index 0000000..c7c3c9a
--- /dev/null
@@ -0,0 +1,20 @@
+# ==============================================================================\r
+# File            : Makedocs.mk\r
+# Description     : \r
+#\r
+#   GNU makefile to generate VPE TEST documentation from sources using Doxygen\r
+#\r
+# ==============================================================================\r
+\r
+# The target for generating documents using doxygen is gendocs\r
+\r
+VPETEST_DOC=./docs/doxygen/VPE_TEST.chm\r
+\r
+release: $(VPETEST_DOC)\r
+\r
+gendocs $(VPETEST_DOC): ./docs/doxygen/doxygen.h\r
+       -@echo generating VPETEST documentation ...\r
+       if test ! -d ./docs/doxygen/html; then mkdir ./docs/doxygen/html; fi\r
+       cp $(TI_DOXYGEN_TEMPLATES)/*.* ./docs/doxygen/html\r
+       doxygen ./docs/doxygen/Doxyfile\r
+# End of Makedocs.mk\r
diff --git a/test/ccsProjects/test_rel_c64Ple_C64PLE_LE_COFF/.ccsproject b/test/ccsProjects/test_rel_c64Ple_C64PLE_LE_COFF/.ccsproject
new file mode 100644 (file)
index 0000000..0df15c0
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<?ccsproject version="1.0"?>
+<projectOptions>
+       <deviceVariant value="com.ti.ccstudio.deviceModel.C6000.CustomC6000Device"/>
+       <deviceFamily value="C6000"/>
+       <deviceEndianness value="little"/>
+       <codegenToolVersion value="7.4.2"/>
+       <isElfFormat value="false"/>
+       <connection value=""/>
+       <rts value="libc.a"/>
+       <isTargetManual value="false"/>
+</projectOptions>
diff --git a/test/ccsProjects/test_rel_c64Ple_C64PLE_LE_COFF/.cproject b/test/ccsProjects/test_rel_c64Ple_C64PLE_LE_COFF/.cproject
new file mode 100644 (file)
index 0000000..fec99f2
--- /dev/null
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">\r
+       <storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">\r
+               <cconfiguration id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1276204069">\r
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1276204069" moduleId="org.eclipse.cdt.core.settings" name="Debug">\r
+                               <macros>\r
+                                       <stringMacro name="XDC_CG_ROOT" type="VALUE_PATH_DIR" value="C:\MAS_Tools\xdctools_3_24_07_73"/>\r
+                                       <stringMacro name="EXT_ROOT__TEST_REL_C64PLE_C64PLE_LE_COFF_SRC" type="VALUE_PATH_DIR" value="${PROJECT_ROOT}/../../src"/>\r
+                                       <stringMacro name="EXT_ROOT__TEST_REL_C64PLE_C64PLE_LE_COFF_LNKRC64PLE" type="VALUE_PATH_DIR" value="${PROJECT_ROOT}/../../lnkr/c64Ple"/>\r
+                                       <stringMacro name="XDAIS_CG_ROOT" type="VALUE_PATH_DIR" value="C:\MAS_Tools\xdais_7_23_00_06"/>\r
+                               </macros>\r
+                               <externalSettings/>\r
+                               <extensions>\r
+                                       <extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>\r
+                               </extensions>\r
+                       </storageModule>\r
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
+                               <configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1276204069" name="Debug" parent="com.ti.ccstudio.buildDefinitions.C6000.Debug">\r
+                                       <folderInfo id="com.ti.ccstudio.buildDefinitions.C6000.Debug.1276204069." name="/" resourcePath="">\r
+                                               <toolChain id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.DebugToolchain.1537260134" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.linkerDebug.1312108442">\r
+                                                       <option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.568407514" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">\r
+                                                               <listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=com.ti.ccstudio.deviceModel.C6000.GenericC674xDevice"/>\r
+                                                               <listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>\r
+                                                               <listOptionValue builtIn="false" value="OUTPUT_FORMAT=COFF"/>\r
+                                                               <listOptionValue builtIn="false" value="CCS_MBS_VERSION=6.1.3"/>\r
+                                                               <listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>\r
+                                                               <listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>\r
+                                                       </option>\r
+                                                       <option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.987382083" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="7.4.16" valueType="string"/>\r
+                                                       <targetPlatform id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.targetPlatformDebug.1739567931" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.targetPlatformDebug"/>\r
+                                                       <builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.builderDebug.809972258" keepEnvironmentInBuildfile="false" name="GNU Make" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.builderDebug"/>\r
+                                                       <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerDebug.783724019" name="C6000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerDebug">\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.SILICON_VERSION.337860609" name="Target processor version (--silicon_version, -mv)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.SILICON_VERSION" value="64plus" valueType="string"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.ABI.2133532171" name="Application binary interface (coffabi, eabi) [See 'General' page to edit] (--abi)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.ABI.coffabi" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OPT_FOR_SPACE.1532676267" name="Optimize for code size (--opt_for_space, -ms)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OPT_FOR_SPACE" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OPT_FOR_SPACE.3" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEBUGGING_MODEL.716550052" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.INCLUDE_PATH.1242223544" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.INCLUDE_PATH" valueType="includePath">\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;../../../../../../../&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;../../../../../../../../../aer_c64Px_obj_17_0_0_0/packages&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${XDC_CG_ROOT}/packages&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${XDAIS_CG_ROOT}/packages&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;../../../lnkr/c64Ple&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;../../../src&quot;"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEFINE.885193343" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEFINE" valueType="definedSymbols">\r
+                                                                       <listOptionValue builtIn="false" value="ti_targets_C64P"/>\r
+                                                                       <listOptionValue builtIn="false" value="xdc_target_types__=ti/targets/std.h"/>\r
+                                                                       <listOptionValue builtIn="false" value="__CCS_PROJECT_REL_PATH"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.QUIET_LEVEL.2081857666" name="Quiet Level" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.QUIET_LEVEL" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.QUIET_LEVEL.QUIET" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DISPLAY_ERROR_NUMBER.465763146" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_SUPPRESS.1721088073" name="Suppress diagnostic &lt;id&gt; (--diag_suppress, -pds)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_SUPPRESS" valueType="stringList">\r
+                                                                       <listOptionValue builtIn="false" value="1111"/>\r
+                                                                       <listOptionValue builtIn="false" value="827"/>\r
+                                                                       <listOptionValue builtIn="false" value="824"/>\r
+                                                                       <listOptionValue builtIn="false" value="837"/>\r
+                                                                       <listOptionValue builtIn="false" value="1037"/>\r
+                                                                       <listOptionValue builtIn="false" value="195"/>\r
+                                                                       <listOptionValue builtIn="false" value="77"/>\r
+                                                                       <listOptionValue builtIn="false" value="232"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_WARNING.1133846259" name="Treat diagnostic &lt;id&gt; as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_WARNING" valueType="stringList">\r
+                                                                       <listOptionValue builtIn="false" value="225"/>\r
+                                                                       <listOptionValue builtIn="false" value="994"/>\r
+                                                                       <listOptionValue builtIn="false" value="262"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_WRAP.1617131228" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_WRAP.off" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.INTERRUPT_THRESHOLD.1138980557" name="Specify maximum disabled interrupt cycles (--interrupt_threshold, -mi)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.INTERRUPT_THRESHOLD" value="10000" valueType="string"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.MEM_MODEL__DATA.1938906673" name="Data access model (--mem_model:data)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.MEM_MODEL__DATA" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.MEM_MODEL__DATA.far" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEBUG_SOFTWARE_PIPELINE.1334831364" name="Generate verbose software pipelining information (--debug_software_pipeline, -mw)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEBUG_SOFTWARE_PIPELINE" value="true" valueType="boolean"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.KEEP_ASM.1916542226" name="Keep the generated assembly language (.asm) file (--keep_asm, -k)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.KEEP_ASM" value="true" valueType="boolean"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.SOURCE_INTERLIST.1279635695" name="Source interlist" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.SOURCE_INTERLIST" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.SOURCE_INTERLIST.C_SRC_INTERLIST" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.ASM_LISTING.174096893" name="Generate listing file (--asm_listing, -al)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.ASM_LISTING" value="true" valueType="boolean"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OUTPUT_ALL_SYMS.1330772859" name="Keep local symbols in output file (--output_all_syms, -as)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OUTPUT_ALL_SYMS" value="true" valueType="boolean"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.WCHAR_T.579637227" name="Set the size (in bits) of the C/C++ type wchar_t (16,32) (--wchar_t)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.WCHAR_T" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.WCHAR_T.16" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.CHECK_MISRA.1400161580" name="Enable checking of MISRA-C:2004 rules (--check_misra)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.CHECK_MISRA" value="" valueType="string"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__C_SRCS.339988564" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__C_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__CPP_SRCS.1486489787" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__CPP_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM_SRCS.1882949551" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM2_SRCS.1193503588" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM2_SRCS"/>\r
+                                                       </tool>\r
+                                                       <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.linkerDebug.1312108442" name="C6000 Linker" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.linkerDebug">\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.OUTPUT_FILE.609575660" name="Specify output file name (--output_file, -o)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.OUTPUT_FILE" value="&quot;${ProjName}.out&quot;" valueType="string"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.MAP_FILE.950194215" name="Input and output sections listed into &lt;file&gt; (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.MAP_FILE" value="&quot;${ProjName}.map&quot;" valueType="string"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.LIBRARY.438388150" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.LIBRARY" valueType="libs">\r
+                                                                       <listOptionValue builtIn="false" value="&quot;libc.a&quot;"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.SEARCH_PATH.1843963009" name="Add &lt;dir&gt; to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.SEARCH_PATH" valueType="libPaths">\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.DISPLAY_ERROR_NUMBER.1552303541" name="Emit diagnostic identifier numbers (--display_error_number)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.DIAG_WRAP.1599652380" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.DIAG_WRAP.off" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.XML_LINK_INFO.969605051" name="Detailed link information data-base into &lt;file&gt; (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.XML_LINK_INFO" value="&quot;${ProjName}_linkInfo.xml&quot;" valueType="string"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__CMD_SRCS.27212097" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__CMD_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__CMD2_SRCS.2022386959" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__CMD2_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__GEN_CMDS.1951030512" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__GEN_CMDS"/>\r
+                                                       </tool>\r
+                                                       <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.4.hex.1237785454" name="C6000 Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.hex"/>\r
+                                               </toolChain>\r
+                                       </folderInfo>\r
+                               </configuration>\r
+                       </storageModule>\r
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>\r
+               </cconfiguration>\r
+               <cconfiguration id="com.ti.ccstudio.buildDefinitions.C6000.Release.1476228313">\r
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.C6000.Release.1476228313" moduleId="org.eclipse.cdt.core.settings" name="Release">\r
+                               <macros>\r
+                                       <stringMacro name="XDC_CG_ROOT" type="VALUE_PATH_DIR" value="C:/MAS_Tools/xdctools_3_24_06_63"/>\r
+                                       <stringMacro name="EXT_ROOT__TEST_REL_C64PLE_C64PLE_LE_COFF_SRC" type="VALUE_PATH_DIR" value="${PROJECT_ROOT}/../../src"/>\r
+                                       <stringMacro name="EXT_ROOT__TEST_REL_C64PLE_C64PLE_LE_COFF_LNKRC64PLE" type="VALUE_PATH_DIR" value="${PROJECT_ROOT}/../../lnkr/c64Ple"/>\r
+                                       <stringMacro name="XDAIS_CG_ROOT" type="VALUE_PATH_DIR" value="C:/MAS_Tools/xdais_7_23_00_06"/>\r
+                               </macros>\r
+                               <externalSettings/>\r
+                               <extensions>\r
+                                       <extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>\r
+                               </extensions>\r
+                       </storageModule>\r
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
+                               <configuration artifactExtension="out" artifactName="${ProjName}" buildProperties="" cleanCommand="${CG_CLEAN_CMD}" description="" id="com.ti.ccstudio.buildDefinitions.C6000.Release.1476228313" name="Release" parent="com.ti.ccstudio.buildDefinitions.C6000.Release">\r
+                                       <folderInfo id="com.ti.ccstudio.buildDefinitions.C6000.Release.1476228313." name="/" resourcePath="">\r
+                                               <toolChain id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.ReleaseToolchain.1659367491" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.ReleaseToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.linkerRelease.1026334420">\r
+                                                       <option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.58091637" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">\r
+                                                               <listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=com.ti.ccstudio.deviceModel.C6000.CustomC6000Device"/>\r
+                                                               <listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=little"/>\r
+                                                               <listOptionValue builtIn="false" value="OUTPUT_FORMAT=COFF"/>\r
+                                                               <listOptionValue builtIn="false" value="CCS_MBS_VERSION=6.1.3"/>\r
+                                                               <listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>\r
+                                                               <listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>\r
+                                                       </option>\r
+                                                       <option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1376025420" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="7.4.2" valueType="string"/>\r
+                                                       <targetPlatform id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.targetPlatformRelease.745626060" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.targetPlatformRelease"/>\r
+                                                       <builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.builderRelease.631723188" keepEnvironmentInBuildfile="false" name="GNU Make" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.builderRelease"/>\r
+                                                       <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerRelease.1534840171" name="C6000 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.compilerRelease">\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_WARNING.1489185349" name="Treat diagnostic &lt;id&gt; as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_WARNING" valueType="stringList">\r
+                                                                       <listOptionValue builtIn="false" value="225"/>\r
+                                                                       <listOptionValue builtIn="false" value="994"/>\r
+                                                                       <listOptionValue builtIn="false" value="262"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DISPLAY_ERROR_NUMBER.289534704" name="Emit diagnostic identifier numbers (--display_error_number, -pden)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_WRAP.541157258" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_WRAP.off" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.INCLUDE_PATH.897011926" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.INCLUDE_PATH" valueType="includePath">\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;../../../../../../../&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${XDC_CG_ROOT}/packages&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${XDAIS_CG_ROOT}/packages&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;../../../lnkr/c64Ple&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;../../../src&quot;"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.ABI.785506765" name="Application binary interface (coffabi, eabi) [See 'General' page to edit] (--abi)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.ABI.coffabi" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.SILICON_VERSION.2085640642" name="Target processor version (--silicon_version, -mv)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.SILICON_VERSION" value="64plus" valueType="string"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.KEEP_ASM.817740845" name="Keep the generated assembly language (.asm) file (--keep_asm, -k)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.KEEP_ASM" value="true" valueType="boolean"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEBUG_SOFTWARE_PIPELINE.46107296" name="Generate verbose software pipelining information (--debug_software_pipeline, -mw)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEBUG_SOFTWARE_PIPELINE" value="true" valueType="boolean"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEFINE.1280280572" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEFINE" valueType="definedSymbols">\r
+                                                                       <listOptionValue builtIn="false" value="ti_targets_C64P"/>\r
+                                                                       <listOptionValue builtIn="false" value="xdc_target_types__=ti/targets/std.h"/>\r
+                                                                       <listOptionValue builtIn="false" value="__CCS_PROJECT_REL_PATH"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.QUIET_LEVEL.1206825005" name="Quiet Level" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.QUIET_LEVEL" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.QUIET_LEVEL.QUIET" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.MEM_MODEL__DATA.1941770341" name="Data access model (--mem_model:data)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.MEM_MODEL__DATA" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.MEM_MODEL__DATA.far" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.ASM_LISTING.1632912256" name="Generate listing file (--asm_listing, -al)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.ASM_LISTING" value="true" valueType="boolean"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_SUPPRESS.1749250948" name="Suppress diagnostic &lt;id&gt; (--diag_suppress, -pds)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DIAG_SUPPRESS" valueType="stringList">\r
+                                                                       <listOptionValue builtIn="false" value="1111"/>\r
+                                                                       <listOptionValue builtIn="false" value="827"/>\r
+                                                                       <listOptionValue builtIn="false" value="824"/>\r
+                                                                       <listOptionValue builtIn="false" value="837"/>\r
+                                                                       <listOptionValue builtIn="false" value="1037"/>\r
+                                                                       <listOptionValue builtIn="false" value="195"/>\r
+                                                                       <listOptionValue builtIn="false" value="77"/>\r
+                                                                       <listOptionValue builtIn="false" value="232"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OPTIMIZER_INTERLIST.650563926" name="Generate optimized source interlisted assembly (--optimizer_interlist, -os)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OPTIMIZER_INTERLIST" value="true" valueType="boolean"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEBUGGING_MODEL.1392356347" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.INTERRUPT_THRESHOLD.360286864" name="Specify maximum disabled interrupt cycles (--interrupt_threshold, -mi)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.INTERRUPT_THRESHOLD" value="10000" valueType="string"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OUTPUT_ALL_SYMS.1358530688" name="Keep local symbols in output file (--output_all_syms, -as)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OUTPUT_ALL_SYMS" value="true" valueType="boolean"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.SOURCE_INTERLIST.2114624377" name="Source interlist" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.SOURCE_INTERLIST" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.SOURCE_INTERLIST.C_SRC_INTERLIST" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OPT_LEVEL.release.345810430" name="Optimization level (--opt_level, -O)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OPT_LEVEL.release" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OPT_LEVEL.3" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OPTIMIZE_WITH_DEBUG.1557468124" name="Optimize fully in the presence of debug directives (--optimize_with_debug, -mn)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OPTIMIZE_WITH_DEBUG" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OPTIMIZE_WITH_DEBUG.on" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OPT_FOR_SPACE.1439181715" name="Optimize for code size (--opt_for_space, -ms)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OPT_FOR_SPACE" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.compilerID.OPT_FOR_SPACE.3" valueType="enumerated"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__C_SRCS.1126499841" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__C_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__CPP_SRCS.1754928196" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__CPP_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM_SRCS.419528853" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM2_SRCS.191831527" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.compiler.inputType__ASM2_SRCS"/>\r
+                                                       </tool>\r
+                                                       <tool id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.linkerRelease.1026334420" name="C6000 Linker" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exe.linkerRelease">\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.OUTPUT_FILE.1114959574" name="Specify output file name (--output_file, -o)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.OUTPUT_FILE" value="&quot;${ProjName}.out&quot;" valueType="string"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.MAP_FILE.1171737701" name="Input and output sections listed into &lt;file&gt; (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.MAP_FILE" value="&quot;${ProjName}.map&quot;" valueType="string"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.DISPLAY_ERROR_NUMBER.54573014" name="Emit diagnostic identifier numbers (--display_error_number)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.DIAG_WRAP.1799936320" name="Wrap diagnostic messages (--diag_wrap)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.DIAG_WRAP.off" valueType="enumerated"/>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.SEARCH_PATH.86292539" name="Add &lt;dir&gt; to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.SEARCH_PATH" valueType="stringList">\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.LIBRARY.1745831737" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.LIBRARY" valueType="libs">\r
+                                                                       <listOptionValue builtIn="false" value="&quot;libc.a&quot;"/>\r
+                                                               </option>\r
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.XML_LINK_INFO.873669756" name="Detailed link information data-base into &lt;file&gt; (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.linkerID.XML_LINK_INFO" value="&quot;${ProjName}_linkInfo.xml&quot;" valueType="string"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__CMD_SRCS.1040692038" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__CMD_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__CMD2_SRCS.1108407521" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__CMD2_SRCS"/>\r
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__GEN_CMDS.1483419310" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C6000_7.4.exeLinker.inputType__GEN_CMDS"/>\r
+                                                       </tool>\r
+                                               </toolChain>\r
+                                       </folderInfo>\r
+                                       <sourceEntries>\r
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>\r
+                                       </sourceEntries>\r
+                               </configuration>\r
+                       </storageModule>\r
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>\r
+               </cconfiguration>\r
+       </storageModule>\r
+       <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
+               <project id="test_rel_c64Ple_C64PLE_LE_COFF.com.ti.ccstudio.buildDefinitions.C6000.ProjectType.1403001122" name="C6000" projectType="com.ti.ccstudio.buildDefinitions.C6000.ProjectType"/>\r
+       </storageModule>\r
+       <storageModule moduleId="scannerConfiguration"/>\r
+       <storageModule moduleId="org.eclipse.cdt.core.language.mapping">\r
+               <project-mappings>\r
+                       <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.asmSource" language="com.ti.ccstudio.core.TIASMLanguage"/>\r
+                       <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader" language="com.ti.ccstudio.core.TIGCCLanguage"/>\r
+                       <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource" language="com.ti.ccstudio.core.TIGCCLanguage"/>\r
+                       <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader" language="com.ti.ccstudio.core.TIGPPLanguage"/>\r
+                       <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource" language="com.ti.ccstudio.core.TIGPPLanguage"/>\r
+               </project-mappings>\r
+       </storageModule>\r
+       <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>\r
+</cproject>\r
diff --git a/test/ccsProjects/test_rel_c64Ple_C64PLE_LE_COFF/.launches/test_rel_c64Ple_C64PLE_LE_COFF.launch b/test/ccsProjects/test_rel_c64Ple_C64PLE_LE_COFF/.launches/test_rel_c64Ple_C64PLE_LE_COFF.launch
new file mode 100644 (file)
index 0000000..8caa373
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<launchConfiguration type="com.ti.ccstudio.debug.launchType.device.debugging">\r
+<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_CPUS_WITH_PROJECT" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;cpus_with_project&gt;&#13;&#10;&lt;id id=&quot;Blackhawk USB560-M Emulator_0/DSP_0&quot; isa=&quot;TMS320C674X&quot;/&gt;&#13;&#10;&lt;/cpus_with_project&gt;"/>\r
+<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_DEBUGGER_PROPERTIES.Blackhawk USB560-M Emulator_0/DSP_0" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot; ?&gt;&#10;&lt;PropertyValues&gt;&#10;&#10;  &lt;property id=&quot;ConnectOnStartup&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;EnableInstalledBreakpoint&quot;&gt;&#10;    &lt;curValue&gt;1&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;  &lt;property id=&quot;IgnoreSoftLaunchFailures&quot;&gt;&#10;    &lt;curValue&gt;0&lt;/curValue&gt;&#10;  &lt;/property&gt;&#10;&#10;&lt;/PropertyValues&gt;&#10;"/>\r
+<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_PROGRAM.Blackhawk USB560-M Emulator_0/DSP_0" value="${build_artifact:test_rel_c64Ple_C64PLE_LE_COFF}"/>\r
+<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_PROJECT.Blackhawk USB560-M Emulator_0/DSP_0" value="test_rel_c64Ple_C64PLE_LE_COFF"/>\r
+<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_TARGET_CONFIG" value="${target_config_active_default:test_rel_c64Ple_C64PLE_LE_COFF}"/>\r
+<stringAttribute key="com.ti.ccstudio.debug.debugModel.MRU_PROGRAM.Blackhawk USB560-M Emulator_0/DSP_0" value="C:/ti\volib_C64P_2_1_0_1\packages\ti\mas\bf_asnr_mss_vau\test\ccsProjects\test_rel_c64Ple_C64PLE_LE_COFF\Debug\test_rel_c64Ple_C64PLE_LE_COFF.out"/>\r
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">\r
+<listEntry value="/test_rel_c64Ple_C64PLE_LE_COFF"/>\r
+</listAttribute>\r
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">\r
+<listEntry value="4"/>\r
+</listAttribute>\r
+<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="com.ti.ccstudio.debug.sourceLocator"/>\r
+<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;sourceLookupDirector&gt;&#13;&#10;&lt;sourceContainers duplicates=&quot;false&quot;&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;default/&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;org.eclipse.debug.core.containerType.default&quot;/&gt;&#13;&#10;&lt;container memento=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;no&amp;quot;?&amp;gt;&amp;#13;&amp;#10;&amp;lt;cpuSpecificContainer cpuName=&amp;quot;Blackhawk USB560-M Emulator_0/DSP_0&amp;quot;&amp;gt;&amp;#13;&amp;#10;&amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;project name=&amp;amp;quot;test_rel_c64Ple_C64PLE_LE_COFF&amp;amp;quot; referencedProjects=&amp;amp;quot;true&amp;amp;quot;/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.project&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;default/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;org.eclipse.debug.core.containerType.default&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&amp;lt;childContainerEntry childMemento=&amp;quot;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot; standalone=&amp;amp;quot;no&amp;amp;quot;?&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;amp;lt;librarySource/&amp;amp;gt;&amp;amp;#13;&amp;amp;#10;&amp;quot; childType=&amp;quot;com.ti.ccstudio.debug.containerType.library.source&amp;quot;/&amp;gt;&amp;#13;&amp;#10;&amp;lt;/cpuSpecificContainer&amp;gt;&amp;#13;&amp;#10;&quot; typeId=&quot;com.ti.ccstudio.debug.containerType.cpu.specific&quot;/&gt;&#13;&#10;&lt;/sourceContainers&gt;&#13;&#10;&lt;/sourceLookupDirector&gt;&#13;&#10;"/>\r
+<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;/&gt;&#13;&#10;"/>\r
+</launchConfiguration>\r
diff --git a/test/ccsProjects/test_rel_c64Ple_C64PLE_LE_COFF/.project b/test/ccsProjects/test_rel_c64Ple_C64PLE_LE_COFF/.project
new file mode 100644 (file)
index 0000000..2a6141b
--- /dev/null
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+       <name>test_rel_c64Ple_C64PLE_LE_COFF</name>\r
+       <comment></comment>\r
+       <projects>\r
+       </projects>\r
+       <buildSpec>\r
+               <buildCommand>\r
+                       <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>\r
+                       <arguments>\r
+                               <dictionary>\r
+                                       <key>?name?</key>\r
+                                       <value></value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.append_environment</key>\r
+                                       <value>true</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.autoBuildTarget</key>\r
+                                       <value>all</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.buildArguments</key>\r
+                                       <value>-k</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.buildCommand</key>\r
+                                       <value>${CCS_UTILS_DIR}/bin/gmake</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.buildLocation</key>\r
+                                       <value>${BuildDirectory}</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>\r
+                                       <value>clean</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.contents</key>\r
+                                       <value>org.eclipse.cdt.make.core.activeConfigSettings</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.enableAutoBuild</key>\r
+                                       <value>true</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.enableCleanBuild</key>\r
+                                       <value>true</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.enableFullBuild</key>\r
+                                       <value>true</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.fullBuildTarget</key>\r
+                                       <value>all</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.stopOnError</key>\r
+                                       <value>false</value>\r
+                               </dictionary>\r
+                               <dictionary>\r
+                                       <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>\r
+                                       <value>true</value>\r
+                               </dictionary>\r
+                       </arguments>\r
+               </buildCommand>\r
+               <buildCommand>\r
+                       <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>\r
+                       <triggers>full,incremental,</triggers>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+       </buildSpec>\r
+       <natures>\r
+               <nature>com.ti.ccstudio.core.ccsNature</nature>\r
+               <nature>org.eclipse.cdt.core.cnature</nature>\r
+               <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>\r
+               <nature>org.eclipse.cdt.core.ccnature</nature>\r
+               <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>\r
+       </natures>\r
+       <linkedResources>\r
+               <link>\r
+                       <name>bf_asnr_mss_vau.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/src/bf_asnr_mss_vau.c</locationURI>\r
+               </link>\r