<?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>Keystone Multicore Forum (C66, 66A, AM5) - Recent Threads</title><link>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639.aspx</link><description>The Keystone Multicore forum supports all KeyStone devices for technical queries related to silicon and hardware behavior and performance. Built on the KeyStone architecture, devices within this family share common CorePacs and peripherals.</description><dc:language>en-US</dc:language><generator>6.x Production</generator><item><title>A few questions about interruptions</title><link>http://e2e.ti.com/thread/264549.aspx</link><pubDate>Mon, 13 May 2013 15:20:36 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:fb482abc-5a33-4534-bb2c-b2554e8ad9e6</guid><dc:creator>Clement Mesnier</dc:creator><slash:comments>7</slash:comments><comments>http://e2e.ti.com/thread/264549.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/264549/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hello all,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m doing some preliminary work on interruptions for the DSP C6678.&lt;br /&gt;As I read the documentation (user guides, wiki, chm doc) I run into some questions :&lt;/p&gt;
&lt;p&gt;- when you say &amp;quot;host&amp;quot; does it mean the DSP (all 8 cores) or the corepac (1 core) ?&lt;br /&gt;- what does the acronym GEM mean ?&lt;/p&gt;
&lt;p&gt;I have identified 4 ways to disable/restore interruptions &lt;strong&gt;on a single core&lt;/strong&gt;, which are :&lt;br /&gt;1) assembly (DINT, RINT)&lt;br /&gt;2) intrinsics (_disable_interrupts, ...)&lt;br /&gt;3) CSL (CSL_intcGlobalDisable, ...)&lt;br /&gt;4) Sysbios HWI (Hwi_disable, ...)&lt;/p&gt;
&lt;p&gt;For the &lt;strong&gt;DSP level&lt;/strong&gt; (all 8 cores at once) would it work using :&lt;br /&gt;a) CSL : CSL_CPINTC_enableAllHostInterrupt(cphnd);&lt;br /&gt;or b) Sysbios : &lt;span class="xdoc-id"&gt;CpIntc_disableAllHostInts&lt;/span&gt;(&lt;span class="xdoc-kw2"&gt;UInt&lt;/span&gt;&amp;nbsp;&lt;span class="xdoc-id"&gt;id&lt;/span&gt;);?&lt;/p&gt;
&lt;p&gt;If I disable the 4 CICs then I won&amp;#39;t get any events/interruptions right ? (for all cores I mean)&lt;br /&gt;Is there any simpler way ?&lt;/p&gt;
&lt;p&gt;Thank you,&lt;br /&gt;Cl&amp;eacute;ment&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Keystone Bootloader: RBL DDR3 configuration. Leveling?</title><link>http://e2e.ti.com/thread/264433.aspx</link><pubDate>Mon, 13 May 2013 08:14:10 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:a5caa978-c255-4907-ac29-345d7ad7b801</guid><dc:creator>Ricardo Martinez</dc:creator><slash:comments>7</slash:comments><comments>http://e2e.ti.com/thread/264433.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/264433/rss.aspx</wfw:commentRss><description>&lt;p&gt;Dear all,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m using C6670 EVM. I&amp;#39;m loading my application into DDR3 using Ethernet RBL (ROM Boot Loader). I am not using I2C Intermediate Boot Loader.. So, my board is properly configured for Ethernet boot and &lt;strong&gt;everything works as expected&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;However, I&amp;#39;m worried about the following: DDR3 configuration by RBL does not include leveling configuration&amp;nbsp;(read or write leveling). I have checked this in Table 2-3 &amp;quot;DDR configuration&amp;quot; in Keystone Architecture Bootloader User Guide (SPRUGY5B). RBL writes into DDR3 PLL configuration, SDRAM Config Register, Timing, PHY CTL, etc, but not into Leveling configuration.&lt;/p&gt;
&lt;p&gt;Without leveling configuration, I think that RBL access to DDR3 &lt;strong&gt;might not be reliable&lt;/strong&gt;. One easy solution for this would be slowering down DDR3 clock frequency by PLL configuration. Slow access to DDR3 might not need leveling. However, when I configure DDR3 PLL to 400MHz (this means DDR3-800 access, while default configuration for EVMC6670 is DDR3-1333), RBL can&amp;#39;t write to DDR3. So my application won&amp;#39;t work. Any DDR3 PLL frequency below default configuration (666.67MHz) won&amp;#39;t work. I am updating also timing parameters for the new frequency values without success.&lt;/p&gt;
&lt;p&gt;I&amp;#39;m writting the following boot table section into my application binary.&lt;/p&gt;
&lt;p&gt;00 00 00 70 00 8F 35 00 02 42 80 F5 &lt;strong&gt;00 00 00 00 00 00 00 14 00 00 00 02&lt;/strong&gt;&lt;br /&gt;63 06 2A 32 00 00 00 00 00 00 14 50 11 13 78 3C 30 71 7F E3 55 9F 86 AF&lt;br /&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br /&gt;00 00 00 00 70 07 32 14 00 00 00 00 00 10 01 0F 00 00 00 00 00 00 00 00&lt;br /&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/p&gt;
&lt;p&gt;According to &amp;quot;tiboot_c66x.h&amp;quot; (because Table 2-3 in SPRUGY5B has an errata), those 3 words in bold above are for DDR3 PLL configuration. That configuration above works perfectly (again, without leveling so I don&amp;#39;t truts it to work 100% of the booting processes). 0x14 == 20 (multiplier). 0x2 (dividier). 66.67MHz x 20 / 2 = 666.67MHz appropiate for DDR3-1333 operation.&lt;/p&gt;
&lt;p&gt;Changing DDR3 configuration into DDR3-800 (400MHz clk):&lt;/p&gt;
&lt;p&gt;00 00 00 70 00 8F 35 00 02 42 80 F5 &lt;strong&gt;00 00 00 00 00 00 00&amp;nbsp;0C 00 00 00 02&lt;/strong&gt;&lt;br /&gt;63 06 2A 32 00 00 00 00 00 00 14 50 11 13 78 3C 30 71 7F E3 55 9F 86 AF&lt;br /&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;br /&gt;00 00 00 00 70 07 32 14 00 00 00 00 00 10 01 0F 00 00 00 00 00 00 00 00&lt;br /&gt;00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00&lt;/p&gt;
&lt;p&gt;Above configuration won&amp;#39;t work.&lt;/p&gt;
&lt;p&gt;Please note that I can configure DDR3 PLL to 400MHz with Emulator editing&amp;nbsp;GEL files and it works properly.&lt;/p&gt;
&lt;p&gt;To summarize:&lt;/p&gt;
&lt;p&gt;1) I&amp;#39;m worried about lack of DDR3 leveling configuration in RBL&lt;/p&gt;
&lt;p&gt;2) I don&amp;#39;t understand why I can&amp;#39;t configure DDR3 PLL to 400MHz using RBL (indeed, any value below 666.67MHz won&amp;#39;t work). I think this could be a feasible solution for the problem in 1).&lt;/p&gt;
&lt;p&gt;Thanks in advance.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Ricardo&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&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>C6678 MSMCSRAM setting ?</title><link>http://e2e.ti.com/thread/265984.aspx</link><pubDate>Mon, 20 May 2013 12:15:27 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:fea15a8b-bfcf-45df-81ab-3146fb4eeaf6</guid><dc:creator>Stellar Respree</dc:creator><slash:comments>2</slash:comments><comments>http://e2e.ti.com/thread/265984.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/265984/rss.aspx</wfw:commentRss><description>&lt;p&gt;As for TI6678 memory map, MSMCSRAM area is 0x0c00_0000 - 0x0c3f_ffff.&lt;/p&gt;
&lt;p&gt;And I want to reduce MSMCSRAM 0x0c00_0000 - 0x0c1f_ffff and use 0x0c20_0000 - 0x0c3f_ffff exclusive.&lt;/p&gt;
&lt;p&gt;The reason for this setting is I want to use upper half of MSMCSRAM area for PCIe DMA area (for my own application)&lt;/p&gt;
&lt;p&gt;and I do not want QMSS or CPPI or another shared resource collide with my DMA data.&lt;/p&gt;
&lt;p&gt;So my question is:&lt;/p&gt;
&lt;p&gt;1. Could this be a accaptable approach? (devide MSMCSRAM area) ?&lt;/p&gt;
&lt;p&gt;2. How can I change MSMCSRAM area to 0x0c00_0000 - 0x0c1f_ffff ?&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;Regards,&lt;br /&gt;Stellar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>C6678 Jpeg Encoder DRI Marker</title><link>http://e2e.ti.com/thread/255233.aspx</link><pubDate>Fri, 29 Mar 2013 03:02:52 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:620113dd-9ee7-410e-bc33-61e7c8a06687</guid><dc:creator>qbliu</dc:creator><slash:comments>28</slash:comments><comments>http://e2e.ti.com/thread/255233.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/255233/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi, everyone:&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;I use the C6678 for jpeg encoder, the jpeg encoder codec version is&amp;nbsp;C66x_jpegenc_02_02_00_01_ELF.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; My question is when I encode the picture without the DRI Marker, the encode total time is about 80ms, while with the DRI Marker, the total time is about 300ms!!! &amp;nbsp;When I change the&amp;nbsp;DRI_Interval, it is also about 300ms!!!&lt;/p&gt;
&lt;p&gt;&amp;nbsp; Is it ture? (I am sure that the encoded jpeg picture is right, and the size of the picture with or without DRI Marker is almost the same.)&lt;/p&gt;
&lt;p&gt;&amp;nbsp; thanks a lot.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>The value returned by RMAN_assignResources function is IRES_ENORESOURCE...</title><link>http://e2e.ti.com/thread/214605.aspx</link><pubDate>Mon, 17 Sep 2012 09:13:56 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:e54fe876-fdaa-44b4-87a8-be9d222006d7</guid><dc:creator>zhao sun</dc:creator><slash:comments>11</slash:comments><comments>http://e2e.ti.com/thread/214605.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/214605/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; I tried to initialize 2 or more H264 baseline video codec&amp;#39;s instance in the same thread base on the h264 video encoder unit test program running on c6678.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;The first instance can be create successfully while the value returned by RMAN_assignResources function of the second instance is IRES_ENORESOURCE.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;So how can I assign the same EDMA resource to 2 or more instance in the same thread? The calling sequence is as below:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RMAN_init(); &amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ires_status = RMAN_assignResources((IALG_Handle)codecHandle, (IRES_Fxns*)resFxns, scratchId);&amp;nbsp; //Codec instance 1 return IRES_OK&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ires_status = RMAN_assignResources((IALG_Handle)codecHandle, (IRES_Fxns*)resFxns, scratchId);&amp;nbsp; //Codec instance 2 return IRES_ENORESOURCE &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ... ...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; The codecHandle above are different and the resFxns are the same. The RTSC config is set below:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;RMAN.useDSKT2 = true; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RMAN.yieldSamePriority = true; &amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; RMAN.tableSize = 10;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;RMAN.maxAlgs = 10;&lt;/p&gt;
&lt;p&gt;That is I want to create 10 instance of the same algorithm in the same thread. So how can I do that?&lt;/p&gt;
&lt;p&gt;Thanks a lot!&lt;/p&gt;
&lt;p&gt;B.R.&lt;/p&gt;
&lt;p&gt;Sunzhao&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Unable to connect to TMDXEVM6670LE using CCS  5.0.1</title><link>http://e2e.ti.com/thread/266557.aspx</link><pubDate>Wed, 22 May 2013 13:18:20 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:0026f605-afc2-49ce-b408-f22f85d2e0ba</guid><dc:creator>Gowtham Nagaraj</dc:creator><slash:comments>7</slash:comments><comments>http://e2e.ti.com/thread/266557.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/266557/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi All,&lt;/p&gt;
&lt;p&gt;I am working on TMDXEVM6670LE board and using CCS 5.0.1, i have made a sample application program which i compiled using the specified configuration files.I am using the onboard emulator XDS100, i have been using the standard gel files provided by the TI CC670l.gel, when i try to run my program i am not able to connect to target. I am getting error&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Error connecting to the target:&lt;br /&gt;Cannot access register at 0x00000000&lt;br /&gt; (Error -2131) @ 0 (0x0)&lt;/p&gt;
&lt;p&gt;When i try to connect to the target, i had referred through the discussions i&amp;nbsp;configured&amp;nbsp;the path of gel files correctly but still i am not able to connect to target.Could some one provide some information on whether i am missing something?&lt;/p&gt;
&lt;p&gt;My current configuration is attached in mail.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I have another strange error in my linker.cmd file below is my source of linker.cmd&lt;/p&gt;
&lt;p&gt;-heap 0x8000&lt;br /&gt;-stack 0x1000&lt;br /&gt;/*-l../../../lib/dsplib.a66 */&lt;br /&gt;MEMORY&lt;br /&gt;{&lt;br /&gt; L2SRAM (RWX) : org = 0x800000, len = 0x80000&lt;br /&gt; MSMCSRAM (RWX) : org = 0xc00000, len = 0x400000 &lt;br /&gt; DDR3 (RWX): org = 0x80000000, len = 0x10000000&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;SECTIONS&lt;br /&gt;{&lt;br /&gt; .text: load &amp;gt;&amp;gt; L2SRAM&lt;br /&gt; .text:touch: load &amp;gt;&amp;gt; L2SRAM&lt;br /&gt; &lt;br /&gt; GROUP (NEAR_DP)&lt;br /&gt; {&lt;br /&gt; .neardata&lt;br /&gt; .rodata &lt;br /&gt; .bss&lt;br /&gt; } load &amp;gt; L2SRAM&lt;br /&gt; &lt;br /&gt; .far: load &amp;gt;&amp;gt; L2SRAM&lt;br /&gt; .fardata: load &amp;gt;&amp;gt; L2SRAM&lt;br /&gt; .data: load &amp;gt;&amp;gt; L2SRAM &lt;br /&gt; .switch: load &amp;gt;&amp;gt; L2SRAM&lt;br /&gt; .stack: load &amp;gt; L2SRAM&lt;br /&gt; .args: load &amp;gt; L2SRAM align = 0x4, fill = 0 {_argsize = 0x200; }&lt;br /&gt; .sysmem: load &amp;gt; L2SRAM&lt;br /&gt; .cinit: load &amp;gt; L2SRAM&lt;br /&gt; .const: load &amp;gt; L2SRAM START(const_start) SIZE(const_size)&lt;br /&gt; .pinit: load &amp;gt; L2SRAM&lt;br /&gt; .cio: load &amp;gt;&amp;gt; L2SRAM&lt;br /&gt; xdc.meta: load &amp;gt;&amp;gt; L2SRAM, type = COPY&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;When i try to build my program i am getting error&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;quot;../linker.cmd&amp;quot;, line 44: error: L2SRAM memory range has already been&lt;br /&gt; specified&lt;br /&gt;&amp;quot;../linker.cmd&amp;quot;, line 44: error: L2SRAM memory range overlaps existing memory&lt;br /&gt; range L2SRAM&lt;br /&gt;&amp;quot;../linker.cmd&amp;quot;, line 45: error: MSMCSRAM memory range has already been&lt;br /&gt; specified&lt;br /&gt;&amp;quot;../linker.cmd&amp;quot;, line 46: error: DDR3 memory range overlaps existing memory&lt;br /&gt; range DDR2&lt;/p&gt;
&lt;p&gt;Could you provide some inputs on this?&lt;/p&gt;
&lt;p&gt;Regards&lt;/p&gt;
&lt;p&gt;Gowtham&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Proper Way to Benchmark Timing within OpenMP on C6678</title><link>http://e2e.ti.com/thread/265543.aspx</link><pubDate>Fri, 17 May 2013 01:31:29 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:dad49d76-f15e-48af-b773-b6a3c090817d</guid><dc:creator>Ryan Radjabi</dc:creator><slash:comments>16</slash:comments><comments>http://e2e.ti.com/thread/265543.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/265543/rss.aspx</wfw:commentRss><description>&lt;p&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;What is the proper way to calculate execution times within a single core for a multi-core application using OpenMP?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;In a single-core application, I use the Timestamp_get32() function to count cycles between lines of code, although this doesn&amp;#39;t seem to return the correct value for code inside the&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&amp;nbsp;#pragma omp parallel private(nthreads, tid)&lt;/span&gt; block in my code.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:arial, helvetica, sans-serif;"&gt;I ran the multiplication for a Hanning window both inside and outside the OMP pragma and roughly got the results I was seeing on my single-core application. &lt;b&gt;Time benchmarks within the pragma are around 6-8 times what they are outside the pragma. &lt;/b&gt;Check out the simple C code below. There isn&amp;rsquo;t anything fancy going on, this is built around the HelloWorld template for OpenMP. This time difference is irrelevant if I set this application for 1 core, 4 cores, or 8 cores.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Can Timestamp_get32() be trusted within the pragma statement?&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;/******************************************************************************&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;* FILE: omp_hello.c&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;* DESCRIPTION:&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;*&amp;nbsp;&amp;nbsp; OpenMP Example - Hello World - C/C++ Version&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;*&amp;nbsp;&amp;nbsp; In this simple example, the master thread forks a parallel region.&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;*&amp;nbsp;&amp;nbsp; All threads in the team obtain their unique thread number and print it.&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;*&amp;nbsp;&amp;nbsp; The master thread only prints the total number of threads.&amp;nbsp; Two OpenMP&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;*&amp;nbsp;&amp;nbsp; library routines are used to obtain the number of threads and each&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;*&amp;nbsp;&amp;nbsp; thread&amp;#39;s number.&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;* AUTHOR: &lt;span style="text-decoration:underline;"&gt;Blaise&lt;/span&gt; &lt;span style="text-decoration:underline;"&gt;Barney&lt;/span&gt;&amp;nbsp; 5/99&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;* LAST REVISED: 04/06/05&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;******************************************************************************/&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;#include&lt;/b&gt; &amp;lt;ti/omp/omp.h&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;#include&lt;/b&gt; &amp;lt;string.h&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;#include&lt;/b&gt; &amp;lt;assert.h&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;#include&lt;/b&gt; &amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;#include&lt;/b&gt; &amp;lt;time.h&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;#include&lt;/b&gt; &amp;lt;stdint.h&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;#include&lt;/b&gt; &amp;lt;xdc/std.h&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;#include&lt;/b&gt; &amp;lt;xdc/runtime/System.h&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;#include&lt;/b&gt; &amp;lt;ti/sysbios/BIOS.h&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;#include&lt;/b&gt; &amp;lt;xdc/runtime/Log.h&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;#include&lt;/b&gt; &amp;lt;xdc/runtime/Timestamp.h&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;#include&lt;/b&gt; &amp;lt;math.h&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;#define&lt;/b&gt; NTHREADS&amp;nbsp; 1&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;#define&lt;/b&gt; FFT_MAX_L 2048&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;#define&lt;/b&gt; PI 3.14159265358979323846&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;float&lt;/b&gt;&amp;nbsp; multiplier[ 2048 ];&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;void&lt;/b&gt; &lt;b&gt;generateHanningLookup&lt;/b&gt;( &lt;b&gt;void&lt;/b&gt; )&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int32_t i;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;for&lt;/b&gt; (i = 0; i &amp;lt; 2048; i++)&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; // equation from stackoverflow.com&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; multiplier[ i ] = 0.5 * ( 1 - &lt;b&gt;cos&lt;/b&gt;( 2 * PI * i / ( FFT_MAX_L - 1 ) ) );&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;void&lt;/b&gt; &lt;b&gt;main&lt;/b&gt;()&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;{&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;int&lt;/b&gt; nthreads, tid;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nthreads = NTHREADS;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;omp_set_num_threads&lt;/b&gt;(NTHREADS);&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="text-decoration:underline;"&gt;int16_t&lt;/span&gt;&lt;span style="text-decoration:underline;"&gt;&amp;nbsp;&amp;nbsp; windowOutputData[ FFT_MAX_L ];&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t j;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t start, totalTime;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; generateHanningLookup();&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; start = Timestamp_get32();&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;for&lt;/b&gt;( j = 0; j &amp;lt; FFT_MAX_L; j++ )&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; windowOutputData[ j ] = j * multiplier[ j ];&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;printf&lt;/b&gt;( &amp;quot;HANNING#1 = [ %u ] cycles \n&amp;quot;, ( Timestamp_get32() - start ) );&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; totalTime = Timestamp_get32();&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Fork a team of threads giving them their own copies of variables */&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&lt;b&gt;#pragma&lt;/b&gt; omp parallel private(nthreads, tid)&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; /* Obtain thread number */&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; tid = &lt;b&gt;omp_get_thread_num&lt;/b&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; &lt;b&gt;printf&lt;/b&gt;(&amp;quot;Hello World from thread = %d\n&amp;quot;, tid);&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; /* Only master thread does this */&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; &lt;b&gt;if&lt;/b&gt; (tid == 0)&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; {&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; nthreads = &lt;b&gt;omp_get_num_threads&lt;/b&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; &lt;b&gt;printf&lt;/b&gt;(&amp;quot;Number of threads = %d\n&amp;quot;, nthreads);&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; // &lt;span style="text-decoration:underline;"&gt;Hanning&lt;/span&gt; Window&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; start = Timestamp_get32();&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; &lt;b&gt;for&lt;/b&gt;( j = 0; j &amp;lt; FFT_MAX_L; j++ )&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; {&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; windowOutputData[ j ] = j * multiplier[ j ];&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; }&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; &lt;b&gt;printf&lt;/b&gt;( &amp;quot;HANNING#OMP = [ %u ] cycles \n&amp;quot;, ( Timestamp_get32() - start ) );&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; }&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; &lt;b&gt;else&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; {&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; tid = &lt;b&gt;omp_get_thread_num&lt;/b&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; uint32_t startMp = Timestamp_get32();&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; &lt;b&gt;for&lt;/b&gt;( j = 0; j &amp;lt; FFT_MAX_L; j++ )&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; {&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; windowOutputData[ j ] = j * multiplier[ j ];&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; }&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; &lt;b&gt;printf&lt;/b&gt;( &amp;quot;HANNING#%u = [ %u ] cycles \n&amp;quot;, tid, ( Timestamp_get32() - startMp ) );&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; }&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp; /* All threads join master thread and disband */&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;printf&lt;/b&gt;( &amp;quot;OMP TIME = [ %u ] cycles \n&amp;quot;, ( Timestamp_get32() - totalTime ) );&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; start = Timestamp_get32();&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;for&lt;/b&gt;( j = 0; j &amp;lt; FFT_MAX_L; j++ )&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&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; windowOutputData[ j ] = j * multiplier[ j ];&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;printf&lt;/b&gt;( &amp;quot;HANNING#2 = [ %u ] cycles \n&amp;quot;, ( Timestamp_get32() - start ) );&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="margin-left:30px;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;font-size:small;"&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>C6678 SRIO port error</title><link>http://e2e.ti.com/thread/267043.aspx</link><pubDate>Fri, 24 May 2013 03:01:18 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:e995d35b-9fd1-4e31-be74-a71c7f7837b9</guid><dc:creator>Jason Gao</dc:creator><slash:comments>0</slash:comments><comments>http://e2e.ti.com/thread/267043.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/267043/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi All:&lt;br /&gt;We have a design that C6678 and Xilinx Virtex6 FPGA connected together througn SRIO.&lt;br /&gt;We do some test like this:&lt;br /&gt;1、C6678 run a DDR3 test for about 10 minites for one time, C6678 sends and receives SRIO doorbells with FPGA.&lt;br /&gt;2、 Then C6678 sends 32KB of packets to FPGA with a doorbell at last, FPGA receives the doorbell and sends the packets back.&lt;br /&gt;3、 Repeat step1 and Step2.&lt;/p&gt;
&lt;p&gt;We have a counter that counts the time of step1 and step2.&lt;br /&gt;Each time when the value of counter reaches 0x5C, Some errors appear.&lt;/p&gt;
&lt;p&gt;Bit2 and Bit17 of register SPn_ERR_STAT is not right.&lt;br /&gt;Bit2 is set to 1: Port Error occurs.&lt;br /&gt;Bit17 is set to 1: Output Error-encountered occurs.&lt;/p&gt;
&lt;p&gt;Can anyone tell me what maybe the reason?&lt;br /&gt;Thank you very much.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>DSCP-8681E hangs host</title><link>http://e2e.ti.com/thread/236954.aspx</link><pubDate>Fri, 04 Jan 2013 18:21:50 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:9689ab67-95ae-4198-b87d-6b65fe69aac6</guid><dc:creator>Andrey Lisnevich</dc:creator><slash:comments>9</slash:comments><comments>http://e2e.ti.com/thread/236954.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/236954/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I am working with DSCP-8681E and use Desktop Linux SDK, MPEG-2 and H.264 BP codecs for transcoding on multiple cores. I run separate instances of transcoder on all the cores but do not communicate between them (no IPC).&lt;/p&gt;
&lt;p&gt;I noticed that codecs work much faster when their code (.text segment) is placed in MSMCSRAM memory (code was placed in dedicated to each core DDR segment before) so I am refactoring transcode program to place single code segment into MSMCSRAM and share it between all the cores.&lt;/p&gt;
&lt;p&gt;But when I did the refactoring DSCP-8681E started to behave strange when I run transcode on 2 cores on one DSP.. On first run everything works correctly, transcoding goes on both cores. After soft reset (i.e. &amp;quot;dsp_utils reset...&amp;quot; command) and second run it may:&lt;/p&gt;
&lt;p&gt;a) fail on one of cores with IRES_EFAIL while RMAN_activateAllResources&lt;/p&gt;
&lt;p&gt;b) hang host PC with error:&lt;/p&gt;
&lt;p&gt;Boot config words: 0x19, DSP Reset success ! &amp;nbsp;&lt;br /&gt;pciedrv_driver: Error in ti667x_ep_init_bar, ib trans num 0!, ret = -2 &amp;nbsp;&lt;br /&gt;pciedrv_driver: Found: IB_BAR = FFFFFFFF, IB_START_LO = FFFFFFFF, IB_START_HI = FFFFFFFF &amp;nbsp;&lt;br /&gt;pciedrv_driver: Expected: IB_BAR = 00000001, IB_START_LO = C1000000, IB_START_HI = 00000000. &amp;nbsp;&lt;br /&gt;pciedrv_driver: Error in ti667x_ep_setup_bar, ib trans num 0!, ret = -1 &amp;nbsp;&lt;br /&gt;pciedrv_driver: Found: IB_BAR = FFFFFFFF, IB_OFFSET = FFFFFFFF. &amp;nbsp;&lt;br /&gt;pciedrv_driver: Expected: IB_BAR = 00000001, IB_OFFSET = 10800000.&lt;/p&gt;
&lt;p&gt;c) it may just not start transcode program on DSP.&lt;/p&gt;
&lt;p&gt;Then I need hard host reboot to successfully run transcoding on 2 cores again. It never runs transcode on both cores again without hard reboot.&lt;/p&gt;
&lt;p&gt;I assume that because of refactoring something goes wrong with resource initialization (i.e. EDMA controller, etc.) but while the refactoring I didn&amp;#39;t changed code that works with RMAN at all. That is why I am confused.&lt;/p&gt;
&lt;p&gt;My questions are:&lt;/p&gt;
&lt;p&gt;1) Do you know possible reasons of the RMAN failure and host hang?&lt;/p&gt;
&lt;p&gt;2) Can you review app.cfg and transcode.map to find possible problems?&lt;/p&gt;
&lt;p&gt;3) Is it correct to share .text and .cinit segments between cores?&lt;/p&gt;
&lt;p&gt;4) Can I share other sections that has &amp;quot;r--&amp;quot; and &amp;quot;r-x&amp;quot; permissions between cores?&lt;/p&gt;
&lt;p&gt;5) I noticed that .const section has &amp;quot;rw-&amp;quot; permissions. Why it is not &amp;quot;r--&amp;quot; if it contains constants? Can I share it between cores (i.e. place this section into MSMCSRAM)?&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-639-00-00-00-23-69-54/transcode.zip" length="38594" type="application/zip" /></item><item><title>usage of both SGMII on EVM6678L problem</title><link>http://e2e.ti.com/thread/267034.aspx</link><pubDate>Fri, 24 May 2013 02:18:04 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:581e30c0-1316-401e-8793-02d519d75e03</guid><dc:creator>Kaka Huang</dc:creator><slash:comments>0</slash:comments><comments>http://e2e.ti.com/thread/267034.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/267034/rss.aspx</wfw:commentRss><description>&lt;p&gt;&lt;span style="font-size:small;"&gt;Hi, everyoe!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;I have a project that must use the SGMII0 and SGMII1 for two Ethernet connection. But as the lib source files and user guide files shown, the default connection of SGMII and PHY is SGMII1, the SGMII0 is linking to AMC. Some people give an imperfect way to only use the SGMII0 (&lt;a href="http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/226969/799906.aspx#799906"&gt;http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/p/226969/799906.aspx#799906&lt;/a&gt;).&amp;nbsp;While my purpose is using the SGMII1 and SGMII0 simultaneously, so how&amp;nbsp;can&amp;nbsp;I reach the goal??&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;Additionally, &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;[1] if I build my project based on the exampleProject &lt;em&gt;&lt;strong&gt;&lt;span style="font-size:medium;"&gt;client&lt;/span&gt; ,&lt;/strong&gt;&lt;/em&gt; so, what should to do or should I pay attention to??&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;[2] The DSP send or receive data from SGMII0-PHY or SGMII1-PHY, how can the DSP distinguish which port should be operated？&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;My CCS is 5.2.1 and PDK is 1.0.0.18.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;thanks for all!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;Kaka Huang&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;2013/5/24&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Using the ARM in TCI6638K2K on EVMK2HX</title><link>http://e2e.ti.com/thread/264949.aspx</link><pubDate>Tue, 14 May 2013 21:01:38 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:32b1fae7-27a0-48a8-98c7-faabe23ea4eb</guid><dc:creator>Barath Ramesh</dc:creator><slash:comments>4</slash:comments><comments>http://e2e.ti.com/thread/264949.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/264949/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I was able to get the DSPs to work on the device (only single core) . I have a few questions about the device and the board&lt;br /&gt;&lt;br /&gt;1) How do I compile code for Cortex A-15 using CCS i.e the linker command file for ARM and the device to be selected while making the project (TCI6638 seems to compile only for DSP)?&lt;/p&gt;
&lt;div&gt;2) My OpenMP binaries that worked on TMS320C6678 do not execute on TCI6638 C66xx CorePac, am I doing anything wrong? Even the example OMP hello world project does not execute on the DSPs.&lt;br /&gt;&lt;br /&gt;3) I currently use &amp;quot;Texas Instruments XDS2xx USB &lt;span style="color:#ff0000;"&gt;&lt;span&gt;Onboard&lt;/span&gt;&lt;/span&gt; Emulator&amp;quot; instead of &amp;quot;Texas Instruments XDS2xx USB Emulator&amp;quot; as the later requires a license. Could this become an issue later on in my multicore development?&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Thank you in advance.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Best regards,&lt;/div&gt;
&lt;p&gt;Barath Ramesh&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>BAR0 not visible from RC</title><link>http://e2e.ti.com/thread/265020.aspx</link><pubDate>Wed, 15 May 2013 05:32:11 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:f2513cbd-dd65-41d6-9bbb-f5668eeda496</guid><dc:creator>aymeric dupont</dc:creator><slash:comments>14</slash:comments><comments>http://e2e.ti.com/thread/265020.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/265020/rss.aspx</wfw:commentRss><description>&lt;p&gt;Dear support,&lt;br /&gt;&lt;br /&gt;I hope you can help me with this very strange issue that we are experiencing. I am not sure if I should classify my problemas a Boot Issue or Pcie Issue.&lt;br /&gt;&lt;br /&gt;The RBL enables the C6670 to boot from PCIe. However, the default window size are too big for our host to allocate memory and access all the bars.&lt;br /&gt;&lt;br /&gt;Because of this problem, we created our own IBL based on the code provided by TI in the function iblPCIeWorkaround from mcsdk_2_01_00_03\tools\boot_loader\ibl\src\device\c66x\.&lt;br /&gt;&lt;br /&gt;For the last 2 month, we have been using successfully a bootstrap that starts the RBL in from SPI in CS1, retreives our IBL from flash memory, runs the IBL and we can see our board on the pcie bus with 5 bars from a linux host. (if you need I can provide the detail lspci command)&lt;br /&gt;When looking at this command we can identify 5 BARS that are configured as our IBL set them up.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;BAR0: 32k&lt;br /&gt;BAR1,2,3: 1M&lt;br /&gt;BAR4: 4M&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;We are updating our boot process to boot from EEPROM. We changed the boot strap. Since it is the same code, we just regenerated the binary file (updating the parameter passed to romparse.exe) and we store it in EEPROM. We did not change one line of the source code of our working IBL&lt;br /&gt;&lt;br /&gt;For the last week we have beleived that the board was booting properly as we did not really need to do any memory/register access via the host. Moreover, the linux host sees the board (lspci) and updates the BAR registers (0x21800000+0x1010) on the EP.&lt;br /&gt;&lt;br /&gt;However, we started to have strange issues reading and writing memory regions on the DSP from the host.&lt;br /&gt;We we looked a bit further, lspci -x -v here was our surprise:&lt;br /&gt;BAR1,2,3: 1M&lt;br /&gt;BAR4: 4M&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;BAR0 has disapeared. According to you manual, BAR0 is the only bar that can be used to access the pcie registers. We spent a lot of time investigating and we narrow it down to:&lt;br /&gt;&lt;br /&gt;Once the RBL boots from flash =&amp;gt; all is good&lt;/p&gt;
&lt;p&gt;Once the RBL boots from EEPROM (same problem for eeprom @0x50 or eeprom @0x51) =&amp;gt; Not good&lt;br /&gt;&lt;br /&gt;I can provide you the source code of the IBL under NDA if you need but perhpas you have an idea of what is going on or perhpas you have heard of such a problem.&lt;/p&gt;
&lt;p&gt;Is there additional settings required in the IBL when booting from i2c that I do not require when I boot from SPI&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thanks in advance&lt;br /&gt;&lt;br /&gt;Aymeric&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Timer cycles gets divided by 8 without main PLL Init</title><link>http://e2e.ti.com/thread/266859.aspx</link><pubDate>Thu, 23 May 2013 12:24:26 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:42f41187-92b9-4519-ac53-e1e8c90ef2cf</guid><dc:creator>Sudarshan R</dc:creator><slash:comments>0</slash:comments><comments>http://e2e.ti.com/thread/266859.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/266859/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi all,&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;We are using timer to generate ticks for a specific application. We find that the timer cycles/timer profile value is getting divided by 8 to the actual value what we must get. Is it because the internal clock for timer = CPU clock/8??&amp;nbsp;&lt;br /&gt;However, after doing the main PLL initialization, we are getting the expected timer profile value. So, what might be the reason why the timer value got divided by 8 without the main PLL initialized. ?? Had glanced the Timer User Guide but couldn&amp;#39;t find any clue there. Any brief explanation would be really helpful.&lt;br /&gt;&lt;br /&gt;Regards&lt;/p&gt;
&lt;p&gt;Sud&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Measuring execution time Cortex-A15 of TCI6638</title><link>http://e2e.ti.com/thread/266856.aspx</link><pubDate>Thu, 23 May 2013 12:22:41 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:49263b75-1826-41fe-9875-f6f55aa1451e</guid><dc:creator>Barath Ramesh</dc:creator><slash:comments>0</slash:comments><comments>http://e2e.ti.com/thread/266856.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/266856/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;How do I measure the execution time of my code running in the ARM Cortex-A15 of TCI6638? I use TSCH/TSC for C6678 but is there a similar set up available for ARM in order to measure the execution time?&lt;/p&gt;
&lt;p&gt;Thank you in advance.&lt;/p&gt;
&lt;p&gt;regards,&lt;/p&gt;
&lt;p&gt;Barath Ramesh&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>SmartReflex for TMS320C6657CZH25</title><link>http://e2e.ti.com/thread/264766.aspx</link><pubDate>Tue, 14 May 2013 09:35:52 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:0f492d89-d620-4d30-b501-f180ee874153</guid><dc:creator>Mina</dc:creator><slash:comments>2</slash:comments><comments>http://e2e.ti.com/thread/264766.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/264766/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;We&amp;nbsp;are using TMS320C6657CZH25 and TMS320C6657CZH with LM10011SD.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Both TMS320C6657CZH25 and TMS320C6657CZH&amp;nbsp;output &amp;nbsp;6-bit VCNTL signals by the reset release after the sequence of the power supplies in our board.&lt;/p&gt;
&lt;p&gt;These VCNTL signals&amp;nbsp;are corresponding to VCNTL value of register 0x02350014 in bit&amp;nbsp;21 to 16.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The value of register 0x02350014 in&amp;nbsp;TMS320C6657CZH25&amp;nbsp;is 0x0FFF0000. This&amp;nbsp;is&amp;nbsp;same value in&amp;nbsp;every TMS320C6657CZH25.&lt;/p&gt;
&lt;p&gt;In&amp;nbsp;TMS320C6657CZH, the value is different in&amp;nbsp;every device. One of them is 0x07DF0000.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;CVDD for TMS320C6657CZH is controlled to&amp;nbsp;about 0.9V. But CVDD for TMS320C6657CZH25 is 1.1V, It doesn&amp;#39;t change from an initial voltage.&lt;/p&gt;
&lt;p&gt;Power consumption of TMS320C6657CZH is from beginning to end steady.&lt;/p&gt;
&lt;p&gt;It of&amp;nbsp;TMS320C6657CZH25&amp;nbsp;keeps increasing depending at the&amp;nbsp;own&amp;nbsp;temperature.&amp;nbsp;It is saturated with about&amp;nbsp;6-watt.&lt;/p&gt;
&lt;p&gt;We think that we have appropriately cooled it.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;1. Do we keep using TMS320C6657CZH25 in CVDD is 1.1V?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;2. How much is&amp;nbsp;appropriate power consumption of TMS320C6657CZH25?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;3. Should I control CVDD for TMS320C6657CZH25?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;My best regards.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>PLL Initialization</title><link>http://e2e.ti.com/thread/266801.aspx</link><pubDate>Thu, 23 May 2013 09:19:18 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:609eb695-6967-49bd-80e2-3249653c7a7e</guid><dc:creator>Leo Girault</dc:creator><slash:comments>1</slash:comments><comments>http://e2e.ti.com/thread/266801.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/266801/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m using a TMS320C6678-EVM board and I&amp;#39;ve some issue : I need to load a program on several cores and I&amp;#39;ve noticed when I load the program on cores 1...7 (not core 0), the PLL doesn&amp;#39;t seem to work correctly after several executions (program works slowly, some peripherals are unable to work, a &amp;quot;Trouble Reading Memory Block&amp;quot; message appears, ..).&lt;/p&gt;
&lt;p&gt;When I connect the core 0 (without loading something), the problem disappears, because the PLL is initialized during execution of the GEL file (I&amp;#39;m using the default GEL file evmc6678l.gel). On this GEL file, it appears that only core 0 can initialize PLL (line 852 : &amp;quot;// Only core 0 can set these&amp;quot;). Is that true ? I thought that cores were independants...&lt;/p&gt;
&lt;p&gt;I tried to comment lines where the condition &amp;quot;if (DNUM == 0)&amp;quot; appears and lauch this GEL file on core 1 only and it seems to work properly, but I would like to be sure that I can do it.&lt;/p&gt;
&lt;p&gt;Does anyone can answer me ?&lt;/p&gt;
&lt;p&gt;Thank you for your time.&lt;/p&gt;
&lt;p&gt;L.G&lt;/p&gt;
&lt;p&gt;Configuration :&lt;/p&gt;
&lt;p&gt;MCSDK 2.1.2.6 - CCS 5.3.0.0009 - PDK 1.1.2.6&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>FPGA to boot-up the C6678 Abut SRIO  and clock??</title><link>http://e2e.ti.com/thread/140614.aspx</link><pubDate>Mon, 17 Oct 2011 04:18:09 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:3f44b7f8-02c7-41ad-98ac-23c778f551f9</guid><dc:creator>dana tu</dc:creator><slash:comments>3</slash:comments><comments>http://e2e.ti.com/thread/140614.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/140614/rss.aspx</wfw:commentRss><description>&lt;ol style="margin-top:0in;"&gt;
&lt;li class="MsoNormal" style="color:navy;mso-list:l2 level1 lfo3;"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:10pt;"&gt;In our design, we would like to use the FPGA to boot-up the DSP. As we would provide a single 4x lane SRIO communication link (3.125Gbps) for them, we want to use SRIO boot-up.&lt;/span&gt; &lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="MsoNormal" style="text-indent:0.25in;margin-left:0.25in;"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:navy;font-size:10pt;"&gt;However, we found that the SRIO boot device configuration (section 2.5.2.2. of datasheet) shows that the device can only support either 4 unit of 1x lane or 2 unit of 2x lane.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:0.25in;margin-left:0.25in;"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:navy;font-size:10pt;"&gt;Also, we would like to provide the 100MHz reference clock to the SRIO module but found SRIO boot device configuration does not provide such setting.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:0.25in;margin-left:0.25in;"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:navy;font-size:10pt;"&gt;(Our FPGA cannot re-configure its SRIO module again to support 1x and 4x SRIO at the same time.)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:0.25in;margin-left:0.25in;"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:navy;font-size:10pt;"&gt;Does that mean we cannot use SRIO boot-up in such case?&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin-left:0.25in;"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:navy;font-size:10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol style="margin-top:0in;"&gt;
&lt;li class="MsoNormal" style="color:navy;mso-list:l2 level1 lfo3;"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:10pt;"&gt;In order to provide a boot method to our DSP, we would like to use the I2C master boot to update the SRIO boot mode parameter table. Then, we can use the 100MHz reference clock to configure 4x lane of 3.125Gbps SRIO for download DSP firmware from FPGA.&lt;/span&gt; &lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="MsoNormal" style="text-indent:0.25in;margin-left:0.25in;"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:navy;font-size:10pt;"&gt;But we are not sure whether it is work or not. Can you help to provide a detail description for this method? And what should be setting on the DSP hardware (I2C boot mode)?&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="text-indent:0.25in;margin-left:0.25in;"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:navy;font-size:10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ol style="margin-top:0in;"&gt;
&lt;li class="MsoNormal" style="color:navy;mso-list:l2 level1 lfo3;"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:10pt;"&gt;In the reference schematic of C6678 EVM board, the DDR3 reference clock is 66.6667MHz. Can we use 100MHz as the reference clock for DDR3 PLL inside the DSP?&lt;/span&gt; &lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;font-size:10pt;"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="MsoNormal" style="margin-left:0.5in;"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:navy;font-size:10pt;"&gt;Any relationship required for this DDR3 reference clock and DSP core reference clock required? (such as same source, frequency within certain ppm, etc.)&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;,&amp;#39;sans-serif&amp;#39;;color:navy;font-size:10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>AM5K2E04 complete datasheet</title><link>http://e2e.ti.com/thread/266833.aspx</link><pubDate>Thu, 23 May 2013 11:05:56 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:c3286668-1454-49e6-acca-c26d3ea3ac44</guid><dc:creator>EASHWAR ARIVAZHAGAN</dc:creator><slash:comments>0</slash:comments><comments>http://e2e.ti.com/thread/266833.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/266833/rss.aspx</wfw:commentRss><description>&lt;p&gt;Sir/Madam&lt;/p&gt;
&lt;p&gt;Can any one tell me when can we get the complete datasheet, technical reference manual and evaluation board &amp;nbsp; for keystone multicore &amp;nbsp;AM5K2E04 processor.&lt;/p&gt;
&lt;p&gt;Please help....&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks in advance&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>executiion time of complex matrix multiplication</title><link>http://e2e.ti.com/thread/266746.aspx</link><pubDate>Thu, 23 May 2013 05:02:47 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:7f2a8e4b-219c-4e80-94bf-41d323087b8b</guid><dc:creator>heung yong kang</dc:creator><slash:comments>1</slash:comments><comments>http://e2e.ti.com/thread/266746.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/266746/rss.aspx</wfw:commentRss><description>&lt;p&gt;hi,&lt;/p&gt;
&lt;p&gt;i measured execution time of complex matrix multiplication using TSC.&lt;/p&gt;
&lt;p&gt;C6678&amp;nbsp;run slower than i expect.&lt;/p&gt;
&lt;p&gt;mesurement is right?&lt;/p&gt;
&lt;p&gt;===== environment: EVM6678LE, CCS 5.2.1, C6000 complier 7.4, DSPLIB 3.1.0&lt;/p&gt;
&lt;p&gt;===== codes:&lt;/p&gt;
&lt;p&gt;#define LOOP_COUNT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;br /&gt;#define CPU_FREQ&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1e9&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; /* CPU freq = 1 GHz */&lt;br /&gt;#define MSEC&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; 1e3&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 sec = 1000 msec */&lt;/p&gt;
&lt;p&gt;#define antenna_length&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (12)&lt;br /&gt;#define sample_length&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (1024)&lt;/p&gt;
&lt;p&gt;/* uca_output dimension = antenna_length x sample_length */&lt;br /&gt;float uca_output[2 * antenna_length * sample_length];&lt;/p&gt;
&lt;p&gt;/* uca_output dimension = sample_length x antenna_length */&lt;br /&gt;float uca_output_trans[2 * antenna_length * sample_length];&lt;/p&gt;
&lt;p&gt;/* uca_hermitian dimension = antenna_length x antenna_length */&lt;br /&gt;float uca_hermitian[2 * antenna_length * antenna_length];&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TSCL = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; t_start = TSCL;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (loop = 0; loop &amp;lt; LOOP_COUNT; loop++)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DSPF_sp_mat_mul_cplx(uca_output, antenna_length, sample_length, uca_output_trans, antenna_length, uca_hermitian);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; t_stop = TSCL;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf(&amp;quot;[complex multiply] loop = %d, row = %d, column = %d, execution time = %f msec\n&amp;quot;, \&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; LOOP_COUNT, antenna_length, sample_length, \&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; 1 / CPU_FREQ * (t_stop - t_start) / LOOP_COUNT * MSEC);&lt;/p&gt;
&lt;p&gt;===== results:&lt;/p&gt;
&lt;p&gt;[C66xx_0] [complex multiply] loop = 10, row = 12, column = 1024, execution time = 0.368105 msec&lt;/p&gt;
&lt;p&gt;===================================================================================&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>SPI Programming error in C6678</title><link>http://e2e.ti.com/thread/266508.aspx</link><pubDate>Wed, 22 May 2013 09:55:19 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:825a8fd7-5236-4c1d-bbe3-9d94f9a283e3</guid><dc:creator>Saurabh Anand</dc:creator><slash:comments>6</slash:comments><comments>http://e2e.ti.com/thread/266508.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/266508/rss.aspx</wfw:commentRss><description>&lt;p&gt;While building a simple program it is showing following error:&lt;/p&gt;
&lt;p&gt;C:/ti/pdk_C6678_1_1_2_5/packages/ti/csl/cslr_device.h&amp;quot;, line 45: fatal error #5: could not open source file &amp;quot;ti/csl/cslr.h&amp;quot;len&lt;/p&gt;
&lt;p&gt;Please give me a solution to this problem&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>C6678 LVDS Clock input voltage</title><link>http://e2e.ti.com/thread/266600.aspx</link><pubDate>Wed, 22 May 2013 15:22:59 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:137c5c6d-852a-480c-b935-723531b8ac4b</guid><dc:creator>Xiaosong Kang</dc:creator><slash:comments>1</slash:comments><comments>http://e2e.ti.com/thread/266600.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/266600/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi, does C6678 core clock LVDS require 3.3V or 1.8V? In EVM, it looks like that it needs &amp;nbsp;3.3V. Also, Is there any recommendation&amp;nbsp;of automotive grade (&amp;gt; 125 Deg. C) LVDS clock generator? Thanks.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>how to use ddr3 x 2 ranks for 2048MB in C6678?</title><link>http://e2e.ti.com/thread/266268.aspx</link><pubDate>Tue, 21 May 2013 13:10:45 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:4700d4ca-4fd2-41f8-af76-b9b957ed0b5b</guid><dc:creator>Youngju Lee</dc:creator><slash:comments>1</slash:comments><comments>http://e2e.ti.com/thread/266268.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/266268/rss.aspx</wfw:commentRss><description>&lt;p&gt;I am designing a schematic with C6678 and DDR3.&lt;/p&gt;
&lt;p&gt;I want to&amp;nbsp;have &amp;nbsp;2046MB(2GB) with 16M x 16 x 8 x 4 sdrams x 2 ranks with Micron MT41K128M16JT(16Meg x 16 x 8 banks).&lt;/p&gt;
&lt;p&gt;C6678 EVM board(DSPM-8301E) have K4B2G1646C x 4 memory(total size&amp;nbsp;:1GB).&lt;/p&gt;
&lt;p&gt;But in this board, I don&amp;#39;t know how to extend memory as like 2 ranks technology.&lt;/p&gt;
&lt;p&gt;If anyone have any reference schematic or others, please share to me.&lt;/p&gt;
&lt;p&gt;Best regards.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Young.&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" href="mailto:laserguy.young@gmail.com"&gt;laserguy.young@gmail.com&lt;/a&gt;&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>Jtag problems of multiple c6678 devices</title><link>http://e2e.ti.com/thread/265864.aspx</link><pubDate>Sun, 19 May 2013 16:41:15 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:2ee166f0-f232-4240-aa18-ff8a88755caa</guid><dc:creator>Zhongkai</dc:creator><slash:comments>3</slash:comments><comments>http://e2e.ti.com/thread/265864.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/265864/rss.aspx</wfw:commentRss><description>&lt;p&gt;In my design ,i use two C6678 chips . I want to debug the two dsps using 14 pin and 60 pin header separately. I have read the materials about the design for jtag emulation, but still have some questions.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;(1) I am using the parallel trace configuration in my design, the user guide(spru655i Fig26) suggests that each processor have an independent termination resistor for emu signals, is it necessary? And for others signals , just as tck, tms and &amp;nbsp;trst , do each processor need an independent termination resistor for them?&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;(2) The web http://processors.wiki.ti.com/index.php/XDS_Target_Connection_Guide#Multiple_Devices mentions that the design need series termination resistors for some signals, but the Fig 3-5 of spru589a don&amp;#39;t mention that. Are the series termination resistors necessary? If used pull-up resistors, where should they placed, close to the emulator or to the dsp?&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;(3) I want to use one multiplexer/switch chip to select signals from 14 pin and 60 pin header. If I buffer the signals, where the buffer should be placed? Place one buffer after the multiplexer/switch chip or place two buffers before the multiplexer/switch chip.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>PCIe impedance mismatch</title><link>http://e2e.ti.com/thread/266086.aspx</link><pubDate>Mon, 20 May 2013 19:34:23 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:a0215638-370b-458c-b733-f9eaa4350f96</guid><dc:creator>David Meixner</dc:creator><slash:comments>1</slash:comments><comments>http://e2e.ti.com/thread/266086.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/266086/rss.aspx</wfw:commentRss><description>&lt;p&gt;The hardware design guide for C6657 requires a 100 ohm differential impedance for PCIe. However, I&amp;#39;m connecting to another device that requires 85 ohm. Any advice on how to resolve this?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;David&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>how flow_id is defined and used and related with Rx channel in 10Gbe in K2?</title><link>http://e2e.ti.com/thread/266194.aspx</link><pubDate>Tue, 21 May 2013 07:50:19 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:4a4d6c0d-6263-42a4-bf58-a3dce6aefcb1</guid><dc:creator>weiqiang mao</dc:creator><slash:comments>1</slash:comments><comments>http://e2e.ti.com/thread/266194.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/266194/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi:&lt;/p&gt;
&lt;p&gt;in 10Gbe@K2, Rx has total 16 channels, Is flow_id assignment related with Rx channel ID? what&amp;#39;s the flow_id usage mechansim? how to config the flow_id for each Rx incoming packet? for 10Gbe, how many flows are supported?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;thanks!&lt;/p&gt;
&lt;p&gt;weiqiang&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>