Initial code package commit. master
authorLalindra Jayatilleke <lalindra@ti.com>
Tue, 9 Aug 2016 14:38:11 +0000 (10:38 -0400)
committerLalindra Jayatilleke <lalindra@ti.com>
Tue, 9 Aug 2016 14:39:28 +0000 (10:39 -0400)
54 files changed:
c55x-digital-mic-decimation_1.0_manifest.html [new file with mode: 0755]
include/BlkFirDecim.h [new file with mode: 0755]
include/BlkIir.h [new file with mode: 0755]
include/IdleLoop.h [new file with mode: 0755]
include/data_types.h [new file with mode: 0755]
include/diggain.h [new file with mode: 0755]
include/pick_bits_cic.h [new file with mode: 0755]
include/pick_bits_cic.inc [new file with mode: 0755]
include/pll_control.h [new file with mode: 0755]
matlab_scripts/dig_mic_decimation_ConvertCCSbuf2wav.m [new file with mode: 0755]
matlab_scripts/wavoutput_dig-mic-decimation_test.wav [new file with mode: 0755]
src/BlkFirDecim.c [new file with mode: 0755]
src/BlkFirDecim_f2.asm [new file with mode: 0755]
src/BlkIir.c [new file with mode: 0755]
src/IdleLoop.c [new file with mode: 0755]
src/diggain.c [new file with mode: 0755]
src/diggain_f1.asm [new file with mode: 0755]
src/pick_bits_cic.c [new file with mode: 0755]
src/pick_bits_cic_f2.asm [new file with mode: 0755]
src/pll_control.c [new file with mode: 0755]
target_test/ccsv6/.ccsproject [new file with mode: 0755]
target_test/ccsv6/.cdtbuild [new file with mode: 0755]
target_test/ccsv6/.cdtbuild_initial [new file with mode: 0755]
target_test/ccsv6/.cdtproject [new file with mode: 0755]
target_test/ccsv6/.cproject [new file with mode: 0755]
target_test/ccsv6/.launches/target_test.launch [new file with mode: 0755]
target_test/ccsv6/.project [new file with mode: 0755]
target_test/ccsv6/.project_initial [new file with mode: 0755]
target_test/ccsv6/.settings/org.eclipse.cdt.codan.core.prefs [new file with mode: 0755]
target_test/ccsv6/.settings/org.eclipse.cdt.debug.core.prefs [new file with mode: 0755]
target_test/ccsv6/.settings/org.eclipse.core.resources.prefs [new file with mode: 0755]
target_test/ccsv6/Debug/BlkFirDecim_f2.obj [new file with mode: 0755]
target_test/ccsv6/Debug/BlkIir.d [new file with mode: 0755]
target_test/ccsv6/Debug/BlkIir.obj [new file with mode: 0755]
target_test/ccsv6/Debug/IdleLoop.d [new file with mode: 0755]
target_test/ccsv6/Debug/IdleLoop.obj [new file with mode: 0755]
target_test/ccsv6/Debug/ccsObjs.opt [new file with mode: 0755]
target_test/ccsv6/Debug/diggain_f1.obj [new file with mode: 0755]
target_test/ccsv6/Debug/file.dat [moved from .gitignore with 100% similarity, mode: 0755]
target_test/ccsv6/Debug/file.txt [new file with mode: 0755]
target_test/ccsv6/Debug/makefile [new file with mode: 0755]
target_test/ccsv6/Debug/objects.mk [new file with mode: 0755]
target_test/ccsv6/Debug/pick_bits_cic_f2.obj [new file with mode: 0755]
target_test/ccsv6/Debug/pll_control.d [new file with mode: 0755]
target_test/ccsv6/Debug/pll_control.obj [new file with mode: 0755]
target_test/ccsv6/Debug/sources.mk [new file with mode: 0755]
target_test/ccsv6/Debug/subdir_rules.mk [new file with mode: 0755]
target_test/ccsv6/Debug/subdir_vars.mk [new file with mode: 0755]
target_test/ccsv6/Debug/target_test.map [new file with mode: 0755]
target_test/ccsv6/Debug/target_test.out [new file with mode: 0755]
target_test/ccsv6/Debug/target_test_linkInfo.xml [new file with mode: 0755]
target_test/ccsv6/macros.ini_initial [new file with mode: 0755]
target_test/ccsv6/target_test.cmd [new file with mode: 0755]
test_data/output/dig-mic-decimation_test_output.dat [new file with mode: 0755]

diff --git a/c55x-digital-mic-decimation_1.0_manifest.html b/c55x-digital-mic-decimation_1.0_manifest.html
new file mode 100755 (executable)
index 0000000..bb6612c
--- /dev/null
@@ -0,0 +1,328 @@
+<!--\r\r
+Texas Instruments Manifest Format 2.0\r\r
+-->\r\r
+\r\r
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\r\r
+<html>\r\r
+\r\r
+<head>\r\r
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />\r\r
+<!-- @Start Style -->\r\r
+<!-- Default style in case someone doesnt have Internet Access -->\r\r
+<style type="text/css" id="internalStyle">\r\r
+       body, div, p {\r\r
+               font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;\r\r
+               font-size: 13px;\r\r
+               line-height: 1.3;\r\r
+       }\r\r
+       body {\r\r
+               margin: 20px;   \r\r
+       }\r\r
+       h1 {\r\r
+               font-size: 150%;\r\r
+       }\r\r
+       h2 {\r\r
+               font-size: 120%;\r\r
+       }\r\r
+       h3 {\r\r
+               font-size: 100%;\r\r
+       }\r\r
+       img {\r\r
+               border: 0px;\r\r
+               vertical-align: middle;\r\r
+       }\r\r
+       table, th, td, tr {\r\r
+               border: 1px solid black;        \r\r
+               font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;\r\r
+               font-size: 13px;\r\r
+               line-height: 1.3;\r\r
+               empty-cells: show;  \r\r
+               padding: 5px;\r\r
+       }\r\r
+       table {\r\r
+               border-collapse: collapse; \r\r
+               width: 100%;\r\r
+       }\r\r
+       tr {\r\r
+               page-break-inside: avoid;\r\r
+       }\r\r
+       #TIlogoLeft {\r\r
+               background-color: black; \r\r
+               padding: 0;\r\r
+               width: 20%;\r\r
+       }\r\r
+       #TIlogoRight {\r\r
+               background-color: red; \r\r
+               padding: 0;\r\r
+       }\r\r
+       #ProductName {\r\r
+               text-align: center;\r\r
+       }\r\r
+       #ReleaseDate {\r\r
+               text-align: center;\r\r
+       }\r\r
+       .LogoSection {\r\r
+               margin: 0;\r\r
+               padding: 0;\r\r
+       }\r\r
+       .HeaderSection {\r\r
+               margin: 25px 0 25px 0;\r\r
+               padding: 0;\r\r
+       }\r\r
+       .LegendSection {\r\r
+               margin: 25px 0 25px 0;\r\r
+       }\r\r
+       .ExportSection {\r\r
+               margin: 25px 0 25px 0;\r\r
+       }\r\r
+       .DisclaimerSection {\r\r
+               margin: 25px 0 25px 0;  \r\r
+       }\r\r
+       .CreditSection {\r\r
+               margin: 25px 0 25px 0;  \r\r
+       }\r\r
+       .LicenseSection {\r\r
+               margin: 25px 0 25px 0;  \r\r
+       }\r\r
+       .ManifestTable {\r\r
+               margin: 25px 0 25px 0;  \r\r
+       }\r\r
+</style> \r\r
+<!-- Override style from TI if they have Internet Access -->\r\r
+<link type="text/css" rel="stylesheet" href="timanifeststyle.css">\r\r
+<!-- @End Style -->\r\r
+<title>Texas Instruments Manifest</title>\r\r
+</head>\r\r
+\r\r
+<body><!-- Logo display, will need to fix up the URLs, this is just for testing.. Image alternate display not wporking well yet -->\r\r
+<div class="LogoSection">\r\r
+<table>\r\r
+  <tbody>\r\r
+    <tr>\r\r
+      <td id="TIlogoLeft">\r\r
+        <a href="http://www.ti.com/">\r\r
+          <!-- img src="tilogo.gif" alt="Texas Instruments Incorporated" -->\r\r
+                 <img alt="" src="data:image/gif;base64,R0lGODlh3gA2AKIAAAAAAP///7u7u29vbz8/PwYGBujo6BgYGCH5BAAAAAAALAAAAADeADYAAAP/CLrc/jDKSau9OOvNu/9gKI5kaZ5oqq5s675wLM90bd94ru987//AoHBILBqPyKRyyWw6n9CodHorDALYLIHKJVqz2q44eAUHtoDB4DBu48rgLQErcNtnX7NhMDcICIB3gix5ZmtqAAZZew8EAo+QkQIDNVZqiIM1cHGKZ4YPAmaiAWw0c1gFmZqjB3SbZ6kNe6WhsAeOlDV0qjSFAXUAp7lwuREFtVsFgMvLB7fNAM+BCs+lDLd8BNYOuxfV22PL0RiWlwO1u3kDqejAEsjR6GB86FsHoYwA6gxWnVgGEegUuIelWJk6jswAGlXQ36J1xBSoQwfulIEDr/6l+VeK/+AehrAGOHRnAWRBbbWegckXAV6wk4AeRQtDQBEaBYsYlMl2hUCsBt0iKgilT9EfAlfO7SmzdKkrkQUT/fqZSECqLCSlntH375IAA1tqGUilLIBSNVnU+NmJNBRVChlF1QwAdlRWBy5P3QymwCLBYhs73cTHYBq3X33nDQ2wcWuBgef0FRD4GK3jU3VCZZUJAIw1OGg0P+4bFiubOWoOsEP1+KvZn3wurDbZ6lfcuw3yYkFjRSeYzRe7ARAbW0K3PmGIMi0OFDG1Mmha+RnufAHn3xL9ha6uTZ/rXagZ1GKAtTsHeWb+FEQvHILuX4+mLzj2j2r4TrFesTwMbE5Cuv8JzbTSGuRV1xgfUJFC3WbA0JWFalcItpgf8YU2yT/qATaedent5cBb8zk0DzIitgfKbonRFV9Wp2xl3UXq5Ccibp05598BnRigiAIJmrZAexkJQIuBwzX4CB3SQbeYQkPVAUco63DI2HzsAdYAiAvEZdYlaVQ5wXs3+bQAjovEUoBRR9LVAFLaPXCcY/KMqVRasQB5kiJgLcYgTkJiuCWKC2ZpIY/z/LRhYefkBAGW1HTyRy2UjObLHxSAOZ948EUVGCSC3SLZbB7iZKOLc2GRRgMH/VhdHnJwFCgD8iEGx0VKvpqbO+hoaCppEg3UiTES1CTkhNaQ+Qs4LQGql07/lET4mIQ6SvTSVGZ9Bmhz/bkYzK+PFKtpje6wumRm1wrLZzSdQASoZvyswdmSuk7p616HfkjBTxZBQucFgqXCFKdn1NpiUlQJhs8kteBWG0AbATbXS2tBlaeoVkmJRova4KkGPmhMFdiSYmq8cbTRYhrlkiHaNufJ9mIgVqEXnAOJM5JE4sgjudQ8bF82x+cKBP4Iiedecyjgx2/WtMNjjhcL9h+S4xq9RYJgsbeeUbmdrPTSQbPccsyijEXOfI8xyuinVJH1wdkS/MQ2Bc5Iq08DyHYwGglvPyCilbz0fa8GLV7r9+Btb7CJ14Qnzg8HpdKoOOF5Py752JNXvrblNphzEHnmnF/a+ecTbA465qKPXnnppkuOeuqKr8465K+z7nrsfc9Ouyq23z5I7rrfwXvvbhSQAAA7" />\r\r
+        </a>\r\r
+      </td>\r\r
+      <td id="TILogoRight">\r\r
+        <!-- img src="titagline.gif" alt="Technology for Innovators(tm)"-->\r\r
+               <img alt="" src="data:image/gif;base64,R0lGODlhOgEaALMAAP8AAP////92dv+3t/+Njf/W1v/t7f8hIf/19f+jo//Hx/8/P/9cXP/j4//6+v/+/iH5BAAAAAAALAAAAAA6ARoAAAT/EMhJq7046827/2AojmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgsGo/IpHLJbDqft0NDMCBQodis1jcADBKE7nYcCpjPgU5AQBKkVYOHAeRudqtXsh60/vRHdSoBBCGBNAkLe4o4f2psgG8pjR6GM5OLmDB/DA0GBoQADAgICRIBBQUOYgwGCg2kEgudBgUHAIGcBg0MsZ0NCnMGYgsBtqEGAbCynrW3AQONgcIFBgiErK6wAAfUtLbCscWiowoAyLDczLZu0AIJCAYOoJn0G38ObAwPEvLEts/O1vUhsA8AAjGonEmA9W6hGAVpEjiQoKBAhT8HJSRkVyEQQAAJ//a5YeMPQIFyACqCnJjSIgFCB4oB+HOSokWOAB6wIWCxnk8MfYh5QsYg5sVHfQLVMSqhztJIxWIaC6QzJy8KfZgqrNT0zR+nUNl8fSMvZ6IDwJCJRfoI7IR4Cub9nDsha6RwR02xUZpGq1utUWUq9FKgYV6/abgOHjt45tquEgY0SDDHoJg+fxhXolKNrmfH/EoR5EdAKmjQfB1qvPmGIQIJ3g4gC2egVF7LqxtP8Ng2cViTKFUCIGbNFKEEmB/VbDlYdqLRn+du8oTg6jjbmfe+CbTM2+BcuySgbQVtQoOCt7s3U8wbsqGs3ZppZLnylwFe8Uql825ogANPckUnYDoOCogxQGXADajggjcw4AA8DSSyTQASMmjhhTQscBWGHHbo4YcghijiiCSWaOKJKKao4oostugiFBEAADs=" />\r\r
+      </td>\r\r
+    </tr>\r\r
+  </tbody>\r\r
+</table>\r\r
+</div><div class="HeaderSection">\r\r
+<h1 id="ProductName">\r\r
+<!-- @Start Product -->\r\r
+c55x-digital-mic-decimation Manifest\r\r
+<!-- @End Product -->\r\r
+</h1>\r\r
+\r\r
+<h2 id="ReleaseDate">\r\r
+<!-- @Start Date -->\r\r
+08-01-2016\r\r
+<!-- @End Date -->\r\r
+</h2>\r\r
+\r\r
+\r\r
+<h2 id="SRASID">\r\r
+<!-- @Start Date -->\r\r
+Manifest ID - SRAS00003104\r\r
+<!-- @End Date -->\r\r
+</h2>\r\r
+</div><div class="LegendSection">\r\r
+<h2>Legend</h2>\r\r
+<p>(explanation of the fields in the Manifest Table below)</p>\r\r
+<table>\r\r
+<tbody>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Software Name </b>\r\r
+</td>\r\r
+<td>\r\r
+The name of the application or file\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Version</b>\r\r
+</td>\r\r
+<td>\r\r
+Version of the application or file\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>License Type</b>\r\r
+</td>\r\r
+<td>\r\r
+Type of license(s) under which TI will be providing\r\r
+software to the licensee (e.g. BSD-3-Clause, GPL-2.0, TI TSPA License, TI\r\r
+Commercial License). The license could be under Commercial terms or Open Source. See Open Source Reference License Disclaimer in\r\r
+the Disclaimers Section. Whenever possible, TI will use an <a href="http://spdx.org/licenses/"> SPDX Short Identifier </a> for an Open Source\r\r
+License. TI Commercial license terms are not usually included in the manifest and are conveyed through a variety \r\r
+of means such as a clickwrap license upon install, \r\r
+a signed license agreement and so forth.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Location</b>\r\r
+</td>\r\r
+<td>\r\r
+The directory name and path on the media or a specific file where the Software is located. Typically fully qualified path names \r\r
+are not used and instead the relevant top level directory of the application is given. \r\r
+A notation often used in the manifests is [as installed]/directory/*. Note that the asterisk implies that all\r\r
+files under that directory are licensed as the License Type field denotes. Any exceptions to this will \r\r
+generally be denoted as [as installed]/directory/* except as noted below which means as shown in subsequent rows of \r\r
+the manifest.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Delivered As</b>\r\r
+</td>\r\r
+<td>\r\r
+This field will either be &#8220;Source&#8221;, &#8220;Binary&#8221; or &#8220;Source\r\r
+and Binary&#8221; and is the primary form the content of the Software is delivered\r\r
+in. If the Software is delivered in an archive format, this field\r\r
+applies to the contents of the archive. If the word Limited is used\r\r
+with Source, as in &#8220;Limited Source&#8221; or &#8220;Limited Source and Binary&#8221; then\r\r
+only portions of the Source for the application are provided.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Modified by TI</b>\r\r
+</td>\r\r
+<td>\r\r
+This field will either be &#8220;Yes&#8221; or &#8220;No&#8221;. A &#8220;Yes&#8221; means\r\r
+TI has made changes to the Software. A &#8220;No&#8221; means TI has not made any\r\r
+changes. Note: This field is not applicable for Software &#8220;Obtained\r\r
+from&#8221; TI.\r\r
+</td>\r\r
+</tr>\r\r
+<tr>\r\r
+<td>\r\r
+<b>Obtained from</b>\r\r
+</td>\r\r
+<td>\r\r
+This field specifies from where or from whom TI obtained\r\r
+the Software. It may be a URL to an Open Source site, a 3<sup>rd</sup>\r\r
+party licensor, or TI. See Links Disclaimer in the Disclaimers\r\r
+Section.\r\r
+</td>\r\r
+</tr>\r\r
+</tbody>\r\r
+</table>\r\r
+</div><div class="DisclaimerSection">\r\r
+<h2>Disclaimers</h2>\r\r
+<h3>Export Control Classification Number (ECCN)</h3>\r\r
+<p>Any use of ECCNs listed in the Manifest is at the user&#8217;s risk\r\r
+and without recourse to TI. Your\r\r
+company, as the exporter of record, is responsible for determining the\r\r
+correct classification of any item at\r\r
+the time of export. Any export classification by TI of Software is for\r\r
+TI&#8217;s internal use only and shall not be construed as a representation\r\r
+or warranty\r\r
+regarding the proper export classification for such Software or whether\r\r
+an export\r\r
+license or other documentation is required for exporting such Software</p>\r\r
+<h3>Links in the Manifest</h3>\r\r
+<p>Any\r\r
+links appearing on this Manifest\r\r
+(for example in the &#8220;Obtained from&#8221; field) were verified at the time\r\r
+the Manifest was created. TI makes no guarantee that any listed links\r\r
+will\r\r
+remain active in the future.</p>\r\r
+<h3>Open Source License References</h3>\r\r
+<p>Your company is responsible for confirming the\r\r
+applicable license terms for any open source Software\r\r
+listed in this Manifest that was not &#8220;Obtained from&#8221; TI. Any open\r\r
+source license\r\r
+specified in this Manifest for Software that was\r\r
+not &#8220;Obtained from&#8221; TI is for TI&#8217;s internal use only and shall not be\r\r
+construed as a representation or warranty regarding the proper open\r\r
+source license terms\r\r
+for such Software.</p>\r\r
+</div><div class="ExportSection">\r\r
+<h2>Export Information</h2>\r\r
+<p>ECCN for Software included in this release:</p>\r\r
+Publicly Available  - Open Source or TI TSPA License\r\r
+</div><div class="ManifestTable">\r\r
+<!-- h2>Manifest Table</h2 -->\r\r
\r
+ <table> \r
+ <tbody> \r
\r
+ <h2> \r
+  c55x-digital-mic-decimation Manifest Table \r
+ </h2> \r
\r
+  \r
+ <p> \r
\r
+ See the Legend above for a description of these columns. \r
\r
+ </p> \r
+  \r
+ <table id="targetpackages" name="targetpackages"> \r
+ <thead>  \r
+       <tr> \r
+               <td><b>Software Name</b></td> \r
+               <td><b>Version</b></td> \r
+               <td><b>License Type</b></td> \r
+               <td><b>Delivered As</b></td> \r
+               <td><b>Modified by TI</b></td> \r
+               <td></td> \r
+               <td></td> \r
+       </tr> \r
+ </thead>  \r
\r
\r
+ <tbody> \r
+       <tr> \r
+               <td id="name" name="name" rowspan="2"> \r
+ c55x-digital-mic-decimation \r
+ </td> \r
+               <td id="version" name="version" rowspan="2"> \r
+ 1.0 \r
+ </td> \r
+               <td id="license" name="license" rowspan="2"> \r
+ BSD-3-Clause \r
+ </td> \r
+               <td id="delivered" name="delivered" rowspan="2"> \r
+ Source and Binary \r
+ </td> \r
+               <td id="modified" name="modified" rowspan="2"> \r
+ N/A \r
+ </td> \r
+               <td><b>Location</b></td> \r
+               <td id="location" name="location"> \r
+ c55x-digital-mic-decimation/ \r
+ </td> \r
+       </tr> \r
+       <tr> \r
+               <td><b>Obtained from</b></td> \r
+               <td id="obtained" name="obtained"> \r
+ Texas Instruments \r
+ </td> \r
+       </tr> \r
\r
+ </tbody> \r
+ </table> \r
+  \r
+ </p> \r
+ </p> \r
+ <p> \r
+\r\r
+</div><div class="CreditSection">\r\r
+<h2>Credits</h2>\r\r
+<BR> <BR><BR><BR><BR>\r\r
+</div><div class="LicenseSection">\r\r
+<h2>Licenses</h2>\r\r
+<BR><h3><b> c55x-digital-mic-decimation Licenses </b></h3><BR> <BR>The BSD 3-Clause License<BR><BR>Copyright (c) 2016, Texas Instruments Incorporated <BR>All rights reserved.<BR>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:<BR>1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.<BR>2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.<BR>3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.<BR>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 THE COPYRIGHT HOLDER OR CONTRIBUTORS 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.<BR><BR>                          <BR><BR>\r\r
+</div>\r\r
+\r\r
+</body></html>
\ No newline at end of file
diff --git a/include/BlkFirDecim.h b/include/BlkFirDecim.h
new file mode 100755 (executable)
index 0000000..074a764
--- /dev/null
@@ -0,0 +1,52 @@
+/* ============================================================================
+ * Copyright (c) 2016 Texas Instruments Incorporated.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "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 THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS 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.
+ *
+  ===============================================================================*/
+#ifndef __BLK_FIR_DECIM_H__
+#define __BLK_FIR_DECIM_H__
+
+//#include "data_types.h"
+
+/* Block decimating FIR, */
+/* S18Q16 input and output data, */
+/* S16Q15 coefficients. */
+/* Decimation factor fixed at 2. */
+/* Computes two outputs per inner loop (assumes even number of outputs). */
+void blkFirDecim2(
+    Int32   *inSamps,       /* input samples (S18Q16) */
+    Int16   *coefs,         /* filter coefficients (S16Q15) */
+    Int32   *outSamps,      /* output samples (S18Q16) */
+    Int32   *dlyBuf,        /* delay buffer */
+    Uint16  numInSamps,     /* number of input samples */
+    Uint16  numCoefs        /* number of coefficients */
+);
+
+#endif /* __BLK_FIR_DECIM_H__ */
diff --git a/include/BlkIir.h b/include/BlkIir.h
new file mode 100755 (executable)
index 0000000..4e4014a
--- /dev/null
@@ -0,0 +1,68 @@
+/* ============================================================================
+ * Copyright (c) 2016 Texas Instruments Incorporated.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "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 THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS 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.
+ *
+  ===============================================================================*/
+#ifndef __BLK_IIR_H__
+#define __BLK_IIR_H__
+
+#include "data_types.h"
+
+/* Block IIR, Direct Form II */
+/* S18Q16 input and output data */
+/* Fixed-point format of coefficients determined by coefficient integer wordlength parameter */
+/* Input gain applied to input signal */
+void blkIirDf2(
+    Int32   *inSamps,       /* input samples (S18Q16) */
+    Int16   *coefs,         /* filter coefficients (S16Q15) */
+    Int32   *outSamps,      /* output samples (S18Q16) */
+    Int32   *dlyBuf,        /* delay buffer */
+    Uint16  inGain,         /* input gain (U16Q16) */
+    Uint16  numInSamps,     /* number of input samples */
+    Uint16  numBiquads,     /* number of biquads */
+    Uint16  coefIWL         /* coefficient integer wordlength */
+);
+
+/* Block IIR, Direct Form I */
+/* S18Q16 input and output data */
+/* Fixed-point format of coefficients determined by coefficient integer wordlength parameter */
+/* Input gain applied to input signal */
+void blkIirDf1(
+    Int32   *inSamps,       /* input samples (S18Q16) */
+    Int16   *coefs,         /* filter coefficients (S16Q15) */
+    Int32   *outSamps,      /* output samples (S18Q16) */
+    Int32   *dlyBuf,        /* delay buffer */
+    Uint16  inGain,         /* input gain (U16Q16) */
+    Uint16  numInSamps,     /* number of input samples */
+    Uint16  numBiquads,     /* number of biquads */
+    Uint16  coefIWL         /* coefficient integer wordlength */
+);
+
+#endif /* __BLK_IIR_H__ */
diff --git a/include/IdleLoop.h b/include/IdleLoop.h
new file mode 100755 (executable)
index 0000000..91487a8
--- /dev/null
@@ -0,0 +1,78 @@
+/* ============================================================================
+ * Copyright (c) 2016 Texas Instruments Incorporated.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "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 THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS 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.
+ *
+  ===============================================================================*/
+
+#ifndef IDLELOOP_H_
+#define IDLELOOP_H_
+
+#include "pll_control.h"
+
+/* DSP LDO setting */
+#define DSP_LDO                     ( 105 )
+//#define DSP_LDO                     ( 130 )
+
+/* PLL output MHz setting */
+#define PLL_MHZ                     ( PLL_FREQ_16P384MHZ )
+//#define PLL_MHZ                     ( PLL_FREQ_32P768MHZ )
+
+#define NUM_INSAMP_PER_MS           ( 1024 )                // 1-bit samples per msec
+#define NUM_IN32BW_PER_MS           ( NUM_INSAMP_PER_MS/32 )    // 32-bit input words per msec
+#define NUM_IN32BW_PER_MS_PER_CH    ( NUM_IN32BW_PER_MS/2 )     // 32-bit input words per msec/channel
+
+#define NUM_MS_PER_FRAME            ( 20 )                  // msec per frame
+
+#define IN_FRAME_LEN_PER_CH         ( NUM_IN32BW_PER_MS_PER_CH*NUM_MS_PER_FRAME)    // input frame length per channel
+
+#define FIR_DF                      ( 2 )   // FIR1/FIR2 decimation factor
+
+#define CIC_OUT_FRAME_LEN           ( NUM_INSAMP_PER_MS*NUM_MS_PER_FRAME / CIC_DF ) // output frame length
+#define FIR1_OUT_FRAME_LEN          ( CIC_OUT_FRAME_LEN / FIR_DF )  // FIR1 output frame length
+#define FIR2_OUT_FRAME_LEN          ( FIR1_OUT_FRAME_LEN / FIR_DF ) // FIR2 output frame length
+#define DIGGAIN_OUT_FRAME_LEN       ( FIR2_OUT_FRAME_LEN )  // digital gain output frame length
+
+#define FIR1_NUM_COEFS              ( 15 )  // FIR1 number of coefficients
+#define FIR2_NUM_COEFS              ( 58 )  // FIR2 number of coefficients
+
+
+#define NUM_FRAMES_PER_CIRCBUF      ( 10 )  // frames in circular buffer
+
+#define IN_CIRCBUF_LEN              ( NUM_IN32BW_PER_MS_PER_CH*NUM_MS_PER_FRAME*NUM_FRAMES_PER_CIRCBUF ) // input circular buffer length
+#define CIC_OUT_CIRCBUF_LEN         ( CIC_OUT_FRAME_LEN*NUM_FRAMES_PER_CIRCBUF)
+#define FIR1_OUT_CIRCBUF_LEN        ( FIR1_OUT_FRAME_LEN*NUM_FRAMES_PER_CIRCBUF ) 
+#define FIR2_OUT_CIRCBUF_LEN        ( FIR2_OUT_FRAME_LEN*NUM_FRAMES_PER_CIRCBUF )
+#define DIGGAIN_OUT_CIRCBUF_LEN     ( FIR2_OUT_CIRCBUF_LEN )
+
+// ping pong buffer size 32 bits per sample, one frame for ping, one frame for pong
+// *2 for ping/pong
+#define I2S_DMA_BUF_LEN             ( IN_FRAME_LEN_PER_CH*2 )
+
+#endif /*IDLELOOP_H_*/
diff --git a/include/data_types.h b/include/data_types.h
new file mode 100755 (executable)
index 0000000..58faf6c
--- /dev/null
@@ -0,0 +1,88 @@
+/* ============================================================================
+ * Copyright (c) 2016 Texas Instruments Incorporated.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "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 THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS 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.
+ *
+  ===============================================================================*/
+#ifndef __DATA_TYPES_H__
+#define __DATA_TYPES_H__
+
+//#define FALSE ( 0 )
+//#define TRUE  ( 1 )
+
+#ifdef WIN32
+#define restrict
+#define onchip
+#define Int40               Int64
+#define Uint40              Uint64
+
+typedef short               Int16;
+typedef long                Int32;
+typedef unsigned short      Uint16;
+typedef unsigned long       Uint32;
+typedef float               Float32;
+typedef double              Float64;
+//typedef float              Float64;
+#if (_MSC_VER == 1200)
+typedef __int64             Int64;
+typedef unsigned __int64    Uint64;
+#else
+typedef long long           Int64;
+typedef unsigned long long  Uint64;
+#endif
+
+#elif defined(__TMS320C55X__)
+#define Int64               Int40   /* no 64-bit integer on C55x */
+#define Uint64              Uint40
+#define Float32             Float64 /* no 64-bit float on C55x */
+
+typedef short               Int16;
+typedef long                Int32;
+typedef long long           Int40;
+typedef unsigned short      Uint16;
+typedef unsigned long       Uint32;
+typedef unsigned long long  Uint40;
+typedef float               Float32;
+
+#else
+#define restrict
+#define Int40               Int64
+
+typedef short               Int16;
+typedef int                 Int32;
+typedef long long           Int64;
+typedef unsigned short      Uint16;
+typedef unsigned int        Uint32;
+typedef unsigned long long  Uint64;
+typedef float               Float32;
+typedef double              Float64;
+
+#endif
+
+#endif /* __DATA_TYPES_H__ */
diff --git a/include/diggain.h b/include/diggain.h
new file mode 100755 (executable)
index 0000000..3c8cd6f
--- /dev/null
@@ -0,0 +1,48 @@
+/* ============================================================================
+ * Copyright (c) 2016 Texas Instruments Incorporated.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "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 THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS 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.
+ *
+  ===============================================================================*/
+#ifndef __DIGGAIN_H__
+#define __DIGGAIN_H__
+
+//#include "data_types.h"
+
+/* Applies digital gain and saturates output. */
+/* S18Q16 input data, S16Q15 output data. */
+/* U16Q8 digital gain. */
+void appDiggain(
+    Int32   *inSamps,   /* input samples (S18Q16) */
+    Uint16  diggain,    /* digital gain (U16Q8) */
+    Int16   *outSamps,  /* output samples (S16Q15) */
+    Uint16  numInSamps  /* number of input samples */
+);
+
+#endif /* __DIGGAIN_H__ */
diff --git a/include/pick_bits_cic.h b/include/pick_bits_cic.h
new file mode 100755 (executable)
index 0000000..aa37417
--- /dev/null
@@ -0,0 +1,55 @@
+/* ============================================================================
+ * Copyright (c) 2016 Texas Instruments Incorporated.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "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 THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS 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.
+ *
+  ===============================================================================*/
+
+#ifndef __PICK_BITS_CIC_H__
+#define __PICK_BITS_CIC_H__
+
+//#include "data_types.h"
+
+#define CIC_DF  ( 16 )  /* decimation factor for CIC */
+#define CIC_NS  ( 4 )   /* number of stages for CIC */
+
+/* Unpacks "left" and "right" 32-bit packed DMA buffers containing output from digital mic. */
+/* Performs CIC on unpacked data, DS = 16 & NS = 4. */
+void pickBitsCic(
+    Uint32 *lData,          /* "left" channel 32-bit packed input data */
+    Uint32 *rData,          /* "right" channel 32-bit packed input data */
+    Uint16 inDataLen,       /* length of "left" or "right" input data in 32-bit words */
+    Int32 *cicState,        /* CIC state. First NS values are integrator state, next NS values are differentiator delay buffer */
+    Int32 *outSamps,        /* CIC output samples */
+    Uint16 *pNumOutSamps    /* CIC number of output samples */
+);
+
+#endif  
+
+/* __PICK_BITS_CIC_H__ */
diff --git a/include/pick_bits_cic.inc b/include/pick_bits_cic.inc
new file mode 100755 (executable)
index 0000000..fb20898
--- /dev/null
@@ -0,0 +1,34 @@
+;============================================================================
+; Copyright (c) 2016 Texas Instruments Incorporated.
+;
+;  Redistribution and use in source and binary forms, with or without
+;  modification, are permitted provided that the following conditions
+;  are met:
+;
+;    Redistributions of source code must retain the above copyright
+;    notice, this list of conditions and the following disclaimer.
+;
+;    Redistributions in binary form must reproduce the above copyright
+;    notice, this list of conditions and the following disclaimer in the
+;    documentation and/or other materials provided with the
+;    distribution.
+;
+;    Neither the name of Texas Instruments Incorporated nor the names of
+;    its contributors may be used to endorse or promote products derived
+;    from this software without specific prior written permission.
+;
+;  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+;  "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 THE COPYRIGHT
+;  OWNER OR CONTRIBUTORS 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.
+;
+;===============================================================================
+DS              .set    ( 16 )  ; decimation factor for CIC
+NS              .set    ( 4 )   ; number of stages for CIC
diff --git a/include/pll_control.h b/include/pll_control.h
new file mode 100755 (executable)
index 0000000..76c5837
--- /dev/null
@@ -0,0 +1,59 @@
+/* ============================================================================
+ * Copyright (c) 2016 Texas Instruments Incorporated.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "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 THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS 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.
+ *
+  ===============================================================================*/
+#ifndef _PLL_CONTROL_H_
+#define _PLL_CONTROL_H_
+
+#include "csl_types.h"
+
+/* PLL frequency setting options -- all options use RTC clock as input */
+typedef enum
+{
+    PLL_FREQ_16P384MHZ = 0, 
+    PLL_FREQ_32P768MHZ, 
+    PLL_FREQ_40MHZ, 
+    PLL_FREQ_50MHZ,
+    PLL_FREQ_60MHZ, 
+    PLL_FREQ_75MHZ, 
+    PLL_FREQ_100MHZ, 
+    PLL_FREQ_120MHZ
+} EPllFreq;
+
+/* Sets PLL to desired output frequency = 
+{32.768, 40, 50, 60, 75, 100, 120} MHZ.
+Default is 60 MHz.
+Assumes CPU core voltage is set appropriately for requested output frequency. */
+CSL_Status pll_sample(
+    EPllFreq pllFreq
+);
+
+#endif /* _PLL_CONTROL_H_ */
diff --git a/matlab_scripts/dig_mic_decimation_ConvertCCSbuf2wav.m b/matlab_scripts/dig_mic_decimation_ConvertCCSbuf2wav.m
new file mode 100755 (executable)
index 0000000..781aff1
--- /dev/null
@@ -0,0 +1,31 @@
+%Script to convert circular buffer PCM data output from CCS to a .wav file.
+
+close all
+clear;
+
+FSI = 1.024e6; % digital mic sampling rate
+M1 = 16; % CIC decimation factor
+M2 = 2; % FIR1 decimation factor
+M3 = 2; % FIR2 decimation factor
+FS1 = FSI/M1; % FIR1 sampling rate
+FS2 = FS1/M2; % FIR2 sampling rate
+FSO = FS2/M3; % output sampling rate
+
+fname = 'dig-mic-decimation_test_output.dat';
+fname = strcat('..\test_data\output\', fname);
+
+% Wav output file
+wavout_fname = 'wavoutput_dig-mic-decimation_test.wav';
+
+% Get digital mic output data
+
+fid = fopen(fname, 'r');
+if (fid == -1)
+    error('Unable to open channel input file');
+end
+tline = fgets(fid);
+in = fscanf(fid, '%d');
+fclose(fid);
+
+% Write to wav file 16kHz sampling rate
+audiowrite(wavout_fname, in/2^15, FSO); 
diff --git a/matlab_scripts/wavoutput_dig-mic-decimation_test.wav b/matlab_scripts/wavoutput_dig-mic-decimation_test.wav
new file mode 100755 (executable)
index 0000000..3449cbc
Binary files /dev/null and b/matlab_scripts/wavoutput_dig-mic-decimation_test.wav differ
diff --git a/src/BlkFirDecim.c b/src/BlkFirDecim.c
new file mode 100755 (executable)
index 0000000..0246df1
--- /dev/null
@@ -0,0 +1,226 @@
+/* ============================================================================
+ * Copyright (c) 2016 Texas Instruments Incorporated.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "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 THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS 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.
+ *
+  ===============================================================================*/
+
+#include "data_types.h"
+#include "BlkFirDecim.h"
+
+#define DECIM_FACT          ( 2 )   /* decimation factor */
+
+#define QUANT_TRUNC         ( 0 )   /* truncate */
+#define QUANT_RND_INF       ( 1 )   /* round to infinite */
+#define QUANT_MODE          ( QUANT_RND_INF )
+
+/* Block decimating FIR, */
+/* S18Q16 input and output data, */
+/* S16Q15 coefficients. */
+/* Decimation factor fixed at 2. */
+/* Computes two outputs per inner loop (assumes even number of outputs). */
+void blkFirDecim2(
+    Int32   *inSamps,       /* input samples (S18Q16) */
+    Int16   *coefs,         /* filter coefficients (S16Q15) */
+    Int32   *outSamps,      /* output samples (S18Q16) */
+    Int32   *dlyBuf,        /* delay buffer */
+    Uint16  numInSamps,     /* number of input samples*/
+    Uint16  numCoefs        /* number of coefficients */
+)
+{
+    Uint16 numOutSamps;
+    Uint16 numDlySamps;
+    Uint16 dataL_1, dataL_2;
+    Int16 dataH_1, dataH_2;
+    Int32 prdLL_1, prdLL_2;
+    Int32 prdLH_1, prdLH_2;
+    Int64 acc0_40b, acc1_40b, acc2_40b, acc3_40b;
+    Uint16 dlyBufIdx_1; // leading index
+    Uint16 dlyBufIdx_2; // lagging index
+    Uint16 inSampIdx, outSampIdx;
+    Uint16 outSampCnt;
+    Uint16 i;
+
+    /* Compute number of output samples */
+    numOutSamps = numInSamps>>1;
+
+    /* Compute number of delay buffer samples */
+    numDlySamps = numCoefs+2;
+
+    /* Read delay index of oldest sample */
+    dlyBufIdx_2 = dlyBuf[0]; // index of oldest sample stored in 0th location of delay buffer
+
+    /* Initialize lagging delay index */
+    dlyBufIdx_2++; // adjust index to 1->numDlySamps
+    if (dlyBufIdx_2 > numDlySamps)
+    {
+        dlyBufIdx_2 = 1;
+    }
+
+    /* Initialize leading delay index */
+    dlyBufIdx_1 = dlyBufIdx_2;
+    dlyBufIdx_1--;
+    if (dlyBufIdx_1 < 1)
+    {
+        dlyBufIdx_1 = numDlySamps;
+    }
+
+    inSampIdx = 0;
+    outSampIdx = 0;
+    for (outSampCnt = 0; outSampCnt < numOutSamps/2; outSampCnt++) 
+    {
+        /* Place 1 sample in delay line at lagging index */
+        dlyBuf[dlyBufIdx_2] = inSamps[inSampIdx++];
+
+        /* Place D=2 samples in delay line at leading index */
+        dlyBuf[dlyBufIdx_1] = inSamps[inSampIdx++];
+        dlyBufIdx_1--;
+        if (dlyBufIdx_1 < 1)
+        {
+            dlyBufIdx_1 = numDlySamps;
+        }
+        dlyBuf[dlyBufIdx_1] = inSamps[inSampIdx++];
+
+        /* Compute lagging output */
+        /* S18Q16 */
+        dataL_2 = (Uint16)dlyBuf[dlyBufIdx_2];
+        dataH_2 = (Int16)(dlyBuf[dlyBufIdx_2++] >> 16);
+        if (dlyBufIdx_2 > numDlySamps)
+        {
+            dlyBufIdx_2 = 1;
+        }
+        /* S18Q16 * S16Q15 = S34Q31 */
+        prdLL_2 = (Uint32)dataL_2 * (Int32)coefs[0];
+        prdLH_2 = (Int32)dataH_2 * coefs[0]; 
+        /* S40Q31 + S34Q31 = S40Q31 */
+        acc2_40b = (Int64)prdLL_2;
+        acc3_40b = (Int64)prdLH_2;
+
+        /* Compute leading output */
+        /* S18Q16 */
+        dataL_1 = (Uint16)dlyBuf[dlyBufIdx_1];
+        dataH_1 = (Int16)(dlyBuf[dlyBufIdx_1++] >> 16);
+        if (dlyBufIdx_1 > numDlySamps)
+        {
+            dlyBufIdx_1 = 1;
+        }
+        /* S18Q16 * S16Q15 = S34Q31 */
+        prdLL_1 = (Uint32)dataL_1 * (Int32)coefs[0];
+        prdLH_1 = (Int32)dataH_1 * coefs[0]; 
+        /* S40Q31 + S34Q31 = S40Q31 */
+        acc0_40b = (Int64)prdLL_1;
+        acc1_40b = (Int64)prdLH_1;
+
+        for (i = 1; i < numCoefs-1; i++)
+        {
+            /* Compute lagging output */
+            /* S18Q16 */
+            dataL_2 = (Uint16)dlyBuf[dlyBufIdx_2];
+            dataH_2 = (Int16)(dlyBuf[dlyBufIdx_2++] >> 16);
+            if (dlyBufIdx_2 > numDlySamps)
+            {
+                dlyBufIdx_2 = 1;
+            }
+            /* S18Q16 * S16Q15 = S34Q31 */
+            prdLL_2 = (Uint32)dataL_2 * (Int32)coefs[i];
+            prdLH_2 = (Int32)dataH_2 * coefs[i]; 
+            /* S40Q31 + S34Q31 = S40Q31 */
+            acc2_40b += (Int64)prdLL_2;
+            acc3_40b += (Int64)prdLH_2;
+
+            /* Compute leading output */
+            /* S18Q16 */
+            dataL_1 = (Uint16)dlyBuf[dlyBufIdx_1];
+            dataH_1 = (Int16)(dlyBuf[dlyBufIdx_1++] >> 16);
+            if (dlyBufIdx_1 > numDlySamps)
+            {
+                dlyBufIdx_1 = 1;
+            }
+            /* S18Q16 * S16Q15 = S34Q31 */
+            prdLL_1 = (Uint32)dataL_1 * (Int32)coefs[i];
+            prdLH_1 = (Int32)dataH_1 * coefs[i]; 
+            /* S40Q31 + S34Q31 = S40Q31 */
+            acc0_40b += (Int64)prdLL_1;
+            acc1_40b += (Int64)prdLH_1;
+        }
+
+        /* Compute lagging output */
+        /* S18Q16 */
+        dataL_2 = (Uint16)dlyBuf[dlyBufIdx_2];
+        dataH_2 = (Int16)(dlyBuf[dlyBufIdx_2] >> 16);
+        if (dlyBufIdx_2 > numDlySamps)
+        {
+            dlyBufIdx_2 = 1;
+        }
+        /* S18Q16 * S16Q15 = S34Q31 */
+        prdLL_2 = (Uint32)dataL_2 * (Int32)coefs[numCoefs-1];
+        prdLH_2 = (Int32)dataH_2 * coefs[numCoefs-1]; 
+        /* S40Q31 + S34Q31 = S40Q31 */
+        acc2_40b += (Int64)prdLL_2;
+        acc3_40b += (Int64)prdLH_2;
+
+        /* Compute leading output */
+        /* S18Q16 */
+        dataL_1 = (Uint16)dlyBuf[dlyBufIdx_1];
+        dataH_1 = (Int16)(dlyBuf[dlyBufIdx_1] >> 16);
+        if (dlyBufIdx_1 > numDlySamps)
+        {
+            dlyBufIdx_1 = 1;
+        }
+        /* S18Q16 * S16Q15 = S34Q31 */
+        prdLL_1 = (Uint32)dataL_1 * (Int32)coefs[numCoefs-1];
+        prdLH_1 = (Int32)dataH_1 * coefs[numCoefs-1]; 
+        /* S40Q31 + S34Q31 = S40Q31 */
+        acc0_40b += (Int64)prdLL_1;
+        acc1_40b += (Int64)prdLH_1;
+
+        acc2_40b += acc3_40b << 16;
+        acc0_40b += acc1_40b << 16;
+
+#if (QUANT_MODE == QUANT_RND_INF)
+        acc2_40b += (Uint16)1<<14; /* round to infinite */
+        acc0_40b += (Uint16)1<<14; /* round to infinite */
+#endif
+        acc2_40b >>= 15; /* truncate */
+        outSamps[outSampIdx++] = (Int32)acc2_40b;
+        acc0_40b >>= 15; /* truncate */
+        outSamps[outSampIdx++] = (Int32)acc0_40b;
+
+        /* Place D-1=1 samples in delay line at lagging index */
+        dlyBuf[dlyBufIdx_2] = inSamps[inSampIdx++];
+        dlyBufIdx_2--;
+        if (dlyBufIdx_2 < 1)
+        {
+            dlyBufIdx_2 = numDlySamps;
+        }
+    }
+
+    /* Write delay index of oldest sample */
+    dlyBuf[0] = dlyBufIdx_2-1; // adjust index to 0->numDlySamps-1
+}
diff --git a/src/BlkFirDecim_f2.asm b/src/BlkFirDecim_f2.asm
new file mode 100755 (executable)
index 0000000..94dce78
--- /dev/null
@@ -0,0 +1,256 @@
+;============================================================================
+; Copyright (c) 2016 Texas Instruments Incorporated.
+;
+;  Redistribution and use in source and binary forms, with or without
+;  modification, are permitted provided that the following conditions
+;  are met:
+;
+;    Redistributions of source code must retain the above copyright
+;    notice, this list of conditions and the following disclaimer.
+;
+;    Redistributions in binary form must reproduce the above copyright
+;    notice, this list of conditions and the following disclaimer in the
+;    documentation and/or other materials provided with the
+;    distribution.
+;
+;    Neither the name of Texas Instruments Incorporated nor the names of
+;    its contributors may be used to endorse or promote products derived
+;    from this software without specific prior written permission.
+;
+;  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+;  "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 THE COPYRIGHT
+;  OWNER OR CONTRIBUTORS 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.
+;
+;===============================================================================
+; Function:    _blkFirDecim2
+; Processor:   C55xx, Rev. 3
+; Description: 
+;   Block decimating FIR.
+;   S18Q16 input and output data, S16Q15 coefficients.
+;   Decimation factor fixed at 2.
+;   Computes two outputs per inner loop 
+;   (assumes even number of outputs).
+;
+;   x cycle inner loop.
+;
+;   C-callable.
+;   Mnemonic assembly.
+;
+; Usage:    void blkFirDecim2(
+;               Int32   *inSamps,       -> XAR0
+;               Int16   *coefs,         -> XAR1
+;               Int32   *outSamps,      -> XAR2
+;               Int32   *dlyBuf,        -> XAR3
+;               Uint16  numInSamps,     -> T0
+;               Uint16  numCoefs        -> T1
+;           );
+;
+;****************************************************************
+
+                .C54CM_off                      ; enable assembler for C54CM=0
+                .ARMS_off                       ; enable assembler for ARMS=0
+                .CPL_on                         ; enable assembler for CPL=1
+
+                .mmregs                         ; enable mem mapped register names
+
+                .def    _blkFirDecim2
+
+; Stack frame
+; -----------
+RET_ADDR_SZ     .set    1                       ; return address
+REG_SAVE_SZ     .set    0                       ; save-on-entry registers saved
+FRAME_SZ        .set    0                       ; local variables
+ARG_BLK_SZ      .set    0                       ; argument block
+PARAM_OFFSET    .set    ARG_BLK_SZ + FRAME_SZ + REG_SAVE_SZ + RET_ADDR_SZ   ; offset to function arguments on stack
+
+; Local variables
+; ---------------
+
+; Register usage
+; --------------
+                .asg    AR0, x_ptr              ; linear pointer
+                .asg    CDP, h_ptr              ; circular pointer
+                .asg    AR2, r_ptr              ; linear pointer
+                .asg    AR4, db_ptr2            ; circular pointer (lagging delay buffer pointer)
+                .asg    AR5, db_ptr1            ; circular pointer (leading delay buffer pointer)
+
+                .asg    BSAC, h_base            ; base addr for h_ptr
+                .asg    BKC, h_sz               ; circ buffer size for h_sz
+                .asg    XCDP, xh_base           ; extended base addr for h_ptr
+                .asg    BSA45, db_base          ; base addr for db_ptr
+                .asg    BK47, db_sz             ; circ buffer size for db_ptr
+                .asg    XAR4, xdb_base2         ; extended base addr for db_ptr2 (lagging delay buffer pointer)
+                .asg    XAR5, xdb_base1         ; extended base addr for db_ptr1 (leading delay buffer pointer)
+
+                .asg    BRC0, outer_cnt         ; outer loop count
+                .asg    BRC1, inner_cnt         ; inner loop count
+
+ST2mask         .set    0000000100110000b       ; circular/linear pointers
+
+QUANT_TRUNC     .set    0                       ; truncate
+QUANT_RND       .set    1                       ; round according to rounding mode
+QUANT_MODE      .set    QUANT_RND
+
+
+                .text
+_blkFirDecim2:
+
+;
+; Save any save-on-entry registers that are used
+;----------------------------------------------------------------
+
+;
+; Allocate the local frame and argument block
+;----------------------------------------------------------------
+                AADD        #-(ARG_BLK_SZ + FRAME_SZ), SP 
+
+;
+; Save entry values for later
+;----------------------------------------------------------------
+
+;
+; Configure the status registers as needed
+;----------------------------------------------------------------
+                AND         #001FFh, mmap(ST0_55)   ; clear ACOV[0-3], TC[1-2], and C
+
+                OR          #04540h, mmap(ST1_55)   ; set CPL, M40, SXMD, and FRCT
+                ;AND         #0F9DFh, mmap(ST1_55)   ; clear M40, SATD, 54CM 
+
+                BCLR        ARMS                    ; clear ARMS
+
+                ;AND         #0FCDDh, mmap(ST3_55)   ; clear SATA, SMUL ; note -- must always write 1100b to bits 11-8, 0b to bit 4
+
+;
+; Setup passed parameters in their destination registers
+; Setup circular/linear CDP/ARx behavior
+;----------------------------------------------------------------
+
+; x pointer - passed in its destination register, need do nothing
+
+; h pointer
+                MOV         XAR1, xh_base           ; h array address
+                MOV         mmap(AR1), h_base       ; base address of coefficients
+                MOV         #0, h_ptr               ; point to first coefficient
+                MOV         mmap(T1), h_sz          ; coefficient array size h_sz = nh
+
+; r pointer - already passed in its destination register
+
+; db pointers
+                ; Initialize lagging delay pointer
+                MOV         XAR3, xdb_base2         ; db array address
+                ; Read index of oldest db entry
+                MOV         dbl(*AR3+), AC0
+                MOV         AC0, db_ptr2
+                MOV         mmap(AR3), db_base      ; base address for db_ptr
+                ; db_sz = 2*(nh+2) (x2 for 32-bit array)
+                MOV         T1, AC0
+                ADD         #2, AC0
+                MOV         AC0 << #1, mmap(db_sz)
+
+; Set circular/linear ARx behavior
+                OR          #ST2mask, mmap(ST2_55)  ; config circ/linear pointers
+
+               ; Initialize leading delay pointer
+                AMOV        xdb_base2, xdb_base1
+                ;AMAR        *db_ptr1-
+                ;AMAR        *db_ptr1-
+
+;
+; Setup loop counts
+;----------------------------------------------------------------
+                MOV                    T0, AC0                                 ; AC0 = nx (nx unsigned, constrained to < 32768 since SXM is enabled)
+             || AMAR        *db_ptr1-
+                SFTS        AC0, #-2                ; AC0 = (nx/2)/2
+             || AMAR        *db_ptr1-
+                SUB         #1, AC0                 ; AC0 = (nx/2)/2-1
+                MOV         AC0, mmap(outer_cnt)    ; outer_cnt = (nx/D)/2-1=(nx/4)-1
+    
+                SUB         #3, T1
+                MOV         T1, mmap(inner_cnt)     ; inner_cnt = nh-3
+
+
+;
+; Start of outer loop
+;----------------------------------------------------------------
+                RPTBLOCAL   loop0-1                 ; outer loop (nx/D)=(nx/2) iterations
+
+                ; Place 1 sample in delay line at lagging index
+                MOV         dbl(*x_ptr+), dbl(*db_ptr2)
+    
+                ; Place D=2 samples in delay line at leading index
+                MOV         dbl(*x_ptr+), dbl(*db_ptr1-)
+                MOV         dbl(*x_ptr+), dbl(*db_ptr1)
+
+                ; Sum h*x nh-iterations for next r value
+                MPY         *db_ptr2+, *h_ptr, AC3          ; High x Low
+             :: MPY         *db_ptr1+, *h_ptr, AC1          ; High x Low
+                MPY         uns(*db_ptr2+), *h_ptr+, AC2    ; Low x Low
+             :: MPY         uns(*db_ptr1+), *h_ptr+, AC0    ; Low x Low
+
+             || RPTBLOCAL   loop1-1
+                MAC         *db_ptr2+, *h_ptr, AC3          ; High x Low
+             :: MAC         *db_ptr1+, *h_ptr, AC1          ; High x Low
+                MAC         uns(*db_ptr2+), *h_ptr+, AC2    ; Low x Low
+             :: MAC         uns(*db_ptr1+), *h_ptr+, AC0    ; Low x Low
+loop1:
+
+                MAC         *db_ptr2+, *h_ptr, AC3          ; High x Low
+             :: MAC         *db_ptr1+, *h_ptr, AC1          ; High x Low
+                .if (QUANT_MODE == QUANT_TRUNC)
+                MAC         uns(*db_ptr2-), *h_ptr+, AC2    ; Low x Low
+             :: MAC         uns(*db_ptr1-), *h_ptr+, AC0    ; Low x Low
+                .else
+                MACR        uns(*db_ptr2-), *h_ptr+, AC2    ; Low x Low
+             :: MACR        uns(*db_ptr1-), *h_ptr+, AC0    ; Low x Low
+                .endif
+
+                ADD         AC3 << #16, AC2
+                ADD         AC1 << #16, AC0
+
+                ; Store result to memory
+                SFTS        AC2, #-16
+                MOV         AC2, dbl(*r_ptr+)       ; store S18Q16 value to memory
+             || SFTS        AC0, #-16
+                MOV         AC0, dbl(*r_ptr+)       ; store S18Q16 value to memory
+    
+                ; Place D-1=2-1=1 sample in delay line at lagging index
+                MOV         dbl(*x_ptr+), dbl(*db_ptr2-)
+loop0: ; end of outer loop
+    
+;
+; Update the db entry point
+;----------------------------------------------------------------
+                MOV         db_ptr2, *-AR3           ; update 1st element of db array
+
+;
+; Restore status regs to expected C-convention values as needed
+;----------------------------------------------------------------
+                BCLR        M40                     ; clear M40
+                BCLR        FRCT                    ; clear FRCT
+
+                AND         #0FE00h, mmap(ST2_55)   ; clear CDPLC and AR[7-0]LC
+                BSET        ARMS                    ; set SMUL
+
+                ;BSET        SMUL                    ; set SMUL
+
+;
+; Deallocate the local frame and argument block
+;----------------------------------------------------------------
+                AADD        #(ARG_BLK_SZ + FRAME_SZ), SP 
+
+;
+; Restore any save-on-entry registers that are used
+;----------------------------------------------------------------
+
+;
+; Return to calling function
+;----------------------------------------------------------------
+                RET                             ; return to calling function
diff --git a/src/BlkIir.c b/src/BlkIir.c
new file mode 100755 (executable)
index 0000000..8982d7d
--- /dev/null
@@ -0,0 +1,339 @@
+/* ============================================================================
+ * Copyright (c) 2016 Texas Instruments Incorporated.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "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 THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS 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.
+ *
+  ===============================================================================*/
+
+#include "data_types.h"
+#include "BlkIir.h"
+
+#define QUANT_TRUNC         ( 0 )   /* truncate */
+#define QUANT_RND_INF       ( 1 )   /* round to infinite */
+#define QUANT_MODE          ( QUANT_RND_INF )
+
+/* Block IIR, Direct Form II */
+/* S18Q16 input and output data */
+/* Fixed-point format of coefficients determined by coefficient integer wordlength parameter */
+/* Input gain applied to input signal */
+void blkIirDf2(
+    Int32   *inSamps,       /* input samples (S18Q16) */
+    Int16   *coefs,         /* filter coefficients (S16Q15) */
+    Int32   *outSamps,      /* output samples (S18Q16) */
+    Int32   *dlyBuf,        /* delay buffer */
+    Uint16  inGain,         /* input gain (U16Q16) */
+    Uint16  numInSamps,     /* number of input samples */
+    Uint16  numBiquads,     /* number of biquads */
+    Uint16  coefIWL         /* coefficient integer wordlength */
+)
+{
+    Uint16 numDlySamps;
+    Uint16 dataL;
+    Int16 dataH;
+    Uint32 uPrdLL;
+    Int32 prdLL, prdLH;
+    Int64 acc_40b;
+    Uint16 dlyBufIdx;
+    Uint16 coefIdx;
+    Uint16 i, j;
+
+
+    /* Compute number of delay buffer samples */
+    numDlySamps = 2*numBiquads;
+
+    /* Read current delay index */
+    dlyBufIdx = dlyBuf[0];
+
+    /* Initialize delay index */
+    dlyBufIdx++; // adjust index to 1->numDlySamps
+    if (dlyBufIdx > numDlySamps)
+    {
+        dlyBufIdx -= numDlySamps;
+    }
+
+    for (i = 0; i < numInSamps; i++)
+    {
+        coefIdx = 0;
+
+        //acc_40b = inSamps[i]<<15; // acc = x(n) (S18Q16->S33Q31)
+
+        // acc = G*x(n)
+        dataL = (Uint16)inSamps[i];
+        dataH = (Int16)(inSamps[i] >> 16);
+        /* S18Q16 * U16Q16 = S34Q32 */
+        uPrdLL = (Uint32)dataL * inGain;
+        prdLH = (Int32)dataH * (Uint32)inGain;
+        acc_40b = (Uint64)uPrdLL;
+        acc_40b += ((Int64)prdLH << 16);
+        
+        for (j = 0; j < numBiquads; j++)
+        {
+            /* Compute current biquad output */
+
+            /* Compute d(n) */
+            // acc = x(n) - a1*d(n-1)
+            dataL = (Uint16)dlyBuf[dlyBufIdx]; // d(n-1)
+            dataH = (Int16)(dlyBuf[dlyBufIdx] >> 16);
+            dlyBufIdx += numBiquads;
+            if (dlyBufIdx > numDlySamps)
+            {
+                dlyBufIdx -= numDlySamps;
+            }
+            /* S18Q16 * S16Q(16-1-IWL) = S34Q(32-1-IWL) */
+            prdLL = (Uint32)dataL * (Int32)coefs[coefIdx]; // a1
+            prdLH = (Int32)dataH * coefs[coefIdx++];
+            /* S40Q31 + S34Q(32-1-IWL) = S40Q31 */
+            acc_40b -= ((Int64)prdLL << (1+coefIWL));
+            acc_40b -= ((Int64)prdLH << (16+1+coefIWL));
+
+            // acc = x(n) - a1*d(n-1) - a2*d(n-2)
+            dataL = (Uint16)dlyBuf[dlyBufIdx]; // d(n-2)
+            dataH = (Int16)(dlyBuf[dlyBufIdx] >> 16);
+            /* S18Q16 * S16Q(16-1-IWL) = S34Q(32-1-IWL) */
+            prdLL = (Uint32)dataL * (Int32)coefs[coefIdx]; //a2
+            prdLH = (Int32)dataH * coefs[coefIdx++];
+            /* S40Q31 + S34Q(32-1-IWL) = S40Q31 */
+            acc_40b -= ((Int64)prdLL << (1+coefIWL));
+            acc_40b -= ((Int64)prdLH << (16+1+coefIWL));
+
+            /* Update d(n) */
+#if (QUANT_MODE == QUANT_RND_INF)
+            acc_40b += (Uint16)1<<(14+1); /* round to infinite */
+#endif
+            dlyBuf[dlyBufIdx] = (Int32)(acc_40b>>(15+1));
+
+            /* Compute y(n) */
+            // acc = b2*d(n-2)
+            /* S18Q16 * S16Q(16-1-IWL) = S34Q(32-1-IWL) */
+            prdLL = (Uint32)dataL * (Int32)coefs[coefIdx]; // b2
+            prdLH = (Int32)dataH * coefs[coefIdx++];
+            /* S40Q31 + S34Q(32-1-IWL) = S40Q31 */
+            acc_40b = ((Int64)prdLL << (1+coefIWL));
+            acc_40b += ((Int64)prdLH << (16+1+coefIWL));
+
+            // acc = b0*d(n) + b2*d(n-2)
+            dataL = (Uint16)dlyBuf[dlyBufIdx]; // d(n)
+            dataH = (Int16)(dlyBuf[dlyBufIdx] >> 16);
+            dlyBufIdx += numBiquads;
+            if (dlyBufIdx > numDlySamps)
+            {
+                dlyBufIdx -= numDlySamps;
+            }
+            /* S18Q16 * S16Q(16-1-IWL) = S34Q(32-1-IWL) */
+            prdLL = (Uint32)dataL * (Int32)coefs[coefIdx]; // b0
+            prdLH = (Int32)dataH * coefs[coefIdx++];
+            /* S40Q31 + S34Q(32-1-IWL) = S40Q31 */
+            acc_40b += ((Int64)prdLL << (1+coefIWL));
+            acc_40b += ((Int64)prdLH << (16+1+coefIWL));
+
+            // acc = b0*d(n) + b1*d(n-1) + b2*d(n-2)
+            dataL = (Uint16)dlyBuf[dlyBufIdx]; // d(n-1)
+            dataH = (Int16)(dlyBuf[dlyBufIdx] >> 16);
+            dlyBufIdx++;
+            if (dlyBufIdx > numDlySamps)
+            {
+                dlyBufIdx -= numDlySamps;
+            }
+            /* S18Q16 * S16Q(16-1-IWL) = S34Q(32-1-IWL) */
+            prdLL = (Uint32)dataL * (Int32)coefs[coefIdx]; // b1
+            prdLH = (Int32)dataH * coefs[coefIdx++];
+            /* S40Q31 + S34Q(32-1-IWL) = S40Q31 */
+            acc_40b += ((Int64)prdLL << (1+coefIWL));
+            acc_40b += ((Int64)prdLH << (16+1+coefIWL));
+        }
+
+#if (QUANT_MODE == QUANT_RND_INF)
+        acc_40b += 1<<14;
+#endif
+
+        outSamps[i] = (Int32)acc_40b>>(15+1);
+    }
+
+    /* Update current delay index */
+    dlyBuf[0] = dlyBufIdx-1; // adjust index to 0->numDlySamps-1
+}
+
+/* Block IIR, Direct Form I */
+/* S18Q16 input and output data */
+/* Fixed-point format of coefficients determined by coefficient integer wordlength parameter */
+/* Input gain applied to input signal */
+void blkIirDf1(
+    Int32   *inSamps,       /* input samples (S18Q16) */
+    Int16   *coefs,         /* filter coefficients (S16Q15) */
+    Int32   *outSamps,      /* output samples (S18Q16) */
+    Int32   *dlyBuf,        /* delay buffer */
+    Uint16  inGain,         /* input gain (U16Q16) */
+    Uint16  numInSamps,     /* number of input samples */
+    Uint16  numBiquads,     /* number of biquads */
+    Uint16  coefIWL         /* coefficient integer wordlength */
+)
+{
+    Uint16 numDlySamps;
+    Uint16 dataL;
+    Int16 dataH;
+    Uint32 uPrdLL;
+    Int32 prdLL, prdLH;
+    Int64 acc_40b;
+    Int32 tIn;
+    Int32 *ffDlyBuf, *fbDlyBuf;
+    Uint16 ffDlyBufIdx; // feed forward delay index
+    Uint16 fbDlyBufIdx; // feed back delay index
+    Uint16 coefIdx;
+    Uint16 i, j;
+
+
+    /* Compute number of delay buffer samples */
+    numDlySamps = 2*numBiquads;
+
+    /* Initialize feed forward delay buffer pointer */
+    ffDlyBuf = &dlyBuf[1];
+    ffDlyBufIdx = dlyBuf[0];
+    /* Initialize feed back delay buffer pointer & index */
+    fbDlyBuf = &dlyBuf[numDlySamps+1];
+    fbDlyBufIdx = ffDlyBufIdx;
+
+    for (i = 0; i < numInSamps; i++)
+    {
+        coefIdx = 0;
+
+        // acc = x(n) (S18Q16->S33Q31)
+        //acc_40b = inSamps[i]<<15;
+
+        /* Compute G*x(n) */
+        // acc = G*x(n)
+        dataL = (Uint16)inSamps[i];
+        dataH = (Int16)(inSamps[i] >> 16);
+        /* S18Q16 * U16Q16 = S34Q32 */
+        uPrdLL = (Uint32)dataL * inGain;
+        prdLH = (Int32)dataH * (Uint32)inGain;
+        acc_40b = (Uint64)uPrdLL;
+        acc_40b += ((Int64)prdLH << 16);
+
+        /* Store G*x(n) */
+#if (QUANT_MODE == QUANT_RND_INF)
+        acc_40b += (Uint16)1<<15; /* round to infinite */
+#endif
+        tIn = (Int32)(acc_40b >> 16); // S18Q16
+        
+        for (j = 0; j < numBiquads; j++)
+        {
+            /* Compute current biquad output */
+
+            // acc = b0*x(n)
+            dataL = (Uint16)tIn; // x(n)
+            dataH = (Int16)(tIn >> 16);
+            /* S18Q16 * S16Q(16-1-IWL) = S34Q(32-1-IWL) */
+            prdLL = (Uint32)dataL * (Int32)coefs[coefIdx]; // b0
+            prdLH = (Int32)dataH * coefs[coefIdx++];
+            /* S40Q31 + S34Q(32-1-IWL) = S40Q31 */
+            acc_40b = ((Int64)prdLL << coefIWL);
+            acc_40b += ((Int64)prdLH << (16+coefIWL));
+
+            // acc = b0*x(n) + b1*x(n-1)
+            dataL = (Uint16)ffDlyBuf[ffDlyBufIdx]; // x(n-1)
+            dataH = (Int16)(ffDlyBuf[ffDlyBufIdx] >> 16);
+            /* S18Q16 * S16Q(16-1-IWL) = S34Q(32-1-IWL) */
+            prdLL = (Uint32)dataL * (Int32)coefs[coefIdx]; // b1
+            prdLH = (Int32)dataH * coefs[coefIdx++];
+            /* S40Q31 + S34Q(32-1-IWL) = S40Q31 */
+            acc_40b += ((Int64)prdLL << coefIWL);
+            acc_40b += ((Int64)prdLH << (16+coefIWL));
+
+            ffDlyBufIdx += numBiquads; // point to x(n-2D)
+            if (ffDlyBufIdx > numDlySamps-1)
+            {
+                ffDlyBufIdx -= numDlySamps;
+            }
+
+            // acc = b0*x(n) + b1*x(n-1) + b2*x(n-2)
+            dataL = (Uint16)ffDlyBuf[ffDlyBufIdx]; // x(n-2)
+            dataH = (Int16)(ffDlyBuf[ffDlyBufIdx] >> 16);
+            /* S18Q16 * S16Q(16-1-IWL) = S34Q(32-1-IWL) */
+            prdLL = (Uint32)dataL * (Int32)coefs[coefIdx]; // b2
+            prdLH = (Int32)dataH * coefs[coefIdx++];
+            /* S40Q31 + S34Q(32-1-IWL) = S40Q31 */
+            acc_40b += ((Int64)prdLL << coefIWL);
+            acc_40b += ((Int64)prdLH << (16+coefIWL));
+
+            // update x(n-2)
+            ffDlyBuf[ffDlyBufIdx] = tIn;
+
+            ffDlyBufIdx += numBiquads+1; // point to x(n-1) for next biquad
+            if (ffDlyBufIdx > numDlySamps-1)
+            {
+                ffDlyBufIdx -= numDlySamps;
+            }
+
+            // acc = b0*x(n) + b1*x(n-1) + b2*x(n-2) - a1*y(n-1)
+            dataL = (Uint16)fbDlyBuf[fbDlyBufIdx]; // y(n-1)
+            dataH = (Int16)(fbDlyBuf[fbDlyBufIdx] >> 16);
+            /* S18Q16 * S16Q(16-1-IWL) = S34Q(32-1-IWL) */
+            prdLL = (Uint32)dataL * (Int32)coefs[coefIdx]; // a1
+            prdLH = (Int32)dataH * coefs[coefIdx++];
+            /* S40Q31 + S34Q(32-1-IWL) = S40Q31 */
+            acc_40b -= ((Int64)prdLL << coefIWL);
+            acc_40b -= ((Int64)prdLH << (16+coefIWL));
+
+            fbDlyBufIdx += numBiquads; // point to y(n-2)
+            if (fbDlyBufIdx > numDlySamps-1)
+            {
+                fbDlyBufIdx -= numDlySamps;
+            }
+
+            // acc = b0*x(n) + b1*x(n-1) + b2*x(n-2) - a1*y(n-1) - a2*y(n-2)
+            dataL = (Uint16)fbDlyBuf[fbDlyBufIdx]; // y(n-2)
+            dataH = (Int16)(fbDlyBuf[fbDlyBufIdx] >> 16);
+            /* S18Q16 * S16Q(16-1-IWL) = S34Q(32-1-IWL) */
+            prdLL = (Uint32)dataL * (Int32)coefs[coefIdx]; // a2
+            prdLH = (Int32)dataH * coefs[coefIdx++];
+            /* S40Q31 + S34Q(32-1-IWL) = S40Q31 */
+            acc_40b -= ((Int64)prdLL << coefIWL);
+            acc_40b -= ((Int64)prdLH << (16+coefIWL));
+
+#if (QUANT_MODE == QUANT_RND_INF)
+            acc_40b += (Uint16)1<<14; /* round to infinite */
+#endif
+            tIn = (Int32)(acc_40b >> 15); // S18Q16
+
+            // update y(n-2)
+            fbDlyBuf[fbDlyBufIdx] = tIn;
+
+            fbDlyBufIdx += numBiquads+1; // point to y(n-1) for next biquad
+            if (fbDlyBufIdx > numDlySamps-1)
+            {
+                fbDlyBufIdx -= numDlySamps;
+            }
+        }
+
+        outSamps[i] = tIn;
+    }
+
+    /* Update current delay index */
+    dlyBuf[0] = ffDlyBufIdx;
+}
diff --git a/src/IdleLoop.c b/src/IdleLoop.c
new file mode 100755 (executable)
index 0000000..111f590
--- /dev/null
@@ -0,0 +1,691 @@
+/* ============================================================================\r
+ * Copyright (c) 2016 Texas Instruments Incorporated.\r
+ *\r
+ *  Redistribution and use in source and binary forms, with or without\r
+ *  modification, are permitted provided that the following conditions\r
+ *  are met:\r
+ *\r
+ *    Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ *    Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the\r
+ *    distribution.\r
+ *\r
+ *    Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\r
+ *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\r
+ *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r
+ *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\r
+ *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r
+ *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
+ *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
+ *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
+ *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r
+ *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ *\r
+  ===============================================================================*/\r
+\r
+#include "stdio.h"\r
+#include "stdlib.h"\r
+\r
+// CSLR include files\r
+#include "soc.h"\r
+#include "cslr.h"\r
+#include "cslr_sysctrl.h"\r
+\r
+// CSL include files\r
+#include "csl_i2s.h"\r
+#include "csl_dma.h"\r
+#include "csl_intc.h"\r
+\r
+// other include files\r
+#include "pll_control.h"\r
+#include "IdleLoop.h"\r
+#include "pick_bits_cic.h"\r
+#include "BlkFirDecim.h"\r
+#include "diggain.h"\r
+\r
+\r
+#define MAX_LINE_LEN                ( 80 )  /* maximum line length */\r
+char buffer[MAX_LINE_LEN];\r
+\r
+\r
+/* Circular buffers for capturing output data (debug) */\r
+#if 1\r
+/* Input circular data buffer left */\r
+Uint32 inCircBufLeft[IN_CIRCBUF_LEN];\r
+/* Input circular data buffer right */\r
+Uint32 inCircBufRight[IN_CIRCBUF_LEN];\r
+#endif\r
+#if 0 \r
+/* CIC output circular buffer */\r
+Int32 cicOutCircBuf[CIC_OUT_CIRCBUF_LEN];\r
+#endif\r
+#if 0\r
+/* FIR1 output circular buffer */\r
+Int32 fir1OutCircBuf[FIR1_OUT_CIRCBUF_LEN];\r
+#endif \r
+#if 0\r
+/* FIR2 output circular buffer */\r
+Int32 fir2OutCircBuf[FIR2_OUT_CIRCBUF_LEN];\r
+#endif\r
+\r
+/* Digital gain output circular buffer */\r
+Int16 digGainOutCircBuf[DIGGAIN_OUT_CIRCBUF_LEN];\r
+\r
+\r
+CSL_I2sHandle    hI2s;\r
+I2S_Config        hwConfig;\r
+\r
+CSL_DMA_Handle dmaLeftRxHandle;\r
+CSL_DMA_Handle dmaRightRxHandle;\r
+CSL_DMA_Config dmaConfig;\r
+CSL_DMA_ChannelObj dmaObj0, dmaObj1;\r
+Uint16 dmaFrameCount = 0;\r
+\r
+#pragma DATA_ALIGN(i2sDmaReadBufLeft, 2);\r
+#pragma DATA_SECTION(i2sDmaReadBufLeft, ".i2sDmaReadBufLeft")\r
+Uint32 i2sDmaReadBufLeft[I2S_DMA_BUF_LEN];\r
+#pragma DATA_ALIGN(i2sDmaReadBufRight, 2);\r
+#pragma DATA_SECTION(i2sDmaReadBufRight, ".i2sDmaReadBufRight")\r
+Uint32 i2sDmaReadBufRight[I2S_DMA_BUF_LEN];\r
+Uint16 pingPongFlag = 0;\r
+\r
+/* CIC output frame */\r
+#pragma DATA_SECTION(cicOutFrame, ".cicOutFrame")\r
+Int32 cicOutFrame[CIC_OUT_FRAME_LEN];\r
+\r
+/* CIC state */\r
+Int32 cicState[2*CIC_NS];\r
+\r
+/* FIR1 Coefficients (S16Q15) */\r
+#pragma DATA_SECTION(fir1Coefs, ".fir1Coefs")\r
+const Int16 fir1Coefs[FIR1_NUM_COEFS] = \r
+{     -98,        0,      609,        0,    -2288,        0,     9968,    16386,     \r
+     9968,        0,    -2288,        0,      609,        0,      -98\r
+};\r
+\r
+/* Delay line */\r
+#pragma DATA_SECTION(fir1DlyBuf, ".fir1DlyBuf")\r
+Int32 fir1DlyBuf[FIR1_NUM_COEFS+2+1]; // +2 for input samples req'd for 2 output samples computed per outer loop, +1 for index of oldest sample\r
+\r
+/* FIR1 Output frame */\r
+#pragma DATA_SECTION(fir1OutFrame, ".fir1OutFrame")\r
+Int32 fir1OutFrame[FIR1_OUT_FRAME_LEN];\r
+\r
+/* FIR2 Coefficients (S16Q15) */\r
+#pragma DATA_SECTION(fir2Coefs, ".fir2Coefs")\r
+const Int16 fir2Coefs[FIR2_NUM_COEFS] = \r
+{      -4,        2,       10,       -3,      -27,       -2,       51,       15,\r
+      -89,      -50,      135,      114,     -185,     -222,      226,      386,    \r
+     -241,     -623,      198,      947,      -56,    -1396,     -266,     2043,\r
+      959,    -3164,    -2809,     6281,    16481,    16481,     6281,    -2809,    \r
+    -3164,      959,     2043,     -266,    -1396,      -56,      947,      198,    \r
+     -623,     -241,      386,      226,     -222,     -185,      114,      135,    \r
+      -50,      -89,       15,       51,       -2,      -27,       -3,       10,        \r
+        2,       -4\r
+};\r
+\r
+/* Delay line */\r
+#pragma DATA_SECTION(fir2DlyBuf, ".fir2DlyBuf")\r
+Int32 fir2DlyBuf[FIR2_NUM_COEFS+2+1]; // +2 for input samples req'd for 2 output samples computed per outer loop, +1 for index of oldest sample\r
+\r
+/* FIR2 Output frame */\r
+#pragma DATA_SECTION(fir2OutFrame, ".fir2OutFrame")\r
+Int32 fir2OutFrame[FIR2_OUT_FRAME_LEN];\r
+\r
+/* Digital gain output frame */\r
+#pragma DATA_SECTION(digGainOutFrame, ".digGainOutFrame")\r
+Int16 digGainOutFrame[DIGGAIN_OUT_FRAME_LEN];\r
+\r
+//#define DIGGAIN ( (Uint16)5<<8 ) /* 1.0 (0 dB) in U16Q8 */\r
+#define DIGGAIN ( (Uint16)10<<8 ) /* 10.0 (20 dB) in U16Q8 */\r
+//#define DIGGAIN ( (Uint16)0x1f9f ) /* 31.6228 (30 dB) in U16Q8 */\r
+//#define DIGGAIN ( (Uint16)100<<8 ) /* 100.0 (40 dB) in U16Q8 */\r
+\r
+// Clock gating for all peripherals\r
+void ClockGatingAll(void);\r
+\r
+// DSP LDO Switch\r
+// mode:    105 - set DSP LDO to 1.05V  \r
+//            130 - set DSP LDO to 1.3V\r
+//            other - no change\r
+void DspLdoSwitch(int mode);\r
+\r
+// USB LDO Switch\r
+// mode:    0 - disable USB LDO  \r
+//          1 - enable USB LDO\r
+//          other - no change\r
+void UsbLdoSwitch(int mode);\r
+\r
+// GI2S and DMA initialization\r
+CSL_Status I2sDmaInit(void);\r
+\r
+// user defined algorithm\r
+void UserAlgorithm(void);\r
+\r
+// Put CPU in idle\r
+void UserIdle(void);\r
+\r
+// DMA ISR\r
+interrupt void DmaIsr(void);\r
+\r
+void main(void)\r
+{\r
+\r
+    CSL_Status status;\r
+    \r
+    printf("Start the IdleLoop\n");\r
+    \r
+    /* Clock gate all peripherals */\r
+    ClockGatingAll();\r
+    \r
+    /* Set DSP LDO to desired output voltage */\r
+    DspLdoSwitch(DSP_LDO);\r
+\r
+    /* Set the PLL to pll_mhz */\r
+    status = pll_sample(PLL_MHZ);\r
+    if (status != CSL_SOK)\r
+    {\r
+        printf("ERROR: Unable to set PLL\n");\r
+        exit(1);\r
+    }\r
+    \r
+    /* Turn off the USB LDO */\r
+    UsbLdoSwitch(0);\r
+\r
+    /* Initialize I2S and DMA engine */\r
+    status = I2sDmaInit();\r
+    if (status != CSL_SOK)\r
+    {\r
+        printf("ERROR: Unable to initialize I2S and DMA\n");\r
+        exit(1);\r
+    }\r
+    \r
+    /* SP0 Mode 1 (I2S0 and GP[5:4]) */\r
+    CSL_FINST(CSL_SYSCTRL_REGS->EBSR, SYS_EBSR_SP0MODE, MODE1);\r
+    /* SP1 Mode 1 (I2S1 and GP[11:10]) */\r
+    CSL_FINST(CSL_SYSCTRL_REGS->EBSR, SYS_EBSR_SP1MODE, MODE1);\r
+    /* PP Mode 1 (SPI, GPIO[17:12], UART, and I2S2) */\r
+    CSL_FINST(CSL_SYSCTRL_REGS->EBSR, SYS_EBSR_PPMODE, MODE1);\r
+\r
+    /* Configure PCGCR1 & PCGCR2 */\r
+    CSL_FINS(CSL_SYSCTRL_REGS->PCGCR2, SYS_PCGCR2_DMA1CG, CSL_SYS_PCGCR2_DMA1CG_DISABLED);\r
+    CSL_FINS(CSL_SYSCTRL_REGS->PCGCR2, SYS_PCGCR2_DMA2CG, CSL_SYS_PCGCR2_DMA2CG_DISABLED);\r
+    CSL_FINS(CSL_SYSCTRL_REGS->PCGCR2, SYS_PCGCR2_DMA3CG, CSL_SYS_PCGCR2_DMA3CG_DISABLED);\r
+\r
+    /* Set CPUI, DPORTI, IPORTI, XPORT and HWAI in ICR */\r
+    *(volatile ioport Uint16 *)(0x0001) = (0x000E | 1<<0 | 1<<5 | 1<<6 | 1<<8 | 1<<9);\r
+\r
+    while (1)\r
+    {\r
+        /* Perform your algorithm here */\r
+        UserAlgorithm();\r
+\r
+#if 1\r
+        /* Set CPU to Idle */\r
+        UserIdle();\r
+#endif\r
+    }\r
+}\r
+\r
+// Clock gating for all peripherals\r
+void ClockGatingAll(void)\r
+{\r
+    Uint16 pcgcr_value;\r
+    //Uint16 clkstop_value;\r
+    //Uint16 status;\r
+\r
+    // enable the MPORT and disable HWA\r
+    *(volatile ioport unsigned int *)0x0001 = 0x020E;\r
+    asm("   idle");\r
+    \r
+    // set PCGCR1\r
+    pcgcr_value = 0; \r
+    // clock gating SPI\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR1_SPICG, DISABLED);\r
+    // clock gating SD/MMC\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR1_MMCSD0CG, DISABLED);\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR1_MMCSD1CG, DISABLED);\r
+\r
+    // clock gating UART\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR1_UARTCG, DISABLED);\r
+\r
+\r
+    // clock gating EMIF\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR1_EMIFCG, DISABLED);\r
+\r
+    // clock gating I2S I2S 0\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR1_I2S0CG, DISABLED);\r
+    // clock gating I2S I2S 1\r
+   // pcgcr_value |= CSL_FMKT(SYS_PCGCR1_I2S1CG, DISABLED);\r
+    // clock gating I2S I2S 2\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR1_I2S2CG, DISABLED);\r
+    // clock gating I2S I2S 3\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR1_I2S3CG, DISABLED);\r
+\r
+    // clock gating DMA0\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR1_DMA0CG, DISABLED);\r
+\r
+        // clock gating Timer 0\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR1_TMR0CG, DISABLED);\r
+    // clock gating Timer 1\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR1_TMR1CG, DISABLED);\r
+    // clock gating Timer 2\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR1_TMR2CG, DISABLED);\r
+\r
+    // clock gating I2C\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR1_I2CCG, DISABLED);\r
+\r
+        // write to PCGCR1\r
+    CSL_FSET(CSL_SYSCTRL_REGS->PCGCR1, 15, 0, pcgcr_value);\r
+    \r
+    // set PCGCR2\r
+    pcgcr_value = 0; \r
+    // clock gating LCD\r
+ //  pcgcr_value |= CSL_FMKT(SYS_PCGCR2_LCDCG, DISABLED);\r
+\r
+    // clock gating SAR\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR2_SARCG, DISABLED);\r
+\r
+    // clock gating DMA1\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR2_DMA1CG, DISABLED);\r
+    // clock gating DMA2\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR2_DMA2CG, DISABLED);\r
+    // clock gating DMA3\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR2_DMA3CG, DISABLED);\r
+\r
+    // clock gating analog registers\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR2_ANAREGCG, DISABLED);\r
+\r
+        // clock gating USB\r
+    pcgcr_value |= CSL_FMKT(SYS_PCGCR2_USBCG, DISABLED);\r
+\r
+    // write to PCGCR2\r
+    CSL_FSET(CSL_SYSCTRL_REGS->PCGCR2, 15, 0, pcgcr_value);\r
+    \r
+    // turn off the XF\r
+    // set bit 13 of ST1_55 to 0\r
+    asm("    bit(ST1, #ST1_XF) = #0");\r
+\r
+#if 0\r
+    // set all GPIO pins to be output and low to save power\r
+    // set the GPIO pin 0 - 15 to output, set SYS_GPIO_DIR0 (0x1C06) bit 0 and 15 to 1 \r
+    *(volatile ioport unsigned int *)(0x1C06) = 0xFFFF;\r
+    // set the GPIO pin 16 - 31 to output, set SYS_GPIO_DIR1 (0x1C07) bit 0 and 15 to 1 \r
+    *(volatile ioport unsigned int *)(0x1C07) = 0xFFFF;\r
+    \r
+    // set the GPIO 0 - 15 to 0, set SYS_GPIO_DATAOUT0 (0x1C0A) bit 0 and 15 to 0\r
+    *(volatile ioport unsigned int *)(0x1C0A) = 0x0000;\r
+    // set the GPIO 16 - 31 to 0, set SYS_GPIO_DATAOUT1 (0x1C0B) bit 0 and 15 to 0\r
+    *(volatile ioport unsigned int *)(0x1C0B) = 0x0000;\r
+#endif\r
+    \r
+\r
+    return;\r
+}\r
+\r
+// DSP LDO Switch\r
+// mode:    105 - set DSP LDO to 1.05V  \r
+//            130 - set DSP LDO to 1.3V\r
+//            other - no change\r
+void DspLdoSwitch(int mode)\r
+{\r
+    if (mode==130)\r
+    {\r
+        /* enable the Analog Register only */\r
+        *((ioport volatile unsigned int *)0x1C03) &= ~(0x0040);\r
+        // set DSP LDO to 1.05V (clear bit 1)\r
+        *(volatile ioport unsigned int *)(0x7004) &= 0xFFFD;\r
+        /* disable the Analog Register only */\r
+        *((ioport volatile unsigned int *)0x1C03) |= 0x0040;\r
+    }\r
+    \r
+    if (mode==105)\r
+    {\r
+        /* enable the Analog Register only */\r
+        *((ioport volatile unsigned int *)0x1C03) &= ~(0x0040);\r
+        // set DSP LDO to 1.05V (set bit 1)\r
+        *(volatile ioport unsigned int *)(0x7004) |= 0x0002;\r
+        /* disable the Analog Register only */\r
+        *((ioport volatile unsigned int *)0x1C03) |= 0x0040;\r
+    }\r
+}\r
+\r
+// USB LDO Switch\r
+// mode:    0 - disable USB LDO  \r
+//          1 - enable USB LDO\r
+//          other - no change\r
+void UsbLdoSwitch(int mode)\r
+{\r
+    if (mode==0)\r
+    {\r
+        /* enable the Analog Register only */\r
+        *((ioport volatile unsigned int *)0x1C03) &= ~(0x0040);\r
+        // disable USB LDO (clear bit 0)\r
+        *(volatile ioport unsigned int *)(0x7004) &= 0xFFFE;\r
+        /* disable the Analog Register only */\r
+        *((ioport volatile unsigned int *)0x1C03) |= 0x0040;\r
+    }\r
+    \r
+    if (mode==1)\r
+    {\r
+        /* enable the Analog Register only */\r
+        *((ioport volatile unsigned int *)0x1C03) &= ~(0x0040);\r
+        // enable USB LDO (set bit 0)\r
+        *(volatile ioport unsigned int *)(0x7004) |= 0x0001;\r
+        /* disable the Analog Register only */\r
+        *((ioport volatile unsigned int *)0x1C03) |= 0x0040;\r
+    }\r
+}\r
+\r
+// Address for interrupt vector table\r
+extern void VECSTART(void); // defined in vector table\r
+CSL_IRQ_Dispatch     dispatchTable;\r
+// GI2S and DMA initialization\r
+CSL_Status I2sDmaInit(void)\r
+{\r
+    CSL_Status status;\r
+    Uint16 ifrValue;\r
+\r
+    // set up DMA INT and ISR\r
+    // set up dispatch table\r
+    status = IRQ_init(&dispatchTable, 0);\r
+    if(status != CSL_SOK)\r
+    {\r
+        return (status);\r
+    } else\r
+    {\r
+        printf ("INT Module Configured successfully\n");\r
+    }\r
+\r
+    /* Configure and Enable the DMA interrupt */\r
+    IRQ_globalDisable();\r
+\r
+    /* Clear any pending interrupts */\r
+    IRQ_clearAll();\r
+\r
+    /* Disable all the interrupts */\r
+    IRQ_disableAll();\r
+    \r
+    // to set the interrupt vector table address\r
+    status = IRQ_setVecs((Uint32)&VECSTART);\r
+    if(status != CSL_SOK)\r
+    {\r
+        return (status);\r
+    } else\r
+    {\r
+        printf ("Get interrupt vector table successfully\n");\r
+    }\r
+    \r
+    // clear pending DMA interrupt\r
+    IRQ_clear(DMA_EVENT);\r
+    \r
+    // clear the DMA interrupt\r
+    ifrValue = CSL_SYSCTRL_REGS->DMAIFR;\r
+    CSL_SYSCTRL_REGS->DMAIFR |= ifrValue;\r
+\r
+    // plug in DMA ISR\r
+    IRQ_plug(DMA_EVENT, &DmaIsr);\r
+    \r
+    // enable DMA interrupt\r
+    IRQ_enable(DMA_EVENT);\r
+\r
+    // enable global interrupt\r
+    IRQ_globalEnable();\r
+\r
+\r
+    // DMA engine initialization\r
+    // Open the device with instance 0 (digital mic connected to I2S0 on C5515 EVM)\r
+    hI2s = I2S_open(I2S_INSTANCE0, DMA_POLLED, I2S_CHAN_STEREO);\r
+    if(NULL == hI2s)\r
+    {\r
+        status = CSL_ESYS_FAIL;\r
+        return (status);\r
+    }\r
+    else\r
+    {\r
+        printf ("I2S Module Instance opened successfully\n");\r
+    }\r
+\r
+    /** Set the value for the configure structure                */\r
+    hwConfig.dataFormat     = I2S_DATAFORMAT_LJUST;\r
+    hwConfig.i2sMode        = I2S_MASTER;\r
+    hwConfig.wordLen        = I2S_WORDLEN_32;\r
+    hwConfig.signext        = I2S_SIGNEXT_ENABLE;   // don't care since 32-bit wordlength\r
+    hwConfig.datapack       = I2S_DATAPACK_DISABLE; // don't care since 32-bit wordlength\r
+    hwConfig.datadelay      = I2S_DATADELAY_ONEBIT;\r
+    hwConfig.clkPol         = I2S_RISING_EDGE;      // receive data is sampled on the rising edge\r
+    hwConfig.fsPol          = I2S_FSPOL_LOW;\r
+    hwConfig.loopBackMode   = I2S_LOOPBACK_DISABLE;\r
+    hwConfig.dataType       = I2S_STEREO_ENABLE;\r
+    //hwConfig.clkDiv         = I2S_CLKDIV32;         // 32.768e6/32 = 1.024e6 (clock to digital mic)\r
+    hwConfig.clkDiv         = I2S_CLKDIV16;         // 16.384e6/16 = 1.024e6 (clock to digital mic)\r
+    hwConfig.fsDiv          = I2S_FSDIV64;          // 64 bit clocks per frame, or 32 bit clocks per channel */\r
+    hwConfig.FError         = I2S_FSERROR_DISABLE;\r
+    hwConfig.OuError        = I2S_OUERROR_DISABLE;\r
+\r
+    /** Configure hardware registers                            */\r
+    status = I2S_setup(hI2s, &hwConfig);\r
+    if(status != CSL_SOK)\r
+    {\r
+        return (status);\r
+    }\r
+    else\r
+    {\r
+        printf ("I2S Module Configured successfully\n");\r
+    }\r
+\r
+    // Configure DMA0 channel 0 for I2S0 channel read\r
+    dmaConfig.pingPongMode = CSL_DMA_PING_PONG_ENABLE;\r
+    dmaConfig.autoMode     = CSL_DMA_AUTORELOAD_ENABLE;\r
+    dmaConfig.burstLen     = CSL_DMA_TXBURST_1WORD;\r
+    dmaConfig.trigger      = CSL_DMA_EVENT_TRIGGER;\r
+    dmaConfig.dmaEvt       = CSL_DMA_EVT_I2S0_RX;\r
+    dmaConfig.dmaInt       = CSL_DMA_INTERRUPT_ENABLE;\r
+    dmaConfig.chanDir      = CSL_DMA_READ;\r
+    dmaConfig.trfType      = CSL_DMA_TRANSFER_IO_MEMORY;\r
+    dmaConfig.dataLen      = I2S_DMA_BUF_LEN*4; // bytes in 32-bit word\r
+    dmaConfig.srcAddr      = (Uint32)0x2828;\r
+    dmaConfig.destAddr     = (Uint32)i2sDmaReadBufLeft;\r
+\r
+    // DMA initialization\r
+    status = DMA_init();\r
+    if (status != CSL_SOK)\r
+    {\r
+        printf("DMA_init() Failed \n");\r
+        dmaLeftRxHandle = NULL;\r
+        dmaRightRxHandle = NULL;\r
+        return status;\r
+    }\r
+\r
+    // Open DMA0 channel 0 for I2S0 channel read\r
+    dmaLeftRxHandle = DMA_open(CSL_DMA_CHAN0, &dmaObj0, &status);\r
+    if (dmaLeftRxHandle == NULL)\r
+    {\r
+        printf("DMA_open CH0 Failed \n");\r
+        dmaLeftRxHandle = NULL;\r
+    }\r
+\r
+    status = DMA_config(dmaLeftRxHandle, &dmaConfig);\r
+    if (status != CSL_SOK)\r
+    {\r
+        printf("DMA_config CH0 Failed \n");\r
+        dmaLeftRxHandle = NULL;\r
+    }\r
+\r
+   /* Configure DMA0 channel 1 for I2S0 channel read */\r
+    dmaConfig.pingPongMode = CSL_DMA_PING_PONG_ENABLE;\r
+    dmaConfig.autoMode     = CSL_DMA_AUTORELOAD_ENABLE;\r
+    dmaConfig.burstLen     = CSL_DMA_TXBURST_1WORD;\r
+    dmaConfig.trigger      = CSL_DMA_EVENT_TRIGGER;\r
+    dmaConfig.dmaEvt       = CSL_DMA_EVT_I2S0_RX;\r
+    dmaConfig.dmaInt       = CSL_DMA_INTERRUPT_ENABLE;\r
+    dmaConfig.chanDir      = CSL_DMA_READ;\r
+    dmaConfig.trfType      = CSL_DMA_TRANSFER_IO_MEMORY;\r
+    dmaConfig.dataLen      = I2S_DMA_BUF_LEN*4; // bytes in 32-bit word\r
+    dmaConfig.srcAddr      = (Uint32)0x282C;\r
+    dmaConfig.destAddr     = (Uint32)i2sDmaReadBufRight;\r
+\r
+    // Open DMA0 channel 1 for I2S0 channel read\r
+    dmaRightRxHandle = DMA_open(CSL_DMA_CHAN1, &dmaObj1, &status);\r
+    if (dmaRightRxHandle == NULL)\r
+    {\r
+        printf("DMA_open CH1 Failed \n");\r
+        dmaRightRxHandle = NULL;\r
+    }\r
+\r
+    status = DMA_config(dmaRightRxHandle, &dmaConfig);\r
+    if (status != CSL_SOK)\r
+    {\r
+        printf("DMA_config CH1 Failed \n");\r
+        dmaRightRxHandle = NULL;\r
+    }\r
+\r
+    // enable I2S\r
+    I2S_transEnable(hI2s, TRUE);\r
+    \r
+    // Start left Rx DMA\r
+    status = DMA_start(dmaLeftRxHandle);\r
+    if (status != CSL_SOK)\r
+    {\r
+        printf("I2S Dma Left Failed!!\n");\r
+        return (status);\r
+    }\r
+    \r
+    // Start right Rx DMA\r
+    status = DMA_start(dmaRightRxHandle);\r
+    if (status != CSL_SOK)\r
+    {\r
+        printf("I2S Dma Right Failed!!\n");\r
+        return (status);\r
+    }\r
+\r
+    return CSL_SOK;\r
+}\r
+\r
+volatile long LoopCount = 0;\r
+// user defined algorithm\r
+void UserAlgorithm(void)\r
+{\r
+    volatile int i, numFrame, offset;\r
+    Uint16 numOutSamps;\r
+\r
+    if (dmaFrameCount >= 2)\r
+    {\r
+        /* Determine which frame to use ping or pong */\r
+        offset = pingPongFlag*IN_FRAME_LEN_PER_CH;\r
+\r
+        /* Perform CIC */\r
+        pickBitsCic(&i2sDmaReadBufLeft[offset], &i2sDmaReadBufRight[offset], IN_FRAME_LEN_PER_CH, cicState, cicOutFrame, &numOutSamps);\r
+\r
+        /* Compute FIR1 output */\r
+        blkFirDecim2(cicOutFrame, (Int16 *)fir1Coefs, fir1OutFrame, fir1DlyBuf, CIC_OUT_FRAME_LEN, FIR1_NUM_COEFS);\r
+\r
+        /* Compute FIR2 output */\r
+        blkFirDecim2(fir1OutFrame, (Int16 *)fir2Coefs, fir2OutFrame, fir2DlyBuf, FIR1_OUT_FRAME_LEN, FIR2_NUM_COEFS);\r
+\r
+        /* Apply digital gain */\r
+       appDiggain(fir2OutFrame, DIGGAIN, digGainOutFrame, FIR2_OUT_FRAME_LEN);\r
+\r
+        /* Get current frame number */\r
+        numFrame = LoopCount%NUM_FRAMES_PER_CIRCBUF;\r
+\r
+        /* Write digital gain output to circular buffer */\r
+        for (i=0; i<DIGGAIN_OUT_FRAME_LEN; i++)\r
+        {\r
+            digGainOutCircBuf[numFrame*DIGGAIN_OUT_FRAME_LEN+i] = digGainOutFrame[i];\r
+        }\r
+       \r
+#if 0 // write input data into circular buffers\r
+        /* Copy the current frame from ping or pong frame into input circular buffers */\r
+        for (i=0; i<IN_FRAME_LEN_PER_CH; i++)\r
+        {\r
+            /* Write left channel */\r
+            inCircBufLeft[numFrame*IN_FRAME_LEN_PER_CH+i] = i2sDmaReadBufLeft[offset+i];\r
+            /* Write right channel */\r
+            inCircBufRight[numFrame*IN_FRAME_LEN_PER_CH+i] = i2sDmaReadBufRight[offset+i];\r
+        }\r
+#endif\r
+\r
+#if 0 // write CIC output into circular buffers\r
+        for (i=0; i<CIC_OUT_FRAME_LEN; i++)\r
+        {\r
+            cicOutCircBuf[numFrame*CIC_OUT_FRAME_LEN+i] = cicOutFrame[i];\r
+        }\r
+#endif        \r
+\r
+#if 0 // write FIR1 output into circular buffers\r
+        for (i=0; i<FIR1_OUT_FRAME_LEN; i++)\r
+        {\r
+            fir1OutCircBuf[numFrame*FIR1_OUT_FRAME_LEN+i] = fir1OutFrame[i];\r
+        }\r
+#endif        \r
+\r
+#if 0 // write FIR2 output into circular buffers\r
+        /* Copy the current frame from ping or pong frame into input circular buffers */\r
+        for (i=0; i<FIR2_OUT_FRAME_LEN; i++)\r
+        {\r
+            fir2OutCircBuf[numFrame*FIR2_OUT_FRAME_LEN+i] = fir2OutFrame[i];\r
+        }\r
+#endif        \r
+\r
+#if 0 // debug -- stop DMAs on frame boundary\r
+        /* Stop DMAs to get consistent DMA transfers from digital mic */\r
+        if ((pingPongFlag == 0) && (LoopCount > 500)) // 500*20e-3 = 10 sec. \r
+        {\r
+            *((ioport volatile unsigned int *)0x0C05) &= ~0x8000; // disable DMA\r
+            *((ioport volatile unsigned int *)0x0C25) &= ~0x8000; // disable DMA\r
+            while(1);\r
+        }\r
+#endif\r
+\r
+        /* Toggle ping/pong flag */\r
+        pingPongFlag ^= 1;\r
+        \r
+        /* Clear DMA frame count */\r
+        dmaFrameCount = 0;\r
+\r
+        LoopCount++;\r
+    }\r
+}\r
+\r
+// Put CPU in idle\r
+void UserIdle(void)\r
+{\r
+    /* Execute idle instruction */\r
+    asm("    idle");\r
+}\r
+\r
+Uint32 dmaIntCount = 0;\r
+// DMA ISR\r
+interrupt void DmaIsr(void)\r
+{\r
+    Uint16 ifrValue;\r
+\r
+    // clear the DMA interrupt\r
+    ifrValue = CSL_SYSCTRL_REGS->DMAIFR;\r
+    CSL_SYSCTRL_REGS->DMAIFR = ifrValue;\r
+    \r
+    // wait for the DMA0 CH0 transfer to complete\r
+    // if left frame is in\r
+    if (ifrValue & 0x1)    \r
+    {\r
+        dmaFrameCount++;\r
+    }\r
+    \r
+    // wait for the DMA0 CH1 transfer to complete\r
+    // if the right frame is in\r
+    if (ifrValue & 0x2)\r
+    {\r
+        dmaFrameCount++;\r
+    }    \r
+\r
+    dmaIntCount++;\r
+}\r
diff --git a/src/diggain.c b/src/diggain.c
new file mode 100755 (executable)
index 0000000..2003c78
--- /dev/null
@@ -0,0 +1,103 @@
+/* ============================================================================
+ * Copyright (c) 2016 Texas Instruments Incorporated.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "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 THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS 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.
+ *
+  ===============================================================================*/
+
+#include "data_types.h"
+#include "diggain.h"
+
+#define QUANT_TRUNC         ( 0 )   /* truncate */
+#define QUANT_RND_INF       ( 1 )   /* round to infinite */
+#define QUANT_MODE          ( QUANT_RND_INF )
+
+/* Applies digital gain and saturates output. */
+/* S18Q16 input data, S16Q15 output data. */
+/* U16Q8 digital gain. */
+void appDiggain(
+    Int32   *inSamps,   /* input samples (S18Q16) */
+    Uint16  diggain,    /* digital gain (U16Q8) */
+    Int16   *outSamps,  /* output samples (S16Q15) */
+    Uint16  numInSamps  /* number of input samples */
+)
+{
+    Uint16 dataL;
+    Int16 dataH;
+    Uint32 prdLL;
+    Int32 prdLH;
+    Int64 acc0_40b;
+    Uint16 i;
+    
+    for (i = 0; i < numInSamps; i++)
+    {
+        /* S18Q16 */
+        dataL = (Uint16)inSamps[i];
+        dataH = (Int16)(inSamps[i] >> 16);
+
+        /* S18Q16 * U16Q8 = S34Q24 */
+        prdLL = (Uint32)dataL * diggain;
+        prdLH = (Int32)dataH * (Uint32)diggain;
+
+        /* S40Q24 + S34Q24 = S40Q24 */
+        acc0_40b = (Uint64)prdLL;
+        acc0_40b += (Int64)(prdLH << 16);
+
+#if (QUANT_MODE == QUANT_RND_INF)
+        acc0_40b += (Uint16)1<<8; /* round to infinite */
+#endif
+        acc0_40b >>= 9; /* truncate */
+
+#ifdef _WIN32
+        /* Saturate output */
+        if (acc0_40b > (Int64)0x7FFF)
+        {
+            acc0_40b = (Int64)0x7FFF;
+        }
+        else if (acc0_40b < (Int64)0xFFFFFFFFFFFF8000)
+        {
+            acc0_40b = (Int64)0xFFFFFFFFFFFF8000;
+        }
+#else
+        /* Saturate output */
+        if (acc0_40b > (Int64)0x7FFF)
+        {
+            acc0_40b = (Int64)0x7FFF;
+        }
+        else if (acc0_40b < (Int64)0xFFFFFF8000)
+        {
+            acc0_40b = (Int64)0xFFFFFF8000;
+        }
+
+#endif        
+
+        outSamps[i] = (Int16)acc0_40b; /* S16Q15 */
+    }
+}
+
diff --git a/src/diggain_f1.asm b/src/diggain_f1.asm
new file mode 100755 (executable)
index 0000000..b78aacc
--- /dev/null
@@ -0,0 +1,181 @@
+;============================================================================
+; Copyright (c) 2016 Texas Instruments Incorporated.
+;
+;  Redistribution and use in source and binary forms, with or without
+;  modification, are permitted provided that the following conditions
+;  are met:
+;
+;    Redistributions of source code must retain the above copyright
+;    notice, this list of conditions and the following disclaimer.
+;
+;    Redistributions in binary form must reproduce the above copyright
+;    notice, this list of conditions and the following disclaimer in the
+;    documentation and/or other materials provided with the
+;    distribution.
+;
+;    Neither the name of Texas Instruments Incorporated nor the names of
+;    its contributors may be used to endorse or promote products derived
+;    from this software without specific prior written permission.
+;
+;  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+;  "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 THE COPYRIGHT
+;  OWNER OR CONTRIBUTORS 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.
+;
+;===============================================================================
+; Function:    _appDiggain
+; Processor:   C55xx, Rev. 3
+; Description: 
+;   Applies digital gain and saturates output.
+;   S18Q16 input data, S16Q15 output data.
+;   U16Q8 digital gain.
+;
+;   x cycle inner loop.
+;
+;   C-callable.
+;   Mnemonic assembly.
+;
+; Usage:    void blkFirDecim2(
+;               Int32   *inSamps,      -> XAR0
+;               Uint16  diggain,       -> T0
+;               Int16   *outSamps,     -> XAR1
+;               Uint16  numInSamps     -> T1
+;           );
+;
+;
+; NOTE: additional optimizations possible, but low MHz contributor.
+;****************************************************************
+
+                .C54CM_off                      ; enable assembler for C54CM=0
+                .ARMS_off                       ; enable assembler for ARMS=0
+                .CPL_on                         ; enable assembler for CPL=1
+
+                .mmregs                         ; enable mem mapped register names
+
+                .def    _appDiggain
+
+; Stack frame
+; -----------
+RET_ADDR_SZ     .set    1                       ; return address
+REG_SAVE_SZ     .set    0                       ; save-on-entry registers saved
+FRAME_SZ        .set    1                       ; local variables
+ARG_BLK_SZ      .set    0                       ; argument block
+PARAM_OFFSET    .set    ARG_BLK_SZ + FRAME_SZ + REG_SAVE_SZ + RET_ADDR_SZ   ; offset to function arguments on stack
+
+; Local variables
+; ---------------
+                .asg    2, digGain
+
+; Register usage
+; --------------
+                .asg    CDP, x_ptr              ; input sample pointer
+                .asg    AR1, r_ptr              ; output sample pointer
+
+                .asg    XCDP, xx_ptr            ; extended input sample pointer
+
+                .asg    BRC0, outer_cnt         ; outer loop count
+
+QUANT_TRUNC     .set    0                       ; truncate
+QUANT_RND       .set    1                       ; round according to rounding mode
+QUANT_MODE      .set    QUANT_RND
+
+
+                .text
+_appDiggain:
+
+;
+; Save any save-on-entry registers that are used
+;----------------------------------------------------------------
+
+;
+; Allocate the local frame and argument block
+;----------------------------------------------------------------
+                AADD        #-(ARG_BLK_SZ + FRAME_SZ), SP 
+
+;
+; Save entry values for later
+;----------------------------------------------------------------
+                MOV         T0, *SP(digGain)
+
+;
+; Configure the status registers as needed
+;----------------------------------------------------------------
+                AND         #001FFh, mmap(ST0_55)   ; clear ACOV[0-3], TC[1-2], and C
+
+                OR          #04540h, mmap(ST1_55)   ; set CPL, M40, SXMD, and FRCT
+                ;AND         #0F9DFh, mmap(ST1_55)   ; clear M40, SATD, 54CM 
+
+                BCLR        ARMS                    ; clear ARMS
+
+                ;AND         #0FCDDh, mmap(ST3_55)   ; clear SATA, SMUL ; note -- must always write 1100b to bits 11-8, 0b to bit 4
+
+
+;
+; Setup passed parameters in their destination registers
+;----------------------------------------------------------------
+
+; x pointer - passed in its destination register
+                AMOV        XAR0, xx_ptr
+
+; r pointer - already passed in its destination register
+
+
+;
+; Setup loop counts
+;----------------------------------------------------------------
+                MOV                    T1, AC0                                 ; AC0 = nx (nx unsigned, constrained to < 32768 since SXM is enabled)
+                SUB         #1, AC0                 ; AC0 = nx-1
+                MOV         AC0, mmap(outer_cnt)    ; outer_cnt = nx-1
+
+    
+;
+; Start of outer loop
+;----------------------------------------------------------------
+                RPTBLOCAL   loop0-1                 ; outer loop nx iterations
+
+                MPY         *SP(#digGain), *x_ptr+, AC1          ; Low x High
+                MPY         *SP(#digGain), uns(*x_ptr+), AC0     ; Low x Low
+                ADD         AC1 << #16, AC0
+                SFTS        AC0, #6
+                .if (QUANT_MODE == QUANT_TRUNC)
+                SAT         AC0
+                .else
+                SATR        AC0
+                .endif
+
+                ; Store result to memory
+                MOV         HI(AC0), *r_ptr+        ; store S16Q15 value to memory
+loop0: ; end of outer loop
+
+
+;
+; Restore status regs to expected C-convention values as needed
+;----------------------------------------------------------------
+                BCLR        M40                     ; clear M40
+                BCLR        FRCT                    ; clear FRCT
+
+                AND         #0FE00h, mmap(ST2_55)   ; clear CDPLC and AR[7-0]LC
+                BSET        ARMS                    ; set SMUL
+
+                ;BSET        SMUL                    ; set SMUL
+
+;
+; Deallocate the local frame and argument block
+;----------------------------------------------------------------
+                AADD        #(ARG_BLK_SZ + FRAME_SZ), SP 
+
+;
+; Restore any save-on-entry registers that are used
+;----------------------------------------------------------------
+
+;
+; Return to calling function
+;----------------------------------------------------------------
+                RET                             ; return to calling function
diff --git a/src/pick_bits_cic.c b/src/pick_bits_cic.c
new file mode 100755 (executable)
index 0000000..4f26966
--- /dev/null
@@ -0,0 +1,184 @@
+/* ============================================================================
+ * Copyright (c) 2016 Texas Instruments Incorporated.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "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 THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS 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.
+ *
+  ===============================================================================*/
+#include "data_types.h"
+#include "pick_bits_cic.h"
+
+#define BITS_PER_16BW  ( 16 )
+
+/* Unpacks "left" and "right" 32-bit packed DMA buffers containing output from digital mic. */
+/* Performs CIC on unpacked data, CIC_DF = 16 & CIC_NS = 4. */
+void pickBitsCic(
+    Uint32 *lData,          /* "left" channel 32-bit packed input data */
+    Uint32 *rData,          /* "right" channel 32-bit packed input data */
+    Uint16 inDataLen,       /* length of "left" or "right" input data in 32-bit words */
+    Int32 *cicState,        /* CIC state. First NS values are integrator state, next NS values are differentiator delay buffer */
+    Int32 *outSamps,        /* CIC output samples */
+    Uint16 *pNumOutSamps    /* CIC number of output samples */
+)
+{
+    Uint16 cur16bW;
+    Int16 input;
+    Int32 *acc;
+    Int32 *diffDly;
+    Int32 diff[CIC_NS];
+    Int32 *pOutSamp;
+    Uint16 i, j;
+
+
+    /* Compute number of output samples */
+    /* x32 for 32-bit word, x2 for 2 channels */
+    //*pNumOutSamps = inDataLen*32*2/DS;
+    *pNumOutSamps = inDataLen<<2;
+
+    acc = &cicState[0];
+    diffDly = &cicState[CIC_NS];
+    pOutSamp = &outSamps[0];
+    for (i = 0; i < inDataLen; i++)
+    {
+        /* Process "left" channel MS 16-bit word for current 32-bit word */
+        cur16bW = lData[i]>>BITS_PER_16BW;
+        for (j = 0; j < CIC_DF; j++)
+        {
+            /* Get current input */
+            /* 0->-1, 1->+1 */
+            input = ((cur16bW>>(BITS_PER_16BW-2))&0x2) - 1;
+            cur16bW <<= 1;
+
+            /* Perform integration for current input */
+            acc[0] += input;
+            acc[1] += acc[0];
+            acc[2] += acc[1];
+            acc[3] += acc[2];
+        }
+
+        /* Perform decimation & differentiator stages */
+        diff[0] = acc[3] - diffDly[0];
+        diffDly[0] = acc[3];
+        diff[1] = diff[0] - diffDly[1];
+        diffDly[1] = diff[0];
+        diff[2] = diff[1] - diffDly[2];
+        diffDly[2] = diff[1];
+        diff[3] = diff[2] - diffDly[3];
+        diffDly[3] = diff[2];
+
+        /* Write output sample */
+        *pOutSamp++ = diff[3];
+
+        /* Process "left" channel LS 16-bit word for current 32-bit word */
+        cur16bW = lData[i]&0xFFFF;
+        for (j = 0; j < CIC_DF; j++)
+        {
+            /* Get current input */
+            /* 0->-1, 1->+1 */
+            input = ((cur16bW>>(BITS_PER_16BW-2))&0x2) - 1;
+            cur16bW <<= 1;
+
+            /* Perform integration for current input */
+            acc[0] += input;
+            acc[1] += acc[0];
+            acc[2] += acc[1];
+            acc[3] += acc[2];
+        }
+
+        /* Perform decimation & differentiator stages */
+        diff[0] = acc[3] - diffDly[0];
+        diffDly[0] = acc[3];
+        diff[1] = diff[0] - diffDly[1];
+        diffDly[1] = diff[0];
+        diff[2] = diff[1] - diffDly[2];
+        diffDly[2] = diff[1];
+        diff[3] = diff[2] - diffDly[3];
+        diffDly[3] = diff[2];
+
+        /* Write output sample */
+        *pOutSamp++ = diff[3];
+
+        /* Process "right" channel MS 16-bit word for current 32-bit word */
+        cur16bW = rData[i]>>16;
+        for (j = 0; j < CIC_DF; j++)
+        {
+            /* Get current input */
+            /* 0->-1, 1->+1 */
+            input = ((cur16bW>>(BITS_PER_16BW-2))&0x2) - 1;
+            cur16bW <<= 1;
+
+            /* Perform integration for current input */
+            acc[0] += input;
+            acc[1] += acc[0];
+            acc[2] += acc[1];
+            acc[3] += acc[2];
+        }
+
+        /* Perform decimation & differentiator stages */
+        diff[0] = acc[3] - diffDly[0];
+        diffDly[0] = acc[3];
+        diff[1] = diff[0] - diffDly[1];
+        diffDly[1] = diff[0];
+        diff[2] = diff[1] - diffDly[2];
+        diffDly[2] = diff[1];
+        diff[3] = diff[2] - diffDly[3];
+        diffDly[3] = diff[2];
+
+        /* Write output sample */
+        *pOutSamp++ = diff[3];
+
+        /* Process "right" channel LS 16-bit word for current 32-bit word */
+        cur16bW = rData[i]&0xFFFF;
+        for (j = 0; j < CIC_DF; j++)
+        {
+            /* Get current input */
+            /* 0->-1, 1->+1 */
+            input = ((cur16bW>>(BITS_PER_16BW-2))&0x2) - 1;
+            cur16bW <<= 1;
+
+            /* Perform integration for current input */
+            acc[0] += input;
+            acc[1] += acc[0];
+            acc[2] += acc[1];
+            acc[3] += acc[2];
+        }
+
+        /* Perform decimation & differentiator stages */
+        diff[0] = acc[3] - diffDly[0];
+        diffDly[0] = acc[3];
+        diff[1] = diff[0] - diffDly[1];
+        diffDly[1] = diff[0];
+        diff[2] = diff[1] - diffDly[2];
+        diffDly[2] = diff[1];
+        diff[3] = diff[2] - diffDly[3];
+        diffDly[3] = diff[2];
+
+        /* Write output sample */
+        *pOutSamp++ = diff[3];
+    }
+}
diff --git a/src/pick_bits_cic_f2.asm b/src/pick_bits_cic_f2.asm
new file mode 100755 (executable)
index 0000000..712e39e
--- /dev/null
@@ -0,0 +1,398 @@
+;============================================================================
+; Copyright (c) 2016 Texas Instruments Incorporated.
+;
+;  Redistribution and use in source and binary forms, with or without
+;  modification, are permitted provided that the following conditions
+;  are met:
+;
+;    Redistributions of source code must retain the above copyright
+;    notice, this list of conditions and the following disclaimer.
+;
+;    Redistributions in binary form must reproduce the above copyright
+;    notice, this list of conditions and the following disclaimer in the
+;    documentation and/or other materials provided with the
+;    distribution.
+;
+;    Neither the name of Texas Instruments Incorporated nor the names of
+;    its contributors may be used to endorse or promote products derived
+;    from this software without specific prior written permission.
+;
+;  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+;  "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 THE COPYRIGHT
+;  OWNER OR CONTRIBUTORS 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.
+;
+;===============================================================================
+; Function:    pickBitsCic
+; Processor:   C55xx, Rev. 3
+; Description: 
+;   Unpacks "left" and "right" 32-bit packed DMA buffers 
+;   containing output from digital mic.
+;   Performs CIC on unpacked data, DS = 16 & NS = 4.
+;
+;   x cycle inner loop.
+;
+;   C-callable.
+;   Mnemonic assembly.
+;
+; Usage:    void pick_bits_cic(
+;               Uint32 *lData,          -> XAR0
+;               Uint32 *rData,          -> XAR1
+;               Uint16 inDataLen,       -> T0
+;               Int32 *cicState,        -> XAR2
+;               Int32 *outSamps,        -> XAR3
+;               Uint16 *pNumOutSamps    -> XAR4
+;           );
+;
+;****************************************************************
+
+                .C54CM_off                      ; enable assembler for C54CM=0
+                .ARMS_off                       ; enable assembler for ARMS=0
+                .CPL_on                         ; enable assembler for CPL=1
+
+                .mmregs                         ; enable mem mapped register names
+
+                .def    _pickBitsCic
+
+                .include "pick_bits_cic.inc"
+
+; Stack frame
+; -----------
+RET_ADDR_SZ     .set    1                       ; return address
+REG_SAVE_SZ     .set    0                       ; save-on-entry registers saved
+FRAME_SZ        .set    0                       ; local variables
+ARG_BLK_SZ      .set    0                       ; argument block
+PARAM_OFFSET    .set    ARG_BLK_SZ + FRAME_SZ + REG_SAVE_SZ + RET_ADDR_SZ   ; offset to function arguments on stack
+
+; Local variables
+; ---------------
+
+; Register usage
+; --------------
+                .asg    XAR2, cicState_xptr     ; extended pointer to CIC state
+                .asg    AR0, lData_ptr          ; pointer to "left" input data
+                .asg    AR1, rData_ptr          ; pointer to "right" input data
+                .asg    AR3, outSamps_ptr       ; pointer to output samples
+                .asg    AR4, numOutSamps_ptr    ; pointer to number of output samples
+                .asg    BRC0, loop0_cnt         ; loop0 count
+                .asg    BRC1, loop1_cnt         ; loop1 count
+
+
+                .text
+_pickBitsCic:
+
+
+;
+; Save any save-on-entry registers that are used
+;----------------------------------------------------------------
+
+;
+; Allocate the local frame and argument block
+;----------------------------------------------------------------
+                AADD        #-(ARG_BLK_SZ + FRAME_SZ), SP 
+
+;
+; Save entry values for later
+;----------------------------------------------------------------
+
+;
+; Configure the status registers as needed
+;----------------------------------------------------------------
+                AND         #001FFh, mmap(ST0_55)   ; clear ACOV[0-3], TC[1-2], and C
+
+                ;OR          #04540h, mmap(ST1_55)   ; set CPL, M40, SXMD, FRCT
+                ;AND         #0FDDFh, mmap(ST1_55)   ; clear SATD, C54CM
+
+                ;AND         #07A00h, mmap(ST2_55)   ; clear ARMS, RDM, CDPLC, AR[0-7]LC
+                BCLR        ARMS                    ; clear ARMS
+
+                ;AND         #0FCDDh, mmap(ST3_55)   ; clear SATA, SMUL ; note -- must always write 1100b to bits 11-8, 0b to bit 4
+
+;
+; Compute number of output samples
+;----------------------------------------------------------------
+                MOV         T0, AC0                     ; AC0 = inDataLen
+                MOV         AC0 << #2, *numOutSamps_ptr ; *pNumOutSamps = inDataLen<<2
+
+;
+; Loop setup
+;----------------------------------------------------------------
+                ; Initialize loop0 (outer) count
+                ; Initialize loop1 (inner) count
+                SUB         #1, T0                  ; T0 = inBufLen-1
+             || MOV         #(DS-1), loop1_cnt
+                MOV         T0, mmap(@loop0_cnt)    ; loop0_cnt = inBufLen-1
+
+;
+; Output sample loop
+;----------------------------------------------------------------
+                RPTB        loop0-1
+
+;
+; Unpack current "left" word
+;----------------------------------------------------------------
+                ;
+                ; MSW of 32-bit word
+                ;
+
+                ; Load integrator state
+                AMOV        cicState_xptr, XAR4
+             || MOV         *lData_ptr+, T1  ; get MSW
+                MOV         dbl(*AR4+), AC0
+                MOV         dbl(*AR4+), AC1
+                MOV         dbl(*AR4+), AC2
+                MOV         dbl(*AR4+), AC3
+
+             || RPTBLOCAL   loop1_left1-1
+                MOV         #0, T0
+             || ROL         TC2, T1, TC2, T1
+                ROL         TC2, T0, TC2, T0    ; LSB of T0 = bit
+                XCCPART     T0==#0
+             || SUB         #1, T0              ; T0 = input = 2*bit-1: 0->-1, 1->+1
+
+                ; Perform integration for current input
+                ADD         T0, AC0             ; compute integrator 1 output ; AC0 = acc[0]
+                ADD         AC0, AC1            ; compute integrator 2 output ; AC1 = acc[1]
+                ADD         AC1, AC2            ; compute integrator 3 output ; AC2 = acc[2]
+                ADD         AC2, AC3            ; compute integrator 4 output ; AC3 = acc[3]
+loop1_left1:
+
+                ; Store integrator state
+                AMOV        cicState_xptr, XAR4
+                MOV         AC0, dbl(*AR4+)
+                MOV         AC1, dbl(*AR4+)
+                MOV         AC2, dbl(*AR4+)
+                MOV         AC3, dbl(*AR4+)
+
+                ; Compute differentiator output
+                MOV         dbl(*AR4), AC0      ; AC0 = diffDly[0]
+                MOV         AC3, dbl(*AR4+)     ; diffDly[0] = AC3 = acc[3]
+             || SUB         AC0, AC3            ; compute differentiator 1 output
+                                                ; AC3 = diff[0] = acc[3] - diffDly[0]
+
+                MOV         dbl(*AR4), AC0      ; AC0 = diffDly[1]
+                MOV         AC3, dbl(*AR4+)     ; diffDly[1] = AC3 = diff[0]
+             || SUB         AC0, AC3            ; compute differentiator 1 output
+                                                ; AC3 = diff[1] = diff[0] - diffDly[1]
+
+                MOV         dbl(*AR4), AC0      ; AC0 = diffDly[2]
+                MOV         AC3, dbl(*AR4+)     ; diffDly[2] = AC3 = diff[1]
+             || SUB         AC0, AC3            ; compute differentiator 2 output
+                                                ; AC3 = diff[2] = diff[1] - diffDly[2]
+
+                MOV         dbl(*AR4), AC0      ; AC0 = diffDly[3]
+                MOV         AC3, dbl(*AR4+)     ; diffDly[3] = AC3 = diff[2]
+             || SUB         AC0, AC3            ; compute differentiator 3 output
+                                                ; AC3 = diff[3] = diff[2] - diffDly[3]
+
+                ; Store output
+                MOV         AC3, dbl(*outSamps_ptr+)
+
+                ;
+                ; LSW of 32-bit word
+                ;
+
+                ; Load integrator state
+                AMOV        cicState_xptr, XAR4
+             || MOV         *lData_ptr+, T1  ; get LSW
+                MOV         dbl(*AR4+), AC0
+             ;|| MOV         AC3, dbl(*outSamps_ptr+)
+                MOV         dbl(*AR4+), AC1
+                MOV         dbl(*AR4+), AC2
+                MOV         dbl(*AR4+), AC3
+
+             || RPTBLOCAL   loop1_left2-1
+                MOV         #0, T0
+             || ROL         TC2, T1, TC2, T1
+                ROL         TC2, T0, TC2, T0    ; LSB of T0 = bit
+                XCCPART     T0==#0
+             || SUB         #1, T0              ; T0 = input = 2*bit-1: 0->-1, 1->+1
+
+                ; Perform integration for current input
+                ADD         T0, AC0             ; compute integrator 1 output ; AC0 = acc[0]
+                ADD         AC0, AC1            ; compute integrator 2 output ; AC1 = acc[1]
+                ADD         AC1, AC2            ; compute integrator 3 output ; AC2 = acc[2]
+                ADD         AC2, AC3            ; compute integrator 4 output ; AC3 = acc[3]
+loop1_left2:
+
+                ; Store integrator state
+                AMOV        cicState_xptr, XAR4
+                MOV         AC0, dbl(*AR4+)
+                MOV         AC1, dbl(*AR4+)
+                MOV         AC2, dbl(*AR4+)
+                MOV         AC3, dbl(*AR4+)
+
+                ; Compute differentiator output
+                MOV         dbl(*AR4), AC0      ; AC0 = diffDly[0]
+                MOV         AC3, dbl(*AR4+)     ; diffDly[0] = AC3 = acc[3]
+             || SUB         AC0, AC3            ; compute differentiator 1 output
+                                                ; AC3 = diff[0] = acc[3] - diffDly[0]
+
+                MOV         dbl(*AR4), AC0      ; AC0 = diffDly[1]
+                MOV         AC3, dbl(*AR4+)     ; diffDly[1] = AC3 = diff[0]
+             || SUB         AC0, AC3            ; compute differentiator 1 output
+                                                ; AC3 = diff[1] = diff[0] - diffDly[1]
+
+                MOV         dbl(*AR4), AC0      ; AC0 = diffDly[2]
+                MOV         AC3, dbl(*AR4+)     ; diffDly[2] = AC3 = diff[1]
+             || SUB         AC0, AC3            ; compute differentiator 2 output
+                                                ; AC3 = diff[2] = diff[1] - diffDly[2]
+
+                MOV         dbl(*AR4), AC0      ; AC0 = diffDly[3]
+                MOV         AC3, dbl(*AR4+)     ; diffDly[3] = AC3 = diff[2]
+             || SUB         AC0, AC3            ; compute differentiator 3 output
+                                                ; AC3 = diff[3] = diff[2] - diffDly[3]
+
+                ; Store output
+                MOV         AC3, dbl(*outSamps_ptr+)
+
+;
+; Unpack current "right" word
+;----------------------------------------------------------------
+                ;
+                ; MSW of 32-bit word
+                ;
+
+                ; Load integrator state
+                AMOV        cicState_xptr, XAR4
+             || MOV         *rData_ptr+, T1  ; get MSW
+                MOV         dbl(*AR4+), AC0
+             ;|| MOV         AC3, dbl(*outSamps_ptr+)
+                MOV         dbl(*AR4+), AC1
+                MOV         dbl(*AR4+), AC2
+                MOV         dbl(*AR4+), AC3
+
+             || RPTBLOCAL   loop1_right1-1
+                MOV         #0, T0
+             || ROL         TC2, T1, TC2, T1
+                ROL         TC2, T0, TC2, T0    ; LSB of T0 = bit
+                XCCPART     T0==#0
+             || SUB         #1, T0              ; T0 = input = 2*bit-1: 0->-1, 1->+1
+
+                ; Perform integration for current input
+                ADD         T0, AC0             ; compute integrator 1 output ; AC0 = acc[0]
+                ADD         AC0, AC1            ; compute integrator 2 output ; AC1 = acc[1]
+                ADD         AC1, AC2            ; compute integrator 3 output ; AC2 = acc[2]
+                ADD         AC2, AC3            ; compute integrator 4 output ; AC3 = acc[3]
+loop1_right1:
+
+                ; Store integrator state
+                AMOV        cicState_xptr, XAR4
+                MOV         AC0, dbl(*AR4+)
+                MOV         AC1, dbl(*AR4+)
+                MOV         AC2, dbl(*AR4+)
+                MOV         AC3, dbl(*AR4+)
+
+                ; Compute differentiator output
+                MOV         dbl(*AR4), AC0      ; AC0 = diffDly[0]
+                MOV         AC3, dbl(*AR4+)     ; diffDly[0] = AC3 = acc[3]
+             || SUB         AC0, AC3            ; compute differentiator 1 output
+                                                ; AC3 = diff[0] = acc[3] - diffDly[0]
+
+                MOV         dbl(*AR4), AC0      ; AC0 = diffDly[1]
+                MOV         AC3, dbl(*AR4+)     ; diffDly[1] = AC3 = diff[0]
+             || SUB         AC0, AC3            ; compute differentiator 1 output
+                                                ; AC3 = diff[1] = diff[0] - diffDly[1]
+
+                MOV         dbl(*AR4), AC0      ; AC0 = diffDly[2]
+                MOV         AC3, dbl(*AR4+)     ; diffDly[2] = AC3 = diff[1]
+             || SUB         AC0, AC3            ; compute differentiator 2 output
+                                                ; AC3 = diff[2] = diff[1] - diffDly[2]
+
+                MOV         dbl(*AR4), AC0      ; AC0 = diffDly[3]
+                MOV         AC3, dbl(*AR4+)     ; diffDly[3] = AC3 = diff[2]
+             || SUB         AC0, AC3            ; compute differentiator 3 output
+                                                ; AC3 = diff[3] = diff[2] - diffDly[3]
+
+                ; Store output
+                MOV         AC3, dbl(*outSamps_ptr+)
+
+                ;
+                ; LSW of 32-bit word
+                ;
+
+                ; Load integrator state
+                AMOV        cicState_xptr, XAR4
+             || MOV         *rData_ptr+, T1  ; get LSW
+                MOV         dbl(*AR4+), AC0
+             ;|| MOV         AC3, dbl(*outSamps_ptr+)
+                MOV         dbl(*AR4+), AC1
+                MOV         dbl(*AR4+), AC2
+                MOV         dbl(*AR4+), AC3
+
+             || RPTBLOCAL   loop1_right2-1
+                MOV         #0, T0
+             || ROL         TC2, T1, TC2, T1
+                ROL         TC2, T0, TC2, T0    ; LSB of T0 = bit
+                XCCPART     T0==#0
+             || SUB         #1, T0              ; T0 = input = 2*bit-1: 0->-1, 1->+1
+
+                ; Perform integration for current input
+                ADD         T0, AC0             ; compute integrator 1 output ; AC0 = acc[0]
+                ADD         AC0, AC1            ; compute integrator 2 output ; AC1 = acc[1]
+                ADD         AC1, AC2            ; compute integrator 3 output ; AC2 = acc[2]
+                ADD         AC2, AC3            ; compute integrator 4 output ; AC3 = acc[3]
+loop1_right2:
+
+                ; Store integrator state
+                AMOV        cicState_xptr, XAR4
+                MOV         AC0, dbl(*AR4+)
+                MOV         AC1, dbl(*AR4+)
+                MOV         AC2, dbl(*AR4+)
+                MOV         AC3, dbl(*AR4+)
+
+                ; Compute differentiator output
+                MOV         dbl(*AR4), AC0      ; AC0 = diffDly[0]
+                MOV         AC3, dbl(*AR4+)     ; diffDly[0] = AC3 = acc[3]
+             || SUB         AC0, AC3            ; compute differentiator 1 output
+                                                ; AC3 = diff[0] = acc[3] - diffDly[0]
+
+                MOV         dbl(*AR4), AC0      ; AC0 = diffDly[1]
+                MOV         AC3, dbl(*AR4+)     ; diffDly[1] = AC3 = diff[0]
+             || SUB         AC0, AC3            ; compute differentiator 1 output
+                                                ; AC3 = diff[1] = diff[0] - diffDly[1]
+
+                MOV         dbl(*AR4), AC0      ; AC0 = diffDly[2]
+                MOV         AC3, dbl(*AR4+)     ; diffDly[2] = AC3 = diff[1]
+             || SUB         AC0, AC3            ; compute differentiator 2 output
+                                                ; AC3 = diff[2] = diff[1] - diffDly[2]
+
+                MOV         dbl(*AR4), AC0      ; AC0 = diffDly[3]
+                MOV         AC3, dbl(*AR4+)     ; diffDly[3] = AC3 = diff[2]
+             || SUB         AC0, AC3            ; compute differentiator 3 output
+                                                ; AC3 = diff[3] = diff[2] - diffDly[3]
+
+                ; Store output
+                MOV         AC3, dbl(*outSamps_ptr+)
+loop0:
+
+;
+; Restore status regs to expected C-convention values as needed
+;----------------------------------------------------------------
+                ;BCLR        M40                 ; clear M40
+                ;BCLR        FRCT                ; clear FRCT
+
+                BSET        ARMS                ; set ARMS
+
+                ;BSET        SMUL                ; set SMUL
+
+;
+; Deallocate the local frame and argument block
+;----------------------------------------------------------------
+                AADD        #(ARG_BLK_SZ + FRAME_SZ), SP 
+
+;
+; Restore any save-on-entry registers that are used
+;----------------------------------------------------------------
+
+;
+; Return to calling function
+;----------------------------------------------------------------
+                RET                             ; return to calling function
diff --git a/src/pll_control.c b/src/pll_control.c
new file mode 100755 (executable)
index 0000000..e56194a
--- /dev/null
@@ -0,0 +1,146 @@
+/* ============================================================================
+ * Copyright (c) 2016 Texas Instruments Incorporated.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions
+ *  are met:
+ *
+ *    Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ *    Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the
+ *    distribution.
+ *
+ *    Neither the name of Texas Instruments Incorporated nor the names of
+ *    its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ *  "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 THE COPYRIGHT
+ *  OWNER OR CONTRIBUTORS 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.
+ *
+  ===============================================================================*/
+#include "csl_pll.h"
+#include "csl_general.h"
+#include "csl_pllAux.h"
+#include "pll_control.h"
+
+PLL_Obj pllObj;
+PLL_Config pllCfg1;
+
+PLL_Handle hPll;
+
+const PLL_Config pllCfg_16p384MHz   = {0x83E4, 0x8000, 0x0806, 0x0201};
+const PLL_Config pllCfg_32p768MHz   = {0x87CC, 0x8000, 0x0806, 0x0201};
+const PLL_Config pllCfg_40MHz       = {0x8988, 0x8000, 0x0806, 0x0201};
+const PLL_Config pllCfg_50MHz       = {0x8BE8, 0x8000, 0x0806, 0x0201};
+const PLL_Config pllCfg_60MHz       = {0x8724, 0x8000, 0x0806, 0x0000};
+const PLL_Config pllCfg_75MHz       = {0x88ED, 0x8000, 0x0806, 0x0000};
+const PLL_Config pllCfg_100MHz      = {0x8BE8, 0x8000, 0x0806, 0x0000};
+const PLL_Config pllCfg_120MHz      = {0x8E4A, 0x8000, 0x0806, 0x0000};
+
+PLL_Config *pConfigInfo;
+
+/* Sets PLL to desired output frequency = 
+{32.768, 40, 50, 60, 75, 100, 120} MHZ.
+Default is 60 MHz.
+Assumes CPU core voltage is set appropriately for requested output frequency. */
+CSL_Status pll_sample(
+    EPllFreq pllFreq
+)
+{
+    CSL_Status status;
+    volatile int i;
+
+    status = PLL_init(&pllObj, CSL_PLL_INST_0);
+    if (status != CSL_SOK)
+    {
+        return status;
+    }
+
+    hPll = (PLL_Handle)(&pllObj);
+
+    PLL_reset(hPll);
+
+    status = PLL_bypass(hPll);
+    if (status != CSL_SOK)
+    {
+        return status;
+    }
+
+    /* Configure the PLL */
+    switch (pllFreq)
+    {
+    case PLL_FREQ_16P384MHZ:
+        pConfigInfo = (PLL_Config *)&pllCfg_16p384MHz;
+        break;
+
+    case PLL_FREQ_32P768MHZ:
+        pConfigInfo = (PLL_Config *)&pllCfg_32p768MHz;
+        break;
+
+    case PLL_FREQ_40MHZ:
+        pConfigInfo = (PLL_Config *)&pllCfg_40MHz;
+        break;
+        
+    case PLL_FREQ_50MHZ:
+        pConfigInfo = (PLL_Config *)&pllCfg_50MHz;
+        break;
+
+    case PLL_FREQ_60MHZ:
+        pConfigInfo = (PLL_Config *)&pllCfg_60MHz;
+        break;
+
+    case PLL_FREQ_75MHZ:
+        pConfigInfo = (PLL_Config *)&pllCfg_75MHz;
+        break;
+
+    case PLL_FREQ_100MHZ:
+        pConfigInfo = (PLL_Config *)&pllCfg_100MHz;
+        break;
+
+    case PLL_FREQ_120MHZ:
+        pConfigInfo = (PLL_Config *)&pllCfg_120MHz;
+        break;
+    
+    default:
+        pConfigInfo = (PLL_Config *)&pllCfg_60MHz;
+    }
+    
+    // set the PLL using CSL function
+    status = PLL_config (hPll, pConfigInfo);
+    if (status != CSL_SOK)
+    {
+        return(status);
+    }
+
+    // read the PLL configure back
+    status = PLL_getConfig(hPll, &pllCfg1);
+    if (status != CSL_SOK)
+    {
+        return status;
+    }
+
+    /* Wait for PLL to stabilize */
+    for (i=0; i<100; i++);
+
+    // enable the PLL
+    status = PLL_enable(hPll);
+    if (status != CSL_SOK)
+    {
+        return status;
+    }
+
+    return CSL_SOK;
+}
+
diff --git a/target_test/ccsv6/.ccsproject b/target_test/ccsv6/.ccsproject
new file mode 100755 (executable)
index 0000000..527cc8e
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?ccsproject version="1.0"?>
+
+<projectOptions>
+<deviceVariant value="TMS320C55XX.TMS320C5515"/>
+<deviceEndianness value="big"/>
+<codegenToolVersion value="4.3.9"/>
+<isElfFormat value="false"/>
+<rts value="libc.a"/>
+<templateProperties value="id=com.ti.common.project.core.emptyProjectTemplate,"/>
+<deviceFamily value="C5500"/>
+<isTargetManual value="true"/>
+</projectOptions>
diff --git a/target_test/ccsv6/.cdtbuild b/target_test/ccsv6/.cdtbuild
new file mode 100755 (executable)
index 0000000..1c11449
--- /dev/null
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?fileVersion 3.1.0?>
+
+<ManagedProjectBuildInfo>
+<project id="target_test.com.ti.ccstudio.buildDefinitions.C5500.ProjectType.2084331840" name="C5500" projectType="com.ti.ccstudio.buildDefinitions.C5500.ProjectType">
+<configuration artifactExtension="out" artifactName="target_test" description="" id="com.ti.ccstudio.buildDefinitions.C5500.Debug.1833040721" name="Debug" parent="com.ti.ccstudio.buildDefinitions.C5500.Debug">
+<toolChain id="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.DebugToolchain.1206036181" name="TI Code Generation Tools" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.linkerDebug.43341095">
+<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1345715428" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=TMS320C55XX.TMS320C5515"/>
+<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=big"/>
+<listOptionValue builtIn="false" value="OUTPUT_FORMAT=COFF"/>
+<listOptionValue builtIn="false" value="CCS_MBS_VERSION=4.2.4"/>
+<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
+<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
+<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1161319148" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="4.3.9" valueType="string"/>
+<tool id="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.compilerDebug.562786076" name="C5500 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.compilerDebug">
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.DIAG_WARNING.977417144" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.DIAG_WARNING" valueType="stringList">
+<listOptionValue builtIn="false" value="225"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.MEMORY_MODEL.577563840" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.MEMORY_MODEL" value="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.MEMORY_MODEL.large" valueType="enumerated"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.PTRDIFF_SIZE.896102196" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.PTRDIFF_SIZE" value="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.PTRDIFF_SIZE.32" valueType="enumerated"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.SILICON_VERSION.2070783614" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.SILICON_VERSION" value="5515" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.INCLUDE_PATH.2046510679" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.INCLUDE_PATH" valueType="includePath">
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${CSL_VC5505_COMMON_ROOT}/inc&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${TARGET_TEST_COMMON_ROOT}/include&quot;"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.ALGEBRAIC.1008021793" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.ALGEBRAIC" value="false" valueType="boolean"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.GEN_FUNC_SUBSECTIONS.2136043469" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.GEN_FUNC_SUBSECTIONS" value="true" valueType="boolean"/>
+</tool>
+<tool id="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.linkerDebug.43341095" name="C5500 Linker" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.linkerDebug">
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.OUTPUT_FILE.2070728659" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.OUTPUT_FILE" value="&quot;target_test.out&quot;" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.MAP_FILE.553637859" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.MAP_FILE" value="&quot;target_test.map&quot;" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.LIBRARY.664448360" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.LIBRARY" valueType="libs">
+<listOptionValue builtIn="false" value="&quot;rts55x.lib&quot;"/>
+<listOptionValue builtIn="false" value="&quot;cslVC5505.lib&quot;"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.SEARCH_PATH.123326594" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.SEARCH_PATH" valueType="stringList">
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${CSL_VC5505_COMMON_ROOT}/build/ccsv4/Debug&quot;"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.STACK_SIZE.651753953" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.STACK_SIZE" value="0x400" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.SYS_STACKSIZE.531618995" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.SYS_STACKSIZE" value="0x400" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.HEAP_SIZE.956905372" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.HEAP_SIZE" value="0x800" valueType="string"/>
+</tool>
+<macros expandEnvironmentMacros="true"/>
+</toolChain>
+<resourceConfiguration exclude="false" id="com.ti.ccstudio.buildDefinitions.C5500.Debug.1833040721./target_test/IdleLoop.c" name="IdleLoop.c" rcbsApplicability="disable" resourcePath="/target_test/IdleLoop.c" toolsToInvoke="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.compilerDebug.562786076./target_test/IdleLoop.c">
+<tool id="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.compilerDebug.562786076./target_test/IdleLoop.c" name="C5500 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.compilerDebug.562786076">
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.ALGEBRAIC.1649045946" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.ALGEBRAIC" value="true" valueType="boolean"/>
+</tool>
+</resourceConfiguration>
+</configuration>
+<configuration artifactExtension="out" artifactName="target_test" description="" id="com.ti.ccstudio.buildDefinitions.C5500.Release.573441195" name="Release" parent="com.ti.ccstudio.buildDefinitions.C5500.Release">
+<toolChain id="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.ReleaseToolchain.1650177534" name="TI Code Generation Tools" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.ReleaseToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.linkerRelease.2096718412">
+<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1968587292" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=TMS320C55XX.TMS320C5515"/>
+<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=big"/>
+<listOptionValue builtIn="false" value="OUTPUT_FORMAT=COFF"/>
+<listOptionValue builtIn="false" value="CCS_MBS_VERSION=4.2.4"/>
+<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
+<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
+<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.2109647570" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="4.3.9" valueType="string"/>
+<tool id="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.compilerRelease.1091891377" name="C5500 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.compilerRelease">
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.DIAG_WARNING.128766598" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.DIAG_WARNING" valueType="stringList">
+<listOptionValue builtIn="false" value="225"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.MEMORY_MODEL.1414961446" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.MEMORY_MODEL" value="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.MEMORY_MODEL.large" valueType="enumerated"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.PTRDIFF_SIZE.1933375780" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.PTRDIFF_SIZE" value="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.PTRDIFF_SIZE.16" valueType="enumerated"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.SILICON_VERSION.1401801658" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.SILICON_VERSION" value="5515" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.INCLUDE_PATH.1028554053" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.INCLUDE_PATH" valueType="includePath">
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+</option>
+</tool>
+<tool id="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.linkerRelease.2096718412" name="C5500 Linker" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.linkerRelease">
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.OUTPUT_FILE.1104400615" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.OUTPUT_FILE" value="&quot;target_test.out&quot;" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.MAP_FILE.1170439062" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.MAP_FILE" value="&quot;target_test.map&quot;" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.LIBRARY.689315060" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.LIBRARY" valueType="libs">
+<listOptionValue builtIn="false" value="&quot;libc.a&quot;"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.SEARCH_PATH.141609965" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.SEARCH_PATH" valueType="stringList">
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+</option>
+</tool>
+</toolChain>
+</configuration>
+<macros/>
+</project>
+</ManagedProjectBuildInfo>
diff --git a/target_test/ccsv6/.cdtbuild_initial b/target_test/ccsv6/.cdtbuild_initial
new file mode 100755 (executable)
index 0000000..1c11449
--- /dev/null
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?fileVersion 3.1.0?>
+
+<ManagedProjectBuildInfo>
+<project id="target_test.com.ti.ccstudio.buildDefinitions.C5500.ProjectType.2084331840" name="C5500" projectType="com.ti.ccstudio.buildDefinitions.C5500.ProjectType">
+<configuration artifactExtension="out" artifactName="target_test" description="" id="com.ti.ccstudio.buildDefinitions.C5500.Debug.1833040721" name="Debug" parent="com.ti.ccstudio.buildDefinitions.C5500.Debug">
+<toolChain id="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.DebugToolchain.1206036181" name="TI Code Generation Tools" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.linkerDebug.43341095">
+<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1345715428" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=TMS320C55XX.TMS320C5515"/>
+<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=big"/>
+<listOptionValue builtIn="false" value="OUTPUT_FORMAT=COFF"/>
+<listOptionValue builtIn="false" value="CCS_MBS_VERSION=4.2.4"/>
+<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
+<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
+<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.1161319148" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="4.3.9" valueType="string"/>
+<tool id="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.compilerDebug.562786076" name="C5500 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.compilerDebug">
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.DIAG_WARNING.977417144" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.DIAG_WARNING" valueType="stringList">
+<listOptionValue builtIn="false" value="225"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.MEMORY_MODEL.577563840" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.MEMORY_MODEL" value="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.MEMORY_MODEL.large" valueType="enumerated"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.PTRDIFF_SIZE.896102196" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.PTRDIFF_SIZE" value="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.PTRDIFF_SIZE.32" valueType="enumerated"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.SILICON_VERSION.2070783614" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.SILICON_VERSION" value="5515" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.INCLUDE_PATH.2046510679" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.INCLUDE_PATH" valueType="includePath">
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${CSL_VC5505_COMMON_ROOT}/inc&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${TARGET_TEST_COMMON_ROOT}/include&quot;"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.ALGEBRAIC.1008021793" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.ALGEBRAIC" value="false" valueType="boolean"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.GEN_FUNC_SUBSECTIONS.2136043469" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.GEN_FUNC_SUBSECTIONS" value="true" valueType="boolean"/>
+</tool>
+<tool id="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.linkerDebug.43341095" name="C5500 Linker" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.linkerDebug">
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.OUTPUT_FILE.2070728659" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.OUTPUT_FILE" value="&quot;target_test.out&quot;" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.MAP_FILE.553637859" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.MAP_FILE" value="&quot;target_test.map&quot;" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.LIBRARY.664448360" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.LIBRARY" valueType="libs">
+<listOptionValue builtIn="false" value="&quot;rts55x.lib&quot;"/>
+<listOptionValue builtIn="false" value="&quot;cslVC5505.lib&quot;"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.SEARCH_PATH.123326594" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.SEARCH_PATH" valueType="stringList">
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${CSL_VC5505_COMMON_ROOT}/build/ccsv4/Debug&quot;"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.STACK_SIZE.651753953" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.STACK_SIZE" value="0x400" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.SYS_STACKSIZE.531618995" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.SYS_STACKSIZE" value="0x400" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.HEAP_SIZE.956905372" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.HEAP_SIZE" value="0x800" valueType="string"/>
+</tool>
+<macros expandEnvironmentMacros="true"/>
+</toolChain>
+<resourceConfiguration exclude="false" id="com.ti.ccstudio.buildDefinitions.C5500.Debug.1833040721./target_test/IdleLoop.c" name="IdleLoop.c" rcbsApplicability="disable" resourcePath="/target_test/IdleLoop.c" toolsToInvoke="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.compilerDebug.562786076./target_test/IdleLoop.c">
+<tool id="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.compilerDebug.562786076./target_test/IdleLoop.c" name="C5500 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.compilerDebug.562786076">
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.ALGEBRAIC.1649045946" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.ALGEBRAIC" value="true" valueType="boolean"/>
+</tool>
+</resourceConfiguration>
+</configuration>
+<configuration artifactExtension="out" artifactName="target_test" description="" id="com.ti.ccstudio.buildDefinitions.C5500.Release.573441195" name="Release" parent="com.ti.ccstudio.buildDefinitions.C5500.Release">
+<toolChain id="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.ReleaseToolchain.1650177534" name="TI Code Generation Tools" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.ReleaseToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.linkerRelease.2096718412">
+<option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1968587292" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+<listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=TMS320C55XX.TMS320C5515"/>
+<listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=big"/>
+<listOptionValue builtIn="false" value="OUTPUT_FORMAT=COFF"/>
+<listOptionValue builtIn="false" value="CCS_MBS_VERSION=4.2.4"/>
+<listOptionValue builtIn="false" value="LINKER_COMMAND_FILE="/>
+<listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
+<listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.2109647570" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="4.3.9" valueType="string"/>
+<tool id="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.compilerRelease.1091891377" name="C5500 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.compilerRelease">
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.DIAG_WARNING.128766598" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.DIAG_WARNING" valueType="stringList">
+<listOptionValue builtIn="false" value="225"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.MEMORY_MODEL.1414961446" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.MEMORY_MODEL" value="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.MEMORY_MODEL.large" valueType="enumerated"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.PTRDIFF_SIZE.1933375780" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.PTRDIFF_SIZE" value="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.PTRDIFF_SIZE.16" valueType="enumerated"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.SILICON_VERSION.1401801658" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.SILICON_VERSION" value="5515" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.INCLUDE_PATH.1028554053" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.compilerID.INCLUDE_PATH" valueType="includePath">
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+</option>
+</tool>
+<tool id="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.linkerRelease.2096718412" name="C5500 Linker" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.exe.linkerRelease">
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.OUTPUT_FILE.1104400615" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.OUTPUT_FILE" value="&quot;target_test.out&quot;" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.MAP_FILE.1170439062" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.MAP_FILE" value="&quot;target_test.map&quot;" valueType="string"/>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.LIBRARY.689315060" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.LIBRARY" valueType="libs">
+<listOptionValue builtIn="false" value="&quot;libc.a&quot;"/>
+</option>
+<option id="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.SEARCH_PATH.141609965" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.3.linkerID.SEARCH_PATH" valueType="stringList">
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>
+<listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+</option>
+</tool>
+</toolChain>
+</configuration>
+<macros/>
+</project>
+</ManagedProjectBuildInfo>
diff --git a/target_test/ccsv6/.cdtproject b/target_test/ccsv6/.cdtproject
new file mode 100755 (executable)
index 0000000..3625f57
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse-cdt version="2.0"?>
+
+<cdtproject id="org.eclipse.cdt.managedbuilder.core.managedMake">
+<extension id="org.eclipse.cdt.managedbuilder.core.ManagedBuildManager" point="org.eclipse.cdt.core.ScannerInfoProvider"/>
+<extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
+<data>
+<item id="org.eclipse.cdt.core.pathentry">
+<pathentry kind="src" path=""/>
+<pathentry kind="out" path=""/>
+<pathentry kind="con" path="org.eclipse.cdt.managedbuilder.MANAGED_CONTAINER"/>
+<pathentry kind="con" path="com.ti.ccstudio.managedbuild.core.CCS_CONTAINER"/>
+</item>
+</data>
+</cdtproject>
diff --git a/target_test/ccsv6/.cproject b/target_test/ccsv6/.cproject
new file mode 100755 (executable)
index 0000000..4ec7c5a
--- /dev/null
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+       <storageModule configRelations="2" moduleId="org.eclipse.cdt.core.settings">
+               <cconfiguration id="com.ti.ccstudio.buildDefinitions.C5500.Debug.1833040721">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.C5500.Debug.1833040721" moduleId="org.eclipse.cdt.core.settings" name="Debug">
+                               <macros>
+                                       <stringMacro name="TARGET_TEST_COMMON_ROOT" type="VALUE_PATH_DIR" value="${PROJECT_ROOT}/../.."/>
+                               </macros>
+                               <externalSettings/>
+                               <extensions>
+                                       <extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
+                               </extensions>
+                       </storageModule>
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+                               <configuration artifactExtension="out" artifactName="target_test" buildProperties="" description="" id="com.ti.ccstudio.buildDefinitions.C5500.Debug.1833040721" name="Debug" parent="com.ti.ccstudio.buildDefinitions.C5500.Debug">
+                                       <folderInfo id="com.ti.ccstudio.buildDefinitions.C5500.Debug.1833040721.679942176" name="/" resourcePath="">
+                                               <toolChain id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.DebugToolchain.942404988" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.DebugToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.linkerDebug.1692503917">
+                                                       <option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.792017523" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+                                                               <listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=TMS320C55XX.TMS320C5515"/>
+                                                               <listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=big"/>
+                                                               <listOptionValue builtIn="false" value="OUTPUT_FORMAT=COFF"/>
+                                                               <listOptionValue builtIn="false" value="CCS_MBS_VERSION=6.1.3"/>
+                                                               <listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=rts55x.lib"/>
+                                                               <listOptionValue builtIn="false" value="LINKER_COMMAND_FILE=target_test.cmd"/>
+                                                               <listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
+                                                       </option>
+                                                       <option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.708671252" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="4.4.1" valueType="string"/>
+                                                       <targetPlatform id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.targetPlatformDebug.279929335" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.targetPlatformDebug"/>
+                                                       <builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.builderDebug.1786528707" keepEnvironmentInBuildfile="false" name="GNU Make" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.builderDebug"/>
+                                                       <tool id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.compilerDebug.1160826463" name="C5500 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.compilerDebug">
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.DEFINE.64343132" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.DEFINE" valueType="definedSymbols">
+                                                                       <listOptionValue builtIn="false" value="c5515"/>
+                                                               </option>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.MEMORY_MODEL.796164714" name="Specify memory model (small/large/huge) (--memory_model)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.MEMORY_MODEL" value="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.MEMORY_MODEL.large" valueType="enumerated"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.PTRDIFF_SIZE.155697119" name="Specify type size to hold results of pointer math (--ptrdiff_size)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.PTRDIFF_SIZE" value="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.PTRDIFF_SIZE.32" valueType="enumerated"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.SILICON_VERSION.1539405182" name="device+optional revision of target silicon (--silicon_version, -v)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.SILICON_VERSION" value="5515" valueType="string"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.DEBUGGING_MODEL.1022602289" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.INCLUDE_PATH.1559178112" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.INCLUDE_PATH" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${CSL_ROOT}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${TARGET_TEST_COMMON_ROOT}/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${CSL_ROOT}/inc&quot;"/>
+                                                               </option>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.DIAG_WARNING.973086146" name="Treat diagnostic &lt;id&gt; as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.DIAG_WARNING" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="225"/>
+                                                               </option>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.GEN_FUNC_SUBSECTIONS.98591360" name="Place each function in a separate subsection (--gen_func_subsections, -mo)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.GEN_FUNC_SUBSECTIONS" value="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.GEN_FUNC_SUBSECTIONS.on" valueType="enumerated"/>
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__C_SRCS.1308294631" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__C_SRCS"/>
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__CPP_SRCS.233117871" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__CPP_SRCS"/>
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM_SRCS.1219199825" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM_SRCS"/>
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM2_SRCS.2006058914" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM2_SRCS"/>
+                                                       </tool>
+                                                       <tool id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.linkerDebug.1692503917" name="C5500 Linker" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.linkerDebug">
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.STACK_SIZE.1836866758" name="Set C system stack size (--stack_size, -stack)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.STACK_SIZE" value="0x400" valueType="string"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.SYS_STACKSIZE.1252471209" name="Specify size of output sysstack section (--sys_stacksize, -sysstack)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.SYS_STACKSIZE" value="0x400" valueType="string"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.HEAP_SIZE.676547570" name="Heap size for C/C++ dynamic memory allocation (--heap_size, -heap)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.HEAP_SIZE" value="0x800" valueType="string"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.OUTPUT_FILE.1273197990" name="Specify output file name (--output_file, -o)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.OUTPUT_FILE" value="&quot;target_test.out&quot;" valueType="string"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.MAP_FILE.1217515331" name="Input and output sections listed into &lt;file&gt; (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.MAP_FILE" value="&quot;target_test.map&quot;" valueType="string"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.LIBRARY.1565378457" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.LIBRARY" valueType="libs">
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/C55XXCSL_LP/Debug/C55XXCSL_LP.lib}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;rts55x.lib&quot;"/>
+                                                               </option>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.SEARCH_PATH.841713843" name="Add &lt;dir&gt; to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.SEARCH_PATH" valueType="libPaths">
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/C55XXCSL_LP/Debug}&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+                                                               </option>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.XML_LINK_INFO.804252539" name="Detailed link information data-base into &lt;file&gt; (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.XML_LINK_INFO" value="&quot;target_test_linkInfo.xml&quot;" valueType="string"/>
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exeLinker.inputType__CMD_SRCS.1949828244" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exeLinker.inputType__CMD_SRCS"/>
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exeLinker.inputType__CMD2_SRCS.891644525" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exeLinker.inputType__CMD2_SRCS"/>
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exeLinker.inputType__GEN_CMDS.9037614" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exeLinker.inputType__GEN_CMDS"/>
+                                                       </tool>
+                                                       <tool id="com.ti.ccstudio.buildDefinitions.C5500_4.4.hex.972001684" name="C5500 Hex Utility" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.hex"/>
+                                               </toolChain>
+                                       </folderInfo>
+                                       <fileInfo id="com.ti.ccstudio.buildDefinitions.C5500.Debug.1833040721.pll_control.c" name="pll_control.c" rcbsApplicability="disable" resourcePath="pll_control.c" toolsToInvoke="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.compilerDebug.1160826463.1239189430">
+                                               <tool id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.compilerDebug.1160826463.1239189430" name="C5500 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.compilerDebug.1160826463">
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__C_SRCS.901928529" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__C_SRCS"/>
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__CPP_SRCS.281203287" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__CPP_SRCS"/>
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM_SRCS.1812512755" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM_SRCS"/>
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM2_SRCS.1323481965" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM2_SRCS"/>
+                                               </tool>
+                                       </fileInfo>
+                                       <fileInfo id="com.ti.ccstudio.buildDefinitions.C5500.Debug.1833040721.IdleLoop.c" name="IdleLoop.c" rcbsApplicability="disable" resourcePath="IdleLoop.c" toolsToInvoke="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.compilerDebug.1160826463.1956984940">
+                                               <tool id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.compilerDebug.1160826463.1956984940" name="C5500 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.compilerDebug.1160826463">
+                                                       <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.ALGEBRAIC.2060998823" name="Codegen outputs algebraic assembly (--algebraic, -mg)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.ALGEBRAIC" value="true" valueType="boolean"/>
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__C_SRCS.1188114126" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__C_SRCS"/>
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__CPP_SRCS.351934197" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__CPP_SRCS"/>
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM_SRCS.2059827716" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM_SRCS"/>
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM2_SRCS.855233248" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM2_SRCS"/>
+                                               </tool>
+                                       </fileInfo>
+                                       <sourceEntries>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+                                       </sourceEntries>
+                               </configuration>
+                       </storageModule>
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings">
+                               <externalSettings containerId="C55XXCSL_LP;com.ti.ccstudio.buildDefinitions.C5500.Debug.1599296540" factoryId="org.eclipse.cdt.core.cfg.export.settings.sipplier"/>
+                       </storageModule>
+               </cconfiguration>
+               <cconfiguration id="com.ti.ccstudio.buildDefinitions.C5500.Release.573441195">
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.ti.ccstudio.buildDefinitions.C5500.Release.573441195" moduleId="org.eclipse.cdt.core.settings" name="Release">
+                               <macros>
+                                       <stringMacro name="TARGET_TEST_COMMON_ROOT" type="VALUE_PATH_DIR" value="${PROJECT_ROOT}/../.."/>
+                               </macros>
+                               <externalSettings/>
+                               <extensions>
+                                       <extension id="com.ti.ccstudio.errorparser.CoffErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="com.ti.ccstudio.errorparser.LinkErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="com.ti.ccstudio.errorparser.AsmErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+                                       <extension id="com.ti.ccstudio.binaryparser.CoffParser" point="org.eclipse.cdt.core.BinaryParser"/>
+                               </extensions>
+                       </storageModule>
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+                               <configuration artifactExtension="out" artifactName="target_test" buildProperties="" description="" id="com.ti.ccstudio.buildDefinitions.C5500.Release.573441195" name="Release" parent="com.ti.ccstudio.buildDefinitions.C5500.Release">
+                                       <folderInfo id="com.ti.ccstudio.buildDefinitions.C5500.Release.573441195.965678354" name="/" resourcePath="">
+                                               <toolChain id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.ReleaseToolchain.1152340406" name="TI Build Tools" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.ReleaseToolchain" targetTool="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.linkerRelease.1258670930">
+                                                       <option id="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS.1433455083" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_TAGS" valueType="stringList">
+                                                               <listOptionValue builtIn="false" value="DEVICE_CONFIGURATION_ID=TMS320C55XX.TMS320C5515"/>
+                                                               <listOptionValue builtIn="false" value="DEVICE_ENDIANNESS=big"/>
+                                                               <listOptionValue builtIn="false" value="OUTPUT_FORMAT=COFF"/>
+                                                               <listOptionValue builtIn="false" value="CCS_MBS_VERSION=6.1.3"/>
+                                                               <listOptionValue builtIn="false" value="LINKER_COMMAND_FILE=target_test.cmd"/>
+                                                               <listOptionValue builtIn="false" value="RUNTIME_SUPPORT_LIBRARY=libc.a"/>
+                                                               <listOptionValue builtIn="false" value="OUTPUT_TYPE=executable"/>
+                                                       </option>
+                                                       <option id="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION.909891630" name="Compiler version" superClass="com.ti.ccstudio.buildDefinitions.core.OPT_CODEGEN_VERSION" value="4.4.1" valueType="string"/>
+                                                       <targetPlatform id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.targetPlatformRelease.1201813644" name="Platform" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.targetPlatformRelease"/>
+                                                       <builder buildPath="${BuildDirectory}" id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.builderRelease.1833857427" keepEnvironmentInBuildfile="false" name="GNU Make" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.builderRelease"/>
+                                                       <tool id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.compilerRelease.1090042953" name="C5500 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.compilerRelease">
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.DEFINE.1195803271" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.DEFINE" valueType="definedSymbols">
+                                                                       <listOptionValue builtIn="false" value="c5515"/>
+                                                               </option>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.MEMORY_MODEL.910432337" name="Specify memory model (small/large/huge) (--memory_model)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.MEMORY_MODEL" value="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.MEMORY_MODEL.large" valueType="enumerated"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.PTRDIFF_SIZE.1473907087" name="Specify type size to hold results of pointer math (--ptrdiff_size)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.PTRDIFF_SIZE" value="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.PTRDIFF_SIZE.16" valueType="enumerated"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.SILICON_VERSION.906390288" name="device+optional revision of target silicon (--silicon_version, -v)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.SILICON_VERSION" value="5515" valueType="string"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.DEBUGGING_MODEL.999899290" name="Debugging model" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.DEBUGGING_MODEL" value="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.DEBUGGING_MODEL.SYMDEBUG__DWARF" valueType="enumerated"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.INCLUDE_PATH.43424898" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.INCLUDE_PATH" valueType="includePath">
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${TARGET_TEST_COMMON_ROOT}/c55xx_csl/inc&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${TARGET_TEST_COMMON_ROOT}/include&quot;"/>
+                                                               </option>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.DIAG_WARNING.1849383408" name="Treat diagnostic &lt;id&gt; as warning (--diag_warning, -pdsw)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.DIAG_WARNING" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="225"/>
+                                                               </option>
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__C_SRCS.1434330911" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__C_SRCS"/>
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__CPP_SRCS.947746524" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__CPP_SRCS"/>
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM_SRCS.794122419" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM_SRCS"/>
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM2_SRCS.314926710" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM2_SRCS"/>
+                                                       </tool>
+                                                       <tool id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.linkerRelease.1258670930" name="C5500 Linker" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.linkerRelease">
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.STACK_SIZE.1802094882" name="Set C system stack size (--stack_size, -stack)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.STACK_SIZE" value="0x200" valueType="string"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.SYS_STACKSIZE.1484072024" name="Specify size of output sysstack section (--sys_stacksize, -sysstack)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.SYS_STACKSIZE" value="0x200" valueType="string"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.HEAP_SIZE.1402264045" name="Heap size for C/C++ dynamic memory allocation (--heap_size, -heap)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.HEAP_SIZE" value="0x400" valueType="string"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.OUTPUT_FILE.1782351553" name="Specify output file name (--output_file, -o)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.OUTPUT_FILE" value="&quot;target_test.out&quot;" valueType="string"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.MAP_FILE.627767610" name="Input and output sections listed into &lt;file&gt; (--map_file, -m)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.MAP_FILE" value="&quot;target_test.map&quot;" valueType="string"/>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.SEARCH_PATH.212247487" name="Add &lt;dir&gt; to library search path (--search_path, -i)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.SEARCH_PATH" valueType="stringList">
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/lib&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${CG_TOOL_ROOT}/include&quot;"/>
+                                                                       <listOptionValue builtIn="false" value="&quot;${TARGET_TEST_COMMON_ROOT}/c55xx_csl/build/ccsv5/Release&quot;"/>
+                                                               </option>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.LIBRARY.205430318" name="Include library file or command file as input (--library, -l)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.LIBRARY" valueType="libs">
+                                                                       <listOptionValue builtIn="false" value="&quot;cslVC5505.lib&quot;"/>
+                                                               </option>
+                                                               <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.XML_LINK_INFO.1357868051" name="Detailed link information data-base into &lt;file&gt; (--xml_link_info, -xml_link_info)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.linkerID.XML_LINK_INFO" value="&quot;target_test_linkInfo.xml&quot;" valueType="string"/>
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exeLinker.inputType__CMD_SRCS.423633359" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exeLinker.inputType__CMD_SRCS"/>
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exeLinker.inputType__CMD2_SRCS.851853953" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exeLinker.inputType__CMD2_SRCS"/>
+                                                               <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exeLinker.inputType__GEN_CMDS.819135743" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exeLinker.inputType__GEN_CMDS"/>
+                                                       </tool>
+                                               </toolChain>
+                                       </folderInfo>
+                                       <fileInfo id="com.ti.ccstudio.buildDefinitions.C5500.Release.573441195.222886533" name="pll_control.c" rcbsApplicability="disable" resourcePath="pll_control.c" toolsToInvoke="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.compilerRelease.1090042953.1700342659">
+                                               <tool id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.compilerRelease.1090042953.1700342659" name="C5500 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.compilerRelease.1090042953">
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__C_SRCS.1342700485" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__C_SRCS"/>
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__CPP_SRCS.1868527171" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__CPP_SRCS"/>
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM_SRCS.466178962" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM_SRCS"/>
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM2_SRCS.23042776" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM2_SRCS"/>
+                                               </tool>
+                                       </fileInfo>
+                                       <fileInfo id="com.ti.ccstudio.buildDefinitions.C5500.Release.573441195.1507228539" name="IdleLoop.c" rcbsApplicability="disable" resourcePath="IdleLoop.c" toolsToInvoke="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.compilerRelease.1090042953.2124314911">
+                                               <tool id="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.compilerRelease.1090042953.2124314911" name="C5500 Compiler" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.exe.compilerRelease.1090042953">
+                                                       <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.ALGEBRAIC.2035258399" name="Codegen outputs algebraic assembly (--algebraic, -mg)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.ALGEBRAIC" value="true" valueType="boolean"/>
+                                                       <option id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.ASSERT_CPL_SET.704442576" name="Assert CPL status bit initially set (--assert_cpl_set, -atc)" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compilerID.ASSERT_CPL_SET" value="false" valueType="boolean"/>
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__C_SRCS.1943099942" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__C_SRCS"/>
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__CPP_SRCS.1481061460" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__CPP_SRCS"/>
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM_SRCS.1027788885" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM_SRCS"/>
+                                                       <inputType id="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM2_SRCS.1850032296" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C5500_4.4.compiler.inputType__ASM2_SRCS"/>
+                                               </tool>
+                                       </fileInfo>
+                                       <sourceEntries>
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
+                                       </sourceEntries>
+                               </configuration>
+                       </storageModule>
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+               </cconfiguration>
+       </storageModule>
+       <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+               <project id="target_test.com.ti.ccstudio.buildDefinitions.C5500.ProjectType.2084331840" name="C5500" projectType="com.ti.ccstudio.buildDefinitions.C5500.ProjectType"/>
+       </storageModule>
+       <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+       <storageModule moduleId="org.eclipse.cdt.core.language.mapping">
+               <project-mappings>
+                       <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.asmSource" language="com.ti.ccstudio.core.TIASMLanguage"/>
+                       <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader" language="com.ti.ccstudio.core.TIGCCLanguage"/>
+                       <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource" language="com.ti.ccstudio.core.TIGCCLanguage"/>
+                       <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader" language="com.ti.ccstudio.core.TIGPPLanguage"/>
+                       <content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource" language="com.ti.ccstudio.core.TIGPPLanguage"/>
+               </project-mappings>
+       </storageModule>
+       <storageModule moduleId="refreshScope" versionNumber="2">
+               <configuration configurationName="Release">
+                       <resource resourceType="PROJECT" workspacePath="/target_test"/>
+               </configuration>
+               <configuration configurationName="Debug">
+                       <resource resourceType="PROJECT" workspacePath="/target_test"/>
+               </configuration>
+       </storageModule>
+       <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
+       <storageModule moduleId="scannerConfiguration"/>
+</cproject>
diff --git a/target_test/ccsv6/.launches/target_test.launch b/target_test/ccsv6/.launches/target_test.launch
new file mode 100755 (executable)
index 0000000..113b4dd
--- /dev/null
@@ -0,0 +1,16 @@
+<?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;Spectrum Digital DSK-EVM-eZdsp onboard USB Emulator_0/C55xx&quot; isa=&quot;TMS320C55XX&quot;/&gt;&#13;&#10;&lt;/cpus_with_project&gt;"/>\r
+<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_DEBUGGER_PROPERTIES.Spectrum Digital DSK-EVM-eZdsp onboard USB Emulator_0/C55xx" 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.Spectrum Digital DSK-EVM-eZdsp onboard USB Emulator_0/C55xx" value="${build_artifact:target_test}"/>\r
+<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_PROJECT.Spectrum Digital DSK-EVM-eZdsp onboard USB Emulator_0/C55xx" value="target_test"/>\r
+<stringAttribute key="com.ti.ccstudio.debug.debugModel.ATTR_TARGET_CONFIG" value="${target_config_active_default:target_test}"/>\r
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">\r
+<listEntry value="/target_test"/>\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;Spectrum Digital DSK-EVM-eZdsp onboard USB Emulator_0/C55xx&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;target_test&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
+</launchConfiguration>\r
diff --git a/target_test/ccsv6/.project b/target_test/ccsv6/.project
new file mode 100755 (executable)
index 0000000..f51bbb0
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>target_test</name>
+       <comment></comment>
+       <projects>
+               <project>cslVC5505</project>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+                       <triggers>full,incremental,</triggers>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.cdt.core.cnature</nature>
+               <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+               <nature>org.eclipse.cdt.core.ccnature</nature>
+               <nature>com.ti.ccstudio.core.ccsNature</nature>
+               <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+       </natures>
+       <linkedResources>
+               <link>
+                       <name>BlkFirDecim_f2.asm</name>
+                       <type>1</type>
+                       <locationURI>TARGET_TEST_COMMON_ROOT/src/BlkFirDecim_f2.asm</locationURI>
+               </link>
+               <link>
+                       <name>IdleLoop.c</name>
+                       <type>1</type>
+                       <locationURI>TARGET_TEST_COMMON_ROOT/src/IdleLoop.c</locationURI>
+               </link>
+               <link>
+                       <name>diggain_f1.asm</name>
+                       <type>1</type>
+                       <locationURI>TARGET_TEST_COMMON_ROOT/src/diggain_f1.asm</locationURI>
+               </link>
+               <link>
+                       <name>pick_bits_cic_f2.asm</name>
+                       <type>1</type>
+                       <locationURI>TARGET_TEST_COMMON_ROOT/src/pick_bits_cic_f2.asm</locationURI>
+               </link>
+               <link>
+                       <name>pll_control.c</name>
+                       <type>1</type>
+                       <locationURI>TARGET_TEST_COMMON_ROOT/src/pll_control.c</locationURI>
+               </link>
+       </linkedResources>
+       <variableList>
+               <variable>
+                       <name>TARGET_TEST_COMMON_ROOT</name>
+                       <value>$%7BPARENT-2-PROJECT_LOC%7D</value>
+               </variable>
+       </variableList>
+</projectDescription>
diff --git a/target_test/ccsv6/.project_initial b/target_test/ccsv6/.project_initial
new file mode 100755 (executable)
index 0000000..d0a41b0
--- /dev/null
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>target_test</name>
+       <comment></comment>
+       <projects>
+               <project>cslVC5505</project>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.cdt.core.cnature</nature>
+               <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+               <nature>org.eclipse.cdt.core.ccnature</nature>
+               <nature>com.ti.ccstudio.managedbuild.core.ccsNature</nature>
+       </natures>
+       <linkedResources>
+               <link>
+                       <name>IdleLoop.c</name>
+                       <type>1</type>
+                       <locationURI>TARGET_TEST_COMMON_ROOT/src/IdleLoop.c</locationURI>
+               </link>
+               <link>
+                       <name>pll_control.c</name>
+                       <type>1</type>
+                       <locationURI>TARGET_TEST_COMMON_ROOT/src/pll_control.c</locationURI>
+               </link>
+               <link>
+                       <name>BlkFirDecim_f2.asm</name>
+                       <type>1</type>
+                       <locationURI>TARGET_TEST_COMMON_ROOT/src/BlkFirDecim_f2.asm</locationURI>
+               </link>
+               <link>
+                       <name>diggain_f1.asm</name>
+                       <type>1</type>
+                       <locationURI>TARGET_TEST_COMMON_ROOT/src/diggain_f1.asm</locationURI>
+               </link>
+               <link>
+                       <name>pick_bits_cic_f2.asm</name>
+                       <type>1</type>
+                       <locationURI>TARGET_TEST_COMMON_ROOT/src/pick_bits_cic_f2.asm</locationURI>
+               </link>
+       </linkedResources>
+</projectDescription>
diff --git a/target_test/ccsv6/.settings/org.eclipse.cdt.codan.core.prefs b/target_test/ccsv6/.settings/org.eclipse.cdt.codan.core.prefs
new file mode 100755 (executable)
index 0000000..98b6350
--- /dev/null
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1\r
+inEditor=false\r
+onBuild=false\r
diff --git a/target_test/ccsv6/.settings/org.eclipse.cdt.debug.core.prefs b/target_test/ccsv6/.settings/org.eclipse.cdt.debug.core.prefs
new file mode 100755 (executable)
index 0000000..58d4fb2
--- /dev/null
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1\r
+org.eclipse.cdt.debug.core.toggleBreakpointModel=com.ti.ccstudio.debug.CCSBreakpointMarker\r
diff --git a/target_test/ccsv6/.settings/org.eclipse.core.resources.prefs b/target_test/ccsv6/.settings/org.eclipse.core.resources.prefs
new file mode 100755 (executable)
index 0000000..7c051cc
--- /dev/null
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1\r
+encoding//Debug/makefile=UTF-8\r
+encoding//Debug/objects.mk=UTF-8\r
+encoding//Debug/sources.mk=UTF-8\r
+encoding//Debug/subdir_rules.mk=UTF-8\r
+encoding//Debug/subdir_vars.mk=UTF-8\r
diff --git a/target_test/ccsv6/Debug/BlkFirDecim_f2.obj b/target_test/ccsv6/Debug/BlkFirDecim_f2.obj
new file mode 100755 (executable)
index 0000000..548950e
Binary files /dev/null and b/target_test/ccsv6/Debug/BlkFirDecim_f2.obj differ
diff --git a/target_test/ccsv6/Debug/BlkIir.d b/target_test/ccsv6/Debug/BlkIir.d
new file mode 100755 (executable)
index 0000000..b172ea4
--- /dev/null
@@ -0,0 +1,9 @@
+# FIXED\r
+\r
+BlkIir.obj: ../BlkIir.c\r
+BlkIir.obj: C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/Decimation/include/data_types.h\r
+BlkIir.obj: C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/Decimation/include/BlkIir.h\r
+\r
+../BlkIir.c: \r
+C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/Decimation/include/data_types.h: \r
+C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/Decimation/include/BlkIir.h: \r
diff --git a/target_test/ccsv6/Debug/BlkIir.obj b/target_test/ccsv6/Debug/BlkIir.obj
new file mode 100755 (executable)
index 0000000..918e158
Binary files /dev/null and b/target_test/ccsv6/Debug/BlkIir.obj differ
diff --git a/target_test/ccsv6/Debug/IdleLoop.d b/target_test/ccsv6/Debug/IdleLoop.d
new file mode 100755 (executable)
index 0000000..7cf9e58
--- /dev/null
@@ -0,0 +1,83 @@
+# FIXED\r
+\r
+IdleLoop.obj: C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/IdleLoop.c\r
+IdleLoop.obj: C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/include/stdio.h\r
+IdleLoop.obj: C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/include/linkage.h\r
+IdleLoop.obj: C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/include/stdarg.h\r
+IdleLoop.obj: C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/include/stdlib.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/soc.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/csl_general.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/tistdtypes.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_cpu.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_sysctrl.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_i2c.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_i2s.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_emif.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_uart.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_spi.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_mmcsd.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_lcdc.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_rtc.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_dma.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_sar.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_usb.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_gpio.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_tim.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_wdt.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_idle.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_ldo.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_mcbsp.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_mcspi.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_uhpi.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/csl_i2s.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/csl_error.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/csl_types.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/csl_dma.h\r
+IdleLoop.obj: C:/ti/c55_lp/c55_csl_3.06/inc/csl_intc.h\r
+IdleLoop.obj: C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/include/pll_control.h\r
+IdleLoop.obj: C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/include/IdleLoop.h\r
+IdleLoop.obj: C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/include/pick_bits_cic.h\r
+IdleLoop.obj: C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/include/BlkFirDecim.h\r
+IdleLoop.obj: C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/include/diggain.h\r
+\r
+C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/IdleLoop.c: \r
+C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/include/stdio.h: \r
+C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/include/linkage.h: \r
+C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/include/stdarg.h: \r
+C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/include/stdlib.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/soc.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/csl_general.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/tistdtypes.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_cpu.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_sysctrl.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_i2c.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_i2s.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_emif.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_uart.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_spi.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_mmcsd.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_lcdc.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_rtc.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_dma.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_sar.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_usb.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_gpio.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_tim.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_wdt.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_idle.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_ldo.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_mcbsp.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_mcspi.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_uhpi.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/csl_i2s.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/csl_error.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/csl_types.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/csl_dma.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/csl_intc.h: \r
+C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/include/pll_control.h: \r
+C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/include/IdleLoop.h: \r
+C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/include/pick_bits_cic.h: \r
+C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/include/BlkFirDecim.h: \r
+C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/include/diggain.h: \r
diff --git a/target_test/ccsv6/Debug/IdleLoop.obj b/target_test/ccsv6/Debug/IdleLoop.obj
new file mode 100755 (executable)
index 0000000..6493977
Binary files /dev/null and b/target_test/ccsv6/Debug/IdleLoop.obj differ
diff --git a/target_test/ccsv6/Debug/ccsObjs.opt b/target_test/ccsv6/Debug/ccsObjs.opt
new file mode 100755 (executable)
index 0000000..bfacec1
--- /dev/null
@@ -0,0 +1 @@
+"./BlkFirDecim_f2.obj" "./IdleLoop.obj" "./diggain_f1.obj" "./pick_bits_cic_f2.obj" "./pll_control.obj" "../target_test.cmd" -l"C:/ti/c55_lp/c55_csl_3.06/ccs_v6.x_examples/C55XXCSL_LP/Debug/C55XXCSL_LP.lib" -lrts55x.lib 
\ No newline at end of file
diff --git a/target_test/ccsv6/Debug/diggain_f1.obj b/target_test/ccsv6/Debug/diggain_f1.obj
new file mode 100755 (executable)
index 0000000..5f5be22
Binary files /dev/null and b/target_test/ccsv6/Debug/diggain_f1.obj differ
old mode 100644 (file)
new mode 100755 (executable)
similarity index 100%
rename from .gitignore
rename to target_test/ccsv6/Debug/file.dat
diff --git a/target_test/ccsv6/Debug/file.txt b/target_test/ccsv6/Debug/file.txt
new file mode 100755 (executable)
index 0000000..da52e63
Binary files /dev/null and b/target_test/ccsv6/Debug/file.txt differ
diff --git a/target_test/ccsv6/Debug/makefile b/target_test/ccsv6/Debug/makefile
new file mode 100755 (executable)
index 0000000..457ad81
--- /dev/null
@@ -0,0 +1,174 @@
+################################################################################\r
+# Automatically-generated file. Do not edit!\r
+################################################################################\r
+\r
+SHELL = cmd.exe\r
+\r
+CG_TOOL_ROOT := C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1\r
+\r
+GEN_OPTS__FLAG := \r
+GEN_CMDS__FLAG := \r
+\r
+ORDERED_OBJS += \
+"./BlkFirDecim_f2.obj" \
+"./IdleLoop.obj" \
+"./diggain_f1.obj" \
+"./pick_bits_cic_f2.obj" \
+"./pll_control.obj" \
+"../target_test.cmd" \
+$(GEN_CMDS__FLAG) \
+-l"C:/ti/c55_lp/c55_csl_3.06/ccs_v6.x_examples/C55XXCSL_LP/Debug/C55XXCSL_LP.lib" \
+-lrts55x.lib \
+\r
+-include ../makefile.init\r
+\r
+RM := DEL /F\r
+RMDIR := RMDIR /S/Q\r
+\r
+# All of the sources participating in the build are defined here\r
+-include sources.mk\r
+-include subdir_vars.mk\r
+-include subdir_rules.mk\r
+-include objects.mk\r
+\r
+ifneq ($(MAKECMDGOALS),clean)\r
+ifneq ($(strip $(S_DEPS)),)\r
+-include $(S_DEPS)\r
+endif\r
+ifneq ($(strip $(S_UPPER_DEPS)),)\r
+-include $(S_UPPER_DEPS)\r
+endif\r
+ifneq ($(strip $(S62_DEPS)),)\r
+-include $(S62_DEPS)\r
+endif\r
+ifneq ($(strip $(C64_DEPS)),)\r
+-include $(C64_DEPS)\r
+endif\r
+ifneq ($(strip $(ASM_DEPS)),)\r
+-include $(ASM_DEPS)\r
+endif\r
+ifneq ($(strip $(CC_DEPS)),)\r
+-include $(CC_DEPS)\r
+endif\r
+ifneq ($(strip $(SV7A_DEPS)),)\r
+-include $(SV7A_DEPS)\r
+endif\r
+ifneq ($(strip $(S55_DEPS)),)\r
+-include $(S55_DEPS)\r
+endif\r
+ifneq ($(strip $(C67_DEPS)),)\r
+-include $(C67_DEPS)\r
+endif\r
+ifneq ($(strip $(CLA_DEPS)),)\r
+-include $(CLA_DEPS)\r
+endif\r
+ifneq ($(strip $(C??_DEPS)),)\r
+-include $(C??_DEPS)\r
+endif\r
+ifneq ($(strip $(CPP_DEPS)),)\r
+-include $(CPP_DEPS)\r
+endif\r
+ifneq ($(strip $(S??_DEPS)),)\r
+-include $(S??_DEPS)\r
+endif\r
+ifneq ($(strip $(C_DEPS)),)\r
+-include $(C_DEPS)\r
+endif\r
+ifneq ($(strip $(C62_DEPS)),)\r
+-include $(C62_DEPS)\r
+endif\r
+ifneq ($(strip $(CXX_DEPS)),)\r
+-include $(CXX_DEPS)\r
+endif\r
+ifneq ($(strip $(C++_DEPS)),)\r
+-include $(C++_DEPS)\r
+endif\r
+ifneq ($(strip $(ASM_UPPER_DEPS)),)\r
+-include $(ASM_UPPER_DEPS)\r
+endif\r
+ifneq ($(strip $(K_DEPS)),)\r
+-include $(K_DEPS)\r
+endif\r
+ifneq ($(strip $(C43_DEPS)),)\r
+-include $(C43_DEPS)\r
+endif\r
+ifneq ($(strip $(INO_DEPS)),)\r
+-include $(INO_DEPS)\r
+endif\r
+ifneq ($(strip $(S67_DEPS)),)\r
+-include $(S67_DEPS)\r
+endif\r
+ifneq ($(strip $(SA_DEPS)),)\r
+-include $(SA_DEPS)\r
+endif\r
+ifneq ($(strip $(S43_DEPS)),)\r
+-include $(S43_DEPS)\r
+endif\r
+ifneq ($(strip $(OPT_DEPS)),)\r
+-include $(OPT_DEPS)\r
+endif\r
+ifneq ($(strip $(PDE_DEPS)),)\r
+-include $(PDE_DEPS)\r
+endif\r
+ifneq ($(strip $(S64_DEPS)),)\r
+-include $(S64_DEPS)\r
+endif\r
+ifneq ($(strip $(C_UPPER_DEPS)),)\r
+-include $(C_UPPER_DEPS)\r
+endif\r
+ifneq ($(strip $(C55_DEPS)),)\r
+-include $(C55_DEPS)\r
+endif\r
+endif\r
+\r
+-include ../makefile.defs\r
+\r
+# Add inputs and outputs from these tool invocations to the build variables \r
+EXE_OUTPUTS += \
+target_test.out \
+\r
+EXE_OUTPUTS__QUOTED += \
+"target_test.out" \
+\r
+BIN_OUTPUTS += \
+target_test.hex \
+\r
+BIN_OUTPUTS__QUOTED += \
+"target_test.hex" \
+\r
+\r
+# All Target\r
+all: target_test.out\r
+\r
+dependents:\r
+       -cd C:/ti/c55_lp/c55_csl_3.06/ccs_v6.x_examples/C55XXCSL_LP/Debug && $(MAKE) all\r
+\r
+# Tool invocations\r
+target_test.out: $(OBJS) $(CMD_SRCS) $(GEN_CMDS) C:/ti/c55_lp/c55_csl_3.06/ccs_v6.x_examples/C55XXCSL_LP/Debug/C55XXCSL_LP.lib\r
+       @echo 'Building target: $@'\r
+       @echo 'Invoking: C5500 Linker'\r
+       "C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/bin/cl55" -v5515 --memory_model=large -g --define=c5515 --diag_warning=225 --gen_func_subsections=on --ptrdiff_size=32 -z -m"target_test.map" --stack_size=0x400 --heap_size=0x800 -i"C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/lib" -i"C:/ti/c55_lp/c55_csl_3.06/ccs_v6.x_examples/C55XXCSL_LP/Debug" -i"C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/include" --reread_libs --warn_sections --xml_link_info="target_test_linkInfo.xml" --rom_model --sys_stacksize=0x400 -o "target_test.out" $(ORDERED_OBJS)\r
+       @echo 'Finished building target: $@'\r
+       @echo ' '\r
+\r
+target_test.hex: $(EXE_OUTPUTS)\r
+       @echo 'Invoking: C5500 Hex Utility'\r
+       "C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/bin/hex55"  -o "target_test.hex" $(EXE_OUTPUTS__QUOTED)\r
+       @echo 'Finished building: $@'\r
+       @echo ' '\r
+\r
+# Other Targets\r
+clean:\r
+       -$(RM) $(EXE_OUTPUTS__QUOTED)$(BIN_OUTPUTS__QUOTED)\r
+       -$(RM) "IdleLoop.d" "pll_control.d" \r
+       -$(RM) "BlkFirDecim_f2.obj" "IdleLoop.obj" "diggain_f1.obj" "pick_bits_cic_f2.obj" "pll_control.obj" \r
+       -$(RM) "BlkFirDecim_f2.d" "diggain_f1.d" "pick_bits_cic_f2.d" \r
+       -@echo 'Finished clean'\r
+       -@echo ' '\r
+\r
+.PHONY: all clean dependents\r
+.SECONDARY:\r
+C:/ti/c55_lp/c55_csl_3.06/ccs_v6.x_examples/C55XXCSL_LP/Debug/C55XXCSL_LP.lib:\r
+\r
+-include ../makefile.targets\r
+\r
diff --git a/target_test/ccsv6/Debug/objects.mk b/target_test/ccsv6/Debug/objects.mk
new file mode 100755 (executable)
index 0000000..bb3e383
--- /dev/null
@@ -0,0 +1,8 @@
+################################################################################\r
+# Automatically-generated file. Do not edit!\r
+################################################################################\r
+\r
+USER_OBJS :=\r
+\r
+LIBS := -l"C:/ti/c55_lp/c55_csl_3.06/ccs_v6.x_examples/C55XXCSL_LP/Debug/C55XXCSL_LP.lib" -lrts55x.lib\r
+\r
diff --git a/target_test/ccsv6/Debug/pick_bits_cic_f2.obj b/target_test/ccsv6/Debug/pick_bits_cic_f2.obj
new file mode 100755 (executable)
index 0000000..e7821f9
Binary files /dev/null and b/target_test/ccsv6/Debug/pick_bits_cic_f2.obj differ
diff --git a/target_test/ccsv6/Debug/pll_control.d b/target_test/ccsv6/Debug/pll_control.d
new file mode 100755 (executable)
index 0000000..f2ceef4
--- /dev/null
@@ -0,0 +1,65 @@
+# FIXED\r
+\r
+pll_control.obj: C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/pll_control.c\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/csl_pll.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/csl_error.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/csl_types.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/tistdtypes.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/soc.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/csl_general.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_cpu.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_sysctrl.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_i2c.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_i2s.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_emif.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_uart.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_spi.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_mmcsd.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_lcdc.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_rtc.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_dma.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_sar.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_usb.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_gpio.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_tim.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_wdt.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_idle.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_ldo.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_mcbsp.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_mcspi.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/cslr_uhpi.h\r
+pll_control.obj: C:/ti/c55_lp/c55_csl_3.06/inc/csl_pllAux.h\r
+pll_control.obj: C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/include/pll_control.h\r
+\r
+C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/pll_control.c: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/csl_pll.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/csl_error.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/csl_types.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/tistdtypes.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/soc.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/csl_general.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_cpu.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_sysctrl.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_i2c.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_i2s.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_emif.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_uart.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_spi.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_mmcsd.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_lcdc.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_rtc.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_dma.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_sar.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_usb.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_gpio.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_tim.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_wdt.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_idle.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_ldo.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_mcbsp.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_mcspi.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/cslr_uhpi.h: \r
+C:/ti/c55_lp/c55_csl_3.06/inc/csl_pllAux.h: \r
+C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/include/pll_control.h: \r
diff --git a/target_test/ccsv6/Debug/pll_control.obj b/target_test/ccsv6/Debug/pll_control.obj
new file mode 100755 (executable)
index 0000000..7bae44d
Binary files /dev/null and b/target_test/ccsv6/Debug/pll_control.obj differ
diff --git a/target_test/ccsv6/Debug/sources.mk b/target_test/ccsv6/Debug/sources.mk
new file mode 100755 (executable)
index 0000000..49ec9b1
--- /dev/null
@@ -0,0 +1,115 @@
+################################################################################\r
+# Automatically-generated file. Do not edit!\r
+################################################################################\r
+\r
+O_SRCS := \r
+CPP_SRCS := \r
+K_SRCS := \r
+LD_SRCS := \r
+S67_SRCS := \r
+LDS_SRCS := \r
+CMD_SRCS := \r
+EXE_SRCS := \r
+CXX_SRCS := \r
+CMD_UPPER_SRCS := \r
+ELF_SRCS := \r
+C43_SRCS := \r
+S55_SRCS := \r
+LD_UPPER_SRCS := \r
+C62_SRCS := \r
+S_UPPER_SRCS := \r
+A_SRCS := \r
+SA_SRCS := \r
+C55_SRCS := \r
+LDS_UPPER_SRCS := \r
+C_UPPER_SRCS := \r
+OUT_SRCS := \r
+INO_SRCS := \r
+OBJ_SRCS := \r
+S62_SRCS := \r
+LIB_SRCS := \r
+PDE_SRCS := \r
+SV7A_SRCS := \r
+ASM_SRCS := \r
+ASM_UPPER_SRCS := \r
+C++_SRCS := \r
+CLA_SRCS := \r
+S??_SRCS := \r
+C_SRCS := \r
+C67_SRCS := \r
+S_SRCS := \r
+S43_SRCS := \r
+OPT_SRCS := \r
+C64_SRCS := \r
+CC_SRCS := \r
+C??_SRCS := \r
+S64_SRCS := \r
+OBJS := \r
+BIN_OUTPUTS := \r
+S_DEPS := \r
+S_UPPER_DEPS := \r
+S62_DEPS := \r
+C64_DEPS := \r
+ASM_DEPS := \r
+CC_DEPS := \r
+SV7A_DEPS := \r
+S55_DEPS := \r
+C67_DEPS := \r
+CLA_DEPS := \r
+C??_DEPS := \r
+CPP_DEPS := \r
+S??_DEPS := \r
+C_DEPS := \r
+C62_DEPS := \r
+EXE_OUTPUTS := \r
+CXX_DEPS := \r
+C++_DEPS := \r
+ASM_UPPER_DEPS := \r
+K_DEPS := \r
+C43_DEPS := \r
+INO_DEPS := \r
+S67_DEPS := \r
+SA_DEPS := \r
+S43_DEPS := \r
+OPT_DEPS := \r
+PDE_DEPS := \r
+S64_DEPS := \r
+C_UPPER_DEPS := \r
+C55_DEPS := \r
+CPP_DEPS__QUOTED := \r
+C67_DEPS__QUOTED := \r
+INO_DEPS__QUOTED := \r
+C??_DEPS__QUOTED := \r
+S_UPPER_DEPS__QUOTED := \r
+CLA_DEPS__QUOTED := \r
+ASM_UPPER_DEPS__QUOTED := \r
+C62_DEPS__QUOTED := \r
+CXX_DEPS__QUOTED := \r
+EXE_OUTPUTS__QUOTED := \r
+S67_DEPS__QUOTED := \r
+BIN_OUTPUTS__QUOTED := \r
+C_DEPS__QUOTED := \r
+C_UPPER_DEPS__QUOTED := \r
+OPT_DEPS__QUOTED := \r
+S_DEPS__QUOTED := \r
+K_DEPS__QUOTED := \r
+S??_DEPS__QUOTED := \r
+C64_DEPS__QUOTED := \r
+C++_DEPS__QUOTED := \r
+OBJS__QUOTED := \r
+CC_DEPS__QUOTED := \r
+S43_DEPS__QUOTED := \r
+S55_DEPS__QUOTED := \r
+SA_DEPS__QUOTED := \r
+C55_DEPS__QUOTED := \r
+PDE_DEPS__QUOTED := \r
+C43_DEPS__QUOTED := \r
+S62_DEPS__QUOTED := \r
+ASM_DEPS__QUOTED := \r
+SV7A_DEPS__QUOTED := \r
+S64_DEPS__QUOTED := \r
+\r
+# Every subdirectory with source files must be described here\r
+SUBDIRS := \
+. \
+\r
diff --git a/target_test/ccsv6/Debug/subdir_rules.mk b/target_test/ccsv6/Debug/subdir_rules.mk
new file mode 100755 (executable)
index 0000000..6990b93
--- /dev/null
@@ -0,0 +1,41 @@
+################################################################################\r
+# Automatically-generated file. Do not edit!\r
+################################################################################\r
+\r
+# Each subdirectory must supply rules for building sources it contributes\r
+BlkFirDecim_f2.obj: C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/BlkFirDecim_f2.asm $(GEN_OPTS) $(GEN_HDRS)\r
+       @echo 'Building file: $<'\r
+       @echo 'Invoking: C5500 Compiler'\r
+       "C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/bin/cl55" -v5515 --memory_model=large -g --include_path="C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/include" --include_path="C:/ti/c55_lp/c55_csl_3.06" --include_path="C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/include" --include_path="C:/ti/c55_lp/c55_csl_3.06/inc" --define=c5515 --diag_warning=225 --gen_func_subsections=on --ptrdiff_size=32 --preproc_with_compile --preproc_dependency="BlkFirDecim_f2.d" $(GEN_OPTS__FLAG) "$<"\r
+       @echo 'Finished building: $<'\r
+       @echo ' '\r
+\r
+IdleLoop.obj: C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/IdleLoop.c $(GEN_OPTS) $(GEN_HDRS)\r
+       @echo 'Building file: $<'\r
+       @echo 'Invoking: C5500 Compiler'\r
+       "C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/bin/cl55" -v5515 --memory_model=large -g --include_path="C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/include" --include_path="C:/ti/c55_lp/c55_csl_3.06" --include_path="C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/include" --include_path="C:/ti/c55_lp/c55_csl_3.06/inc" --define=c5515 --diag_warning=225 --gen_func_subsections=on --ptrdiff_size=32 --algebraic --preproc_with_compile --preproc_dependency="IdleLoop.d" $(GEN_OPTS__FLAG) "$<"\r
+       @echo 'Finished building: $<'\r
+       @echo ' '\r
+\r
+diggain_f1.obj: C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/diggain_f1.asm $(GEN_OPTS) $(GEN_HDRS)\r
+       @echo 'Building file: $<'\r
+       @echo 'Invoking: C5500 Compiler'\r
+       "C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/bin/cl55" -v5515 --memory_model=large -g --include_path="C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/include" --include_path="C:/ti/c55_lp/c55_csl_3.06" --include_path="C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/include" --include_path="C:/ti/c55_lp/c55_csl_3.06/inc" --define=c5515 --diag_warning=225 --gen_func_subsections=on --ptrdiff_size=32 --preproc_with_compile --preproc_dependency="diggain_f1.d" $(GEN_OPTS__FLAG) "$<"\r
+       @echo 'Finished building: $<'\r
+       @echo ' '\r
+\r
+pick_bits_cic_f2.obj: C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/pick_bits_cic_f2.asm $(GEN_OPTS) $(GEN_HDRS)\r
+       @echo 'Building file: $<'\r
+       @echo 'Invoking: C5500 Compiler'\r
+       "C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/bin/cl55" -v5515 --memory_model=large -g --include_path="C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/include" --include_path="C:/ti/c55_lp/c55_csl_3.06" --include_path="C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/include" --include_path="C:/ti/c55_lp/c55_csl_3.06/inc" --define=c5515 --diag_warning=225 --gen_func_subsections=on --ptrdiff_size=32 --preproc_with_compile --preproc_dependency="pick_bits_cic_f2.d" $(GEN_OPTS__FLAG) "$<"\r
+       @echo 'Finished building: $<'\r
+       @echo ' '\r
+\r
+pll_control.obj: C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/pll_control.c $(GEN_OPTS) $(GEN_HDRS)\r
+       @echo 'Building file: $<'\r
+       @echo 'Invoking: C5500 Compiler'\r
+       "C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/bin/cl55" -v5515 --memory_model=large -g --include_path="C:/ti/ccs613/ccsv6/tools/compiler/c5500_4.4.1/include" --include_path="C:/ti/c55_lp/c55_csl_3.06" --include_path="C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/include" --include_path="C:/ti/c55_lp/c55_csl_3.06/inc" --define=c5515 --diag_warning=225 --gen_func_subsections=on --ptrdiff_size=32 --preproc_with_compile --preproc_dependency="pll_control.d" $(GEN_OPTS__FLAG) "$<"\r
+       @echo 'Finished building: $<'\r
+       @echo ' '\r
+\r
+\r
diff --git a/target_test/ccsv6/Debug/subdir_vars.mk b/target_test/ccsv6/Debug/subdir_vars.mk
new file mode 100755 (executable)
index 0000000..faa8f2d
--- /dev/null
@@ -0,0 +1,58 @@
+################################################################################\r
+# Automatically-generated file. Do not edit!\r
+################################################################################\r
+\r
+# Add inputs and outputs from these tool invocations to the build variables \r
+CMD_SRCS += \
+../target_test.cmd \r
+\r
+ASM_SRCS += \
+C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/BlkFirDecim_f2.asm \
+C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/diggain_f1.asm \
+C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/pick_bits_cic_f2.asm \r
+\r
+C_SRCS += \
+C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/IdleLoop.c \
+C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/pll_control.c \r
+\r
+OBJS += \
+./BlkFirDecim_f2.obj \
+./IdleLoop.obj \
+./diggain_f1.obj \
+./pick_bits_cic_f2.obj \
+./pll_control.obj \r
+\r
+ASM_DEPS += \
+./BlkFirDecim_f2.d \
+./diggain_f1.d \
+./pick_bits_cic_f2.d \r
+\r
+C_DEPS += \
+./IdleLoop.d \
+./pll_control.d \r
+\r
+C_DEPS__QUOTED += \
+"IdleLoop.d" \
+"pll_control.d" \r
+\r
+OBJS__QUOTED += \
+"BlkFirDecim_f2.obj" \
+"IdleLoop.obj" \
+"diggain_f1.obj" \
+"pick_bits_cic_f2.obj" \
+"pll_control.obj" \r
+\r
+ASM_DEPS__QUOTED += \
+"BlkFirDecim_f2.d" \
+"diggain_f1.d" \
+"pick_bits_cic_f2.d" \r
+\r
+ASM_SRCS__QUOTED += \
+"C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/BlkFirDecim_f2.asm" \
+"C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/diggain_f1.asm" \
+"C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/pick_bits_cic_f2.asm" \r
+\r
+C_SRCS__QUOTED += \
+"C:/Users/a0221074/Desktop/CF/digital_mic_decimation_final_PACKAGINGarea/c55x-digital-mic-decimation/src/pll_control.c" \r
+\r
+\r
diff --git a/target_test/ccsv6/Debug/target_test.map b/target_test/ccsv6/Debug/target_test.map
new file mode 100755 (executable)
index 0000000..5e48ffc
--- /dev/null
@@ -0,0 +1,709 @@
+******************************************************************************\r
+              TMS320C55x Linker PC v4.4.1                      \r
+******************************************************************************\r
+>> Linked Wed Aug 03 10:20:21 2016\r
+\r
+OUTPUT FILE NAME:   <target_test.out>\r
+ENTRY POINT SYMBOL: "_c_int00"  address: 000202c5\r
+\r
+\r
+MEMORY CONFIGURATION\r
+\r
+         name            origin    length      used     unused   attr    fill\r
+                        (bytes)   (bytes)    (bytes)   (bytes)\r
+----------------------  --------  ---------  --------  --------  ----  --------\r
+  MMR                   00000000   000000c0  00000000  000000c0  RW  \r
+  DARAM_0               000000c0   00001f40  00000000  00001f40  RW  \r
+  DARAM_1               00002000   00002000  00000000  00002000  RW  \r
+  DARAM_2               00004000   00002000  0000093c  000016c4  RW  \r
+  DARAM_3               00006000   00002000  00000000  00002000  RW  \r
+  DARAM_4               00008000   00002000  00000000  00002000  RW  \r
+  DARAM_5               0000a000   00002000  00000000  00002000  RW  \r
+  DARAM_6               0000c000   00002000  00000000  00002000  RW  \r
+  DARAM_7               0000e000   00002000  00000000  00002000  RW  \r
+  SARAM                 00010000   00040000  00015243  0002adbd  RW  \r
+  SAROM_0               00ff0000   00008000  00000000  00008000  R  X\r
+  SAROM_1               00ff8000   00007f00  00000000  00007f00  R  X\r
+  VECS                  00ffff00   00000100  00000000  00000100  R  X\r
+\r
+\r
+SECTION ALLOCATION MAP\r
+(Addresses surrounded by []'s are displayed for convenience only!)\r
+\r
+output                                                          attributes/\r
+section   page  orgn(bytes) orgn(words) len(bytes) len(words)   input sections\r
+--------  ----  ----------- ----------- ---------- ----------   --------------\r
+.pinit       0   [ 00010000 ]  00008000          *   00000000   UNINITIALIZED\r
+\r
+.stack       0   [ 00004000 ]  00002000          *   00000200   UNINITIALIZED\r
+                 [ 00004000 ]  00002000          *   00000200   --HOLE--\r
+\r
+.sysstack \r
+*            0   [ 00004400 ]  00002200          *   00000200   UNINITIALIZED\r
+                 [ 00004400 ]  00002200          *   00000200   --HOLE--\r
+\r
+.fir2DlyBuf \r
+*            0   [ 00004800 ]  00002400          *   0000007a   UNINITIALIZED\r
+                 [ 00004800 ]  00002400          *   0000007a   IdleLoop.obj (.fir2DlyBuf)\r
+\r
+.fir1DlyBuf \r
+*            0   [ 000048f4 ]  0000247a          *   00000024   UNINITIALIZED\r
+                 [ 000048f4 ]  0000247a          *   00000024   IdleLoop.obj (.fir1DlyBuf)\r
+\r
+.data        0   [ 00010000 ]  00008000          *   00000000   UNINITIALIZED\r
+\r
+.bss         0   [ 00010000 ]  00008000          *   0000424b   UNINITIALIZED\r
+                 [ 00010000 ]  00008000          *   00003f22   IdleLoop.obj (.bss)\r
+                 [ 00017e44 ]  0000bf22          *   00000119   rts55x.lib : defs.obj (.bss)\r
+                 [ 00018076 ]  0000c03b          *   000000d0              : trgdrv.obj (.bss)\r
+                 [ 00018216 ]  0000c10b          *   00000001              : fopen.obj (.bss)\r
+                 [ 00018218 ]  0000c10c          *   00000084   C55XXCSL_LP.lib : csl_intc.obj (.bss)\r
+                 [ 00018320 ]  0000c190          *   00000071   rts55x.lib : lowlev.obj (.bss)\r
+                 [ 00018402 ]  0000c201          *   0000002a   C55XXCSL_LP.lib : csl_i2s.obj (.bss)\r
+                 [ 00018456 ]  0000c22b          *   00000001   --HOLE--\r
+                 [ 00018458 ]  0000c22c          *   0000000e   pll_control.obj (.bss)\r
+                 [ 00018474 ]  0000c23a          *   00000006   rts55x.lib : memory.obj (.bss)\r
+                 [ 00018480 ]  0000c240          *   00000004              : _lock.obj (.bss)\r
+                 [ 00018488 ]  0000c244          *   00000004              : exit.obj (.bss)\r
+                 [ 00018490 ]  0000c248          *   00000003   C55XXCSL_LP.lib : csl_sysctrl.obj (.bss)\r
+\r
+.text        0     00018496  [ 0000c24b ] 00007f57          *   \r
+                   00018496  [ 0000c24b ] 00001f50          *   C55XXCSL_LP.lib : csl_dma.obj (.text)\r
+                   0001a3e6  [ 0000d1f3 ] 000015a4          *   rts55x.lib : _printfi.obj (.text)\r
+                   0001b98a  [ 0000dcc5 ] 00000997          *   C55XXCSL_LP.lib : csl_i2s.obj (.text)\r
+                   0001c321  [ 0000e190+] 00000543          *   rts55x.lib : lowlev.obj (.text)\r
+                   0001c864  [ 0000e432 ] 00000528          *              : trgdrv.obj (.text)\r
+                   0001cd8c  [ 0000e6c6 ] 00000508          *   C55XXCSL_LP.lib : csl_intc.obj (.text)\r
+                   0001d294  [ 0000e94a ] 000004b5          *   rts55x.lib : memory.obj (.text)\r
+                   0001d749  [ 0000eba4+] 000003cc          *              : divd.obj (.text)\r
+                   0001db15  [ 0000ed8a+] 00000354          *   C55XXCSL_LP.lib : csl_pll.obj (.text)\r
+                   0001de69  [ 0000ef34+] 0000030e          *   IdleLoop.obj (.text:_I2sDmaInit)\r
+                   0001e177  [ 0000f0bb+] 0000027f          *   rts55x.lib : fopen.obj (.text)\r
+                   0001e3f6  [ 0000f1fb ] 0000025e          *   C55XXCSL_LP.lib : csl_sysctrl.obj (.text)\r
+                   0001e654  [ 0000f32a ] 0000025e          *   rts55x.lib : llmpy.obj (.text)\r
+                   0001e8b2  [ 0000f459 ] 0000025a          *              : addd.obj (.text)\r
+                   0001eb0c  [ 0000f586 ] 000001ea          *              : cmpd.obj (.text)\r
+                   0001ecf6  [ 0000f67b ] 00000183          *   pick_bits_cic_f2.obj (.text)\r
+                   0001ee79  [ 0000f73c+] 00000163          *   rts55x.lib : fputs.obj (.text)\r
+                   0001efdc  [ 0000f7ee ] 0000014c          *   pll_control.obj (.text:_pll_sample)\r
+                   0001f128  [ 0000f894 ] 0000014c          *   rts55x.lib : mpyd.obj (.text)\r
+                   0001f274  [ 0000f93a ] 0000011f          *   IdleLoop.obj (.text:_UserAlgorithm)\r
+                   0001f393  [ 0000f9c9+] 000000e6          *   rts55x.lib : setvbuf.obj (.text)\r
+                   0001f479  [ 0000fa3c+] 000000dd          *              : _io_perm.obj (.text)\r
+                   0001f556  [ 0000faab ] 000000c6          *   IdleLoop.obj (.text:_main)\r
+                   0001f61c  [ 0000fb0e ] 000000c2          *   rts55x.lib : fflush.obj (.text)\r
+                   0001f6de  [ 0000fb6f ] 000000ba          *              : trgmsg.obj (.text:CIO_breakpoint)\r
+                   0001f798  [ 0000fbcc ] 000000a6          *              : fputc.obj (.text)\r
+                   0001f83e  [ 0000fc1f ] 000000a1          *              : divul.obj (.text)\r
+                   0001f8df  [ 0000fc6f+] 00000095          *   BlkFirDecim_f2.obj (.text)\r
+                   0001f974  [ 0000fcba ] 0000008c          *   C55XXCSL_LP.lib : csl_irqplug.obj (.text)\r
+                   0001fa00  [ 0000fd00 ] 0000007d          *   rts55x.lib : ltoa.obj (.text)\r
+                   0001fa7d  [ 0000fd3e+] 0000007b          *   pll_control.obj (.text:_PLL_getConfig)\r
+                   0001faf8  [ 0000fd7c ] 0000007b          *   rts55x.lib : fclose.obj (.text)\r
+                   0001fb73  [ 0000fdb9+] 00000076          *              : frcmpyd.obj (.text)\r
+                   0001fbe9  [ 0000fdf4+] 00000073          *              : frcmpyd_div.obj (.text)\r
+                   0001fc5c  [ 0000fe2e ] 00000072          *              : remul.obj (.text)\r
+                   0001fcce  [ 0000fe67 ] 00000070          *   IdleLoop.obj (.text:_ClockGatingAll)\r
+                   0001fd3e  [ 0000fe9f ] 0000006f          *   rts55x.lib : fixdli.obj (.text)\r
+                   0001fdad  [ 0000fed6+] 0000006d          *   C55XXCSL_LP.lib : vectors.obj (.text)\r
+                   0001fe1a  [ 0000ff0d ] 0000006d          *   rts55x.lib : trgmsg.obj (.text)\r
+                   0001fe87  [ 0000ff43+] 0000006b          *   IdleLoop.obj (.text:_DmaIsr)\r
+                   0001fef2  [ 0000ff79 ] 0000006b          *   rts55x.lib : fseek.obj (.text)\r
+                   0001ff5d  [ 0000ffae+] 00000067          *              : fltlid.obj (.text)\r
+                   0001ffc4  [ 0000ffe2 ] 0000005c          *              : atoi.obj (.text)\r
+                   00020020  [ 00010010 ] 00000050          *              : printf.obj (.text)\r
+                   00020070  [ 00010038 ] 0000004d          *              : autoinit.obj (.text)\r
+                   000200bd  [ 0001005e+] 0000004b          *              : args_main.obj (.text)\r
+                   00020108  [ 00010084 ] 0000004b          *              : remli.obj (.text)\r
+                   00020153  [ 000100a9+] 00000048          *              : divli.obj (.text)\r
+                   0002019b  [ 000100cd+] 0000003f          *              : memcpy.obj (.text)\r
+                   000201da  [ 000100ed ] 0000003e          *              : exit.obj (.text)\r
+                   00020218  [ 0001010c ] 0000003b          *   diggain_f1.obj (.text)\r
+                   00020253  [ 00010129+] 0000003a          *   IdleLoop.obj (.text:_DspLdoSwitch)\r
+                   0002028d  [ 00010146+] 00000038          *   IdleLoop.obj (.text:_UsbLdoSwitch)\r
+                   000202c5  [ 00010162+] 00000034          *   rts55x.lib : boot.obj (.text)\r
+                   000202f9  [ 0001017c+] 0000002a          *              : fixdi.obj (.text)\r
+                   00020323  [ 00010191+] 0000002a          *              : udiv.obj (.text)\r
+                   0002034d  [ 000101a6+] 00000023          *              : memccpy.obj (.text)\r
+                   00020370  [ 000101b8 ] 0000001a          *              : isinf.obj (.text)\r
+                   0002038a  [ 000101c5 ] 00000014          *              : subd.obj (.text)\r
+                   0002039e  [ 000101cf ] 00000013          *              : lmpy.obj (.text)\r
+                   000203b1  [ 000101d8+] 00000012          *              : _lock.obj (.text)\r
+                   000203c3  [ 000101e1+] 00000010          *              : negd.obj (.text)\r
+                   000203d3  [ 000101e9+] 0000000a          *              : remove.obj (.text)\r
+                   000203dd  [ 000101ee+] 00000007          *              : exit.obj (.text:CIO_breakpoint)\r
+                   000203e4  [ 000101f2 ] 00000006          *   IdleLoop.obj (.text:_UserIdle)\r
+                   000203ea  [ 000101f5 ] 00000002          *   rts55x.lib : vectors.obj (.text)\r
+                   000203ec  [ 000101f6 ] 00000001          *   --HOLE-- [fill = 20]\r
+\r
+.cicOutFrame \r
+*            0   [ 000203f0 ]  000101f8          *   00000a00   UNINITIALIZED\r
+                 [ 000203f0 ]  000101f8          *   00000a00   IdleLoop.obj (.cicOutFrame)\r
+\r
+.fir1OutFrame \r
+*            0   [ 000217f0 ]  00010bf8          *   00000500   UNINITIALIZED\r
+                 [ 000217f0 ]  00010bf8          *   00000500   IdleLoop.obj (.fir1OutFrame)\r
+\r
+.i2sDmaReadBufLeft \r
+*            0   [ 000221f0 ]  000110f8          *   00000500   UNINITIALIZED\r
+                 [ 000221f0 ]  000110f8          *   00000500   IdleLoop.obj (.i2sDmaReadBufLeft)\r
+\r
+.i2sDmaReadBufRight \r
+*            0   [ 00022bf0 ]  000115f8          *   00000500   UNINITIALIZED\r
+                 [ 00022bf0 ]  000115f8          *   00000500   IdleLoop.obj (.i2sDmaReadBufRight)\r
+\r
+.sysmem      0   [ 000235f0 ]  00011af8          *   00000400   UNINITIALIZED\r
+                 [ 000235f0 ]  00011af8          *   00000400   --HOLE--\r
+\r
+.const       0   [ 00023df0 ]  00011ef8          *   000002f2   \r
+                 [ 00023df0 ]  00011ef8          *   00000194   IdleLoop.obj (.const:.string)\r
+                 [ 00024118 ]  0001208c          *   00000101   rts55x.lib : ctype.obj (.const:__ctypes_)\r
+                 [ 0002431a ]  0001218d          *   00000001   --HOLE-- [fill = 0]\r
+                 [ 0002431c ]  0001218e          *   00000024              : _printfi.obj (.const:.string)\r
+                 [ 00024364 ]  000121b2          *   0000000c              : _printfi.obj (.const)\r
+                 [ 0002437c ]  000121be          *   00000008              : divd.obj (.const:_initial_approx$1)\r
+                 [ 0002438c ]  000121c6          *   00000004   pll_control.obj (.const:_pllCfg_100MHz)\r
+                 [ 00024394 ]  000121ca          *   00000004   pll_control.obj (.const:_pllCfg_120MHz)\r
+                 [ 0002439c ]  000121ce          *   00000004   pll_control.obj (.const:_pllCfg_16p384MHz)\r
+                 [ 000243a4 ]  000121d2          *   00000004   pll_control.obj (.const:_pllCfg_32p768MHz)\r
+                 [ 000243ac ]  000121d6          *   00000004   pll_control.obj (.const:_pllCfg_40MHz)\r
+                 [ 000243b4 ]  000121da          *   00000004   pll_control.obj (.const:_pllCfg_50MHz)\r
+                 [ 000243bc ]  000121de          *   00000004   pll_control.obj (.const:_pllCfg_60MHz)\r
+                 [ 000243c4 ]  000121e2          *   00000004   pll_control.obj (.const:_pllCfg_75MHz)\r
+                 [ 000243cc ]  000121e6          *   00000002   rts55x.lib : fputs.obj (.const:.string)\r
+                 [ 000243d0 ]  000121e8          *   00000002              : fltlid.obj (.const)\r
+\r
+.fir2OutFrame \r
+*            0   [ 000243d4 ]  000121ea          *   00000280   UNINITIALIZED\r
+                 [ 000243d4 ]  000121ea          *   00000280   IdleLoop.obj (.fir2OutFrame)\r
+\r
+.digGainOutFrame \r
+*            0   [ 000248d4 ]  0001246a          *   00000140   UNINITIALIZED\r
+                 [ 000248d4 ]  0001246a          *   00000140   IdleLoop.obj (.digGainOutFrame)\r
+\r
+.cio         0   [ 00024b58 ]  000125ac          *   00000120   UNINITIALIZED\r
+                 [ 00024b58 ]  000125ac          *   00000120   rts55x.lib : trgmsg.obj (.cio)\r
+\r
+.cinit       0   [ 00024d98 ]  000126cc          *   0000008e   \r
+                 [ 00024d98 ]  000126cc          *   0000002d   rts55x.lib : lowlev.obj (.cinit)\r
+                 [ 00024df2 ]  000126f9          *   0000002a              : defs.obj (.cinit)\r
+                 [ 00024e46 ]  00012723          *   00000012   IdleLoop.obj (.cinit)\r
+                 [ 00024e6a ]  00012735          *   0000000a   rts55x.lib : _lock.obj (.cinit)\r
+                 [ 00024e7e ]  0001273f          *   0000000a              : exit.obj (.cinit)\r
+                 [ 00024e92 ]  00012749          *   00000008   C55XXCSL_LP.lib : csl_i2s.obj (.cinit)\r
+                 [ 00024ea2 ]  00012751          *   00000004   rts55x.lib : fopen.obj (.cinit)\r
+                 [ 00024eaa ]  00012755          *   00000004              : memory.obj (.cinit)\r
+                 [ 00024eb2 ]  00012759          *   00000001   --HOLE-- [fill = 0]\r
+\r
+.switch      0   [ 00024eb4 ]  0001275a          *   00000082   \r
+                 [ 00024eb4 ]  0001275a          *   00000020   C55XXCSL_LP.lib : csl_dma.obj (.switch:_DMA_config)\r
+                 [ 00024ef4 ]  0001277a          *   00000020                   : csl_dma.obj (.switch:_DMA_getConfig)\r
+                 [ 00024f34 ]  0001279a          *   00000020                   : csl_dma.obj (.switch:_DMA_reset)\r
+                 [ 00024f74 ]  000127ba          *   00000012                   : csl_sysctrl.obj (.switch:_SYS_setEBSR)\r
+                 [ 00024f98 ]  000127cc          *   00000010   pll_control.obj (.switch:_pll_sample)\r
+\r
+.fir1Coefs \r
+*            0   [ 00024fb8 ]  000127dc          *   0000000f   \r
+                 [ 00024fb8 ]  000127dc          *   0000000f   IdleLoop.obj (.fir1Coefs)\r
+\r
+.vectors_csl \r
+*            0     00025000  [ 00012800 ] 00000100          *   \r
+                   00025000  [ 00012800 ] 00000100          *   C55XXCSL_LP.lib : vectors.obj (vectors)\r
+\r
+.vectors_rts \r
+*            0     00025100  [ 00012880 ] 00000100          *   NOLOAD SECTION\r
+                   00025100  [ 00012880 ] 00000100          *   rts55x.lib : vectors.obj (vectors)\r
+\r
+.fir2Coefs \r
+*            0   [ 00025200 ]  00012900          *   0000003a   \r
+                 [ 00025200 ]  00012900          *   0000003a   IdleLoop.obj (.fir2Coefs)\r
+\r
+\r
+GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name \r
+\r
+abs. value/\r
+byte addr   word addr   name\r
+---------   ---------   ----\r
+00000002                $TI_capability$C5500$CallingConvention\r
+00000002                $TI_capability$C5500$MemoryModel\r
+00000001                $TI_capability_requires_rev3\r
+            00008000    .bss\r
+            00008000    .data\r
+00018496                .text\r
+000203de                C$$EXIT\r
+0001f793                C$$IO$$\r
+0002039e                I$$LMPY\r
+00020323                I$$UDIV\r
+00020338                I$$UMOD\r
+00025000                RST\r
+0001fcce                _ClockGatingAll\r
+000185b9                _DMA_close\r
+000185d8                _DMA_config\r
+000196ac                _DMA_getConfig\r
+0001a33a                _DMA_getLastTransferType\r
+00018496                _DMA_init\r
+000184cd                _DMA_open\r
+00019fd9                _DMA_reset\r
+00019dcb                _DMA_start\r
+00019ed8                _DMA_stop\r
+0001a2c5                _DMA_swapWords\r
+0001fe87                _DmaIsr\r
+00020253                _DspLdoSwitch\r
+0001cd2e                _HOSTclock\r
+0001ccc3                _HOSTclose\r
+0001cc0e                _HOSTlseek\r
+0001cb6f                _HOSTopen\r
+0001cae2                _HOSTread\r
+0001ca34                _HOSTrename\r
+0001c9d6                _HOSTtime\r
+0001c96c                _HOSTunlink\r
+0001c8df                _HOSTwrite\r
+0001bd70                _I2S_close\r
+0001b98a                _I2S_open\r
+0001be1b                _I2S_read\r
+0001c22b                _I2S_reset\r
+0001ba89                _I2S_setup\r
+0001c2d6                _I2S_transEnable\r
+0001c0d5                _I2S_write\r
+0001de69                _I2sDmaInit\r
+0001ce14                _IRQ_clear\r
+0001ce67                _IRQ_clearAll\r
+0001ce77                _IRQ_config\r
+0001cf84                _IRQ_disable\r
+0001d002                _IRQ_disableAll\r
+0001d010                _IRQ_enable\r
+0001d10a                _IRQ_getArg\r
+0001cefc                _IRQ_getConfig\r
+0001d24e                _IRQ_globalDisable\r
+0001d267                _IRQ_globalEnable\r
+0001d280                _IRQ_globalRestore\r
+0001cd8c                _IRQ_init\r
+0001d17f                _IRQ_map\r
+0001f974                _IRQ_plug\r
+0001d09a                _IRQ_restore\r
+0001d14e                _IRQ_setArg\r
+0001d1ab                _IRQ_setVecs\r
+0001d1dc                _IRQ_test\r
+            0000bf1e    _LoopCount\r
+            0000c24a    _PG1_flag\r
+            0000c249    _PG3_flag\r
+            0000c248    _PG4_flag\r
+0001dd15                _PLL_bypass\r
+0001db77                _PLL_config\r
+0001dcae                _PLL_enable\r
+0001db3f                _PLL_init\r
+0001dd64                _PLL_reset\r
+00025100                _Reset\r
+0001e3f6                _SYS_peripheralReset\r
+0001e484                _SYS_setEBSR\r
+0001e62f                _SYS_set_DSP_LDO_voltage\r
+0002028d                _UsbLdoSwitch\r
+0001f274                _UserAlgorithm\r
+000203e4                _UserIdle\r
+00025000                _VECSTART\r
+            000125ac    __CIOBUF_\r
+            00002200    __STACK_END\r
+00000400                __STACK_SIZE\r
+00000800                __SYSMEM_SIZE\r
+00000400                __SYSSTACK_SIZE\r
+00000001                __TI_args_main\r
+ffffffff                ___binit__\r
+            00008000    ___bss__\r
+ffffffff                ___c_args__\r
+            000126cc    ___cinit__\r
+            00008000    ___data__\r
+            00008000    ___edata__\r
+            0000c24b    ___end__\r
+000203ed                ___etext__\r
+00020370                ___isinf\r
+ffffffff                ___pinit__\r
+00018496                ___text__\r
+0001e8b2                __addd\r
+000200bd                __args_main\r
+0001e298                __cleanup\r
+            0000c244    __cleanup_ptr\r
+0001ec9e                __cmpd\r
+            0001208c    __ctypes_\r
+0001d749                __divd\r
+00020153                __divli\r
+0001e87d                __divlli\r
+00020323                __divu\r
+0001f83e                __divul\r
+0001e789                __divull\r
+0001f61c                __doflush\r
+            0000c246    __dtors_ptr\r
+0001ec6a                __eqld\r
+000202f9                __fixdi\r
+0001fd3e                __fixdli\r
+0001ff5d                __fltlid\r
+0001fb73                __frcmpyd\r
+0001fbe9                __frcmpyd_div\r
+            0000c03a    __ft_end\r
+            0000bf22    __ftable\r
+0001ec20                __geqd\r
+0001ebd5                __gtrd\r
+0001eb88                __leqd\r
+            0000c240    __lock\r
+0001eb40                __lssd\r
+0001f128                __mpyd\r
+0002039e                __mpyli\r
+0001e6d1                __mpylli\r
+000203c3                __negd\r
+0001eb0c                __neqd\r
+000203c1                __nop\r
+0001b748                __printfi\r
+0001f4f9                __rd_ok\r
+000203b9                __register_lock\r
+000203b1                __register_unlock\r
+00020108                __remli\r
+0001e6a2                __remlli\r
+00020338                __remu\r
+0001fc5c                __remul\r
+0001e654                __remull\r
+            00002000    __stack\r
+0002038a                __subd\r
+            00011af8    __sys_memory\r
+            00002200    __sysstack\r
+            0000bf9a    __tmpnams\r
+            0000c242    __unlock\r
+0001f479                __wrt_ok\r
+000203dd                _abort\r
+0001c774                _add_device\r
+00020218                _appDiggain\r
+0001ffc4                _atoi\r
+00020070                _auto_init\r
+0001f8df                _blkFirDecim2\r
+            00008000    _buffer\r
+000202c5                _c_int00\r
+0001d723                _calloc\r
+0001d71b                _chkheap\r
+            000101f8    _cicOutFrame\r
+            0000bf06    _cicState\r
+0001c701                _close\r
+            0000b250    _digGainOutCircBuf\r
+            0001246a    _digGainOutFrame\r
+            0000bf16    _dispatchTable\r
+            0000bee4    _dmaConfig\r
+            0000bf04    _dmaFrameCount\r
+            0000bf20    _dmaIntCount\r
+            0000bee0    _dmaLeftRxHandle\r
+            0000bef2    _dmaObj0\r
+            0000befb    _dmaObj1\r
+            0000bee2    _dmaRightRxHandle\r
+000201da                _exit\r
+0001faf8                _fclose\r
+0001f685                _fflush\r
+0001c6f8                _find_registered_device\r
+            000127dc    _fir1Coefs\r
+            0000247a    _fir1DlyBuf\r
+            00010bf8    _fir1OutFrame\r
+            00012900    _fir2Coefs\r
+            00002400    _fir2DlyBuf\r
+            000121ea    _fir2OutFrame\r
+0001e3bb                _fopen\r
+0001f798                _fputc\r
+0001ee79                _fputs\r
+0001d294                _free\r
+0001d6c5                _free_memory\r
+0001e2f2                _freopen\r
+            0000c229    _fsError\r
+0001fef2                _fseek\r
+0001ddd0                _getSysClk\r
+0001c864                _getenv\r
+            0000bed0    _hI2s\r
+            0000c236    _hPll\r
+            0000bed2    _hwConfig\r
+            000110f8    _i2sDmaReadBufLeft\r
+            000115f8    _i2sDmaReadBufRight\r
+            00008050    _inCircBufLeft\r
+            00009950    _inCircBufRight\r
+0001c692                _lseek\r
+0001fa00                _ltoa\r
+0001f556                _main\r
+0001d3c5                _malloc\r
+0001d66b                _max_free\r
+0002034d                _memccpy\r
+0002019b                _memcpy\r
+0001d360                _minit\r
+0001c5d3                _open\r
+            0000c22a    _ouError\r
+            0000c238    _pConfigInfo\r
+0001ecf6                _pickBitsCic\r
+            0000bf05    _pingPongFlag\r
+            0000c232    _pllCfg1\r
+            000121c6    _pllCfg_100MHz\r
+            000121ca    _pllCfg_120MHz\r
+            000121ce    _pllCfg_16p384MHz\r
+            000121d2    _pllCfg_32p768MHz\r
+            000121d6    _pllCfg_40MHz\r
+            000121da    _pllCfg_50MHz\r
+            000121de    _pllCfg_60MHz\r
+            000121e2    _pllCfg_75MHz\r
+            0000c22c    _pllObj\r
+0001efdc                _pll_sample\r
+00020020                _printf\r
+0001f798                _putc\r
+0001f82f                _putchar\r
+0001efae                _puts\r
+0001c525                _read\r
+0001fe1a                _readmsg\r
+0001d4ba                _realloc\r
+000203d3                _remove\r
+0001c4ef                _remove_device\r
+0001c496                _rename\r
+0001f393                _setvbuf\r
+0001c463                _unlink\r
+0001c321                _write\r
+0001f6de                _writemsg\r
+ffffffff                binit\r
+            000126cc    cinit\r
+            00008000    edata\r
+            0000c24b    end\r
+000203ed                etext\r
+ffffffff                pinit\r
+\r
+\r
+GLOBAL SYMBOLS: SORTED BY Symbol Address \r
+\r
+abs. value/\r
+byte addr   word addr   name\r
+---------   ---------   ----\r
+00000001                $TI_capability_requires_rev3\r
+00000001                __TI_args_main\r
+00000002                $TI_capability$C5500$CallingConvention\r
+00000002                $TI_capability$C5500$MemoryModel\r
+00000400                __STACK_SIZE\r
+00000400                __SYSSTACK_SIZE\r
+00000800                __SYSMEM_SIZE\r
+            00002000    __stack\r
+            00002200    __STACK_END\r
+            00002200    __sysstack\r
+            00002400    _fir2DlyBuf\r
+            0000247a    _fir1DlyBuf\r
+            00008000    .bss\r
+            00008000    .data\r
+            00008000    ___bss__\r
+            00008000    ___data__\r
+            00008000    ___edata__\r
+            00008000    _buffer\r
+            00008000    edata\r
+            00008050    _inCircBufLeft\r
+            00009950    _inCircBufRight\r
+            0000b250    _digGainOutCircBuf\r
+            0000bed0    _hI2s\r
+            0000bed2    _hwConfig\r
+            0000bee0    _dmaLeftRxHandle\r
+            0000bee2    _dmaRightRxHandle\r
+            0000bee4    _dmaConfig\r
+            0000bef2    _dmaObj0\r
+            0000befb    _dmaObj1\r
+            0000bf04    _dmaFrameCount\r
+            0000bf05    _pingPongFlag\r
+            0000bf06    _cicState\r
+            0000bf16    _dispatchTable\r
+            0000bf1e    _LoopCount\r
+            0000bf20    _dmaIntCount\r
+            0000bf22    __ftable\r
+            0000bf9a    __tmpnams\r
+            0000c03a    __ft_end\r
+            0000c229    _fsError\r
+            0000c22a    _ouError\r
+            0000c22c    _pllObj\r
+            0000c232    _pllCfg1\r
+            0000c236    _hPll\r
+            0000c238    _pConfigInfo\r
+            0000c240    __lock\r
+            0000c242    __unlock\r
+            0000c244    __cleanup_ptr\r
+            0000c246    __dtors_ptr\r
+            0000c248    _PG4_flag\r
+            0000c249    _PG3_flag\r
+            0000c24a    _PG1_flag\r
+00018496                .text\r
+00018496                _DMA_init\r
+            0000c24b    ___end__\r
+00018496                ___text__\r
+            0000c24b    end\r
+000184cd                _DMA_open\r
+000185b9                _DMA_close\r
+000185d8                _DMA_config\r
+000196ac                _DMA_getConfig\r
+00019dcb                _DMA_start\r
+00019ed8                _DMA_stop\r
+00019fd9                _DMA_reset\r
+0001a2c5                _DMA_swapWords\r
+0001a33a                _DMA_getLastTransferType\r
+0001b748                __printfi\r
+0001b98a                _I2S_open\r
+0001ba89                _I2S_setup\r
+0001bd70                _I2S_close\r
+0001be1b                _I2S_read\r
+0001c0d5                _I2S_write\r
+0001c22b                _I2S_reset\r
+0001c2d6                _I2S_transEnable\r
+0001c321                _write\r
+0001c463                _unlink\r
+0001c496                _rename\r
+0001c4ef                _remove_device\r
+0001c525                _read\r
+0001c5d3                _open\r
+0001c692                _lseek\r
+0001c6f8                _find_registered_device\r
+0001c701                _close\r
+0001c774                _add_device\r
+0001c864                _getenv\r
+0001c8df                _HOSTwrite\r
+0001c96c                _HOSTunlink\r
+0001c9d6                _HOSTtime\r
+0001ca34                _HOSTrename\r
+0001cae2                _HOSTread\r
+0001cb6f                _HOSTopen\r
+0001cc0e                _HOSTlseek\r
+0001ccc3                _HOSTclose\r
+0001cd2e                _HOSTclock\r
+0001cd8c                _IRQ_init\r
+0001ce14                _IRQ_clear\r
+0001ce67                _IRQ_clearAll\r
+0001ce77                _IRQ_config\r
+0001cefc                _IRQ_getConfig\r
+0001cf84                _IRQ_disable\r
+0001d002                _IRQ_disableAll\r
+0001d010                _IRQ_enable\r
+0001d09a                _IRQ_restore\r
+0001d10a                _IRQ_getArg\r
+0001d14e                _IRQ_setArg\r
+0001d17f                _IRQ_map\r
+0001d1ab                _IRQ_setVecs\r
+0001d1dc                _IRQ_test\r
+0001d24e                _IRQ_globalDisable\r
+0001d267                _IRQ_globalEnable\r
+0001d280                _IRQ_globalRestore\r
+0001d294                _free\r
+0001d360                _minit\r
+0001d3c5                _malloc\r
+0001d4ba                _realloc\r
+0001d66b                _max_free\r
+0001d6c5                _free_memory\r
+0001d71b                _chkheap\r
+0001d723                _calloc\r
+0001d749                __divd\r
+0001db3f                _PLL_init\r
+0001db77                _PLL_config\r
+0001dcae                _PLL_enable\r
+0001dd15                _PLL_bypass\r
+0001dd64                _PLL_reset\r
+0001ddd0                _getSysClk\r
+0001de69                _I2sDmaInit\r
+0001e298                __cleanup\r
+0001e2f2                _freopen\r
+0001e3bb                _fopen\r
+0001e3f6                _SYS_peripheralReset\r
+0001e484                _SYS_setEBSR\r
+0001e62f                _SYS_set_DSP_LDO_voltage\r
+0001e654                __remull\r
+0001e6a2                __remlli\r
+0001e6d1                __mpylli\r
+0001e789                __divull\r
+0001e87d                __divlli\r
+0001e8b2                __addd\r
+0001eb0c                __neqd\r
+0001eb40                __lssd\r
+0001eb88                __leqd\r
+0001ebd5                __gtrd\r
+0001ec20                __geqd\r
+0001ec6a                __eqld\r
+0001ec9e                __cmpd\r
+0001ecf6                _pickBitsCic\r
+0001ee79                _fputs\r
+0001efae                _puts\r
+0001efdc                _pll_sample\r
+0001f128                __mpyd\r
+0001f274                _UserAlgorithm\r
+0001f393                _setvbuf\r
+0001f479                __wrt_ok\r
+0001f4f9                __rd_ok\r
+0001f556                _main\r
+0001f61c                __doflush\r
+0001f685                _fflush\r
+0001f6de                _writemsg\r
+0001f793                C$$IO$$\r
+0001f798                _fputc\r
+0001f798                _putc\r
+0001f82f                _putchar\r
+0001f83e                __divul\r
+0001f8df                _blkFirDecim2\r
+0001f974                _IRQ_plug\r
+0001fa00                _ltoa\r
+0001faf8                _fclose\r
+0001fb73                __frcmpyd\r
+0001fbe9                __frcmpyd_div\r
+0001fc5c                __remul\r
+0001fcce                _ClockGatingAll\r
+0001fd3e                __fixdli\r
+0001fe1a                _readmsg\r
+0001fe87                _DmaIsr\r
+0001fef2                _fseek\r
+0001ff5d                __fltlid\r
+0001ffc4                _atoi\r
+00020020                _printf\r
+00020070                _auto_init\r
+000200bd                __args_main\r
+00020108                __remli\r
+00020153                __divli\r
+0002019b                _memcpy\r
+000201da                _exit\r
+00020218                _appDiggain\r
+00020253                _DspLdoSwitch\r
+0002028d                _UsbLdoSwitch\r
+000202c5                _c_int00\r
+000202f9                __fixdi\r
+00020323                I$$UDIV\r
+00020323                __divu\r
+00020338                I$$UMOD\r
+00020338                __remu\r
+0002034d                _memccpy\r
+00020370                ___isinf\r
+0002038a                __subd\r
+0002039e                I$$LMPY\r
+0002039e                __mpyli\r
+000203b1                __register_unlock\r
+000203b9                __register_lock\r
+000203c1                __nop\r
+000203c3                __negd\r
+000203d3                _remove\r
+000203dd                _abort\r
+000203de                C$$EXIT\r
+000203e4                _UserIdle\r
+000203ed                ___etext__\r
+000203ed                etext\r
+            000101f8    _cicOutFrame\r
+            00010bf8    _fir1OutFrame\r
+            000110f8    _i2sDmaReadBufLeft\r
+            000115f8    _i2sDmaReadBufRight\r
+            00011af8    __sys_memory\r
+            0001208c    __ctypes_\r
+            000121c6    _pllCfg_100MHz\r
+            000121ca    _pllCfg_120MHz\r
+            000121ce    _pllCfg_16p384MHz\r
+            000121d2    _pllCfg_32p768MHz\r
+            000121d6    _pllCfg_40MHz\r
+            000121da    _pllCfg_50MHz\r
+            000121de    _pllCfg_60MHz\r
+            000121e2    _pllCfg_75MHz\r
+            000121ea    _fir2OutFrame\r
+            0001246a    _digGainOutFrame\r
+            000125ac    __CIOBUF_\r
+            000126cc    ___cinit__\r
+            000126cc    cinit\r
+            000127dc    _fir1Coefs\r
+00025000                RST\r
+00025000                _VECSTART\r
+00025100                _Reset\r
+            00012900    _fir2Coefs\r
+ffffffff                ___binit__\r
+ffffffff                ___c_args__\r
+ffffffff                ___pinit__\r
+ffffffff                binit\r
+ffffffff                pinit\r
+\r
+[237 symbols]\r
diff --git a/target_test/ccsv6/Debug/target_test.out b/target_test/ccsv6/Debug/target_test.out
new file mode 100755 (executable)
index 0000000..89ef684
Binary files /dev/null and b/target_test/ccsv6/Debug/target_test.out differ
diff --git a/target_test/ccsv6/Debug/target_test_linkInfo.xml b/target_test/ccsv6/Debug/target_test_linkInfo.xml
new file mode 100755 (executable)
index 0000000..a3237ca
--- /dev/null
@@ -0,0 +1,4444 @@
+<?xml version="1.0"?>\r
+<link_info>\r
+   <banner>TMS320C55x Linker PC v4.4.1</banner>\r
+   <copyright>Copyright (c) 1996-2012 Texas Instruments Incorporated</copyright>\r
+   <link_time>0x57a1fda5</link_time>\r
+   <output_file>target_test.out</output_file>\r
+   <entry_point>\r
+      <name>_c_int00</name>\r
+      <address>0x202c5</address>\r
+   </entry_point>\r
+   <input_file_list>\r
+      <input_file id="fl-2">\r
+         <path>.\</path>\r
+         <kind>object</kind>\r
+         <file>BlkFirDecim_f2.obj</file>\r
+         <name>BlkFirDecim_f2.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-3">\r
+         <path>.\</path>\r
+         <kind>object</kind>\r
+         <file>IdleLoop.obj</file>\r
+         <name>IdleLoop.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-4">\r
+         <path>.\</path>\r
+         <kind>object</kind>\r
+         <file>diggain_f1.obj</file>\r
+         <name>diggain_f1.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-5">\r
+         <path>.\</path>\r
+         <kind>object</kind>\r
+         <file>pick_bits_cic_f2.obj</file>\r
+         <name>pick_bits_cic_f2.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-6">\r
+         <path>.\</path>\r
+         <kind>object</kind>\r
+         <file>pll_control.obj</file>\r
+         <name>pll_control.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-d">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>boot.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-e">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>exit.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-f">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>printf.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-10">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>remli.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-11">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>remul.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-12">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>vectors.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-13">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>_lock.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-14">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>_printfi.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-15">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>args_main.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-16">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>atoi.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-17">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>autoinit.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-18">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>cmpd.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-19">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>ctype.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-1a">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>defs.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-1b">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>divd.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-1c">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>divul.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-1d">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>fixdi.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-1e">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>fixdli.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-1f">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>fltlid.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-20">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>fputc.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-21">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>fputs.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-22">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>frcmpyd_div.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-23">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>isinf.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-24">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>llmpy.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-25">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>lmpy.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-26">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>lowlev.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-27">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>ltoa.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-28">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>memccpy.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-29">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>memcpy.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-2a">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>mpyd.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-2b">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>negd.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-2c">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>subd.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-2d">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>trgdrv.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-2e">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>trgmsg.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-2f">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>udiv.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-30">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>_io_perm.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-31">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>addd.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-32">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>divli.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-33">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>fflush.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-34">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>frcmpyd.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-35">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>fseek.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-36">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>setvbuf.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-37">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>fopen.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-38">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>memory.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-39">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>fclose.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-3a">\r
+         <path>C:\ti\ccs613\ccsv6\tools\compiler\c5500_4.4.1\lib\</path>\r
+         <kind>archive</kind>\r
+         <file>rts55x.lib</file>\r
+         <name>remove.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-3b">\r
+         <path>C:\ti\c55_lp\c55_csl_3.06\ccs_v6.x_examples\C55XXCSL_LP\Debug\</path>\r
+         <kind>archive</kind>\r
+         <file>C55XXCSL_LP.lib</file>\r
+         <name>csl_dma.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-3c">\r
+         <path>C:\ti\c55_lp\c55_csl_3.06\ccs_v6.x_examples\C55XXCSL_LP\Debug\</path>\r
+         <kind>archive</kind>\r
+         <file>C55XXCSL_LP.lib</file>\r
+         <name>csl_i2s.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-3d">\r
+         <path>C:\ti\c55_lp\c55_csl_3.06\ccs_v6.x_examples\C55XXCSL_LP\Debug\</path>\r
+         <kind>archive</kind>\r
+         <file>C55XXCSL_LP.lib</file>\r
+         <name>csl_intc.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-3e">\r
+         <path>C:\ti\c55_lp\c55_csl_3.06\ccs_v6.x_examples\C55XXCSL_LP\Debug\</path>\r
+         <kind>archive</kind>\r
+         <file>C55XXCSL_LP.lib</file>\r
+         <name>csl_irqplug.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-3f">\r
+         <path>C:\ti\c55_lp\c55_csl_3.06\ccs_v6.x_examples\C55XXCSL_LP\Debug\</path>\r
+         <kind>archive</kind>\r
+         <file>C55XXCSL_LP.lib</file>\r
+         <name>csl_pll.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-40">\r
+         <path>C:\ti\c55_lp\c55_csl_3.06\ccs_v6.x_examples\C55XXCSL_LP\Debug\</path>\r
+         <kind>archive</kind>\r
+         <file>C55XXCSL_LP.lib</file>\r
+         <name>csl_sysctrl.obj</name>\r
+      </input_file>\r
+      <input_file id="fl-41">\r
+         <path>C:\ti\c55_lp\c55_csl_3.06\ccs_v6.x_examples\C55XXCSL_LP\Debug\</path>\r
+         <kind>archive</kind>\r
+         <file>C55XXCSL_LP.lib</file>\r
+         <name>vectors.obj</name>\r
+      </input_file>\r
+   </input_file_list>\r
+   <object_component_list>\r
+      <object_component id="oc-57">\r
+         <name>vectors</name>\r
+         <load_address>0x25100</load_address>\r
+         <run_address>0x25100</run_address>\r
+         <size>0x100</size>\r
+         <input_file_ref idref="fl-12"/>\r
+      </object_component>\r
+      <object_component id="oc-12b">\r
+         <name>vectors</name>\r
+         <load_address>0x25000</load_address>\r
+         <run_address>0x25000</run_address>\r
+         <size>0x100</size>\r
+         <input_file_ref idref="fl-41"/>\r
+      </object_component>\r
+      <object_component id="oc-109">\r
+         <name>.text</name>\r
+         <load_address>0x18496</load_address>\r
+         <run_address>0x18496</run_address>\r
+         <size>0x1f50</size>\r
+         <input_file_ref idref="fl-3b"/>\r
+      </object_component>\r
+      <object_component id="oc-61">\r
+         <name>.text</name>\r
+         <load_address>0x1a3e6</load_address>\r
+         <run_address>0x1a3e6</run_address>\r
+         <size>0x15a4</size>\r
+         <input_file_ref idref="fl-14"/>\r
+      </object_component>\r
+      <object_component id="oc-10e">\r
+         <name>.text</name>\r
+         <load_address>0x1b98a</load_address>\r
+         <run_address>0x1b98a</run_address>\r
+         <size>0x997</size>\r
+         <input_file_ref idref="fl-3c"/>\r
+      </object_component>\r
+      <object_component id="oc-ab">\r
+         <name>.text</name>\r
+         <load_address>0x1c321</load_address>\r
+         <run_address>0x1c321</run_address>\r
+         <size>0x543</size>\r
+         <input_file_ref idref="fl-26"/>\r
+      </object_component>\r
+      <object_component id="oc-c9">\r
+         <name>.text</name>\r
+         <load_address>0x1c864</load_address>\r
+         <run_address>0x1c864</run_address>\r
+         <size>0x528</size>\r
+         <input_file_ref idref="fl-2d"/>\r
+      </object_component>\r
+      <object_component id="oc-115">\r
+         <name>.text</name>\r
+         <load_address>0x1cd8c</load_address>\r
+         <run_address>0x1cd8c</run_address>\r
+         <size>0x508</size>\r
+         <input_file_ref idref="fl-3d"/>\r
+      </object_component>\r
+      <object_component id="oc-fa">\r
+         <name>.text</name>\r
+         <load_address>0x1d294</load_address>\r
+         <run_address>0x1d294</run_address>\r
+         <size>0x4b5</size>\r
+         <input_file_ref idref="fl-38"/>\r
+      </object_component>\r
+      <object_component id="oc-7d">\r
+         <name>.text</name>\r
+         <load_address>0x1d749</load_address>\r
+         <run_address>0x1d749</run_address>\r
+         <size>0x3cc</size>\r
+         <input_file_ref idref="fl-1b"/>\r
+      </object_component>\r
+      <object_component id="oc-11f">\r
+         <name>.text</name>\r
+         <load_address>0x1db15</load_address>\r
+         <run_address>0x1db15</run_address>\r
+         <size>0x354</size>\r
+         <input_file_ref idref="fl-3f"/>\r
+      </object_component>\r
+      <object_component id="oc-13b">\r
+         <name>.text:_I2sDmaInit</name>\r
+         <load_address>0x1de69</load_address>\r
+         <run_address>0x1de69</run_address>\r
+         <size>0x30e</size>\r
+         <input_file_ref idref="fl-3"/>\r
+      </object_component>\r
+      <object_component id="oc-f4">\r
+         <name>.text</name>\r
+         <load_address>0x1e177</load_address>\r
+         <run_address>0x1e177</run_address>\r
+         <size>0x27f</size>\r
+         <input_file_ref idref="fl-37"/>\r
+      </object_component>\r
+      <object_component id="oc-124">\r
+         <name>.text</name>\r
+         <load_address>0x1e3f6</load_address>\r
+         <run_address>0x1e3f6</run_address>\r
+         <size>0x25e</size>\r
+         <input_file_ref idref="fl-40"/>\r
+      </object_component>\r
+      <object_component id="oc-a3">\r
+         <name>.text</name>\r
+         <load_address>0x1e654</load_address>\r
+         <run_address>0x1e654</run_address>\r
+         <size>0x25e</size>\r
+         <input_file_ref idref="fl-24"/>\r
+      </object_component>\r
+      <object_component id="oc-dc">\r
+         <name>.text</name>\r
+         <load_address>0x1e8b2</load_address>\r
+         <run_address>0x1e8b2</run_address>\r
+         <size>0x25a</size>\r
+         <input_file_ref idref="fl-31"/>\r
+      </object_component>\r
+      <object_component id="oc-73">\r
+         <name>.text</name>\r
+         <load_address>0x1eb0c</load_address>\r
+         <run_address>0x1eb0c</run_address>\r
+         <size>0x1ea</size>\r
+         <input_file_ref idref="fl-18"/>\r
+      </object_component>\r
+      <object_component id="oc-36">\r
+         <name>.text</name>\r
+         <load_address>0x1ecf6</load_address>\r
+         <run_address>0x1ecf6</run_address>\r
+         <size>0x183</size>\r
+         <input_file_ref idref="fl-5"/>\r
+      </object_component>\r
+      <object_component id="oc-96">\r
+         <name>.text</name>\r
+         <load_address>0x1ee79</load_address>\r
+         <run_address>0x1ee79</run_address>\r
+         <size>0x163</size>\r
+         <input_file_ref idref="fl-21"/>\r
+      </object_component>\r
+      <object_component id="oc-139">\r
+         <name>.text:_pll_sample</name>\r
+         <load_address>0x1efdc</load_address>\r
+         <run_address>0x1efdc</run_address>\r
+         <size>0x14c</size>\r
+         <input_file_ref idref="fl-6"/>\r
+      </object_component>\r
+      <object_component id="oc-bd">\r
+         <name>.text</name>\r
+         <load_address>0x1f128</load_address>\r
+         <run_address>0x1f128</run_address>\r
+         <size>0x14c</size>\r
+         <input_file_ref idref="fl-2a"/>\r
+      </object_component>\r
+      <object_component id="oc-13c">\r
+         <name>.text:_UserAlgorithm</name>\r
+         <load_address>0x1f274</load_address>\r
+         <run_address>0x1f274</run_address>\r
+         <size>0x11f</size>\r
+         <input_file_ref idref="fl-3"/>\r
+      </object_component>\r
+      <object_component id="oc-f0">\r
+         <name>.text</name>\r
+         <load_address>0x1f393</load_address>\r
+         <run_address>0x1f393</run_address>\r
+         <size>0xe6</size>\r
+         <input_file_ref idref="fl-36"/>\r
+      </object_component>\r
+      <object_component id="oc-d8">\r
+         <name>.text</name>\r
+         <load_address>0x1f479</load_address>\r
+         <run_address>0x1f479</run_address>\r
+         <size>0xdd</size>\r
+         <input_file_ref idref="fl-30"/>\r
+      </object_component>\r
+      <object_component id="oc-130">\r
+         <name>.text:_main</name>\r
+         <load_address>0x1f556</load_address>\r
+         <run_address>0x1f556</run_address>\r
+         <size>0xc6</size>\r
+         <input_file_ref idref="fl-3"/>\r
+      </object_component>\r
+      <object_component id="oc-e4">\r
+         <name>.text</name>\r
+         <load_address>0x1f61c</load_address>\r
+         <run_address>0x1f61c</run_address>\r
+         <size>0xc2</size>\r
+         <input_file_ref idref="fl-33"/>\r
+      </object_component>\r
+      <object_component id="oc-d1">\r
+         <name>.text:CIO_breakpoint</name>\r
+         <load_address>0x1f6de</load_address>\r
+         <run_address>0x1f6de</run_address>\r
+         <size>0xba</size>\r
+         <input_file_ref idref="fl-2e"/>\r
+      </object_component>\r
+      <object_component id="oc-92">\r
+         <name>.text</name>\r
+         <load_address>0x1f798</load_address>\r
+         <run_address>0x1f798</run_address>\r
+         <size>0xa6</size>\r
+         <input_file_ref idref="fl-20"/>\r
+      </object_component>\r
+      <object_component id="oc-81">\r
+         <name>.text</name>\r
+         <load_address>0x1f83e</load_address>\r
+         <run_address>0x1f83e</run_address>\r
+         <size>0xa1</size>\r
+         <input_file_ref idref="fl-1c"/>\r
+      </object_component>\r
+      <object_component id="oc-1c">\r
+         <name>.text</name>\r
+         <load_address>0x1f8df</load_address>\r
+         <run_address>0x1f8df</run_address>\r
+         <size>0x95</size>\r
+         <input_file_ref idref="fl-2"/>\r
+      </object_component>\r
+      <object_component id="oc-11b">\r
+         <name>.text</name>\r
+         <load_address>0x1f974</load_address>\r
+         <run_address>0x1f974</run_address>\r
+         <size>0x8c</size>\r
+         <input_file_ref idref="fl-3e"/>\r
+      </object_component>\r
+      <object_component id="oc-b1">\r
+         <name>.text</name>\r
+         <load_address>0x1fa00</load_address>\r
+         <run_address>0x1fa00</run_address>\r
+         <size>0x7d</size>\r
+         <input_file_ref idref="fl-27"/>\r
+      </object_component>\r
+      <object_component id="oc-147">\r
+         <name>.text:_PLL_getConfig</name>\r
+         <load_address>0x1fa7d</load_address>\r
+         <run_address>0x1fa7d</run_address>\r
+         <size>0x7b</size>\r
+         <input_file_ref idref="fl-6"/>\r
+      </object_component>\r
+      <object_component id="oc-101">\r
+         <name>.text</name>\r
+         <load_address>0x1faf8</load_address>\r
+         <run_address>0x1faf8</run_address>\r
+         <size>0x7b</size>\r
+         <input_file_ref idref="fl-39"/>\r
+      </object_component>\r
+      <object_component id="oc-e8">\r
+         <name>.text</name>\r
+         <load_address>0x1fb73</load_address>\r
+         <run_address>0x1fb73</run_address>\r
+         <size>0x76</size>\r
+         <input_file_ref idref="fl-34"/>\r
+      </object_component>\r
+      <object_component id="oc-9b">\r
+         <name>.text</name>\r
+         <load_address>0x1fbe9</load_address>\r
+         <run_address>0x1fbe9</run_address>\r
+         <size>0x73</size>\r
+         <input_file_ref idref="fl-22"/>\r
+      </object_component>\r
+      <object_component id="oc-52">\r
+         <name>.text</name>\r
+         <load_address>0x1fc5c</load_address>\r
+         <run_address>0x1fc5c</run_address>\r
+         <size>0x72</size>\r
+         <input_file_ref idref="fl-11"/>\r
+      </object_component>\r
+      <object_component id="oc-137">\r
+         <name>.text:_ClockGatingAll</name>\r
+         <load_address>0x1fcce</load_address>\r
+         <run_address>0x1fcce</run_address>\r
+         <size>0x70</size>\r
+         <input_file_ref idref="fl-3"/>\r
+      </object_component>\r
+      <object_component id="oc-89">\r
+         <name>.text</name>\r
+         <load_address>0x1fd3e</load_address>\r
+         <run_address>0x1fd3e</run_address>\r
+         <size>0x6f</size>\r
+         <input_file_ref idref="fl-1e"/>\r
+      </object_component>\r
+      <object_component id="oc-12a">\r
+         <name>.text</name>\r
+         <load_address>0x1fdad</load_address>\r
+         <run_address>0x1fdad</run_address>\r
+         <size>0x6d</size>\r
+         <input_file_ref idref="fl-41"/>\r
+      </object_component>\r
+      <object_component id="oc-ce">\r
+         <name>.text</name>\r
+         <load_address>0x1fe1a</load_address>\r
+         <run_address>0x1fe1a</run_address>\r
+         <size>0x6d</size>\r
+         <input_file_ref idref="fl-2e"/>\r
+      </object_component>\r
+      <object_component id="oc-2d">\r
+         <name>.text:_DmaIsr</name>\r
+         <load_address>0x1fe87</load_address>\r
+         <run_address>0x1fe87</run_address>\r
+         <size>0x6b</size>\r
+         <input_file_ref idref="fl-3"/>\r
+      </object_component>\r
+      <object_component id="oc-ec">\r
+         <name>.text</name>\r
+         <load_address>0x1fef2</load_address>\r
+         <run_address>0x1fef2</run_address>\r
+         <size>0x6b</size>\r
+         <input_file_ref idref="fl-35"/>\r
+      </object_component>\r
+      <object_component id="oc-8d">\r
+         <name>.text</name>\r
+         <load_address>0x1ff5d</load_address>\r
+         <run_address>0x1ff5d</run_address>\r
+         <size>0x67</size>\r
+         <input_file_ref idref="fl-1f"/>\r
+      </object_component>\r
+      <object_component id="oc-6b">\r
+         <name>.text</name>\r
+         <load_address>0x1ffc4</load_address>\r
+         <run_address>0x1ffc4</run_address>\r
+         <size>0x5c</size>\r
+         <input_file_ref idref="fl-16"/>\r
+      </object_component>\r
+      <object_component id="oc-4a">\r
+         <name>.text</name>\r
+         <load_address>0x20020</load_address>\r
+         <run_address>0x20020</run_address>\r
+         <size>0x50</size>\r
+         <input_file_ref idref="fl-f"/>\r
+      </object_component>\r
+      <object_component id="oc-6f">\r
+         <name>.text</name>\r
+         <load_address>0x20070</load_address>\r
+         <run_address>0x20070</run_address>\r
+         <size>0x4d</size>\r
+         <input_file_ref idref="fl-17"/>\r
+      </object_component>\r
+      <object_component id="oc-67">\r
+         <name>.text</name>\r
+         <load_address>0x200bd</load_address>\r
+         <run_address>0x200bd</run_address>\r
+         <size>0x4b</size>\r
+         <input_file_ref idref="fl-15"/>\r
+      </object_component>\r
+      <object_component id="oc-4e">\r
+         <name>.text</name>\r
+         <load_address>0x20108</load_address>\r
+         <run_address>0x20108</run_address>\r
+         <size>0x4b</size>\r
+         <input_file_ref idref="fl-10"/>\r
+      </object_component>\r
+      <object_component id="oc-e0">\r
+         <name>.text</name>\r
+         <load_address>0x20153</load_address>\r
+         <run_address>0x20153</run_address>\r
+         <size>0x48</size>\r
+         <input_file_ref idref="fl-32"/>\r
+      </object_component>\r
+      <object_component id="oc-b9">\r
+         <name>.text</name>\r
+         <load_address>0x2019b</load_address>\r
+         <run_address>0x2019b</run_address>\r
+         <size>0x3f</size>\r
+         <input_file_ref idref="fl-29"/>\r
+      </object_component>\r
+      <object_component id="oc-43">\r
+         <name>.text</name>\r
+         <load_address>0x201da</load_address>\r
+         <run_address>0x201da</run_address>\r
+         <size>0x3e</size>\r
+         <input_file_ref idref="fl-e"/>\r
+      </object_component>\r
+      <object_component id="oc-32">\r
+         <name>.text</name>\r
+         <load_address>0x20218</load_address>\r
+         <run_address>0x20218</run_address>\r
+         <size>0x3b</size>\r
+         <input_file_ref idref="fl-4"/>\r
+      </object_component>\r
+      <object_component id="oc-138">\r
+         <name>.text:_DspLdoSwitch</name>\r
+         <load_address>0x20253</load_address>\r
+         <run_address>0x20253</run_address>\r
+         <size>0x3a</size>\r
+         <input_file_ref idref="fl-3"/>\r
+      </object_component>\r
+      <object_component id="oc-13a">\r
+         <name>.text:_UsbLdoSwitch</name>\r
+         <load_address>0x2028d</load_address>\r
+         <run_address>0x2028d</run_address>\r
+         <size>0x38</size>\r
+         <input_file_ref idref="fl-3"/>\r
+      </object_component>\r
+      <object_component id="oc-1b">\r
+         <name>.text</name>\r
+         <load_address>0x202c5</load_address>\r
+         <run_address>0x202c5</run_address>\r
+         <size>0x34</size>\r
+         <input_file_ref idref="fl-d"/>\r
+      </object_component>\r
+      <object_component id="oc-85">\r
+         <name>.text</name>\r
+         <load_address>0x202f9</load_address>\r
+         <run_address>0x202f9</run_address>\r
+         <size>0x2a</size>\r
+         <input_file_ref idref="fl-1d"/>\r
+      </object_component>\r
+      <object_component id="oc-d4">\r
+         <name>.text</name>\r
+         <load_address>0x20323</load_address>\r
+         <run_address>0x20323</run_address>\r
+         <size>0x2a</size>\r
+         <input_file_ref idref="fl-2f"/>\r
+      </object_component>\r
+      <object_component id="oc-b5">\r
+         <name>.text</name>\r
+         <load_address>0x2034d</load_address>\r
+         <run_address>0x2034d</run_address>\r
+         <size>0x23</size>\r
+         <input_file_ref idref="fl-28"/>\r
+      </object_component>\r
+      <object_component id="oc-9f">\r
+         <name>.text</name>\r
+         <load_address>0x20370</load_address>\r
+         <run_address>0x20370</run_address>\r
+         <size>0x1a</size>\r
+         <input_file_ref idref="fl-23"/>\r
+      </object_component>\r
+      <object_component id="oc-c5">\r
+         <name>.text</name>\r
+         <load_address>0x2038a</load_address>\r
+         <run_address>0x2038a</run_address>\r
+         <size>0x14</size>\r
+         <input_file_ref idref="fl-2c"/>\r
+      </object_component>\r
+      <object_component id="oc-a7">\r
+         <name>.text</name>\r
+         <load_address>0x2039e</load_address>\r
+         <run_address>0x2039e</run_address>\r
+         <size>0x13</size>\r
+         <input_file_ref idref="fl-25"/>\r
+      </object_component>\r
+      <object_component id="oc-5b">\r
+         <name>.text</name>\r
+         <load_address>0x203b1</load_address>\r
+         <run_address>0x203b1</run_address>\r
+         <size>0x12</size>\r
+         <input_file_ref idref="fl-13"/>\r
+      </object_component>\r
+      <object_component id="oc-c1">\r
+         <name>.text</name>\r
+         <load_address>0x203c3</load_address>\r
+         <run_address>0x203c3</run_address>\r
+         <size>0x10</size>\r
+         <input_file_ref idref="fl-2b"/>\r
+      </object_component>\r
+      <object_component id="oc-105">\r
+         <name>.text</name>\r
+         <load_address>0x203d3</load_address>\r
+         <run_address>0x203d3</run_address>\r
+         <size>0xa</size>\r
+         <input_file_ref idref="fl-3a"/>\r
+      </object_component>\r
+      <object_component id="oc-47">\r
+         <name>.text:CIO_breakpoint</name>\r
+         <load_address>0x203dd</load_address>\r
+         <run_address>0x203dd</run_address>\r
+         <size>0x7</size>\r
+         <input_file_ref idref="fl-e"/>\r
+      </object_component>\r
+      <object_component id="oc-13d">\r
+         <name>.text:_UserIdle</name>\r
+         <load_address>0x203e4</load_address>\r
+         <run_address>0x203e4</run_address>\r
+         <size>0x6</size>\r
+         <input_file_ref idref="fl-3"/>\r
+      </object_component>\r
+      <object_component id="oc-56">\r
+         <name>.text</name>\r
+         <load_address>0x203ea</load_address>\r
+         <run_address>0x203ea</run_address>\r
+         <size>0x2</size>\r
+         <input_file_ref idref="fl-12"/>\r
+      </object_component>\r
+      <object_component id="oc-133">\r
+         <name>.switch:_DMA_config</name>\r
+         <load_address>0x24eb4</load_address>\r
+         <run_address>0x24eb4</run_address>\r
+         <size>0x40</size>\r
+         <input_file_ref idref="fl-3b"/>\r
+      </object_component>\r
+      <object_component id="oc-134">\r
+         <name>.switch:_DMA_getConfig</name>\r
+         <load_address>0x24ef4</load_address>\r
+         <run_address>0x24ef4</run_address>\r
+         <size>0x40</size>\r
+         <input_file_ref idref="fl-3b"/>\r
+      </object_component>\r
+      <object_component id="oc-135">\r
+         <name>.switch:_DMA_reset</name>\r
+         <load_address>0x24f34</load_address>\r
+         <run_address>0x24f34</run_address>\r
+         <size>0x40</size>\r
+         <input_file_ref idref="fl-3b"/>\r
+      </object_component>\r
+      <object_component id="oc-136">\r
+         <name>.switch:_SYS_setEBSR</name>\r
+         <load_address>0x24f74</load_address>\r
+         <run_address>0x24f74</run_address>\r
+         <size>0x24</size>\r
+         <input_file_ref idref="fl-40"/>\r
+      </object_component>\r
+      <object_component id="oc-146">\r
+         <name>.switch:_pll_sample</name>\r
+         <load_address>0x24f98</load_address>\r
+         <run_address>0x24f98</run_address>\r
+         <size>0x20</size>\r
+         <input_file_ref idref="fl-6"/>\r
+      </object_component>\r
+      <object_component id="oc-ae">\r
+         <name>.cinit</name>\r
+         <load_address>0x24d98</load_address>\r
+         <run_address>0x24d98</run_address>\r
+         <size>0x5a</size>\r
+         <input_file_ref idref="fl-26"/>\r
+      </object_component>\r
+      <object_component id="oc-7b">\r
+         <name>.cinit</name>\r
+         <load_address>0x24df2</load_address>\r
+         <run_address>0x24df2</run_address>\r
+         <size>0x54</size>\r
+         <input_file_ref idref="fl-1a"/>\r
+      </object_component>\r
+      <object_component id="oc-22">\r
+         <name>.cinit</name>\r
+         <load_address>0x24e46</load_address>\r
+         <run_address>0x24e46</run_address>\r
+         <size>0x24</size>\r
+         <input_file_ref idref="fl-3"/>\r
+      </object_component>\r
+      <object_component id="oc-5e">\r
+         <name>.cinit</name>\r
+         <load_address>0x24e6a</load_address>\r