<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: C and Assembly Timing problem in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/C-and-Assembly-Timing-problem/m-p/571027#M20428</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by R2D2 on Wed May 29 07:06:13 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: Alainbs&lt;/STRONG&gt;&lt;BR /&gt;What can i do?&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Look in your assembler output :)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Add &lt;/SPAN&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;arm-none-eabi-objdump -S ${BuildArtifactFileName} &amp;gt;${BuildArtifactFileBaseName}.lss;&lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt;to your project 'Post-build steps'.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Jun 2016 02:22:14 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-16T02:22:14Z</dc:date>
    <item>
      <title>C and Assembly Timing problem</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/C-and-Assembly-Timing-problem/m-p/571025#M20426</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Alainbs on Tue May 28 09:40:17 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a project where i have C files and ASM files (LPC1114 xpresso board and lpcxpresso IDE).&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;From C i call an assembly function where i read a GPIO and acquire the bits, after that i return again to C. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The problem is that when i add or delete lines of code in C the sampling time in assembly change.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Does the compiler optimize also my assembly code? What can i do?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=royalblue]From my C code i make a call to the assembly function and got the last RAM address:[/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;unsigned int *lastRAMaddr;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=black][/COLOR] &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=black]lastRAMaddr = (unsigned int*)asmfunction();[/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.........&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;here process the data i got from sampling&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;........&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[COLOR=#3f7f5f][COLOR=#3f7f5f][/COLOR][/COLOR][COLOR=royalblue]Sampling part look like this:[/COLOR]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2][/SIZE] &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2]asmfunction:[/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2][/SIZE] &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2]movs&amp;nbsp;&amp;nbsp; r0,#150[/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2][/SIZE] &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2][COLOR=darkred]readpin:[/COLOR][/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2]ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r2,[r3]&amp;nbsp;&amp;nbsp; //Read GPIO r3 hold the address of the gpio[/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2]stm&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r1!,{r2} //Store Bit in Ram and increment address[/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2]subs&amp;nbsp;&amp;nbsp;&amp;nbsp; r0,#1&amp;nbsp;&amp;nbsp;&amp;nbsp; [/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2]bne&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [COLOR=darkred]readpin[/COLOR][/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2][COLOR=black]movs&amp;nbsp; r0,#0[/COLOR][/SIZE]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[SIZE=2]orrs&amp;nbsp;&amp;nbsp;&amp;nbsp; r0,r1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Get last RAM address&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; bx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lr[SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/COLOR][/SIZE][/COLOR][/SIZE][/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f][/COLOR][/SIZE][/COLOR][/SIZE]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:22:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/C-and-Assembly-Timing-problem/m-p/571025#M20426</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:22:13Z</dc:date>
    </item>
    <item>
      <title>Re: C and Assembly Timing problem</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/C-and-Assembly-Timing-problem/m-p/571026#M20427</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by TheFallGuy on Wed May 29 06:49:39 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;No, the C compiler it does not optimize your assembler. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Most likely cause is that you are spanning two different flash-cache lines and your loop is causing two flash-lines to be fetched. There has been a lot of discussion in this forum about this as it can cause changes in performance.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:22:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/C-and-Assembly-Timing-problem/m-p/571026#M20427</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:22:13Z</dc:date>
    </item>
    <item>
      <title>Re: C and Assembly Timing problem</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/C-and-Assembly-Timing-problem/m-p/571027#M20428</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by R2D2 on Wed May 29 07:06:13 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: Alainbs&lt;/STRONG&gt;&lt;BR /&gt;What can i do?&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Look in your assembler output :)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Add &lt;/SPAN&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;arm-none-eabi-objdump -S ${BuildArtifactFileName} &amp;gt;${BuildArtifactFileBaseName}.lss;&lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt;to your project 'Post-build steps'.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:22:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/C-and-Assembly-Timing-problem/m-p/571027#M20428</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:22:14Z</dc:date>
    </item>
  </channel>
</rss>

