<?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: inline assembly problem in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/inline-assembly-problem/m-p/369843#M19142</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Andreas Schmidt:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The next documents could be useful. Both are the same with some tiny differences between CW and KDS:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/docs/DOC-102477"&gt;Extended Inline Assembly with Kinetis Design Studio&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/docs/DOC-102460"&gt;Extended inline assembly with GCC in CodeWarrior&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Regards!,&lt;BR /&gt;Jorge Gonzalez&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 25 Nov 2014 18:54:58 GMT</pubDate>
    <dc:creator>Jorge_Gonzalez</dc:creator>
    <dc:date>2014-11-25T18:54:58Z</dc:date>
    <item>
      <title>inline assembly problem</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/inline-assembly-problem/m-p/369842#M19141</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to code a delay loop in gcc inline assembly for a K64:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt; asm("push {r4}");&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt; asm("mov r4, delay_val");&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt; asm(".Lab:");&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt; asm("add r4, r4, #-1");&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt; asm("bne .Lab");&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt; asm("pop {r4}");&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have the push/pop instructions in here, because I have no idea how to get otherwise a free register that I can use for the small loop.&lt;/P&gt;&lt;P&gt;But with the push/pop instructions the exe works unstable. Any idea for a better solution?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Nov 2014 15:55:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/inline-assembly-problem/m-p/369842#M19141</guid>
      <dc:creator>GudeADS</dc:creator>
      <dc:date>2014-11-25T15:55:57Z</dc:date>
    </item>
    <item>
      <title>Re: inline assembly problem</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/inline-assembly-problem/m-p/369843#M19142</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Andreas Schmidt:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The next documents could be useful. Both are the same with some tiny differences between CW and KDS:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/docs/DOC-102477"&gt;Extended Inline Assembly with Kinetis Design Studio&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/docs/DOC-102460"&gt;Extended inline assembly with GCC in CodeWarrior&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Regards!,&lt;BR /&gt;Jorge Gonzalez&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Nov 2014 18:54:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/inline-assembly-problem/m-p/369843#M19142</guid>
      <dc:creator>Jorge_Gonzalez</dc:creator>
      <dc:date>2014-11-25T18:54:58Z</dc:date>
    </item>
    <item>
      <title>Re: inline assembly problem</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/inline-assembly-problem/m-p/369844#M19143</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Andreas Schmidt,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;according to IAR EWARM IDE, it would be described as following, given the loop variable was declared.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm ("mov %0,%1" : "=r" (loop),&amp;nbsp;&amp;nbsp; "=r" (delay_val) : "0" (loop), "1" (delay_val));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm ("Lab:\n\t"&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; "adds %0,%0,#-1\n\t"&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; "bne Lab\n\t" : "=r" (loop) : "0" (loop) );&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As for the label, it seems not to be recognized unless it will be written in one statement by IAR. By ordinary GCC even the following statements was OK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm volatile ("mov %0,%1" : "=r" (loop), "=r" (delay_val) : "0" (loop), "1" (delay_val));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm volatile (".Lab:");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm volatile ("add %0,%0,#-1" : "=r" (loop) : "0" (loop));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm volatile ("bne .Lab");&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Yasuhiko Koumoto.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Nov 2014 22:08:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/inline-assembly-problem/m-p/369844#M19143</guid>
      <dc:creator>yasuhikokoumoto</dc:creator>
      <dc:date>2014-11-25T22:08:07Z</dc:date>
    </item>
    <item>
      <title>Re: inline assembly problem</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/inline-assembly-problem/m-p/369845#M19144</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I will test it, when I am back at the office on Friday. Many thanks, that will help a lot!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Nov 2014 14:48:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/inline-assembly-problem/m-p/369845#M19144</guid>
      <dc:creator>GudeADS</dc:creator>
      <dc:date>2014-11-26T14:48:22Z</dc:date>
    </item>
  </channel>
</rss>

