<?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>StarterWare forum - Recent Threads</title><link>http://e2e.ti.com/support/embedded/starterware/f/790.aspx</link><description>StarterWare is a low level software platform that provides _no_ OS IO examples and peripherals abstraction APIs for commonly used peripherals, for TI SoCs.</description><dc:language>en-US</dc:language><generator>6.x Production</generator><item><title>TMDXICE3359 XIP_NOR Bootloader... compile errors</title><link>http://e2e.ti.com/thread/272902.aspx</link><pubDate>Wed, 19 Jun 2013 22:15:48 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:853f56b2-c30a-4a07-a99b-2583bdc5f9e4</guid><dc:creator>Eldon Hiebert</dc:creator><slash:comments>0</slash:comments><comments>http://e2e.ti.com/thread/272902.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/272902/rss.aspx</wfw:commentRss><description>&lt;p&gt;I have&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SYSBIOS IDK 1.0.0.8&lt;/li&gt;
&lt;li&gt;TMDXICE3359&amp;nbsp;V1.0A&lt;/li&gt;
&lt;li&gt;gcc toolchain (arm-none-eabi 4.7.3) in Ubuntu 12.10&lt;/li&gt;
&lt;li&gt;IAR toolchain in Windows 7&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;The Starterware code in this IDK provides a bootloader app that is supposed to be XIP enabled. There are defines in the code for XIP_NOR. When I define XIP_NOR and remove SPI boot define I get compile errors. That is not surprising as there is no norlib to go along with what&amp;#39;s defined in the makefiles.&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;Where did the norlib go?&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;
&lt;div&gt;The errors I get are link errors for calls that aren&amp;#39;t there. From my IAR toolchain I get the following:&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;Error[Li005]: no definition for &amp;quot;find_NORImage_exec&amp;quot; [referenced from C:\ti\am335x_sysbios_ind_sdk_1.0.0.8\sdk\starterware\build\armv7a\ewarm\am335x\evmAM335x\bootloader\NOR_Debug\Obj\bl_main.o] &lt;br /&gt;Error[Li005]: no definition for &amp;quot;ram_code_run_start&amp;quot; [referenced from C:\ti\am335x_sysbios_ind_sdk_1.0.0.8\sdk\starterware\build\armv7a\ewarm\am335x\evmAM335x\bootloader\NOR_Debug\Obj\bl_main.o] &lt;br /&gt;Error[Li005]: no definition for &amp;quot;ram_code_load_start&amp;quot; [referenced from C:\ti\am335x_sysbios_ind_sdk_1.0.0.8\sdk\starterware\build\armv7a\ewarm\am335x\evmAM335x\bootloader\NOR_Debug\Obj\bl_main.o] &lt;br /&gt;Error[Li005]: no definition for &amp;quot;ram_code_size&amp;quot; [referenced from C:\ti\am335x_sysbios_ind_sdk_1.0.0.8\sdk\starterware\build\armv7a\ewarm\am335x\evmAM335x\bootloader\NOR_Debug\Obj\bl_main.o] &lt;br /&gt;Error while running Linker&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;So... where&amp;#39;s the norlib?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to use USBLIB in the SYS/BIOS?</title><link>http://e2e.ti.com/thread/272789.aspx</link><pubDate>Wed, 19 Jun 2013 12:35:43 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:e04346a8-0f8f-43a8-aa2c-3b25cb6d4724</guid><dc:creator>jie li74477</dc:creator><slash:comments>2</slash:comments><comments>http://e2e.ti.com/thread/272789.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/272789/rss.aspx</wfw:commentRss><description>&lt;p&gt;HI:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I want to join the (&lt;strong&gt;usb_dev_bulk&lt;/strong&gt;) project to the SYS/BIOS, and create a HWI for the usb. First I modify the &lt;strong&gt;usbdemun.c&lt;/strong&gt; and delete the &lt;strong&gt;delay(100);&lt;/strong&gt; function at the 540 line(because in my test file, I donot use the function &lt;strong&gt;DelayTimerSetup()&lt;/strong&gt;), and compile the usblib using CCS(you can inport the project at the path(..\pdk_C6748_2_0_0_\C6748_StarterWare_1_20_03_03\build\c674x\cgt_ccs\c6748\usblib) ), and get a &lt;strong&gt;usblib.lib&lt;/strong&gt; file. Sencond,test the project using the compiled usblib.lib in my project, and it works fine, PC can identify the USB device immediately.while I donot want to use the usblib.lib, and use the source files directly, unfortunately PC can not identify the usb device, anybody can help me?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I use SYS/BIOS 6.33.4.39, C6748_StarterWare_1_20_03_03&lt;br /&gt;&lt;br /&gt;int&lt;br /&gt;main(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int ulTxCount;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int ulRxCount;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hwi_Params hwiParam_USB;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hwi_Params_init(&amp;amp;hwiParam_USB);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwiParam_USB.arg = (UArg)0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwiParam_USB.enableInt = TRUE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; hwiParam_USB.eventId = SYS_INT_USB0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hwi_create(4, (Hwi_FuncPtr)USB0DeviceIntHandler, &amp;amp;hwiParam_USB, NULL);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_bUSBConfigured = false;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Setup the DSP INTC */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //SetupDSPINTCInt();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //ConfigureDSPINTCIntUSB();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Delay timer setup&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background-color:#ff0000;"&gt;&lt;strong&gt;//DelayTimerSetup();&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Initialize the transmit and receive buffers.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; USBBufferInit((tUSBBuffer *)&amp;amp;g_sTxBuffer);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; USBBufferInit((tUSBBuffer *)&amp;amp;g_sRxBuffer);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Pass our device information to the USB library and place the device&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // on the bus.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; USBDBulkInit(0, (tUSBDBulkDevice *)&amp;amp;g_sBulkDevice);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Clear our local byte counters.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ulRxCount = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ulTxCount = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; BIOS_start();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* enable interrupts and start SYS/BIOS */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Main application loop.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1)&lt;br /&gt;//&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; //&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Have we been asked to update the status display?&lt;br /&gt;//&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; if(g_ulFlags &amp;amp; COMMAND_STATUS_UPDATE)&lt;br /&gt;//&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;&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; // Clear the command flag&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; //&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; g_ulFlags &amp;amp;= ~COMMAND_STATUS_UPDATE;&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; //DisplayStatus(&amp;amp;g_sContext, g_pcStatus);&lt;br /&gt;//&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; //&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Has there been any transmit traffic since we last checked?&lt;br /&gt;//&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; if(ulTxCount != g_ulTxCount)&lt;br /&gt;//&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;&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; // Take a snapshot of the latest transmit count.&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; //&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; ulTxCount = g_ulTxCount;&lt;br /&gt;//&lt;br /&gt;//&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; //&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Has there been any receive traffic since we last checked?&lt;br /&gt;//&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; if(ulRxCount != g_ulRxCount)&lt;br /&gt;//&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;&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; // Take a snapshot of the latest receive count.&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; //&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; ulRxCount = g_ulRxCount;&lt;br /&gt;//&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>StarterWare I2C problem</title><link>http://e2e.ti.com/thread/272525.aspx</link><pubDate>Tue, 18 Jun 2013 14:58:03 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:73f17c1c-9e31-4fcc-8ae3-aaf3b5959aff</guid><dc:creator>Dave Szuter</dc:creator><slash:comments>1</slash:comments><comments>http://e2e.ti.com/thread/272525.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/272525/rss.aspx</wfw:commentRss><description>&lt;p&gt;I was recently modifying the audio pass through example - mcaspPlayBk, and naturally I broke it in the process, so I started to debug my version from the beginning (the part where you config the AIC3106 with I2C).&amp;nbsp; So to check that I was communicating correctly with the Codec, I read back some of the registers I had written, and found that they were not correct. I spent several days trying to figure out how I had broken my I2C/Codec communication.&amp;nbsp; It turns out I was setting the registers just fine, but for some reason the CodecRegRead function which calls a number of I2C StarterWare driver functions does not seem to be reading the registers correctly.&amp;nbsp; I&amp;#39;m using the OMAPL138 LCDK.&amp;nbsp; Can someone please verify that the latest Starterware 1.10.03.03 I2C function doesn&amp;#39;t read registers correctly.&amp;nbsp; Thanks.&lt;/p&gt;
&lt;p&gt;Dave&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Beaglebone Black eMMC</title><link>http://e2e.ti.com/thread/272577.aspx</link><pubDate>Tue, 18 Jun 2013 18:19:17 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:05099de6-89ac-44b2-af7f-3fb323e88593</guid><dc:creator>Javier Fernandez1</dc:creator><slash:comments>0</slash:comments><comments>http://e2e.ti.com/thread/272577.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/272577/rss.aspx</wfw:commentRss><description>&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Does Starterware include drivers for the eMMC chip of the Beaglebone Black?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Is the plain MMC driver sufficient to access eMMC? At first look it does not seem so.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Please if anyone is successfully talking to the eMMC(bare metal), please advice.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>PWMSSTBClkEnable Function Operation</title><link>http://e2e.ti.com/thread/271495.aspx</link><pubDate>Thu, 13 Jun 2013 12:02:49 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:6c953020-de0a-43ef-8cad-9c9fe76b27cd</guid><dc:creator>yul lee</dc:creator><slash:comments>1</slash:comments><comments>http://e2e.ti.com/thread/271495.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/271495/rss.aspx</wfw:commentRss><description>&lt;p&gt;hi. all.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I have issue.&lt;/p&gt;
&lt;p&gt;PWMSSTBClkEnable Function in the Starterware 2.00.00.07\platform\evmAM335x\pwmss.c&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;original source code is below&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;void PWMSSTBClkEnable(unsigned int instance) {&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch(instance)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 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; HWREG(SOC_CONTROL_REGS + CONTROL_PWMSS_CTRL)= CONTROL_PWMSS_CTRL_PWMSS0_TBCLKEN; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 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; HWREG(SOC_CONTROL_REGS + CONTROL_PWMSS_CTRL)= CONTROL_PWMSS_CTRL_PWMMS1_TBCLKEN; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 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;&amp;nbsp; HWREG(SOC_CONTROL_REGS +&amp;nbsp; CONTROL_PWMSS_CTRL)= CONTROL_PWMSS_CTRL_PWMSS2_TBCLKEN; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; default: &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;But this function generate problem when pwmss&amp;nbsp;are used multiple&lt;/p&gt;
&lt;p&gt;example&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;PWMSSTBClkEnable(0);&amp;nbsp; //Enable block0&lt;/p&gt;
&lt;p&gt;PWMSSTBClkEnable(1); // Disable block0 , Enable block1&lt;/p&gt;
&lt;p&gt;PWMSSTBClkEnable(2); //Disable block0,block1&amp;nbsp; Enable block2&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;As a result, &lt;span class="hps"&gt;PWMSS2&lt;/span&gt; &lt;span class="hps"&gt;blocks&lt;/span&gt; &lt;span class="hps"&gt;are&lt;/span&gt; &lt;span class="hps"&gt;living alone&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="hps"&gt;I&lt;/span&gt; &lt;span class="hps"&gt;suggest&lt;/span&gt; original code &lt;span class="hps"&gt;to&lt;/span&gt; &lt;span class="hps"&gt;be fixed&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;case 0: HWREG(SOC_CONTROL_REGS + CONTROL_PWMSS_CTRL)&lt;span style="color:#ff0000;"&gt; |=&lt;/span&gt; CONTROL_PWMSS_CTRL_PWMSS0_TBCLKEN;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;case 1: HWREG(SOC_CONTROL_REGS + CONTROL_PWMSS_CTRL)&lt;span style="color:#ff0000;"&gt; |=&lt;/span&gt; CONTROL_PWMSS_CTRL_PWMMS1_TBCLKEN;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;case 2: HWREG(SOC_CONTROL_REGS + CONTROL_PWMSS_CTRL) &lt;span style="color:#ff0000;"&gt;|=&lt;/span&gt; CONTROL_PWMSS_CTRL_PWMSS2_TBCLKEN;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;break;&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>USB bulk IN fails a 64 byte transfer</title><link>http://e2e.ti.com/thread/270808.aspx</link><pubDate>Mon, 10 Jun 2013 20:59:38 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:29b23cc6-c367-4dbc-a70a-618aa1f8218e</guid><dc:creator>Gerard Belanger1</dc:creator><slash:comments>2</slash:comments><comments>http://e2e.ti.com/thread/270808.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/270808/rss.aspx</wfw:commentRss><description>&lt;p&gt;I am using the AM335x StarterWare 2.0.0.7 USB stack with a device modeled on the Bulk device example.&amp;nbsp; The device is set for Full Speed operation.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If the response for an in endpoint (not EP0) IN request is exactly 64 bytes, the transaction never completes.&amp;nbsp; I see the 64 bytes being transferred, but I do not see the 0-byte packet mandated by the USB 2.0 spec.&lt;/p&gt;
&lt;p&gt;Where in the USB stack/bulk device code should this be handled?&amp;nbsp; I could not find any logic to do this.&lt;/p&gt;
&lt;p&gt;Gerry Belanger&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>BeagleBone EDMA can't be repeatedly triggered by Timer4</title><link>http://e2e.ti.com/thread/264407.aspx</link><pubDate>Mon, 13 May 2013 06:21:44 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:b3d611c4-17b1-488d-9192-8713b9a33e53</guid><dc:creator>Mars Wu</dc:creator><slash:comments>1</slash:comments><comments>http://e2e.ti.com/thread/264407.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/264407/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi all ,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m doing a&amp;nbsp; EDMA test for my project with AM335X_StarterWare_02_00_00_07 on BeagleBone Rev A5 . &lt;/p&gt;
&lt;p&gt;And the problem is that EDMA can not be triggered by Timer4-Event&amp;nbsp; repeatedly . No further interrupts are received after the first&amp;nbsp; EDMA completion interrupt.&lt;/p&gt;
&lt;p&gt;I have done the followings to debug (with CCS 5.3) ,&lt;/p&gt;
&lt;p&gt;1. By&amp;nbsp; Manually-Triggered ways , I could successfully get EDMA completion interrupts whenever I want . So I think the PaRAM is OK .&lt;/p&gt;
&lt;p&gt;2. By Timer4-Event-Triggered ways , EDMA transfer just happens once at the first time I manually set the Timer4-IRQ-Overflow-flag (set Timer IRQSTATUS Raw Register) . And the same initial code does not matter after first completion interrupt .&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp; No EDMA error interrupt happens .&lt;/p&gt;
&lt;p&gt;So I have no idea to solve this problem now. I need Timer4 trigger EDMA by Event-Triggered ways .&lt;/p&gt;
&lt;p&gt;Is there anyone can help me ??&lt;/p&gt;
&lt;p&gt;Followings is the code ,&lt;/p&gt;
&lt;p&gt;------------------------------------------------------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;#include &amp;quot;soc_AM335x.h&amp;quot;&lt;br /&gt;#include &amp;quot;beaglebone.h&amp;quot;&lt;br /&gt;#include &amp;quot;gpio_v2.h&amp;quot;&lt;br /&gt;#include &amp;quot;interrupt.h&amp;quot;&lt;br /&gt;#include &amp;quot;dmtimer.h&amp;quot;&lt;br /&gt;#include &amp;quot;edma.h&amp;quot;&lt;br /&gt;#include &amp;quot;edma_event.h&amp;quot;&lt;br /&gt;&lt;br /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERNAL MACRO DEFINITIONS&lt;br /&gt;*******************************************************************************/&lt;br /&gt;#define TIMER_INITIAL_COUNT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (0xFFDB60FFu)&amp;nbsp; //100ms&lt;br /&gt;#define TIMER_RLD_COUNT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (0xFFDB60FFu)&amp;nbsp; //100ms&lt;br /&gt;&lt;br /&gt;#define GPIO_INSTANCE_ADDRESS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (SOC_GPIO_1_REGS)&lt;br /&gt;#define GPIO_INSTANCE_PIN_NUMBER&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (23)&lt;br /&gt;&lt;br /&gt;#define EDMA3_TIMER4_CHA_NUM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (48)&lt;br /&gt;#define EVT_QUEUE_NUM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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)&lt;br /&gt;&lt;br /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfTransfer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERNAL FUNCTION PROTOTYPES&lt;br /&gt;*******************************************************************************/&lt;br /&gt;&lt;br /&gt;static void DMTimerSetUp(void);&lt;br /&gt;static void GPIOconfig(void);&lt;br /&gt;static void EDMA3INTCConfigure(void);&lt;br /&gt;static void Edma3CompletionIsr(void);&lt;br /&gt;static void Edma3CCErrorIsr(void);&lt;br /&gt;static void EDMA3Initialize(void);&lt;br /&gt;static void ConfParam(unsigned int tccNum ,&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; unsigned int chNum ,&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; volatile unsigned char *source_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;&amp;nbsp; volatile unsigned char *destination_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;&amp;nbsp; unsigned int length);&lt;br /&gt;&lt;br /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTERNAL VARIABLE DEFINITIONS&lt;br /&gt;*******************************************************************************/&lt;br /&gt;static volatile unsigned int cntValue = 1;&lt;br /&gt;static volatile unsigned int flagIsr = 0;&lt;br /&gt;static volatile unsigned int flag_err = 0;&lt;br /&gt;static volatile unsigned int debug_ClrIPR = 0;&lt;br /&gt;static volatile unsigned char source[256] = &amp;quot;StarterWare AM335X DMA application.&amp;quot;;&lt;br /&gt;static volatile unsigned char source2[256] = &amp;quot;BeagleBone EDMA application.&amp;quot;;&lt;br /&gt;static volatile unsigned char destination[256];&lt;br /&gt;static volatile unsigned char destination2[256];&lt;br /&gt;&lt;br /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FUNCTION DEFINITIONS&lt;br /&gt;*******************************************************************************/&lt;br /&gt;int main(void)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Do the GPIO1 pin-23 configurations .*/&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;GPIOconfig();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Configuring the system clocks for EDMA. */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;EDMAModuleClkConfig();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* This function will enable clocks for the DMTimer4 instance */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMTimer4ModuleClkConfig();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable IRQ in CPSR */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IntMasterIRQEnable();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize the ARM interrupt control */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IntAINTCInit();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Perform the necessary configurations for DMTimer */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMTimerSetUp();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initializing the EDMA. */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA3Initialize();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Request DMA Channel and TCC for block Transmit*/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA3RequestChannel(SOC_EDMA30CC_0_REGS, EDMA3_CHANNEL_TYPE_DMA,&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; EDMA3_TIMER4_CHA_NUM, EDMA3_TIMER4_CHA_NUM,&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; EVT_QUEUE_NUM);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configuring EDMA PaRAM sets to transmit a block data */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfParam(EDMA3_TIMER4_CHA_NUM ,EDMA3_TIMER4_CHA_NUM,source,destination,256);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, EDMA3_TIMER4_CHA_NUM,&amp;nbsp; EDMA3_TRIG_MODE_EVENT);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable the DMTimer interrupts */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMTimerIntEnable(SOC_DMTIMER_4_REGS, DMTIMER_INT_OVF_EN_FLAG);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; source[255] = &amp;#39;!&amp;#39;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Start the DMTimer */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMTimerEnable(SOC_DMTIMER_4_REGS);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;** Do the GPIO1 pin-23 configurations .&lt;br /&gt;*/&lt;br /&gt;static void GPIOconfig(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Enabling functional clocks for GPIO1 instance. */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;GPIO1ModuleClkConfig();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Selecting GPIO1[23] pin for use. */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;GPIO1Pin23PinMuxSetup();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Enabling the GPIO module. */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;GPIOModuleEnable(GPIO_INSTANCE_ADDRESS);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Resetting the GPIO module. */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;GPIOModuleReset(GPIO_INSTANCE_ADDRESS);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Setting the GPIO pin as an output pin. */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;GPIODirModeSet(GPIO_INSTANCE_ADDRESS,&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; GPIO_INSTANCE_PIN_NUMBER,&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; GPIO_DIR_OUTPUT);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;GPIOPinWrite(GPIO_INSTANCE_ADDRESS,&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; GPIO_INSTANCE_PIN_NUMBER,&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; GPIO_PIN_LOW);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;** Setup the timer .&lt;br /&gt;*/&lt;br /&gt;static void DMTimerSetUp(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Load the counter with the initial count value */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMTimerCounterSet(SOC_DMTIMER_4_REGS, TIMER_INITIAL_COUNT);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Load the load register with the reload count value */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMTimerReloadSet(SOC_DMTIMER_4_REGS, TIMER_RLD_COUNT);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configure the DMTimer for Auto-reload and compare mode */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMTimerModeConfigure(SOC_DMTIMER_4_REGS, DMTIMER_AUTORLD_NOCMP_ENABLE);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;static void ConfParam(unsigned int tccNum ,&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; unsigned int chNum ,&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; volatile unsigned char *source_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;&amp;nbsp; volatile unsigned char *destination_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;&amp;nbsp; unsigned int length)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;EDMA3CCPaRAMEntry paramSet;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Fill the PaRAM Set with transfer specific information */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;paramSet.srcAddr = (unsigned int) source;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;paramSet.destAddr = (unsigned int) destination;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* A, B and C Count values. */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;paramSet.aCnt = 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;paramSet.bCnt = 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;paramSet.cCnt = 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;paramSet.destBIdx = 1;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;paramSet.srcBIdx = 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;paramSet.srcCIdx = 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;paramSet.destCIdx = 1;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;paramSet.linkAddr = EDMA3CC_OPT(1);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;paramSet.bCntReload = 1;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* OPT PaRAM Entries. */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;paramSet.opt = 0x00000000u;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Setting the Transfer Complete Code(TCC). */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;paramSet.opt |= ((tccNum &amp;lt;&amp;lt; EDMA3CC_OPT_TCC_SHIFT) &amp;amp; EDMA3CC_OPT_TCC);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Enabling the Completion Interrupt. */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;paramSet.opt |= (1 &amp;lt;&amp;lt; EDMA3CC_OPT_TCINTEN_SHIFT);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Now write the PaRAM Set */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;EDMA3SetPaRAM(SOC_EDMA30CC_0_REGS, chNum, &amp;amp;paramSet);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;paramSet.srcAddr = (unsigned int) source2;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;paramSet.destAddr = (unsigned int) destination2;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;EDMA3SetPaRAM(SOC_EDMA30CC_0_REGS, 1, &amp;amp;paramSet);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;** EDMA Completion Interrupt Service Routine(ISR).&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;static void Edma3CompletionIsr(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; volatile unsigned int pendingIrqs;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; volatile unsigned int isIPR = 0;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(cntValue == 1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;GPIOPinWrite(GPIO_INSTANCE_ADDRESS,&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; GPIO_INSTANCE_PIN_NUMBER,&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; GPIO_PIN_LOW);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cntValue = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;GPIOPinWrite(GPIO_INSTANCE_ADDRESS,&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; GPIO_INSTANCE_PIN_NUMBER,&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; GPIO_PIN_HIGH);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cntValue = 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; flagIsr++;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Clear the status of the interrupt flags */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DMTimerIntStatusClear(SOC_DMTIMER_4_REGS, DMTIMER_INT_OVF_IT_FLAG);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Writing to ICR to clear the corresponding IPR bits. */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA3ClrIntr(SOC_EDMA30CC_0_REGS, EDMA3_TIMER4_CHA_NUM);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;** EDMA Error Interrupt Service Routine(ISR).&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;static void Edma3CCErrorIsr(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; volatile unsigned int pendingIrqs = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int evtqueNum = 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int index = 1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int Cnt = 0;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; flag_err++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((0 != EDMA3GetErrIntrStatus(SOC_EDMA30CC_0_REGS)) ||&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (0 != (EDMA3GetCCErrStatus(SOC_EDMA30CC_0_REGS))))&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; /* Loop for EDMA3CC_ERR_HANDLER_RETRY_COUNT number of time, breaks&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; when no pending interrupt is found */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while ((Cnt &amp;lt; EDMA3CC_ERR_HANDLER_RETRY_COUNT) &amp;amp;&amp;amp; (index != 0u))&lt;br /&gt;&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;&amp;nbsp;&amp;nbsp; index = 0u;&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; pendingIrqs = EDMA3GetErrIntrStatus(SOC_EDMA30CC_0_REGS);&lt;br /&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; while (pendingIrqs)&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; {&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; /*Process all the pending interrupts*/&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; if((pendingIrqs &amp;amp; 1u)==TRUE)&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; {&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; /* Writing to EMCR to clear the corresponding EMR bits.&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; Also clearing any Secondary events in SER. */&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; EDMA3ClrMissEvt(SOC_EDMA30CC_0_REGS, index);&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; }&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; ++index;&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; pendingIrqs &amp;gt;&amp;gt;= 1u;&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; }&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; index = 0u;&lt;br /&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; pendingIrqs = EDMA3GetCCErrStatus(SOC_EDMA30CC_0_REGS);&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 (pendingIrqs != 0u)&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; {&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; /* Process all the pending CC error interrupts. */&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; /* Queue threshold error for different event queues. */&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; for (evtqueNum = 0u; evtqueNum &amp;lt; EDMA3_0_NUM_EVTQUE; evtqueNum++)&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; {&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; if((pendingIrqs &amp;amp; (1u &amp;lt;&amp;lt; evtqueNum)) != 0u)&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; {&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; /* Clear the error interrupt. */&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; EDMA3ClrCCErr(SOC_EDMA30CC_0_REGS, (1u &amp;lt;&amp;lt; evtqueNum));&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; }&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; }&lt;br /&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Transfer completion code error. */&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; if ((pendingIrqs &amp;amp; (1 &amp;lt;&amp;lt; EDMA3CC_CCERR_TCCERR_SHIFT)) != 0u)&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; {&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; EDMA3ClrCCErr(SOC_EDMA30CC_0_REGS,&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;&amp;nbsp;&amp;nbsp; (0x01u &amp;lt;&amp;lt; EDMA3CC_CCERR_TCCERR_SHIFT));&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; }&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; ++index;&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; }&lt;br /&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; Cnt++;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;** Powering up, initializing and registering interrupts for EDMA.&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;static void EDMA3Initialize(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialization of EDMA3 */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA3Init(SOC_EDMA30CC_0_REGS, EVT_QUEUE_NUM);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Configuring the AINTC to receive EDMA3 interrupts. */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EDMA3INTCConfigure();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;** This function configures the AINTC to receive EDMA3 interrupts.&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;static void EDMA3INTCConfigure(void)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initializing the ARM Interrupt Controller. */&lt;br /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp; IntAINTCInit();&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Registering EDMA3 Channel Controller 0 transfer completion interrupt.&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IntRegister(SYS_INT_EDMACOMPINT, Edma3CompletionIsr);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Setting the priority for EDMA3CC0 completion interrupt in AINTC. */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IntPrioritySet(SYS_INT_EDMACOMPINT, 0, AINTC_HOSTINT_ROUTE_IRQ);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Registering EDMA3 Channel Controller 0 Error Interrupt. */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IntRegister(SYS_INT_EDMAERRINT, Edma3CCErrorIsr);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Setting the priority for EDMA3CC0 Error interrupt in AINTC. */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IntPrioritySet(SYS_INT_EDMAERRINT, 0, AINTC_HOSTINT_ROUTE_IRQ);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enabling the EDMA3CC0 completion interrupt in AINTC. */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IntSystemEnable(SYS_INT_EDMACOMPINT);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enabling the EDMA3CC0 Error interrupt in AINTC. */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IntSystemEnable(SYS_INT_EDMAERRINT);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>How to convert an image in C? (pnmtoc.c)</title><link>http://e2e.ti.com/thread/219178.aspx</link><pubDate>Wed, 10 Oct 2012 03:27:55 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:54643233-8014-4b9c-a04a-2f4e9d17ae9b</guid><dc:creator>Josemar paiva</dc:creator><slash:comments>2</slash:comments><comments>http://e2e.ti.com/thread/219178.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/219178/rss.aspx</wfw:commentRss><description>&lt;p&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;how do I use The NetPBM (&lt;a href="http://netpbm.sourceforge.net" target="_blank"&gt;http://netpbm.sourceforge.net&lt;/a&gt;), to create my images. And I saw also that has a code example with the Texas logo type, how can I make my own pictures? Because I installed it on my computer and not functional, it is necessary for some kind of software that can open it, such as java R7. Can you help me. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Greetings, &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Arial;font-size:10pt;"&gt;Paiva&lt;span style="text-decoration:underline;"&gt;&lt;/span&gt;&lt;span style="text-decoration:underline;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>BeagleBone GPIO with StarterWare and TFT LCD</title><link>http://e2e.ti.com/thread/271381.aspx</link><pubDate>Thu, 13 Jun 2013 05:21:38 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:34033ae3-3753-4c9f-8aef-23a5e4d01820</guid><dc:creator>Travis Estep</dc:creator><slash:comments>2</slash:comments><comments>http://e2e.ti.com/thread/271381.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/271381/rss.aspx</wfw:commentRss><description>&lt;p&gt;So, I have been playing with the BeagleBone and Starterware for some time now and today I decided to try to hook up my TFT and play around for a while. This TFT is one that I usually use with my STM32F4 board. It has an 8-Bit parallel interface as it was made to be used with an Arduino. I finally got the code written and everything hooked up and was eager to see this thing refreshing MUCH faster than it does on my STM32F4, but to my surprise, it was about 5 times slower. After researching, I found that most people who are looking for speed from the GPIO are using the PRU module. However, all examples I have seen are using Assembly. &amp;nbsp;I&amp;#39;m 100% comfortable with using assembly, but am curious as to how this can be used with the StarterWare package. Can my StarterWare app handle the logic and pass on the data to the PRU to update the screen? If so, are there any tutorials on how to load the code into the PRU from within my StarterWare app? Do I need to flash the PRU code onto the SD card and load it from there, or is there a more accepted way to do it? I&amp;#39;ve downloaded the PRU starter pack with the tools and the examples, but this stuff is getting into an area that I am not at all familiar with. &amp;nbsp;Any help or guidance provided would be MUCH appreciated.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Also, if there is a way to get more speed from the GPIO without using the PRU, I would also be interested in that as well. I would be more than happy to post a video of this thing running to show just how slow it really is. On a 320 x 240 screen, it takes about 2 seconds to do a full screen update. The same update on my STM32F4 with 168MHz (50MHz GPIO speeds) I can refresh the screen in under half a second.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks in advance.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>SPI Pin Control Register</title><link>http://e2e.ti.com/thread/271278.aspx</link><pubDate>Wed, 12 Jun 2013 16:44:30 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:7ccab5a3-89ef-4664-8b63-8b907301c02e</guid><dc:creator>Michelle Lopez</dc:creator><slash:comments>4</slash:comments><comments>http://e2e.ti.com/thread/271278.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/271278/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi all,&lt;/p&gt;
&lt;p&gt;I am using the Omap-L138 Logic PD EVM Board, Code Composer Studio v5 and the StarterWare drivers.&lt;/p&gt;
&lt;p&gt;I am trying to set two speicific values to the SPIPC0 and SPIC1 but am getting a 1 in some reserved bits. Is this expected?&lt;/p&gt;
&lt;p&gt;(I am trying to write 0x00000600 in SPIPC0 and 0x000009FF in SPIPC1)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://e2e.ti.com/cfs-file.ashx/__key/communityserver-discussions-components-files/790/6165.ti_5F00_reg1.png"&gt;&lt;img border="0" alt=" " src="http://e2e.ti.com/resized-image.ashx/__size/550x0/__key/communityserver-discussions-components-files/790/6165.ti_5F00_reg1.png" width="635" height="190" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://e2e.ti.com/cfs-file.ashx/__key/communityserver-discussions-components-files/790/1460.ti_5F00_reg2.png"&gt;&lt;img border="0" alt=" " src="http://e2e.ti.com/resized-image.ashx/__size/550x0/__key/communityserver-discussions-components-files/790/1460.ti_5F00_reg2.png" width="651" height="175" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://e2e.ti.com/cfs-file.ashx/__key/communityserver-discussions-components-files/790/2553.ti_2D00_reg3.png"&gt;&lt;img border="0" alt=" " src="http://e2e.ti.com/resized-image.ashx/__size/550x0/__key/communityserver-discussions-components-files/790/2553.ti_2D00_reg3.png" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Any input is appreciated.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Michelle&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>AM335x StarterWare - Wrong gcc linker script?</title><link>http://e2e.ti.com/thread/271502.aspx</link><pubDate>Thu, 13 Jun 2013 12:24:49 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:65be5a51-d7e8-40b2-8553-fd33d96f9663</guid><dc:creator>Vasili Galka</dc:creator><slash:comments>0</slash:comments><comments>http://e2e.ti.com/thread/271502.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/271502/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m using AM335X_StarterWare_02_00_00_07. The provided gcc makefile passes the compiler with &amp;quot;&lt;span style="font-family:courier new,courier;"&gt;-fdata-sections -ffunction-sections&lt;/span&gt;&amp;quot; flags. Thus, all the static variables are placed in &lt;span style="font-family:courier new,courier;"&gt;.bss.varname&lt;/span&gt; sections and not in &lt;span style="font-family:courier new,courier;"&gt;.bss&lt;/span&gt; sections.&lt;br /&gt;&lt;br /&gt;So regarding this, shouldn&amp;#39;t the linker script include the following line? (my addition is marked with red)&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _bss_start = .;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .bss :&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new,courier;"&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; *(.bss)&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new,courier;color:#ff0000;"&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; *(.bss.*)&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style="font-family:courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _bss_end = .;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Otherwise the static variables aren&amp;#39;t initialized by the startup code! Is my understanding correct?&lt;/p&gt;
&lt;p&gt;Same about &lt;span style="font-family:courier new,courier;"&gt;.text&lt;/span&gt; and &lt;span style="font-family:courier new,courier;"&gt;.data&lt;/span&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>audio examlpe problem for LCDKC6748</title><link>http://e2e.ti.com/thread/270464.aspx</link><pubDate>Sat, 08 Jun 2013 02:39:17 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:d8b17e6a-4a82-4f38-9292-4c669da98d1f</guid><dc:creator>leena wu</dc:creator><slash:comments>1</slash:comments><comments>http://e2e.ti.com/thread/270464.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/270464/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hello! I have problem running audio example of&amp;nbsp;&lt;span&gt;biospsp_03_00_01_00 with LCDKC6748!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Please browse:&lt;/p&gt;
&lt;p&gt;http://e2e.ti.com/support/embedded/bios/f/355/t/239373.aspx&lt;/p&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;p&gt;http://e2e.ti.com/support/embedded/bios/f/355/t/270296.aspx&lt;/p&gt;
&lt;p&gt;Any advice is thankful!!&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>beagleboard black question</title><link>http://e2e.ti.com/thread/271176.aspx</link><pubDate>Wed, 12 Jun 2013 08:18:54 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:1b13fd80-9901-41c3-bbd8-f677c1311052</guid><dc:creator>ronny suy</dc:creator><slash:comments>1</slash:comments><comments>http://e2e.ti.com/thread/271176.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/271176/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi , I&amp;#39;mdesperately trying to put the starterware program LEDBlinkgpio onto an sdcard.&lt;/p&gt;
&lt;p&gt;Whatever I do , no leds are blinking after sdboot.&lt;/p&gt;
&lt;p&gt;I do this :&lt;/p&gt;
&lt;p&gt;Format sdcard (fat32) and store MLO file + Ledblinkgpio.bin on card&lt;/p&gt;
&lt;p&gt;Reboot when pressing the S2 key on board&lt;/p&gt;
&lt;p&gt;Nothing happens ...&lt;/p&gt;
&lt;p&gt;Booting the emmc linux still works&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Thanks Ronny&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>manually triggered DMA transfer</title><link>http://e2e.ti.com/thread/271009.aspx</link><pubDate>Tue, 11 Jun 2013 14:45:23 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:3704f2de-f730-430b-b25e-f587cc88d594</guid><dc:creator>Ales Kovarik</dc:creator><slash:comments>0</slash:comments><comments>http://e2e.ti.com/thread/271009.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/271009/rss.aspx</wfw:commentRss><description>&lt;p&gt;I am trying to program the EDMA to transfer a 0.5MB block of data from one location of memory to another. All the examples in Starterware work with peripherals and events generated by the peripherals to trigger the transfer but no example for manually triggered transfer. This far I was unable to write the code to trigger the transfer manually.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The sequence I follow is this:&lt;/p&gt;
&lt;p&gt;EDMA3Init - event Queue 0&lt;/p&gt;
&lt;p&gt;EDMA3RequestChannel - channel 3&lt;/p&gt;
&lt;p&gt;EDMA3SetPaRAM - channel 3, A count is 1, B count is the size of the block to transfer, C cnt is 1. Bidx is 1 for both src and dst. Cidx is 0 for both src and dst.&lt;/p&gt;
&lt;p&gt;EDMA3EnableTransfer - channel 3, &amp;nbsp;using EDMA3_TRIG_MODE_MANUAL for trigMode&lt;/p&gt;
&lt;p&gt;EDMA3SetEvt - channel 3.&lt;/p&gt;
&lt;p&gt;Are these steps in correct order, is there something missing?&lt;/p&gt;
&lt;p&gt;Could anyone provide a &amp;nbsp;simple code snippet that would setup a memory to memory transfer and manually trigger it?&lt;/p&gt;
&lt;p&gt;Thank you in advance&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Enabling the ADC</title><link>http://e2e.ti.com/thread/270797.aspx</link><pubDate>Mon, 10 Jun 2013 19:47:59 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:9254bd95-a945-4021-91f7-1bf544e9cb12</guid><dc:creator>Savitha Unni</dc:creator><slash:comments>0</slash:comments><comments>http://e2e.ti.com/thread/270797.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/270797/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I am working on the Beagle bone with CCS &amp;amp; trying to make the ADC module up. I have followed couple of threads present in the TI community.I do not want to use interrrupts. I am reading once in the main the value returned by the ADC.For 1.8v I get 4095, 0v-439, 1v-4092 etc.I dont think I am reading the value at the right point.&lt;/p&gt;
&lt;p&gt;I have configured the ADC in one-shot mode &amp;amp; I want to configure it in continuous mode eventually because as I change my analog voltage I want to see the corresponding changes.Do I have to set the threshold for the FIFO?I want to use only 1 channel.So how do I know that I am reading the latest value in the FIFO?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Regards Savitha&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Using WINUSB, without an INF file!</title><link>http://e2e.ti.com/thread/270694.aspx</link><pubDate>Mon, 10 Jun 2013 12:12:34 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:6cb24f40-c605-45eb-97ce-1b66705b1835</guid><dc:creator>Walter Snafu</dc:creator><slash:comments>0</slash:comments><comments>http://e2e.ti.com/thread/270694.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/270694/rss.aspx</wfw:commentRss><description>&lt;p&gt;So you&amp;#39;ve got a TI platform (ARM, DSP, OMAP, etc. -- hereafter &amp;quot;USB device&amp;quot;) that you want to communicate with a Windows application. You&amp;#39;re writing both ends of that application -- the TI-side, and the Windows-side -- but you want it to communicate through the USB link.&amp;nbsp; How to?&lt;/p&gt;
&lt;p&gt;The Microsoft WINUSB API is a great way to make that easier.&amp;nbsp; No need to write user-mode or kernel mode drivers. Your Windows-side application can communicate with the USB device through this clean, supported, documented API interface.&amp;nbsp; Tasty!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Until recently, that solution was made needlessly complicated by the requirement for an INF file and surrounding minutiae.&amp;nbsp; You had to create an INF file (&amp;quot;.inf&amp;quot;) to precise specifications (with a GUID inside it), and it must be specially &amp;quot;signed&amp;quot; (through some cryptic process), and include two different co-installer executables, and put it all inside a &amp;quot;driver package&amp;quot;.&amp;nbsp; Then you had to actually install it successfully.&amp;nbsp; This was even more complicated if someone else -- say, a customer -- was doing the installing.&amp;nbsp; You had to e-x-p-l-a-i-n it to them.&amp;nbsp; Ugh!&amp;nbsp; Lots of inconvenience, and lots of room for failure.&lt;/p&gt;
&lt;p&gt;Well, now there&amp;#39;s a way to do it all auto-magically, without an INF file.&amp;nbsp; Just plug-in your USB connection, and it works.&amp;nbsp; Plug-and-Play.&amp;nbsp; And it works on all Microsoft operating systems going back to XP.&amp;nbsp; (And all the necessary Windows components will be installed automatically, simply by enabling your Windows Driver Updates!)&lt;/p&gt;
&lt;p&gt;That&amp;#39;s all fabulous!&amp;nbsp; I can see the future!&lt;/p&gt;
&lt;p&gt;All this tasty goodness requires just one,&amp;nbsp; more,&amp;nbsp; thing: An update to the TI USB Starterware, to make it speak Microsoft.&amp;nbsp; I&amp;#39;ve been examining the Microsoft requirements, and it looks pretty straightforward to make the changes to TI Starterware.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It requires creating three simple packed data structures:&amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The first basically says, &amp;quot;I know the secret Microsoft protocol, therefore I get to play the game!&amp;quot;&amp;nbsp; (It is 18 bytes long, and unchanging. It will be the same on every USB device.) &amp;nbsp;&lt;/li&gt;
&lt;li&gt;The second basically says, &amp;quot;I want to communicate through the WINUSB API interface.&amp;quot; (It is 40 bytes long, and unchanging. It will be the same on every USB device that wants to use the WINUSB API.) &amp;nbsp;&lt;/li&gt;
&lt;li&gt;The third includes the GUID.&amp;nbsp; (It is 142 bytes, and once you set it up for a particular application, it is unchanging. Except for the GUID, it will be the same on every USB device.)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The GUID is a long string of (random) numbers, that Windows uses to figure out which application to connect the USB device to. A GUID is created easily using a tool in MS Visual Studio.&amp;nbsp; Previously, the GUID was held in the INF file, but that file is no longer needed, by using the new solution.&amp;nbsp; Since the USB device and the Windows-side application both will contain the same GUID, they each communicate it to Windows, which then connects them together -- without an INF file.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve created those three packed data structures in CCS.&amp;nbsp; Now it&amp;#39;s onward to updating the TI Starterware.&amp;nbsp; The change is simple in concept:&amp;nbsp; When the Windows host asks for these data structures, the USB device should send them -- just like it sends other similar data packets.&amp;nbsp; It&amp;#39;s that straightforward.&amp;nbsp; MS has a unique command-byte that &amp;quot;asks&amp;quot; for them, but it&amp;#39;s simple to catch that, and then respond with the proper data structure.&amp;nbsp;Microsoft has done a good job of melding their protocol into the USB standard, so the changes are seamless, easy, and invisible to all the lower layers of USB handling.&lt;/p&gt;
&lt;p&gt;Before I get into details, I want to ask:&amp;nbsp; Is anyone here (a TI employee, or a TI customer) working on this?&amp;nbsp; Are there plans for this?&amp;nbsp; (Should I wait for TI to do it? -- it might take years.....)&lt;/p&gt;
&lt;p&gt;-- Walter&lt;/p&gt;
&lt;p&gt;P.S.&amp;nbsp; The Microsoft protocol allows for some additional options, such as dealing with power issues:&amp;nbsp; selective power-down, and remote-wakeup.&amp;nbsp; But those are unnecessary for most TI customer applications.&amp;nbsp; Rather, the central benefit of this approach is to get rid of that darned INF file.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>USB_dev_bulk example with WINUSB.sys Windows-side drivers</title><link>http://e2e.ti.com/thread/270500.aspx</link><pubDate>Sat, 08 Jun 2013 13:18:31 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:200b73b2-be8f-41dd-9312-c5686c08b909</guid><dc:creator>Walter Snafu</dc:creator><slash:comments>0</slash:comments><comments>http://e2e.ti.com/thread/270500.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/270500/rss.aspx</wfw:commentRss><description>&lt;p&gt;I&amp;#39;m now able to get my USB device to enumerate.&amp;nbsp; Great!&amp;nbsp; Next step: Getting the Windows7-side drivers loaded.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&amp;#39;m having trouble figuring out the next step.&amp;nbsp; When I run the TI supplied usb_bulk_example.exe it comes back with a System Error:&amp;nbsp; &amp;quot;The program can&amp;#39;t start because lmusbdll.dll is missing from your computer. Try reinstalling the program to fix this problem.&amp;quot;&amp;nbsp; I tried reinstalling it many times, with no success.&amp;nbsp; Something must be missing.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&amp;#39;m guessing the missing thing is a .inf file.&amp;nbsp; So I looked in the Stellarisware USB guide, and it&amp;nbsp;gave a sample .inf file, with notes on how to change it to fit my needs.&amp;nbsp; But I don&amp;#39;t know what to do with the .inf file.&amp;nbsp; Where do I put it?&amp;nbsp; What do I do with it?&amp;nbsp; &amp;nbsp;I can&amp;#39;t find more info in the above-mentioned guide.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The above-mentioned guide gives a link to a Microsoft webpage on their WINUSB.&amp;nbsp; That link is now old/broken.&amp;nbsp; MS has moved that page somewhere else.&amp;nbsp; Microsoft gives a new user-mode component, called WINUSB.dll, a dynamic link library.&amp;nbsp; This from their website:&lt;/p&gt;
&lt;p style="margin-left:30px;"&gt;The WinUSB architecture consists of a&amp;nbsp; kernel-mode driver (Winusb.sys) and a user-mode dynamic link library (Winusb.dll) that exposes &lt;a href="http://msdn.microsoft.com/en-us/library/ff540046.aspx#winusb"&gt;WinUSB functions&lt;/a&gt;.&amp;nbsp; By using these functions, you can manage USB devices with user-mode software.&lt;/p&gt;
&lt;p&gt;Should I be looking at writing my application to use the MS WINUSB.dll instead of the TI supplied lmusbdll.dll as my&amp;nbsp;Windows7-side dynamic link library?&amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>SPI CS</title><link>http://e2e.ti.com/thread/269914.aspx</link><pubDate>Wed, 05 Jun 2013 21:00:31 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:fcea7f15-b914-4b54-abd3-f5466fc3abb3</guid><dc:creator>Michelle Lopez</dc:creator><slash:comments>5</slash:comments><comments>http://e2e.ti.com/thread/269914.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/269914/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve looking at the SPI documentation and at the StarterWare drivers for the SPI peripheral and have a doubt in terms of the CS value that is often used/passed in the functions. Does the CS stand for chip select? What is it determined to do?&lt;/p&gt;
&lt;p&gt;Any feedback will be appreciated.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Michelle&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>vpif_lcd_loopback example-raw capture</title><link>http://e2e.ti.com/thread/270417.aspx</link><pubDate>Fri, 07 Jun 2013 17:47:52 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:35e57331-e8b1-43e5-980b-68770e66997b</guid><dc:creator>Katerina Trilyraki</dc:creator><slash:comments>0</slash:comments><comments>http://e2e.ti.com/thread/270417.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/270417/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hello !&lt;/p&gt;
&lt;p&gt;I am reposting my query regarding the vpif_lcd_loopback example in this forum because the topic maybe is more relevant to the StarterWare forum rather to the OMAP-L13x,AM1x... forum.&lt;br class="internal-link view-application" /&gt;I have downloaded the example code provided by logicPD ( http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/p/259541/937548.aspx#937548 ) and I am trying to modify the vpif_lcd_loopback example&amp;nbsp; in order to capture raw data from a Leopard Imaging sensor.&lt;/p&gt;
&lt;p&gt;In&amp;nbsp;the example code provided by logicPD, in the function MT9V032_init()&amp;nbsp; (initialization and configuration of the camera sensor) &lt;br /&gt;one of the first steps is to initialize a clock synthesizer&amp;nbsp; (via calling the CDCE913Init() function ) in order to supply the camera sensor with an external clock.&lt;br /&gt;The problem is that when I try to do the same in the&amp;nbsp;vpif_lcd_loopback example, when I use the function CDCE913Init() the execution gets stuck&amp;nbsp; in a while loop that indicates that the data (i.e. value for one of &lt;a href="http://www.ti.com/product/cdce913" title="Link to Product Folder" target="_blank"&gt;cdce913&lt;/a&gt; registers) hasn&amp;#39;t been sent to &lt;a href="http://www.ti.com/product/cdce913" title="Link to Product Folder" target="_blank"&gt;cdce913&lt;/a&gt; via i2c.More precisely:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;My function for initializing my camera sensor:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;void &lt;strong&gt;MT9M024_Init&lt;/strong&gt;(unsigned int baseAddr)&lt;br /&gt;{&lt;br /&gt;/&amp;nbsp;&amp;nbsp; &amp;nbsp;/extclk=27Mhz&lt;br /&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CDCE913Init(baseAddr);&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//soft reset - i2c configuration is preserved&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;//R0-301A[0]=1 for 1ms&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CameraRegWrite(baseAddr,0x301A, 0x0001);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Delay(1000000);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;CameraRegWrite(baseAddr,0x301A, 0x0000);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Delay(1000000);&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;.&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;&lt;br /&gt;Program flow:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MT9M024_Init() -&amp;gt; CDCE913Init() -&amp;gt; CodecRegWrite() -&amp;gt; I2CCodecSendBlocking() -&amp;gt; while loop&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Point that program gets stuck:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;static void&lt;strong&gt; I2CCodecSendBlocking&lt;/strong&gt;(unsigned int baseAddr, unsigned int dataCnt)&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;.&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;I2CMasterStart(baseAddr);&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* Wait till the data is sent */&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;while(txCompFlag);&lt;/strong&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Any ideas why the clock synthesizer can&amp;#39;t receive data via I2C?&lt;br /&gt;I am using OMAPL138-LCDK with a dual camera module from Leopard Imaging and I am modifying the vpif_lcd _loopback example code from OMAPL138_StarterWare_1_10_03_03 .&lt;br /&gt;Thank you in advance!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Writing data to an isochrone EndpointFIFO</title><link>http://e2e.ti.com/thread/262048.aspx</link><pubDate>Tue, 30 Apr 2013 13:23:14 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:62c65f54-62d0-4263-8e7d-ace3e51d67ca</guid><dc:creator>Klaus Liebschner</dc:creator><slash:comments>1</slash:comments><comments>http://e2e.ti.com/thread/262048.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/262048/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I am trying to sent (audio) data via an asynchronous isochron Endpoint. I have enumerated a device as microphone, which is correctly recognized by my Windows PC.&lt;/p&gt;
&lt;p&gt;As a next step, I would like to write some dummy data to the Fifo Endpoint, however, I do not understand how the FIFO is correctly configured - with the USB commandGetFIFOAddress, I get a valid address back (0x47401428) and I assume, that this is the proxy register of my endpoint 2, which I am using. But where is now the real start address in memory, where I can verify, that the data has been correctly written into the FIFO? What to do next to see the data on the USB bus ? Currently, there are many NACKs, becasue I do not sent anything. Is there a documentatiion available besides &amp;quot;spruh73g&amp;quot; and &amp;quot;SitaraWare USB User Guide&amp;quot; I should read ?&lt;/p&gt;
&lt;p&gt;Please help.&lt;/p&gt;
&lt;p&gt;Klaus&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Wrong execution time</title><link>http://e2e.ti.com/thread/248443.aspx</link><pubDate>Wed, 27 Feb 2013 13:57:02 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:9904b9ff-9dfb-4333-a02f-b32753e46b7f</guid><dc:creator>Philip Hertweck</dc:creator><slash:comments>2</slash:comments><comments>http://e2e.ti.com/thread/248443.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/248443/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I working on a project with a&lt;strong&gt; BeagleBone Rev. A6&lt;/strong&gt; (processor AM3359 ZCZ). In this project I measure the execution time of a FOR loop by a GPIO pin.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The code statement is shown below:&lt;/strong&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;&amp;nbsp; &lt;span style="color:#ff0000;"&gt;&lt;b&gt;HWREG(SOC_GPIO_1_REGS + GPIO_SETDATAOUT) = (1 &amp;lt;&amp;lt; 16);&lt;/b&gt;&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;&amp;nbsp; foo = (unsigned int*) &amp;amp;main;&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; for (i = 0; i &amp;lt; 1000; i ++) {&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; tmp += *foo;&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; foo++;&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; } &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; &lt;span style="color:#ff0000;"&gt;&lt;b&gt;HWREG(SOC_GPIO_1_REGS + GPIO_CLEARDATAOUT) = (1 &amp;lt;&amp;lt; 16);&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;The measured execution time is about 1,17 ms (milliseconds).&lt;br /&gt;I think, that the execution time is wrong (too high), because the MPU is configured with 720 Mhz.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:medium;"&gt;&lt;strong&gt;Is my expectance wrong? Or had I mad an error in the CPU initialization?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;For the time measurement I had modified the bootloader project of the starter ware &amp;bdquo;AM335X_StarterWare_02_00_00_07&amp;ldquo;. In the following the modified main() function is shown.&lt;/p&gt;
&lt;p&gt;int main(void) {&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; unsigned int* foo; unsigned short i;&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; /* Configures PLL and DDR controller*/&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; BlPlatformConfig();&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; GPIO_Initialisation();&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; while (1) {&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; HWREG(SOC_GPIO_1_REGS + GPIO_SETDATAOUT) = (1 &amp;lt;&amp;lt; 16);&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; foo = (unsigned int*) &amp;amp;main;&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; for (i = 0; i &amp;lt; 1000; i ++) {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; tmp += *foo; foo++;&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; }&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; HWREG(SOC_GPIO_1_REGS + GPIO_CLEARDATAOUT) = (1 &amp;lt;&amp;lt; 16);&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; }&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;For debugging I use the CCSv5.2 and XDS100v2 USB emulator. The Debugger writes the code into the internal RAM.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;I had made the following points:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;check the MPU PLL and Core PLL configuration together with a colleague&lt;/li&gt;
&lt;li&gt;check the voltage settings together with a colleague&lt;/li&gt;
&lt;li&gt;execute the code on a NAND flash &lt;strong&gt;without&lt;/strong&gt; a debugger (same execution time)&lt;/li&gt;
&lt;li&gt;execute the code in the internal RAM &lt;strong&gt;with&lt;/strong&gt; a debugger&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;Thank you for your help.&lt;/p&gt;
&lt;p&gt;Philip Hertweck&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>PINMUX1_PINMUX1_7_4 can't be set to GPIO0[6]</title><link>http://e2e.ti.com/thread/270159.aspx</link><pubDate>Thu, 06 Jun 2013 16:16:27 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:2089f195-7efa-4a2d-a020-e1e1521cff7e</guid><dc:creator>Timothy Eastham</dc:creator><slash:comments>1</slash:comments><comments>http://e2e.ti.com/thread/270159.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/270159/rss.aspx</wfw:commentRss><description>&lt;p&gt;I have an AM1808 chip and I set the following commands:&lt;/p&gt;
&lt;p&gt;HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(1)) |= (SYSCFG_PINMUX1_PINMUX1_7_4_GPIO0_6);&lt;br /&gt; HWREG(SOC_SYSCFG_0_REGS + SYSCFG0_PINMUX(1)) |= (SYSCFG_PINMUX1_PINMUX1_3_0_GPIO0_7);&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The GPIO 7 call works but when I look at the registers in debug mode the 1_7_4 register is still set to 0.&lt;/p&gt;
&lt;p&gt;The defines for them are:&lt;/p&gt;
&lt;p&gt;#define SYSCFG_PINMUX1_PINMUX1_7_4_GPIO0_6 (0x00000008u)&lt;/p&gt;
&lt;p&gt;#define SYSCFG_PINMUX1_PINMUX1_3_0_GPIO0_7 (0x00000008u)&lt;/p&gt;
&lt;p&gt;What could be the issue here?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Tim&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Confused about boot on AM335x/TMDEVXEVM3358</title><link>http://e2e.ti.com/thread/269911.aspx</link><pubDate>Wed, 05 Jun 2013 20:37:44 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:12df0d84-1db1-4326-b4b8-4e38d630bf87</guid><dc:creator>Ben Baron</dc:creator><slash:comments>4</slash:comments><comments>http://e2e.ti.com/thread/269911.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/269911/rss.aspx</wfw:commentRss><description>&lt;p&gt;On this particular device, there is conflicting information about whether the basic boot ROM (0-0x20000) can be rewritten. Some posts state it cannot:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://e2e.ti.com/support/arm/sitara_arm/f/791/t/158347.aspx"&gt;http://e2e.ti.com/support/arm/sitara_arm/f/791/t/158347.aspx&lt;/a&gt;&lt;/p&gt;
&lt;div class="post-author"&gt;
&lt;table class="post-author-details-table fiji-post-author-details-table evolution2-post-author-details-table" border="0" cellspacing="0" cellpadding="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="post-author-avatar-cell fiji-post-author-avatar-cell evolution2-post-author-avatar-cell"&gt;&lt;span class="avatar"&gt;&lt;a href="http://e2e.ti.com/members/14807/default.aspx"&gt; &lt;/a&gt; &lt;/span&gt;&lt;/td&gt;
&lt;td class="post-author-user-cell fiji-post-author-user-cell evolution2-post-author-user-cell"&gt;
&lt;div class="user-name-post-date fiji-user-name-post-date evolution2-user-name-post-date"&gt;Posted by &lt;span class="user-name"&gt;&lt;a class="internal-link view-user-profile" href="http://e2e.ti.com/members/14807/default.aspx"&gt;&lt;span&gt;&lt;/span&gt;peaves &lt;/a&gt; &lt;/span&gt;
&lt;div class="post-date"&gt;&lt;span class="label"&gt;&lt;a href="http://e2e.ti.com/support/arm/sitara_arm/f/791/t/158347.aspx"&gt;on&lt;/a&gt; &lt;/span&gt; &lt;span class="value"&gt;&lt;a class="internal-link view-post" href="http://e2e.ti.com/support/arm/sitara_arm/f/791/p/158347/621141.aspx#621141"&gt;Mar 07 2012 00:05 AM&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class="role-icon"&gt;The AM335x ROM is masked and can not be changed.&amp;nbsp; The ROM&amp;nbsp;memory cells are&amp;nbsp;implemented with&amp;nbsp;descrete logic when the device is built.&amp;nbsp; They are not&amp;nbsp;programmable memory cells.&lt;/div&gt;
&lt;p class="post-content user-defined-markup"&gt;The ROM code will begin the system boot process by reading the SYSBOOT inputs latched during reset to determine which peripheral to use for booting.&lt;/p&gt;
&lt;p class="post-content user-defined-markup"&gt;Regards, Paul&lt;/p&gt;
&lt;p class="post-content user-defined-markup"&gt;___________________&lt;/p&gt;
&lt;p class="post-content user-defined-markup"&gt;Some information indicated it can be rewritten:&lt;/p&gt;
&lt;p class="post-content user-defined-markup"&gt;&lt;a href="http://processors.wiki.ti.com/index.php/AM335X_StarterWare_Booting_And_Flashing#Booting_Via_SPI"&gt;http://processors.wiki.ti.com/index.php/AM335X_StarterWare_Booting_And_Flashing#Booting_Via_SPI&lt;/a&gt;&lt;/p&gt;
&lt;p class="post-content user-defined-markup"&gt;&lt;em&gt;Booting Via SPI&amp;nbsp;&lt;/em&gt;&lt;/p&gt;
&lt;p class="post-content user-defined-markup"&gt;&lt;em&gt;Booting from SPI involves two steps.&amp;nbsp;&lt;/em&gt;&lt;/p&gt;
&lt;div class="post-content user-defined-markup"&gt;&lt;ol&gt;
&lt;li&gt;&lt;em&gt;Flashing bootloader and application to SPI Flash&amp;nbsp;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Booting the target.&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
&lt;h4&gt;&lt;em&gt;&lt;span class="mw-headline" id="Flashing_bootloader_and_application_to_SPI_Flash"&gt;Flashing bootloader and application to SPI Flash &lt;/span&gt;&lt;/em&gt;&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Configure the EVM in profile 2 (SW8[1] = OFF, SW8[2] = ON, SW8[3:4] = OFF).For more details refer to &lt;a class="external text" href="http://www.ti.com/tool/tmdxevm3358" target="_blank" rel="nofollow"&gt;EVM reference manual&lt;/a&gt;.&amp;nbsp;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Configure the BOOT pins for SPI &lt;a title="AM335X StarterWare Booting And Flashing" href="http://processors.wiki.ti.com/index.php/AM335X_StarterWare_Booting_And_Flashing#Boot_Modes"&gt;Boot mode&lt;/a&gt;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Connect the target.&amp;nbsp;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Load the GEL file /tools/gel/AM335X.gel.&amp;nbsp;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Load the spi_flash_writer_AM335X.out onto the EVM.&amp;nbsp;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;It will prompt for binary file name. Update the file with the path.&amp;nbsp;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;It will prompt again for load address in flash.&lt;strong&gt; If bootloader is to be flashed, provide 0x00000.&lt;/strong&gt; For StarterWare application provide 0x20000.&amp;nbsp;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Once SPI flash writing completes, disconnect from CCS.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;_______________&lt;/p&gt;
&lt;p&gt;The EVM HW User guide, &lt;a href="http://processors.wiki.ti.com/index.php/AM335x_General_Purpose_EVM_HW_User_Guide"&gt;http://processors.wiki.ti.com/index.php/AM335x_General_Purpose_EVM_HW_User_Guide&lt;/a&gt;&amp;nbsp;identifies an SPI flash memory that could be used to boot, but does not give a MMIO address for it.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;SPI Flash Memory&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;There is a SPI based Flash Memory on the daughterboard of the EVM.&amp;nbsp; This is a 64Mb memory Winbond W25Q64CV.&amp;nbsp; See the pin use description for the profile that supports connection to the SPI memory.&amp;nbsp; Due to connection requirements for other devices that share the same pins as the SPI memory, the GP EVM is not designed to operate at the max SPI clock rate as shown in the AM335x datasheet.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;______________________&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:arial,helvetica,sans-serif;font-size:small;"&gt;&lt;span style="font-size:small;"&gt;The&amp;nbsp;&amp;nbsp;AM335x ARM &amp;reg; Cortex&amp;trade;-A8 Microprocessors (MPUs) Technical Reference Manual SPRUH73H gives the memory at 0 as GPMC addresses, so no help there except that GPMC addresses are listed as follows in &lt;a href="http://processors.wiki.ti.com/index.php/AM335x_General_Purpose_EVM_HW_User_Guide#NOR_Flash_Memory"&gt;http://processors.wiki.ti.com/index.php/AM335x_General_Purpose_EVM_HW_User_Guide#NOR_Flash_Memory&lt;/a&gt;, implying that it is a NOR flash at 0, which as I read it could not be used to boot.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin-left:30px;"&gt;&lt;em&gt;&lt;span style="font-family:andale mono,times;font-size:small;"&gt;&lt;span style="font-family:andale mono,times;font-size:small;"&gt;NOR Flash Memory&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="margin-left:30px;"&gt;&lt;em&gt;The GP daughterboard has flash memory which is a NOR type of flash so that the AM335x&amp;#39;s access to/from NOR flash function can be tested. The part number of the memory used is Numonyx pn#M29W128GL which is a 16MB (x16 width) flash memory. The GPMC signals are used to communicate with this memory. The GPMC signals are muxed with other signals in AM335x. Also, several other devices connect to the GPMC signals on the baseboard and the daughterboard. boot from NoR is currently not supported on EVM.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;span style="font-family:Arial;font-size:xx-small;"&gt;&lt;span style="font-family:Arial;font-size:xx-small;"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;2.1 ARM Cortex-A8 Memory Map&lt;/em&gt;&lt;/p&gt;
&lt;p align="LEFT" style="margin-left:30px;"&gt;&lt;em&gt;Table 2-1. L3 Memory Map&lt;/em&gt;&lt;/p&gt;
&lt;p align="LEFT" style="margin-left:30px;"&gt;&lt;em&gt;Block Name Start_address (hex) End_address (hex) Size Description&lt;/em&gt;&lt;/p&gt;
&lt;p align="LEFT" style="margin-left:30px;"&gt;&lt;em&gt;GPMC 0x0000_0000 &lt;span style="color:#0000ff;font-family:Arial;font-size:xx-small;"&gt;&lt;span style="color:#0000ff;font-family:Arial;font-size:xx-small;"&gt;&lt;span style="color:#0000ff;font-family:Arial;font-size:xx-small;"&gt;(1) &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:xx-small;"&gt;&lt;span style="font-family:Arial;font-size:xx-small;"&gt;0x1FFF_FFFF 512MB 8-/16-bit External Memory&lt;/span&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style="margin-left:30px;"&gt;&lt;em&gt;(External Memory) (Ex/R/W)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Arial;font-size:xx-small;"&gt;&lt;span style="font-family:Arial;font-size:xx-small;"&gt;________________________&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;So aside from the fact that the documentation for AM335x/TMDEVXEVM3358 simply blows,&amp;nbsp;can someone answer what memory is at 0-0x20000 and is it rewriteable? If it is rewriteable is there a source for the boot loader that is normally found there? I believe this is called the RBL or Rom BootLoader. The term Public ROM is also used for some of this area?&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
&lt;p&gt;Ben Baron&lt;/p&gt;
&lt;p&gt;Oracle Corporation Firmware Development.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Broken paths on Starterware example project</title><link>http://e2e.ti.com/thread/269558.aspx</link><pubDate>Tue, 04 Jun 2013 19:01:27 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:090f97a3-3baf-4c1d-8564-6aef05e5d51d</guid><dc:creator>Walter Snafu</dc:creator><slash:comments>4</slash:comments><comments>http://e2e.ti.com/thread/269558.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/269558/rss.aspx</wfw:commentRss><description>&lt;p&gt;I keep getting build errors due to broken paths, using the OMAP-L138 Starterware&amp;nbsp;example USB device bulk project.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I did the correct thing, that is, I imported the project into CCSv5 &lt;em&gt;without copying the files&lt;/em&gt;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Also, I tried re-installing the Starterware several times (and also a complete re-install of CCS and all the packages).&amp;nbsp; I installed Starterware &lt;em&gt;into the default location&lt;/em&gt;, that is, at C:\ti\OMAPL138_StarterWare_1_10_03_03&lt;/p&gt;
&lt;p&gt;It always results in numerous broken path names, for the compiler, and for the linker.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Here is what the compiler reports when I try to build. Notice the highlighted items have something missing.&amp;nbsp; For example, the first one on the list should read &amp;quot;C:/&lt;span style="background-color:#00ccff;"&gt;ti/OMAPL138_StarterWare_1_10_03_03/&lt;/span&gt;examples/.....&amp;quot; The part highlighted in blue in missing from all the following paths.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;font-size:xx-small;"&gt;Description&amp;nbsp;Resource&amp;nbsp;Path&amp;nbsp;Location&amp;nbsp;Type &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;font-size:xx-small;"&gt;gmake: *** No rule to make target `&lt;span style="background-color:#ffff99;"&gt;C:/examples&lt;/span&gt;/evmOMAPL138/usb_dev_bulk/usb_bulk_structs.c&amp;#39;,&amp;nbsp;needed by `usb_bulk_structs.obj&amp;#39;.&amp;nbsp;usb_dev_bulk_armv5_omapl138_evmOMAPL138&amp;nbsp;&amp;nbsp;Unknown&amp;nbsp;C/C++ Problem &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;font-size:xx-small;"&gt;gmake: *** No rule to make target `&lt;span style="background-color:#ffff99;"&gt;C:/examples&lt;/span&gt;/evmOMAPL138/usb_dev_bulk/usb_dev_bulk.c&amp;#39;, &amp;nbsp;needed by `usb_dev_bulk.obj&amp;#39;.&amp;nbsp;&amp;nbsp;usb_dev_bulk_armv5_omapl138_evmOMAPL138&amp;nbsp;&amp;nbsp;Unknown&amp;nbsp;C/C++ Problem &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;font-size:xx-small;"&gt;gmake: *** No rule to make target `&lt;span style="background-color:#ffff99;"&gt;C:/examples&lt;/span&gt;/evmOMAPL138/usb_dev_bulk/ustdlib.c&amp;#39;, &amp;nbsp;&amp;nbsp;needed by `ustdlib.obj&amp;#39;.&amp;nbsp;&amp;nbsp;usb_dev_bulk_armv5_omapl138_evmOMAPL138&amp;nbsp;&amp;nbsp;Unknown&amp;nbsp;C/C++ Problem &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;font-size:xx-small;"&gt;Invalid project path: Include path not found (&lt;span style="background-color:#ffff99;"&gt;C:\grlib&lt;/span&gt;\include).&amp;nbsp;&amp;nbsp;usb_dev_bulk_armv5_omapl138_evmOMAPL138&amp;nbsp;&amp;nbsp;pathentry&amp;nbsp;Path Entry Problem &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;font-size:xx-small;"&gt;Invalid project path: Include path not found (&lt;span style="background-color:#ffff99;"&gt;C:\usblib&lt;/span&gt;\include).&amp;nbsp;&amp;nbsp;usb_dev_bulk_armv5_omapl138_evmOMAPL138&amp;nbsp;&amp;nbsp;pathentry&amp;nbsp;Path Entry Problem &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;font-size:xx-small;"&gt;Invalid project path: Include path not found (&lt;span style="background-color:#ffff99;"&gt;C:\ipclite&lt;/span&gt;\include).&amp;nbsp;&amp;nbsp;usb_dev_bulk_armv5_omapl138_evmOMAPL138&amp;nbsp;&amp;nbsp;pathentry&amp;nbsp;Path Entry Problem &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;font-size:xx-small;"&gt;Invalid project path: Include path not found (&lt;span style="background-color:#ffff99;"&gt;C:\nandlib&lt;/span&gt;\include).&amp;nbsp;&amp;nbsp;usb_dev_bulk_armv5_omapl138_evmOMAPL138&amp;nbsp;&amp;nbsp;pathentry&amp;nbsp;Path Entry Problem &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;font-size:xx-small;"&gt;Invalid project path: Include path not found (&lt;span style="background-color:#ffff99;"&gt;C:\include&lt;/span&gt;\armv5\omapl138).&amp;nbsp;usb_dev_bulk_armv5_omapl138_evmOMAPL138&amp;nbsp;&amp;nbsp;pathentry&amp;nbsp;Path Entry Problem &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;font-size:xx-small;"&gt;Invalid project path: Include path not found (&lt;span style="background-color:#ffff99;"&gt;C:\include&lt;/span&gt;\armv5).&amp;nbsp;&amp;nbsp;usb_dev_bulk_armv5_omapl138_evmOMAPL138&amp;nbsp;&amp;nbsp;pathentry&amp;nbsp;Path Entry Problem &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;font-size:xx-small;"&gt;Invalid project path: Include path not found (&lt;span style="background-color:#ffff99;"&gt;C:\include&lt;/span&gt;\hw).&amp;nbsp;&amp;nbsp;&amp;nbsp;usb_dev_bulk_armv5_omapl138_evmOMAPL138&amp;nbsp;&amp;nbsp;pathentry&amp;nbsp;Path Entry Problem &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;font-size:xx-small;"&gt;Invalid project path: Include path not found (&lt;span style="background-color:#ffff99;"&gt;C:\include&lt;/span&gt;).&amp;nbsp;&amp;nbsp;&amp;nbsp;usb_dev_bulk_armv5_omapl138_evmOMAPL138&amp;nbsp;&amp;nbsp;pathentry&amp;nbsp;Path Entry Problem &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;font-size:xx-small;"&gt;Invalid project path: Include path not found (&lt;span style="background-color:#ffff99;"&gt;C:\examples&lt;/span&gt;\evmOMAPL138\usb_dev_bulk).&amp;nbsp;&amp;nbsp;usb_dev_bulk_armv5_omapl138_evmOMAPL138&amp;nbsp;&amp;nbsp;pathentry&amp;nbsp;Path Entry Problem &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;font-size:xx-small;"&gt;Invalid project path: Include path not found (&lt;span style="background-color:#ffff99;"&gt;C:\examples&lt;/span&gt;\evmOMAPL138\usb_dev_bulk).&amp;nbsp;&amp;nbsp;usb_dev_bulk_armv5_omapl138_evmOMAPL138&amp;nbsp;&amp;nbsp;pathentry&amp;nbsp;Path Entry Problem &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:courier new,courier;font-size:xx-small;"&gt;This project contains unresolved buildable linked resources. It might not build as expected.&amp;nbsp;usb_dev_bulk_armv5_omapl138_evmOMAPL138&amp;nbsp;&amp;nbsp;project&amp;nbsp;Problems&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>nesting of IRQs of the same priority</title><link>http://e2e.ti.com/thread/270035.aspx</link><pubDate>Thu, 06 Jun 2013 09:17:52 GMT</pubDate><guid isPermaLink="false">cb01d8b2-d089-468d-babb-77d1d8683490:15b004cd-eeaf-48c6-8188-d0e4e16ac094</guid><dc:creator>Ales Kovarik</dc:creator><slash:comments>1</slash:comments><comments>http://e2e.ti.com/thread/270035.aspx</comments><wfw:commentRss>http://e2e.ti.com/support/embedded/starterware/f/790/t/270035/rss.aspx</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m trying to create a simple task scheduler. The scheduler is an ISR hooked up to a timer. When the scheduler is called (interrupt fired) a selected task is run. Some tasks are longer and are only called every few ticks. Other smaller &amp;nbsp;tasks run more frequently and can happen while the longer task is still executing. I want those to interrupt the currently running long task and do their work. The problem I have with starterware is that since the priority is only one for the timer interrupt, the subsequent interrupt won&amp;#39;t nest.&lt;/p&gt;
&lt;p&gt;Is it possible to bend the interrupt servicing so that interrupts of the same priority can preempt a currently running ISR? Which starterware function takes care of preempting IRQs that I could modify in order to achieve my goal?&lt;/p&gt;
&lt;p&gt;(using Starterware 02.00.00.07 on AM335x StarterKit)&lt;/p&gt;
&lt;p&gt;any suggestions?&lt;/p&gt;
&lt;p&gt;regards,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>