<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://e2e.ti.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>C64x Multicore DSP Forum - Recent Threads</title><link>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439.aspx</link><description>The C64x multicore forum supports the TMS320C6472 and TMS320C6474 multicore DSPs for technical queries related to silicon and hardware behavior and performance.  Additionally, baremetal programming questions are supported on this forum.</description><dc:language>en-US</dc:language><generator>6.x Production</generator><item><title>EDMA3 for ping-pong buffer</title><link>http://e2e.ti.com/thread/264959.aspx</link><pubDate>Tue, 14 May 2013 21:58:04 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:c7f928d3-8eae-42ff-a4c4-da75d31c934b</guid><dc:creator>Jiajin An1</dc:creator><slash:comments>3</slash:comments><comments>http://e2e.ti.com/thread/264959.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/264959/rss.aspx</wfw:commentRss><description>&lt;p&gt;I use C6474.&lt;/p&gt;
&lt;p&gt;The CSL example &amp;lt;c6474_CSL_Rel_03_03_01\C6474\csl_c6474\example\edma\edma_ping_pong_xfer_reg5&amp;gt; works.&lt;/p&gt;
&lt;p&gt;I can compile it and then run it. Then I can see the following output:&lt;/p&gt;
&lt;p&gt;Running Edma Example&lt;br /&gt;&amp;lt;&amp;lt;EXAMPLE PASSED&amp;gt;&amp;gt;: Edma Ping Pong Buffer Transfer Passed&lt;/p&gt;
&lt;p&gt;This example is designed to firts do DMA for ping buffer, then do DMA for pong buffer, then check the results.&lt;/p&gt;
&lt;p&gt;In real application, we have to repeat the above operations. In other words, we want EDMA ping, then EDMA pong, then EDMA ping again, and then pong again, ...&lt;/p&gt;
&lt;p&gt;I tried to do so by copying line 307-381 to line 382 in Edma_ping_pong_xfer_reg5.c.&lt;/p&gt;
&lt;p&gt;When I ran it. The first ping-pong edma still worked. However, when it started to do the 2nd edma for ping buffer,&amp;nbsp;it stoped in the Polling loop&amp;nbsp;on interrupt bit 0.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>TMS320C6x Evaluation Module</title><link>http://e2e.ti.com/thread/267276.aspx</link><pubDate>Sat, 25 May 2013 01:48:45 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:93564871-b04f-447e-b295-e423d14a46d7</guid><dc:creator>Reza Zolhayat</dc:creator><slash:comments>1</slash:comments><comments>http://e2e.ti.com/thread/267276.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/267276/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I have just purchased TMS320C66x Evaluation Module and install DVD including code composer version&lt;/p&gt;
&lt;p&gt;5.2.1.00018.&lt;/p&gt;
&lt;p&gt;I followed all instruction inside the READ_ME file to install it properly.&lt;/p&gt;
&lt;p&gt;Now, once I attempt to debug it says&amp;nbsp;licence&amp;nbsp;expired or I am using&amp;nbsp;Unlicensed program.&lt;/p&gt;
&lt;p&gt;Could you tell me what i should do?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thank You.&lt;/p&gt;
&lt;p&gt;Reza Zolhayat,P.Eng.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>c6474 second boot</title><link>http://e2e.ti.com/thread/266807.aspx</link><pubDate>Thu, 23 May 2013 09:27:23 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:826d281c-726d-4982-9cde-5591f6c35d61</guid><dc:creator>zhilin song</dc:creator><slash:comments>0</slash:comments><comments>http://e2e.ti.com/thread/266807.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/266807/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi everyone，&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;I am using c6474, I want to switch directly from the set of code to another set of code, without the need for reset, how should I do?&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Boottable code stored in two different areas ddr.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span&gt;Thanks&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Which SPn_ERR_STAT errors cause SPn_ERR_RATE's ERROR_RATE_CNT bits to increment</title><link>http://e2e.ti.com/thread/262359.aspx</link><pubDate>Thu, 02 May 2013 00:28:23 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:20f0be60-8acb-4ee8-8823-515524f5bd70</guid><dc:creator>Eddie3909</dc:creator><slash:comments>15</slash:comments><comments>http://e2e.ti.com/thread/262359.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/262359/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;C6472, DIO lib 1.1.0 DirectIO&lt;/p&gt;
&lt;p&gt;Which SPn_ERR_STAT bits cause SPn_ERR_RATE&amp;#39;s ERROR_RATE_CNT bits to increment?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;And when the SPn_ERR_THRESH is reached, is that when&amp;nbsp;bit 8 &amp;quot;Error on Port 0&amp;quot; &amp;nbsp;in ERR_RST_EVNT_ICSR is set?&lt;/p&gt;
&lt;p&gt;What happens if its a fatal error (i.e. bit 2 of SPn_ERR_STAT). Is bit 8&amp;nbsp;&amp;nbsp;&amp;quot;Error on Port 0&amp;quot; of ERR_RST_EVNT_ICSR&amp;nbsp;set immediately?&lt;/p&gt;
&lt;p&gt;Cheers2u&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>ldotp2_intrinsic</title><link>http://e2e.ti.com/thread/264640.aspx</link><pubDate>Mon, 13 May 2013 23:44:27 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:212b20ea-24f1-41fe-9b76-c28120596ac1</guid><dc:creator>Mushtaq Syed</dc:creator><slash:comments>2</slash:comments><comments>http://e2e.ti.com/thread/264640.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/264640/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi:&lt;/p&gt;
&lt;p&gt;I have&amp;nbsp; questions about the dotp2 and ldotp2 intrinsics. Below is the description from Table 2.7 (Table 2&lt;span style="font-family:Helvetica-Oblique;font-size:small;"&gt;&lt;span style="font-family:Helvetica-Oblique;font-size:small;"&gt;&amp;minus;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Helvetica-Oblique;font-size:small;"&gt;7. TMS320C64x/C64x+ C/C++ Compiler Intrinsics (Continued)) of SPRU198K.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Helvetica-Oblique;font-size:small;"&gt;Based of the description of dotp2, is it correct to say that the accumulation is 32 bits.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Helvetica-Oblique;font-size:small;"&gt;Silimalry, based on the description of ldotp2, the accumulation is 64 bits. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Helvetica-Oblique;font-size:small;"&gt;In both cases we have products of 16 bit numbers.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Helvetica-Oblique;font-size:small;"&gt;Thanks a lot!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Helvetica-Oblique;font-size:small;"&gt;Cheers,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Helvetica-Oblique;font-size:small;"&gt;Mushtaq&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Helvetica-Oblique;font-size:small;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="left"&gt;int &lt;b&gt;&lt;span style="font-family:Helvetica-Bold;font-size:xx-small;"&gt;&lt;b&gt;&lt;span style="font-family:Helvetica-Bold;font-size:xx-small;"&gt;_dotp2(&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Helvetica;font-size:xx-small;"&gt;&lt;span style="font-family:Helvetica;font-size:xx-small;"&gt;int &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-family:Helvetica-Oblique;font-size:xx-small;"&gt;&lt;i&gt;&lt;span style="font-family:Helvetica-Oblique;font-size:xx-small;"&gt;src1&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;b&gt;&lt;span style="font-family:Helvetica-Bold;font-size:xx-small;"&gt;&lt;b&gt;&lt;span style="font-family:Helvetica-Bold;font-size:xx-small;"&gt;, &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Helvetica;font-size:xx-small;"&gt;&lt;span style="font-family:Helvetica;font-size:xx-small;"&gt;int &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-family:Helvetica-Oblique;font-size:xx-small;"&gt;&lt;i&gt;&lt;span style="font-family:Helvetica-Oblique;font-size:xx-small;"&gt;src2&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;b&gt;&lt;span style="font-family:Helvetica-Bold;font-size:xx-small;"&gt;); &lt;/span&gt;&lt;/b&gt;DOTP2&lt;/p&gt;
&lt;p align="left"&gt;double &lt;b&gt;&lt;span style="font-family:Helvetica-Bold;font-size:xx-small;"&gt;&lt;b&gt;&lt;span style="font-family:Helvetica-Bold;font-size:xx-small;"&gt;_ldotp2(&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Helvetica;font-size:xx-small;"&gt;&lt;span style="font-family:Helvetica;font-size:xx-small;"&gt;int &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-family:Helvetica-Oblique;font-size:xx-small;"&gt;&lt;i&gt;&lt;span style="font-family:Helvetica-Oblique;font-size:xx-small;"&gt;src1&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;b&gt;&lt;span style="font-family:Helvetica-Bold;font-size:xx-small;"&gt;&lt;b&gt;&lt;span style="font-family:Helvetica-Bold;font-size:xx-small;"&gt;, &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:Helvetica;font-size:xx-small;"&gt;&lt;span style="font-family:Helvetica;font-size:xx-small;"&gt;int &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-family:Helvetica-Oblique;font-size:xx-small;"&gt;&lt;i&gt;&lt;span style="font-family:Helvetica-Oblique;font-size:xx-small;"&gt;src2&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;b&gt;&lt;span style="font-family:Helvetica-Bold;font-size:xx-small;"&gt;); &lt;/span&gt;&lt;/b&gt;LDOTP2&lt;/p&gt;
&lt;p align="left"&gt;The product of the signed lower 16-bit values of&lt;/p&gt;
&lt;p align="left"&gt;src1 and src2 is added to the product of the&lt;/p&gt;
&lt;p align="left"&gt;signed upper 16-bit values of src1 and src2.&lt;/p&gt;
&lt;p align="left"&gt;The _lo and _hi intrinsics are needed to access&lt;/p&gt;
&lt;p&gt;each half of the 64-bit integer result.&lt;/p&gt;
&lt;p align="left"&gt;&lt;span style="font-family:Helvetica;font-size:xx-small;"&gt;&lt;span style="font-family:Helvetica;font-size:xx-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p align="left"&gt;&lt;b&gt;&lt;span style="font-family:Helvetica-Bold;font-size:xx-small;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p align="left"&gt;&lt;span style="font-family:Helvetica;font-size:xx-small;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Software Tool Kit for Medical Diagnostic Ultrasound</title><link>http://e2e.ti.com/thread/246301.aspx</link><pubDate>Mon, 18 Feb 2013 11:24:08 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:efe01d5d-6c69-4155-81a7-b37b4cfae39f</guid><dc:creator>Wissam Marrouche</dc:creator><slash:comments>49</slash:comments><comments>http://e2e.ti.com/thread/246301.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/246301/rss.aspx</wfw:commentRss><description>&lt;p&gt;&lt;span&gt;I have the TI Embedded Processor Software Tool Kit for Medical Diagnostic Ultrasound CD version 2. I want to join the following ultrasound packages: rxbf, rfdemod, bpu, dpu and scu into one functional block that takes raw data as input and produce a raster image. I am finding difficulties gluing all the modules together.Is there a sample code of a top level module that combines all these functions? Note: I am using code composer to download on TI 64x DSP.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>dropped interrupt problem -cpu interrupt 13 drop system event 44 (TINTHI5) on 6488</title><link>http://e2e.ti.com/thread/263599.aspx</link><pubDate>Wed, 08 May 2013 10:06:07 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:e3392487-c1f9-45b1-88d8-9ee603afa64b</guid><dc:creator>weiqiang li1</dc:creator><slash:comments>0</slash:comments><comments>http://e2e.ti.com/thread/263599.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/263599/rss.aspx</wfw:commentRss><description>&lt;p&gt;&amp;nbsp;I am developing multithreaded software for C6488 platform. Now I have encountered the problem of CSL_IntcRegsOvly)CSL_INTC_0_REGS)-&amp;gt;INTXSTAT which value&amp;nbsp;equal to 0x2C0D0001. This indicates that interrupt 13 drop event 44 .&amp;nbsp;&amp;nbsp;In my&amp;nbsp;software&amp;nbsp;I bind timer&amp;nbsp;5 high(TINTHI5)&amp;nbsp; to CPU interrupt&amp;nbsp; 13.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Could any one tell me a clue what could be the possible reason for this dropped interrupt.&lt;/p&gt;
&lt;p&gt;Should I mask the dropped interrupt with (CSL_IntcRegsOvly)CSL_INTC_0_REGS)-&amp;gt;INTDMASK register?&lt;/p&gt;
&lt;p&gt;Thanks a lot!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>What can cause the "Port unrecoverable error":  bit 2 in SPn_ERR_STAT?</title><link>http://e2e.ti.com/thread/262341.aspx</link><pubDate>Wed, 01 May 2013 22:34:05 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:372add12-775b-4f25-b4b7-601cff71ba02</guid><dc:creator>Eddie3909</dc:creator><slash:comments>3</slash:comments><comments>http://e2e.ti.com/thread/262341.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/262341/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Is there a listing of what can cause the &amp;quot;Port unrecoverable error&amp;quot;: &amp;nbsp;bit 2 in SPn_ERR_STAT?&lt;/p&gt;
&lt;p&gt;Cheers2u&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Getting "Error detected on Port 0" bit set in ERR_RST_EVNT_ICSR</title><link>http://e2e.ti.com/thread/262340.aspx</link><pubDate>Wed, 01 May 2013 22:33:09 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:83c75ba8-eb05-4b2b-90c9-66b8fb3e4f4f</guid><dc:creator>Eddie3909</dc:creator><slash:comments>2</slash:comments><comments>http://e2e.ti.com/thread/262340.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/262340/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;C6742. Diolib 1.1.0&lt;/p&gt;
&lt;p&gt;When we get b8 set in ERR_RST_EVNT_ICSR, Table 40 in SPRUE13J says that this could be due to bits SPn_ERR_STAT b2, b16, b20, b24, and b25.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Are there any other that are tied to the ERR_RST_EVNT_ICSR bit 8?&lt;/p&gt;
&lt;p&gt;Are the SPn_ERR_STAT bits hardwired to ERR_RST_EVNT_ICSR bit 8?&lt;/p&gt;
&lt;p&gt;Is there a register you can use to disable the wiring of SPn_ERR_STAT bits to&amp;nbsp;ERR_RST_EVNT_ICSR bit 8?&lt;/p&gt;
&lt;p&gt;Cheers2u&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>creating the video codec library in c64x</title><link>http://e2e.ti.com/thread/259461.aspx</link><pubDate>Thu, 18 Apr 2013 05:40:31 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:0274c37e-a529-4047-adb0-1c5bf73d553f</guid><dc:creator>esh waran</dc:creator><slash:comments>2</slash:comments><comments>http://e2e.ti.com/thread/259461.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/259461/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi everybody ,&lt;/p&gt;
&lt;p&gt;i like to develop Vp8 codec library in c64x processor.I&amp;#39;m beginner in c64x processor.&lt;/p&gt;
&lt;p&gt;could anyone help me through docs ,links or any suggestion ?&lt;/p&gt;
&lt;p&gt;regards&lt;/p&gt;
&lt;p&gt;Eshwaran&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>I2C read using CSL</title><link>http://e2e.ti.com/thread/256786.aspx</link><pubDate>Fri, 05 Apr 2013 18:05:41 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:14a723e5-549a-41f0-9756-72eadb0be18e</guid><dc:creator>khaled saab</dc:creator><slash:comments>1</slash:comments><comments>http://e2e.ti.com/thread/256786.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/256786/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi,I&amp;#39;m using C6472, CCS3.3, and I would like to write a simple I2C read routine.&lt;/p&gt;
&lt;p&gt;I tried the example code that came with the CSL library and it worked fine (write and read back in loopback mode).&lt;/p&gt;
&lt;p&gt;I need a simple read. I tried to modify the example code with no success. I tried other examples from the web with no success either.&lt;/p&gt;
&lt;p&gt;Here is partial code. I removed many of the status return checks to simplify the reading.&lt;/p&gt;
&lt;p&gt;My problem is that the read register (RRDY bit) is never ready! Do I have to start by&amp;nbsp; transmitting the slave address, or its is sent automatically? Please help.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;void I2C_init(void) {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CSL_Status &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;status;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CSL_I2cObj&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i2cObj;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSL_I2cHwSetup&amp;nbsp; hwSetup;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwSetup.mode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = CSL_I2C_MODE_MASTER;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwSetup.dir&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = CSL_I2C_DIR_TRANSMIT;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwSetup.addrMode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = CSL_I2C_ADDRSZ_SEVEN;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//7bits addressing mode&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwSetup.sttbyteen&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = CSL_I2C_STB_DISABLE;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//DISABLE == disable start byte (Normal mode)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwSetup.ownaddr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = CSL_I2C_SLAVE_ADDR;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//address used to talk to this DSP chip&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwSetup.ackMode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = CSL_I2C_ACK_ENABLE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwSetup.runMode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = CSL_I2C_FREE_MODE_DISABLE;&amp;nbsp;&amp;nbsp; &amp;nbsp;//DISABLE == stop at breakpoint&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwSetup.repeatMode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = CSL_I2C_REPEAT_MODE_DISABLE;//DISABLE == no repeat mode&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwSetup.loopBackMode&amp;nbsp;&amp;nbsp; = CSL_I2C_DLB_DISABLE;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//DISABLE == digital loopback mode is disabled&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwSetup.freeDataFormat = CSL_I2C_FDF_DISABLE;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//DISABLE == use 7/10bits addressing mode&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwSetup.resetMode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = CSL_I2C_IRS_ENABLE; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//ENABLE&amp;nbsp; == put in reset&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwSetup.bcm&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = CSL_I2C_BCM_DISABLE;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//DISABLE == disable back compatibility&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwSetup.inten&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0x00;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//interrupt enable mask&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwSetup.clksetup&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = &amp;amp;clksetup;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//prescaler and clock setup&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSL_i2cInit(NULL);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sI2C_Handle = CSL_i2cOpen(&amp;amp;i2cObj, CSL_I2C, NULL, &amp;amp;status);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSL_i2cHwSetup(sI2C_Handle, &amp;amp;hwSetup);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSL_i2cHwControl(sI2C_Handle, CSL_I2C_CMD_OUTOFRESET, NULL);&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;uint16_t I2C_read(uint16_t endPoint, uint8_t *data_p, uint16_t length) {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int16_t timecount, timeout = 0x1000; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CSL_Status status = CSL_SOK;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t response;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint32_t BbResponse;&amp;nbsp;&amp;nbsp; &amp;nbsp;//busy bit&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t cmd_arg;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t&amp;nbsp; endPointAddress;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// set address of the slave device&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; endPointAddress == 0x40;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSL_i2cHwControl(sI2C_Handle, CSL_I2C_CMD_SET_SLAVE_ADDR, &amp;amp;endPointAddress);&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSL_i2cHwControl(sI2C_Handle, CSL_I2C_CMD_SET_DATA_COUNT,&amp;amp;length);&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Configure Options for Receiving - Master Reciever mode&lt;br /&gt;//&amp;nbsp; CSL_i2cHwControl(sI2C_Handle, CSL_I2C_MODE_MASTER,NULL); //master&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSL_i2cHwControl(sI2C_Handle, CSL_I2C_CMD_DIR_RECEIVE,NULL); //receive&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSL_i2cHwControl(sI2C_Handle, CSL_I2C_CMD_ENABLE,NULL); //enable&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSL_i2cHwControl(sI2C_Handle, CSL_I2C_CMD_START,NULL);&amp;nbsp;&amp;nbsp; //start&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Wait for the transfer to start&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; do {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSL_i2cGetBusBusy(sI2C_Handle,&amp;amp;BbResponse);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } while(BbResponse != 1);&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(length) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //receive all data words&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSL_i2cGetHwStatus(sI2C_Handle, CSL_I2C_QUERY_NACKSNT, &amp;amp;response);&amp;nbsp; &amp;nbsp; //check NACK &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( response != 0x0001 ) {&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSL_i2cGetHwStatus(sI2C_Handle, CSL_I2C_QUERY_ACS_RDY, &amp;amp;response);&amp;nbsp;&amp;nbsp; //check ARDY&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (response != CSL_I2C_ACS_READY ) { //we still have more data to read&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;strong&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSL_i2cGetHwStatus(sI2C_Handle, CSL_I2C_QUERY_RX_RDY, &amp;amp;response);&amp;nbsp;&amp;nbsp; &lt;span style="background-color:#ffff00;"&gt;//check RRDY&lt;/span&gt;&lt;/strong&gt;&lt;span style="background-color:#ffff00;"&gt; (can&amp;#39;t get past this point)&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ( response == CSL_I2C_RX_READY ) {&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSL_i2cRead(sI2C_Handle,data_p++);&amp;nbsp; //Read Data&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length --;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Clear Receive Ready field&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;do{ &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cmd_arg=CSL_I2C_CLEAR_RRDY;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;CSL_i2cHwControl(sI2C_Handle,CSL_I2C_CMD_CLEAR_STATUS,&amp;amp;cmd_arg);&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;CSL_i2cGetHwStatus(sI2C_Handle, CSL_I2C_QUERY_RX_RDY, &amp;amp;response);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}while(response==CSL_I2C_RX_READY);&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}//if Rx ready&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }//if ARDY: we still have data to read&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// Check for Arbitration Lost&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;CSL_i2cGetHwStatus(sI2C_Handle,CSL_I2C_QUERY_AL, &amp;amp;response);&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ( response == CSL_I2C_ARBITRATION_LOST ) { &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 1001;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Check for NACK */&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSL_i2cGetHwStatus(sI2C_Handle,CSL_I2C_QUERY_NACKSNT, &amp;amp;response);&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( response == 0x0001 )&amp;nbsp;&amp;nbsp; return 1002;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Check for Register Access Ready - Good Condition */&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CSL_i2cGetHwStatus(sI2C_Handle,CSL_I2C_QUERY_ACS_RDY, &amp;amp;response);//why ARDY!=1?&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ( response == CSL_I2C_ACS_READY ) {&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;do{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cmd_arg=CSL_I2C_CLEAR_ARDY;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;CSL_i2cHwControl(sI2C_Handle,CSL_I2C_CMD_CLEAR_STATUS,&amp;amp;cmd_arg);&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;CSL_i2cGetHwStatus(sI2C_Handle,CSL_I2C_QUERY_ACS_RDY, &amp;amp;response);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}while(response == CSL_I2C_ACS_READY);&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } // if NACK&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;} //for all data&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // I2C Timeout &lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return 2002; &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Theoretical clock cycles vs. measured time</title><link>http://e2e.ti.com/thread/68032.aspx</link><pubDate>Fri, 08 Oct 2010 21:03:51 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:e7bac25a-6ea2-49d2-bab9-0e37fb430a93</guid><dc:creator>Andrey56137</dc:creator><slash:comments>3</slash:comments><comments>http://e2e.ti.com/thread/68032.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/68032/rss.aspx</wfw:commentRss><description>&lt;p&gt;We are in the process of verifying theoretical cycle time calculations for a convolution function, based on information from the generated asm file.&amp;nbsp;
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Following results and questions pertain to the attached file conv.c.txt and a section of the generated conv.asm file (please see below).&amp;nbsp;
&lt;br /&gt;conv.c implements a basic convolution function.
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Our setup details are :
&lt;br /&gt;&amp;nbsp;- EVM6472, used to run .out file generated from a SYS/BIOS based&amp;nbsp;
&lt;br /&gt;&amp;nbsp;&amp;nbsp; project&amp;nbsp;
&lt;br /&gt;&amp;nbsp;- CCS v4.2
&lt;br /&gt;&amp;nbsp;- SYS/BIOS (BIOSv6)
&lt;br /&gt;&amp;nbsp;- CGT v7.0.3
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;There appears to be a mismatch in timing measurements, with &amp;quot;actual run time&amp;quot; being about 9 times the &amp;quot;computed run time&amp;quot;.
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;From the C code,
&lt;br /&gt;Number of outer loop iterations = x_len + h_len = 196000+36000 = 232000
&lt;br /&gt;Number of inner loop iterations = h_len = 36000
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;From asm file, Cycle time for software pipelined loop is
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Total cycles (est) = 10 + trip_cnt * 2, with 2 DOTP2 instructions for a SINGLE SCHEDULED ITERATION.
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Hence, computed run time = x_len*(10+trip_cnt*2),
&lt;br /&gt;trip_cnt = h_len/4 (2 DOTP2&amp;#39;s per iteration)
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Therefore,
&lt;br /&gt;Computed run time = x_len*(10+h_len/2) = 4178320000 cycles.
&lt;br /&gt;At 700Mhz, this would correspond to a time of 6s (approx).
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;However actual run time of the program was determined to be ~52 s. Run time was calculated by inserting SYS/BIOS (BIOS6) Clock_getTicks() calls right before and immediately after the outer loop. Also, we made sure that interrupts were disabled during execution of the loops, this had no effect on run time measured.
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;(1) Is there something wrong with how &amp;quot;Computed run time&amp;quot; is being calculated or how we are measuring &amp;quot;Actual run time&amp;quot; ?
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;(2) As part of the Software Pipeline information, the compiler outputs a line that reads something like &amp;quot;ii = 2&amp;nbsp; Schedule found with 6 iterations in parallel&amp;quot;. Does the word &amp;quot;iterations&amp;quot; in the above phrase correspond to actual inner loop iteration in c code ? If so, is the number 6 in the above example, to be used in computing &amp;quot;expected run time&amp;quot; ?
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;Thank you in advance for your help.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Andrey&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Relevant part of the .asm file:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;$C$DW$L$_conv$6$E:
&lt;br /&gt;;*----------------------------------------------------------------------------*
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp; SOFTWARE PIPELINE INFORMATION
&lt;br /&gt;;*
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop source line&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 78
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop opening brace source line&amp;nbsp;&amp;nbsp; : 78
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop closing brace source line&amp;nbsp;&amp;nbsp; : 84
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop Unroll Multiple&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 4x
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Known Minimum Trip Count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Known Max Trip Count Factor&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 4
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop Carried Dependency Bound(^) : 1
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Unpartitioned Resource Bound&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 1
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Partitioned Resource Bound(*)&amp;nbsp;&amp;nbsp;&amp;nbsp; : 2
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Resource Partition:
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A-side&amp;nbsp;&amp;nbsp; B-side
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .L units&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .S units&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .D units&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .M units&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .X cross paths&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .T address paths&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Long read paths&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Long write paths&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Logical&amp;nbsp; ops (.LS)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (.L or .S unit)
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Addition ops (.LSD)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (.L or .S or .D unit)
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bound(.L .S .LS)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Bound(.L .S .D .LS .LSD)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;br /&gt;;*
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Searching for software pipeline schedule at ...
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ii = 2&amp;nbsp; Schedule found with 6 iterations in parallel
&lt;br /&gt;;*
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Register Usage Table:
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +-----------------------------------------------------------------+
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB|
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |00000000001111111111222222222233|00000000001111111111222222222233|
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |01234567890123456789012345678901|01234567890123456789012345678901|
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |--------------------------------+--------------------------------|
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0: |&amp;nbsp;&amp;nbsp; *****&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; *****&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1: |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; **&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; ** **&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +-----------------------------------------------------------------+
&lt;br /&gt;;*
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Done
&lt;br /&gt;;*
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop will be splooped
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Collapsed epilog stages&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Collapsed prolog stages&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Minimum required memory pad&amp;nbsp;&amp;nbsp; : 0 bytes
&lt;br /&gt;;*
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Minimum safe trip count&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 1 (after unrolling)
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Min. prof. trip count&amp;nbsp; (est.) : 2 (after unrolling)
&lt;br /&gt;;*
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mem bank conflicts/iter(est.) : { min 0.000, est 0.000, max 0.000 }
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mem bank perf. penalty (est.) : 0.0%
&lt;br /&gt;;*
&lt;br /&gt;;*
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Total cycles (est.)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 10 + trip_cnt * 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;br /&gt;;*----------------------------------------------------------------------------*
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SINGLE SCHEDULED ITERATION
&lt;br /&gt;;*
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $C$C35:
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDDW&amp;nbsp;&amp;nbsp;&amp;nbsp; .D2T2&amp;nbsp;&amp;nbsp; *B7++,B5:B4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |78|&amp;nbsp; ^&amp;nbsp;
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDNDW&amp;nbsp;&amp;nbsp; .D1T1&amp;nbsp;&amp;nbsp; *A6++(8),A5:A4&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |78|&amp;nbsp; ^&amp;nbsp;
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DOTP2&amp;nbsp;&amp;nbsp; .M2X&amp;nbsp;&amp;nbsp;&amp;nbsp; B4,A4,B6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |78|&amp;nbsp; ^&amp;nbsp;
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DOTP2&amp;nbsp;&amp;nbsp; .M1X&amp;nbsp;&amp;nbsp;&amp;nbsp; B5,A5,A3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |78|&amp;nbsp; ^&amp;nbsp;
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3
&lt;br /&gt;;*&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .L2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B6,B8,B8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |78|&amp;nbsp; ^&amp;nbsp;
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .L1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A3,A7,A7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |78|&amp;nbsp; ^&amp;nbsp;
&lt;br /&gt;;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPBR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $C$C35
&lt;br /&gt;;*&amp;nbsp; 11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1
&lt;br /&gt;;*&amp;nbsp; 12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; BRANCHCC OCCURS {$C$C35}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |78|&amp;nbsp;
&lt;br /&gt;;*----------------------------------------------------------------------------*
&lt;br /&gt;$C$L5:&amp;nbsp;&amp;nbsp;&amp;nbsp; ; PIPED LOOP PROLOG
&lt;br /&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXCLUSIVE CPU CYCLES: 11
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPLOOPD 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; (P)&amp;nbsp;
&lt;br /&gt;||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MVC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .S2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B4,ILC
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;;** --------------------------------------------------------------------------*
&lt;br /&gt;$C$L6:&amp;nbsp;&amp;nbsp;&amp;nbsp; ; PIPED LOOP KERNEL
&lt;br /&gt;$C$DW$L$_conv$8$B:
&lt;br /&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXCLUSIVE CPU CYCLES: 2
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDDW&amp;nbsp;&amp;nbsp;&amp;nbsp; .D2T2&amp;nbsp;&amp;nbsp; *B7++,B5:B4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |78| (P) &amp;lt;0,0&amp;gt;&amp;nbsp; ^&amp;nbsp;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDNDW&amp;nbsp;&amp;nbsp; .D1T1&amp;nbsp;&amp;nbsp; *A6++(8),A5:A4&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |78| (P) &amp;lt;0,1&amp;gt;&amp;nbsp; ^&amp;nbsp;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DOTP2&amp;nbsp;&amp;nbsp; .M2X&amp;nbsp;&amp;nbsp;&amp;nbsp; B4,A4,B6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |78| (P) &amp;lt;0,6&amp;gt;&amp;nbsp; ^&amp;nbsp;
&lt;br /&gt;||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DOTP2&amp;nbsp;&amp;nbsp; .M1X&amp;nbsp;&amp;nbsp;&amp;nbsp; B5,A5,A3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |78| (P) &amp;lt;0,6&amp;gt;&amp;nbsp; ^&amp;nbsp;
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPMASK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; L1,L2
&lt;br /&gt;||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ZERO&amp;nbsp;&amp;nbsp;&amp;nbsp; .L1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |78|&amp;nbsp;
&lt;br /&gt;||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ZERO&amp;nbsp;&amp;nbsp;&amp;nbsp; .L2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |78|&amp;nbsp;
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPKERNEL 4,1
&lt;br /&gt;||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .L2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B6,B8,B8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |78| &amp;lt;0,10&amp;gt;&amp;nbsp; ^&amp;nbsp;
&lt;br /&gt;||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .L1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A3,A7,A7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |78| &amp;lt;0,10&amp;gt;&amp;nbsp; ^&amp;nbsp;
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;$C$DW$L$_conv$8$E:
&lt;br /&gt;;** --------------------------------------------------------------------------*
&lt;br /&gt;$C$L7:&amp;nbsp;&amp;nbsp;&amp;nbsp; ; PIPED LOOP EPILOG
&lt;br /&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXCLUSIVE CPU CYCLES: 9
&lt;br /&gt;;** --------------------------------------------------------------------------*
&lt;br /&gt;$C$DW$L$_conv$10$B:
&lt;br /&gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXCLUSIVE CPU CYCLES: 12
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .L1X&amp;nbsp;&amp;nbsp;&amp;nbsp; B8,A3
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .dwpsn&amp;nbsp;&amp;nbsp;&amp;nbsp; file &amp;quot;../conv.c&amp;quot;,line 86,column 9,is_stmt
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .L1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A7,A3,A3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |86|&amp;nbsp;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SHR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .S1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A3,15,A3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |86|&amp;nbsp;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STH&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .D1T1&amp;nbsp;&amp;nbsp; A3,*A24++&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |86|&amp;nbsp;
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .dwpsn&amp;nbsp;&amp;nbsp;&amp;nbsp; file &amp;quot;../conv.c&amp;quot;,line 70,column 15,is_stmt
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SUB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .L2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B0,1,B0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |70|&amp;nbsp;
&lt;br /&gt;||&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .S2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2,B31,B31&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |70|&amp;nbsp;
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; [ B0]&amp;nbsp;&amp;nbsp; BNOP&amp;nbsp;&amp;nbsp;&amp;nbsp; .S1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $C$L4,4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |70|&amp;nbsp;
&lt;br /&gt;|| [ B0]&amp;nbsp;&amp;nbsp; ADD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .L2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B31,B2,B4
&lt;br /&gt;|| [ B0]&amp;nbsp;&amp;nbsp; MV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .S2X&amp;nbsp;&amp;nbsp;&amp;nbsp; A25,B7
&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; [ B0]&amp;nbsp;&amp;nbsp; MV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .L1X&amp;nbsp;&amp;nbsp;&amp;nbsp; B4,A6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; Define a twin register
&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; BRANCHCC OCCURS {$C$L4}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; |70|&amp;nbsp;
&lt;br /&gt;$C$DW$L$_conv$10$E:
&lt;br /&gt;;** --------------------------------------------------------------------------*&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description><enclosure url="http://e2e.ti.com/cfs-file.ashx/__key/telligent-evolution-components-attachments/00-439-00-00-00-06-80-32/conv_5F00_cim.c.txt" length="2442" type="text/plain" /></item><item><title>Occasional data errors in memory writes?</title><link>http://e2e.ti.com/thread/259320.aspx</link><pubDate>Wed, 17 Apr 2013 15:27:04 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:f5e4074d-fe0c-491b-be74-6140d4d07056</guid><dc:creator>Michael P</dc:creator><slash:comments>3</slash:comments><comments>http://e2e.ti.com/thread/259320.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/259320/rss.aspx</wfw:commentRss><description>&lt;p&gt;I wrote a small executable to load into the two TMS320C6474 chips on a custom board (based roughly on the two-DSP eval module from Spectrum Digital).&amp;nbsp; It was meant primarily as a board assembly test tool, but its results so far mostly work against that purpose...&lt;/p&gt;
&lt;p&gt;The executable resides in core 0&amp;#39;s L2RAM.&amp;nbsp; It initializes the PLLs, sets MAR16-MAR18 and MAR128-143 (each chip has 256 MB of DDR2 attached), and then repeatedly writes and reads back a pseudo-random pattern to (a) the unused portion of core 0&amp;#39;s L2RAM, (b) core 1 and core 2&amp;#39;s L2RAM, (c) core 1 and core 2&amp;#39;s L1D RAM, and (d) the DDR2.&amp;nbsp; It stores its findings at a fixed address (in core 0&amp;#39;s L2RAM) that is then read over SRIO or JTAG.&lt;/p&gt;
&lt;p&gt;On some DSPs, the readback occasionally sees the wrong value -- although I think the failure occurs during the write because a read of the faulting address still sees a wrong value after the rest of that contiguous block is read back and checked.&amp;nbsp; This occurs both on our board and on a Spectrum Digital eval module (on the eval module, I comment out the PLL initialization, and let the standard GEL file set those up, because the system clocks are a different frequency) although the frequency of failure varies greatly from chip to chip.&lt;/p&gt;
&lt;p&gt;How can we determine the root cause of the mismatches?&lt;/p&gt;
&lt;p&gt;The frequency might be related to the PLLs: For example, one chip saw five L2RAM mismatches out of 27 full passes through the memory when running at 61.44*16 (=983) MHz; the other chip on the same board sees no mismatches.&amp;nbsp; If I use the no-PLL-initialization image, the failing chip sees two L2RAM mismatches out of 31 passes (but takes 13 times as long to run -- see also http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/p/216699/907077.aspx), and the other chip is still all clear.&lt;/p&gt;
&lt;p&gt;It is possibly influenced by the addresses involved: Two failing chips (one on an eval module, one on the custom board) both saw mismatches at 0x128843F8 (and both saw the same wrong value there: 0x9092E900 rather than 0x9092E9A4); both saw mismatches at 0x12884A7C (reading 0x00000000 rather than 0x90908AC5); both saw mismatches at 0x12884BCC (but with different values: 0x00000000 or 0x80000A00 rathern than 0x9090E2F8); and the chip on the eval module saw an additional mismatch at 0x12801114 (0x0478461F instead of 0x9284461F).&amp;nbsp; While all of those were related to core 2&amp;#39;s memories, one (custom) board saw a mismatch in core 1&amp;#39;s L1RAM in 13 consecutive passes, another saw a mismatch in DDR2 as well as in core 2&amp;#39;s L2RAM.&lt;/p&gt;
&lt;p&gt;It does not seem to be related to the chip&amp;#39;s position on the board: Roughly half of the mismatches occur with &amp;quot;DSP 0&amp;quot; and half with &amp;quot;DSP 1&amp;quot;, although those were mostly one mismatch out of 13 full passes through memory; a larger population of test failures might show some (presumably weak) pattern.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>VLIB Dowload Information</title><link>http://e2e.ti.com/thread/260361.aspx</link><pubDate>Mon, 22 Apr 2013 18:32:28 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:a35b94bf-d7e1-4755-a862-77943b184641</guid><dc:creator>searKing chan</dc:creator><slash:comments>1</slash:comments><comments>http://e2e.ti.com/thread/260361.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/260361/rss.aspx</wfw:commentRss><description>&lt;p&gt;您好！能发我一份vlib2.2吗？&lt;a href="mailto:471030698@qq.com"&gt;471030698@qq.com&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>C6474 bootloader PLL mode?</title><link>http://e2e.ti.com/thread/216699.aspx</link><pubDate>Wed, 26 Sep 2012 14:41:45 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:58b7fbf1-7c74-4c44-add5-5d4aba7331e6</guid><dc:creator>Michael P</dc:creator><slash:comments>4</slash:comments><comments>http://e2e.ti.com/thread/216699.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/216699/rss.aspx</wfw:commentRss><description>&lt;p&gt;Table 31 in SPRUEC6G says &amp;quot;For all bootmodes, the PLL is set to x16 mode.&amp;quot;&amp;nbsp; This does not correspond with what I see on a silicon revision 2.1 DSP (DEVID.VARIANT=4).&lt;/p&gt;
&lt;p&gt;If I connect an emulator to a DSP using boot mode 9 (DEVSTAT register value 0x00000022), trigger a warm reset for the DSP, and let the bootloader run for a while -- with no SRIO transactions being sent to the DSP -- I see the PLL1 registers stay in their reset values (PLLCTL.PLLEN=0, PLLM.PLLM=0, and so forth).&lt;/p&gt;
&lt;p&gt;Is this the expected behavior?&amp;nbsp; Is the application responsible for programming the PLL, even if it wants x16 mode?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>VLIB functions not behaving correctly !?</title><link>http://e2e.ti.com/thread/257939.aspx</link><pubDate>Thu, 11 Apr 2013 09:34:37 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:cf43101f-12c5-4857-a160-05d825f86ecb</guid><dc:creator>benoit goas</dc:creator><slash:comments>3</slash:comments><comments>http://e2e.ti.com/thread/257939.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/257939/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi,&lt;br /&gt;we just started using some VLIB 2.2&amp;nbsp;functions for one of our codes on C6474, but we have some problems with the way they behave.&lt;/p&gt;
&lt;p&gt;For example, about the function VLIB_updateEWRVarianceS16 :&lt;br /&gt;- Its test function VLIB_testUpdateEWRVarianceS16 passes correctly (linked with vlib.l64p renamed as .lib for CCSV5)&lt;br /&gt;- It&amp;rsquo;s supposed to compute updatedVar = (1 &amp;ndash; weight) &amp;times; previousVar + weight &amp;times; (newestData &amp;ndash; previousMean)&amp;sup2; with a weight coded as SQ0.15 (VLIB 2.2 SPRUG00E &amp;ndash; August 2011)&lt;br /&gt;- Seeing its results, it uses the weight as &amp;ldquo;0.18&amp;rdquo;, or 0.15/8, or always starting with 3 zeros before the 15 digits given, so not as a true 0.15&lt;br /&gt;- Also according to our results, that weight is taken modulo &amp;ldquo;0.5&amp;rdquo; : giving half its value range is the same as giving 0&lt;br /&gt;- The function calculated appears to be updatedVar = (1 &amp;ndash; weight) &amp;times; previousVar + (weight&lt;strong&gt;/2&lt;/strong&gt;) &amp;times; (newestData &amp;ndash; previousMean)&amp;sup2; (checked against manual and Excel computations). It seems to also be the case when used in its test function (see computation for the pixel value at 12, giving 0x4f instead of the theoretical 0x50 we computed), but it&amp;#39;s hard to say when so few computations are done in that test function (more than half of them are masked, and the delta of 1 could be a rounding issue)&lt;/p&gt;
&lt;p&gt;Is this the expected behavior of the function?&lt;br /&gt;Is there any complete documentation describing this?&lt;/p&gt;
&lt;p&gt;Right now, with both exponential update functions and the subtractBackgroundS16,&amp;nbsp;we get a variance converging to values really close to 0 and most pixels of the images get flagged as foreground, even with both thresholds at their maximum value, which doesn&amp;rsquo;t make sense&amp;hellip;&lt;/p&gt;
&lt;p&gt;I hope we&amp;#39;ll be able to understand these VLIB functions more with your help,&lt;br /&gt;B. GOAS&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>PrebuiltExecutables6678 for Ultrasound imaging 4 Demo</title><link>http://e2e.ti.com/thread/258199.aspx</link><pubDate>Fri, 12 Apr 2013 06:57:38 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:f8d5b682-51d6-4f32-8b1d-58509a547871</guid><dc:creator>Ahmad Masri</dc:creator><slash:comments>2</slash:comments><comments>http://e2e.ti.com/thread/258199.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/258199/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hello&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I cannot seem to find the&amp;nbsp;PrebuiltExecutables6678 for&amp;nbsp;Ultrasound imaging 4 Demo, it is the final step in the test demo, and i cannot find the files anywhere in the TI Support site&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>i am a 6474 beginner, want to know how to build phisal layer code on the dsp ...</title><link>http://e2e.ti.com/thread/255743.aspx</link><pubDate>Tue, 02 Apr 2013 03:08:33 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:a47d346e-6a97-42e4-8f71-f7fb41171aa3</guid><dc:creator>Shinny Guo</dc:creator><slash:comments>7</slash:comments><comments>http://e2e.ti.com/thread/255743.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/255743/rss.aspx</wfw:commentRss><description>&lt;p&gt;how to use the ccs to build a project with 3 cores,&lt;/p&gt;
&lt;p&gt;and how to write some diver code to boost the dsp,&lt;/p&gt;
&lt;p&gt;i have looked into the &amp;#39;C6000&amp;trade; Multicore DSPs&amp;#39; in the wiki, but not found what i need,&lt;/p&gt;
&lt;p&gt;if someone know the answers, please let me know, thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>L1D and LL2 cache coherency when using EDMA3</title><link>http://e2e.ti.com/thread/255921.aspx</link><pubDate>Tue, 02 Apr 2013 15:58:11 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:b6fd2da2-d790-4ba0-986a-f1942b12e7b6</guid><dc:creator>SNBANIK</dc:creator><slash:comments>9</slash:comments><comments>http://e2e.ti.com/thread/255921.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/255921/rss.aspx</wfw:commentRss><description>&lt;p&gt;Processor Used: c6472.&lt;/p&gt;
&lt;p&gt;We have a situation where we suspect we could be hitting a L1D to L2 cache coherency issue but not sure.&lt;/p&gt;
&lt;p&gt;We use all of L1D as cache. We have a (temporary) processing buffer (significant size) in LL2. The final output buffer is in DDR2. We use EDMA3 to transfer the processed output from LL2 to DDR2 and then clear the LL2 for next round of processing.&lt;/p&gt;
&lt;p&gt;We are seeing an intermittent artifact and What we are not sure is if somehow L1D cache could be overwriting the cleared LL2 buffer (LL2 got written over by the L1D cached contents because it needed a new line to be assigned to L1D cache).&lt;/p&gt;
&lt;p&gt;However reading SPRU871 it doesn&amp;#39;t look like that should be happening.&lt;/p&gt;
&lt;p&gt;This is what I am referring to in SPRU871.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.3.6 Cache Coherence Protocol&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The C64x+&amp;nbsp;&lt;span style="color:#ff0000;"&gt;&lt;em&gt;L1D cache remains coherent with respect to DMA activity in L2 RAM&lt;/em&gt;.&lt;/span&gt; To support this&lt;br /&gt;paradigm, the L1D cache accepts cache coherence commands arriving from L2.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3.3.6.1 L2 to L1D Cache Coherence Protocol&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To support L1D cache coherence with respect to DMA/IDMA traffic in L2 RAM, the L1D controller supports&lt;br /&gt;two cache coherence commands arriving from L2:&amp;nbsp;&lt;em&gt;&lt;span&gt;&lt;span style="color:#ff0000;"&gt;snoop-read (SNPR) and snoop-write (SNPW&lt;/span&gt;)&lt;/span&gt;&lt;/em&gt;. The L2&lt;br /&gt;only sends these snoop commands, when necessary, in response to DMA and IDMA activity in L2 RAM.&lt;br /&gt;Snoop-read is sent to L1D when L2 detects that the L1D cache holds the requested line, and that the line&lt;br /&gt;is dirty. L1D responds by returning the requested data.&lt;br /&gt;Snoop-write is sent to L1D when L2 detects that the L1D holds the requested line. It does not matter if the&lt;br /&gt;line is modified within L1D. The L1D updates its contents accordingly.&lt;/p&gt;
&lt;p&gt;Will appreciate any help you can provide in clarifying the above.&lt;/p&gt;
&lt;p&gt;Thanks,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Somnath Banik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>VCP2 Questions</title><link>http://e2e.ti.com/thread/239378.aspx</link><pubDate>Wed, 16 Jan 2013 09:04:41 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:89c22f8f-6e84-4f64-ba33-f909d2718182</guid><dc:creator>Sezer Kutluk</dc:creator><slash:comments>3</slash:comments><comments>http://e2e.ti.com/thread/239378.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/239378/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am having trouble using VCP2. I have an example project (based on&amp;nbsp;TCI6482TCP2VCP2BER by&amp;nbsp;Sebastien Tomas) and it works. But state metrics are re-initialized before decoding each frame. I need to use the state metrics continually, because the data stream I get is encoded without resetting the metrics (as if it is a big message). So, when I am using the example project for decoding this data, first bytes of some messages are decoded wrong.&lt;/p&gt;
&lt;p&gt;I have some questions regarding the example project.&lt;/p&gt;
&lt;p&gt;1) What is the traceback length in this example? What parameter is it?&lt;br /&gt;2) What is &lt;em&gt;frame length&lt;/em&gt;? (length of the frame to be decoded?)&lt;br /&gt;3) Are these lengths in bytes or bits?&lt;br /&gt;4) How to prevent re-initializing the state metrics? Which parameters, registers, definitions should I alter? (I guess, what I want to use is &lt;em&gt;convergent traceback mode&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;I am using C6474. The document SPRUG20B is not so helpful to me, probably because I am a total newbie.&lt;/p&gt;
&lt;p&gt;Thank you.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Decoding a Long Frame using VCP2</title><link>http://e2e.ti.com/thread/255848.aspx</link><pubDate>Tue, 02 Apr 2013 11:47:17 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:d0b8f660-0597-49c8-8228-0443400980d0</guid><dc:creator>Sezer Kutluk</dc:creator><slash:comments>0</slash:comments><comments>http://e2e.ti.com/thread/255848.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/255848/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I want to decode a never-ending data stream using VCP2 on C6474. The data I need to decode is encoded without resetting the state metrics, so we can consider it as one long message. I have to decode this frame by frame using the state metrics continually.&amp;nbsp;The implementation that I have found and been able to use decodes only a frame of some length. When I use this for my problem, the first and last some bits are corrupted.&lt;/p&gt;
&lt;p&gt;I read the documents and the example codes, but I could not make it work in this way. Moreover, I could not understand what the traceback length is, how to change it, where the state metrics are stored, how to use the sliding window concept, etc. Combining these with the lack of DSP programming experience and enough coding/decoding/Viterbi knowledge, I cannot develop any reasonable solution.&lt;/p&gt;
&lt;p&gt;I have found a workaround but it is not theoretically proven. To decode a frame of length &lt;strong&gt;n&lt;/strong&gt; bits, I feed the decoder by adding redundant &lt;strong&gt;m&lt;/strong&gt; bits from each of the previous and the next messages. So when I decode (&lt;strong&gt;m + n + m&lt;/strong&gt;) bits, the middle &lt;strong&gt;n&lt;/strong&gt; bits are the desired message without any corruption. Is this reasonable? Even if it is, the redundancy is really high since &lt;strong&gt;m&lt;/strong&gt; should be at least the traceback length. Since the constraint length is 7 and coding rate is 1/2, the redundancy is 5*7*2*2 symbols per a frame of 250 decoded bits (per second). So I am after a more proper way.&lt;/p&gt;
&lt;p&gt;Any suggestions and comments would be much appreciated.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>C6472 SRIO (aka RapidIO) Packet Retrys when FPGA sends data to L2</title><link>http://e2e.ti.com/thread/254392.aspx</link><pubDate>Tue, 26 Mar 2013 01:11:10 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:b7db567a-439a-4a3d-a0e4-f95d52871924</guid><dc:creator>Eddie3909</dc:creator><slash:comments>7</slash:comments><comments>http://e2e.ti.com/thread/254392.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/254392/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Configuration:&lt;/p&gt;
&lt;p&gt;- C6472, DIO lib 1.1. Rapid IO 3.125 Mbps&lt;/p&gt;
&lt;p&gt;- FPGA sending NWRITE packets to DSP L2&lt;/p&gt;
&lt;p&gt;The DSP is issuing packet retrys to the FPGA on Port 1 who&amp;#39;s target is L2. Our experiments show that we need more than 2 usec between each SRIO IO packet to prevent retrys. (huge when a full payload packet is about 0.9 usec). &amp;nbsp;&lt;/p&gt;
&lt;p&gt;Transfers to Port 0 never issue retrys, but we suspect this is because it targets DDR thats not as active as L2.&lt;/p&gt;
&lt;p&gt;Since we are doing some serious number crunching in the same L2 that Port1 targets, I&amp;#39;m wondering if its possible to give the SRIO peripheral&amp;#39;s DMA higher priority. There are the megablock bandwidth management registers L2DCPUARBU and MDMAARBE. The PRI for the former is 1 and the latter is set to 7 (lowest priority).&lt;/p&gt;
&lt;p&gt;Would changing the&amp;nbsp;L2DCPUARBU PRI to 3 and&amp;nbsp;MDMAARBE to 2 invert the priorities so that the SRIO DMA can will not be held off and issue retrys?&lt;/p&gt;
&lt;p&gt;Or would it be better to mess with MAXWAIT somehow?&lt;/p&gt;
&lt;p&gt;Or perhaps I&amp;#39;m barking up the wrong tree?&lt;/p&gt;
&lt;p&gt;My hope is that by changing priorities, the rapid IO retrys will subside giving proof that they are being sent because L2&amp;#39;s bandwidth is being maxed out. Its not a fix, but more diagnostic. I think the fix would be to move the target to DDR and then have a DMA setup to move to L2 as needed.&lt;/p&gt;
&lt;p&gt;Cheers2u&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>About MSGQ</title><link>http://e2e.ti.com/thread/116097.aspx</link><pubDate>Sun, 12 Jun 2011 09:38:44 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:1305d943-f7f5-407a-98fe-9030cc55fd78</guid><dc:creator>Kaiqi Yang</dc:creator><slash:comments>4</slash:comments><comments>http://e2e.ti.com/thread/116097.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/116097/rss.aspx</wfw:commentRss><description>&lt;p&gt;We know that MSGQ is a&amp;nbsp;variable-length messaging protocol,is there any size limit of the message in MSGQ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>HyperLink interface with TI DSP Processors and FPGA's</title><link>http://e2e.ti.com/thread/253523.aspx</link><pubDate>Thu, 21 Mar 2013 10:23:30 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:3193960e-4028-4785-a312-a024b7606c1d</guid><dc:creator>Chris Satchell</dc:creator><slash:comments>4</slash:comments><comments>http://e2e.ti.com/thread/253523.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/253523/rss.aspx</wfw:commentRss><description>&lt;p&gt;I understand that the usual place to position AC coupling (or DC blocking) capacitors on a high speed serial interface is in the TX path. In fact the PCIe specification suggests these are placed in the Tx path between the PCIe serial output pins and the PCIe connector, rather than close to the Rx pin particularly for Signal Integrity considerations.&lt;/p&gt;
&lt;p&gt;However, in TI HyperLink schematics or EVM boards the DC blocking capacitor appears to be placed nearest the Rx pin of the interface. A particular example can be seen in this EVM board schematic on p.12 where at the bottom of the page the Hyperlink schematic is drawn.&lt;/p&gt;
&lt;p&gt;http://wfcache.advantech.com/support/6670/3/TMDXEVM6670Lx_EVM_REV_3_0_DSN.pdf&lt;/p&gt;
&lt;p&gt;As I understand it, another purpose of the capacitor is to detect the presence of the receiver. During the initialization, the common mode voltage on the transmitter charges the capacitor. The presence or the absence of the receiver is detected using this charging time constant. This allows the transmitter to shut down if the receiver is absent because it may be on a plug-in board and it is not present. Clearly if the capacitors are nearest the Rx pins (and the board is not plugged in) this method of detection is not possible.&lt;/p&gt;
&lt;p&gt;Is there a specific placement necessary/required for the DC blocking capacitors on a HyperLink interface - and if so please could you explain the reason. Certainly the PCIe specification dictates that the capacitors are placed close to the Tx pins.&lt;/p&gt;
&lt;p&gt;Many thanks&lt;/p&gt;
&lt;p&gt;Chris S.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>polyphase filters and circular buffers in c64</title><link>http://e2e.ti.com/thread/254166.aspx</link><pubDate>Mon, 25 Mar 2013 06:12:54 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:b323d11a-bed2-46c1-be1f-2d00f34af758</guid><dc:creator>Amsal Naeem</dc:creator><slash:comments>2</slash:comments><comments>http://e2e.ti.com/thread/254166.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/439/t/254166/rss.aspx</wfw:commentRss><description>&lt;p&gt;hi,&lt;/p&gt;
&lt;p&gt;i am working on c64. i want to ask a few questions&lt;/p&gt;
&lt;p&gt;1- i&amp;nbsp;want to preform upsampling and downsampling on some data. Is there any library function provided by ti&amp;nbsp;that implements polyphase filters ???&lt;/p&gt;
&lt;p&gt;2- does the library functions (e.g. dsp_fir|_gen) use circular buffers??? if no, then are there any library functions that make use of circular buffers???&lt;/p&gt;
&lt;p&gt;plz help!!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>