<?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 Floating point parameter passing error in CodeWarrior Development Tools</title>
    <link>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Floating-point-parameter-passing-error/m-p/243786#M144</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi to everyone,&lt;/DIV&gt;&lt;DIV&gt;I'm having a strange problem with floating point parameter passing, if I write a function that use floating point parameters they are not handled correctly&lt;/DIV&gt;&lt;DIV&gt;This function perform the subtraction of a 3 dimensional float vector&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;T_3DCoordFloat&lt;SPAN style="font-size: 10pt;"&gt; &lt;STRONG&gt;Vectors_Diff&lt;/STRONG&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;T_3DCoordFloat&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; A, &lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;T_3DCoordFloat&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; B)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 10pt;"&gt;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; X&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; -= B.&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: 10pt;"&gt;X&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #0000c0; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; -= B.&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: 10pt;"&gt;Y&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #0000c0; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; -= B.&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: 10pt;"&gt;Z&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="; color: #7f0055; font-size: 10pt;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; A;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 10pt;"&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;is compiled in:&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Vectors_Diff:&lt;/DIV&gt;&lt;DIV&gt;20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;00002d90:&amp;nbsp;&amp;nbsp; push {r0-r3}&lt;/DIV&gt;&lt;DIV&gt;00002d92:&amp;nbsp;&amp;nbsp; vpush {s0-s2}&lt;/DIV&gt;&lt;DIV&gt;00002d96:&amp;nbsp;&amp;nbsp; push {r4}&lt;/DIV&gt;&lt;DIV&gt;00002d98:&amp;nbsp;&amp;nbsp; cpy r4,r0&lt;/DIV&gt;&lt;DIV&gt;21&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.X -= B.X;&lt;/DIV&gt;&lt;DIV&gt;00002d9a:&amp;nbsp;&amp;nbsp; vldr.32 s1,[sp,#-8]&lt;/DIV&gt;&lt;DIV&gt;00002d9e:&amp;nbsp;&amp;nbsp; vldr.32 s0,[sp,#-8]&lt;/DIV&gt;&lt;DIV&gt;00002da2:&amp;nbsp;&amp;nbsp; vsub.f32 s0,s1,s0&lt;/DIV&gt;&lt;DIV&gt;00002da6:&amp;nbsp;&amp;nbsp; vstr.32 s0,[sp,#-8]&lt;/DIV&gt;&lt;DIV&gt;22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.Y -= B.Y;&lt;/DIV&gt;&lt;DIV&gt;00002daa:&amp;nbsp;&amp;nbsp; vldr.32 s1,[sp,#-4]&lt;/DIV&gt;&lt;DIV&gt;00002dae:&amp;nbsp;&amp;nbsp; vldr.32 s0,[sp,#-4]&lt;/DIV&gt;&lt;DIV&gt;00002db2:&amp;nbsp;&amp;nbsp; vsub.f32 s0,s1,s0&lt;/DIV&gt;&lt;DIV&gt;00002db6:&amp;nbsp;&amp;nbsp; vstr.32 s0,[sp,#-4]&lt;/DIV&gt;&lt;DIV&gt;23&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.Z -= B.Z;&lt;/DIV&gt;&lt;DIV&gt;00002dba:&amp;nbsp;&amp;nbsp; vldr.32 s1,[sp]&lt;/DIV&gt;&lt;DIV&gt;00002dbe:&amp;nbsp;&amp;nbsp; vldr.32 s0,[sp]&lt;/DIV&gt;&lt;DIV&gt;00002dc2:&amp;nbsp;&amp;nbsp; vsub.f32 s0,s1,s0&lt;/DIV&gt;&lt;DIV&gt;00002dc6:&amp;nbsp;&amp;nbsp; vstr.32 s0,[sp]&lt;/DIV&gt;&lt;DIV&gt;24&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return A;&lt;/DIV&gt;&lt;DIV&gt;00002dca:&amp;nbsp;&amp;nbsp; movw r2,#0xfff8&lt;/DIV&gt;&lt;DIV&gt;00002dce:&amp;nbsp;&amp;nbsp; movt r2,#0xffff&lt;/DIV&gt;&lt;DIV&gt;00002dd2:&amp;nbsp;&amp;nbsp; add r2,sp&lt;/DIV&gt;&lt;DIV&gt;00002dd4:&amp;nbsp;&amp;nbsp; ldm r2!,{r0-r1}&lt;/DIV&gt;&lt;DIV&gt;00002dd6:&amp;nbsp;&amp;nbsp; stm r4!,{r0-r1}&lt;/DIV&gt;&lt;DIV&gt;00002dd8:&amp;nbsp;&amp;nbsp; ldr r0,[r2,#0]&lt;/DIV&gt;&lt;DIV&gt;00002dda:&amp;nbsp;&amp;nbsp; str r0,[r4,#0]&lt;/DIV&gt;&lt;DIV&gt;25&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;but in debug window both A and B parameters have the same address and the instruction that load parameters from the stack load twice the same location&lt;/DIV&gt;&lt;DIV&gt;vldr.32 s1,[sp,#-8]&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 10pt;"&gt;vldr.32 s0,[sp,#-8]&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;and then compute the difference that is Always zero.&lt;/DIV&gt;&lt;DIV&gt;To get it working I've to use a pointer to struct A and B and not passing them directly.&lt;/DIV&gt;&lt;DIV&gt;If I use only one float parameter it seems it works&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;I'm using&lt;/DIV&gt;&lt;DIV&gt;codewarrior 10.4&lt;/DIV&gt;&lt;DIV&gt;K60 CPU&lt;/DIV&gt;&lt;DIV&gt;K60F120M CPU board&lt;/DIV&gt;&lt;DIV&gt;MQX 4.0&lt;/DIV&gt;&lt;DIV&gt;Processor Expert&lt;/DIV&gt;&lt;DIV&gt;Floating point Hardware vfpv4&lt;/DIV&gt;&lt;DIV&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Giovanni&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 20 Sep 2013 21:58:16 GMT</pubDate>
    <dc:creator>mad4chip</dc:creator>
    <dc:date>2013-09-20T21:58:16Z</dc:date>
    <item>
      <title>Floating point parameter passing error</title>
      <link>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Floating-point-parameter-passing-error/m-p/243786#M144</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi to everyone,&lt;/DIV&gt;&lt;DIV&gt;I'm having a strange problem with floating point parameter passing, if I write a function that use floating point parameters they are not handled correctly&lt;/DIV&gt;&lt;DIV&gt;This function perform the subtraction of a 3 dimensional float vector&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;T_3DCoordFloat&lt;SPAN style="font-size: 10pt;"&gt; &lt;STRONG&gt;Vectors_Diff&lt;/STRONG&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;T_3DCoordFloat&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; A, &lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt;"&gt;T_3DCoordFloat&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; B)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 10pt;"&gt;{&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; X&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; -= B.&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: 10pt;"&gt;X&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #0000c0; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; -= B.&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: 10pt;"&gt;Y&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="color: #0000c0; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; -= B.&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0; font-size: 10pt;"&gt;Z&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="; color: #7f0055; font-size: 10pt;"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; A;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 10pt;"&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;is compiled in:&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Vectors_Diff:&lt;/DIV&gt;&lt;DIV&gt;20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;00002d90:&amp;nbsp;&amp;nbsp; push {r0-r3}&lt;/DIV&gt;&lt;DIV&gt;00002d92:&amp;nbsp;&amp;nbsp; vpush {s0-s2}&lt;/DIV&gt;&lt;DIV&gt;00002d96:&amp;nbsp;&amp;nbsp; push {r4}&lt;/DIV&gt;&lt;DIV&gt;00002d98:&amp;nbsp;&amp;nbsp; cpy r4,r0&lt;/DIV&gt;&lt;DIV&gt;21&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.X -= B.X;&lt;/DIV&gt;&lt;DIV&gt;00002d9a:&amp;nbsp;&amp;nbsp; vldr.32 s1,[sp,#-8]&lt;/DIV&gt;&lt;DIV&gt;00002d9e:&amp;nbsp;&amp;nbsp; vldr.32 s0,[sp,#-8]&lt;/DIV&gt;&lt;DIV&gt;00002da2:&amp;nbsp;&amp;nbsp; vsub.f32 s0,s1,s0&lt;/DIV&gt;&lt;DIV&gt;00002da6:&amp;nbsp;&amp;nbsp; vstr.32 s0,[sp,#-8]&lt;/DIV&gt;&lt;DIV&gt;22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.Y -= B.Y;&lt;/DIV&gt;&lt;DIV&gt;00002daa:&amp;nbsp;&amp;nbsp; vldr.32 s1,[sp,#-4]&lt;/DIV&gt;&lt;DIV&gt;00002dae:&amp;nbsp;&amp;nbsp; vldr.32 s0,[sp,#-4]&lt;/DIV&gt;&lt;DIV&gt;00002db2:&amp;nbsp;&amp;nbsp; vsub.f32 s0,s1,s0&lt;/DIV&gt;&lt;DIV&gt;00002db6:&amp;nbsp;&amp;nbsp; vstr.32 s0,[sp,#-4]&lt;/DIV&gt;&lt;DIV&gt;23&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A.Z -= B.Z;&lt;/DIV&gt;&lt;DIV&gt;00002dba:&amp;nbsp;&amp;nbsp; vldr.32 s1,[sp]&lt;/DIV&gt;&lt;DIV&gt;00002dbe:&amp;nbsp;&amp;nbsp; vldr.32 s0,[sp]&lt;/DIV&gt;&lt;DIV&gt;00002dc2:&amp;nbsp;&amp;nbsp; vsub.f32 s0,s1,s0&lt;/DIV&gt;&lt;DIV&gt;00002dc6:&amp;nbsp;&amp;nbsp; vstr.32 s0,[sp]&lt;/DIV&gt;&lt;DIV&gt;24&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return A;&lt;/DIV&gt;&lt;DIV&gt;00002dca:&amp;nbsp;&amp;nbsp; movw r2,#0xfff8&lt;/DIV&gt;&lt;DIV&gt;00002dce:&amp;nbsp;&amp;nbsp; movt r2,#0xffff&lt;/DIV&gt;&lt;DIV&gt;00002dd2:&amp;nbsp;&amp;nbsp; add r2,sp&lt;/DIV&gt;&lt;DIV&gt;00002dd4:&amp;nbsp;&amp;nbsp; ldm r2!,{r0-r1}&lt;/DIV&gt;&lt;DIV&gt;00002dd6:&amp;nbsp;&amp;nbsp; stm r4!,{r0-r1}&lt;/DIV&gt;&lt;DIV&gt;00002dd8:&amp;nbsp;&amp;nbsp; ldr r0,[r2,#0]&lt;/DIV&gt;&lt;DIV&gt;00002dda:&amp;nbsp;&amp;nbsp; str r0,[r4,#0]&lt;/DIV&gt;&lt;DIV&gt;25&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;but in debug window both A and B parameters have the same address and the instruction that load parameters from the stack load twice the same location&lt;/DIV&gt;&lt;DIV&gt;vldr.32 s1,[sp,#-8]&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-size: 10pt;"&gt;vldr.32 s0,[sp,#-8]&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;and then compute the difference that is Always zero.&lt;/DIV&gt;&lt;DIV&gt;To get it working I've to use a pointer to struct A and B and not passing them directly.&lt;/DIV&gt;&lt;DIV&gt;If I use only one float parameter it seems it works&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;I'm using&lt;/DIV&gt;&lt;DIV&gt;codewarrior 10.4&lt;/DIV&gt;&lt;DIV&gt;K60 CPU&lt;/DIV&gt;&lt;DIV&gt;K60F120M CPU board&lt;/DIV&gt;&lt;DIV&gt;MQX 4.0&lt;/DIV&gt;&lt;DIV&gt;Processor Expert&lt;/DIV&gt;&lt;DIV&gt;Floating point Hardware vfpv4&lt;/DIV&gt;&lt;DIV&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Giovanni&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Sep 2013 21:58:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Floating-point-parameter-passing-error/m-p/243786#M144</guid>
      <dc:creator>mad4chip</dc:creator>
      <dc:date>2013-09-20T21:58:16Z</dc:date>
    </item>
    <item>
      <title>Re: Floating point parameter passing error</title>
      <link>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Floating-point-parameter-passing-error/m-p/243787#M145</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Update:&lt;/P&gt;&lt;P&gt;I tried to change the struct from float to integer and the code works correctly, variables are at different address in the stack, so the error only appears when using floats.&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Giovanni&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 20 Sep 2013 22:53:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Floating-point-parameter-passing-error/m-p/243787#M145</guid>
      <dc:creator>mad4chip</dc:creator>
      <dc:date>2013-09-20T22:53:36Z</dc:date>
    </item>
    <item>
      <title>Re: Floating point parameter passing error</title>
      <link>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Floating-point-parameter-passing-error/m-p/243788#M146</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Giovanni,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Very sorry for the delay.&lt;/P&gt;&lt;P&gt;Do you have a project example showing the behavior you can share with us ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the MCU v10.5 has been released last month.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;******************************&lt;/P&gt;&lt;P&gt;CodeWarrior for Microcontrollers v10.5 is the last version.&lt;/P&gt;&lt;P&gt;It integrates the development tools for the :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ColdFire®, ColdFire+, DSC, Kinetis, Qorivva, PX, RS08, S08 and S12Z architectures &lt;/P&gt;&lt;P&gt;into a single product based on the Eclipse open development platform.&lt;/P&gt;&lt;P&gt;This version is running on Host platforms &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft® Windows XP 32/64-bit (Business) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Windows Vista 32/64-bit (Business and Home Premium) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Windows 7 32/64-bit (Professional and Home Premium) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Windows 8 32/64-bit (Professional)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can download an evaluation on the web site:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=CW-MCU10"&gt;http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=CW-MCU10&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I recommend you to sign the news letter for the product.&lt;/P&gt;&lt;P&gt;Via the web site:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=CW-MCU10"&gt;http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=CW-MCU10&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Click on Subscribe &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Pascal&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 24 Oct 2013 13:39:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Floating-point-parameter-passing-error/m-p/243788#M146</guid>
      <dc:creator>trytohelp</dc:creator>
      <dc:date>2013-10-24T13:39:54Z</dc:date>
    </item>
    <item>
      <title>Re: Floating point parameter passing error</title>
      <link>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Floating-point-parameter-passing-error/m-p/243789#M147</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Pascal,&lt;/P&gt;&lt;P&gt;thanks for the answer, I updated CodeWarrior and build a project to show up the bug, I used the Hello word demo project with the main.c that is attached here&lt;/P&gt;&lt;P&gt;This code produce an output like the following, as you can see parameters before calling the function are not zero but inside the function are zero.&lt;/P&gt;&lt;P&gt;If I use a float as a parameters the bug seems to not happen, now to make it work I use a pointer to the struct.&lt;/P&gt;&lt;P&gt;Many thanks for your help&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Giovanni&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A.X:16838.000000&lt;/P&gt;&lt;P&gt;A.Y:5758.000000&lt;/P&gt;&lt;P&gt;A.Z:10113.000000&lt;/P&gt;&lt;P&gt;B.X:17515.000000&lt;/P&gt;&lt;P&gt;B.Y:31051.000000&lt;/P&gt;&lt;P&gt;B.Z:5627.000000&lt;/P&gt;&lt;P&gt;InnerA.X:0.000000&lt;/P&gt;&lt;P&gt;InnerA.Y:0.000000&lt;/P&gt;&lt;P&gt;InnerA.Z:0.000000&lt;/P&gt;&lt;P&gt;InnerB.X:0.000000&lt;/P&gt;&lt;P&gt;InnerB.Y:0.000000&lt;/P&gt;&lt;P&gt;InnerB.Z:0.000000 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*&lt;BR /&gt; * File:&amp;nbsp; hello_world.c&lt;BR /&gt; * Purpose:&amp;nbsp; Main process&lt;BR /&gt; *&lt;BR /&gt; */&lt;/P&gt;&lt;P&gt;#include "common.h"&lt;/P&gt;&lt;P&gt;typedef struct&lt;BR /&gt;{&lt;BR /&gt; float X;&lt;BR /&gt; float Y;&lt;BR /&gt; float Z;&lt;BR /&gt;} T_3DCoordFloat;&lt;/P&gt;&lt;P&gt;T_3DCoordFloat Vectors_Sum(T_3DCoordFloat A, T_3DCoordFloat B)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;/*&lt;BR /&gt; printf("InnerA.X:%f\n", A.X);&lt;BR /&gt; printf("InnerA.Y:%f\n", A.Y);&lt;BR /&gt; printf("InnerA.Z:%f\n", A.Z);&lt;/P&gt;&lt;P&gt; printf("InnerB.X:%f\n", B.X);&lt;BR /&gt; printf("InnerB.Y:%f\n", B.Y);&lt;BR /&gt; printf("InnerB.Z:%f\n", B.Z);&lt;/P&gt;&lt;P&gt;*/&lt;/P&gt;&lt;P&gt; A.X += B.X; &lt;BR /&gt; A.Y += B.Y;&lt;BR /&gt; A.Z += B.Z;&lt;BR /&gt; return A;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;/********************************************************************/&lt;BR /&gt;void main (void)&lt;BR /&gt;{&lt;BR /&gt; char ch;&lt;BR /&gt; T_3DCoordFloat A;&lt;BR /&gt; T_3DCoordFloat B;&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; printf("\nHello World!!\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; asm("LDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R0, =0xE000ED88");&amp;nbsp;&amp;nbsp; //; CPACR is located at address 0xE000ED88&lt;BR /&gt;&amp;nbsp;&amp;nbsp; asm("LDR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R1, [R0]");&amp;nbsp;&amp;nbsp;&amp;nbsp; //; Read CPACR&lt;BR /&gt;&amp;nbsp;&amp;nbsp; asm("ORR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R1, R1, #(0xF &amp;lt;&amp;lt; 20)"); //; Set bits 20-23 to enable CP10 and CP11 coprocessors&lt;BR /&gt;&amp;nbsp;&amp;nbsp; asm("STR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; R1, [R0]");&amp;nbsp;&amp;nbsp;&amp;nbsp; //Write back the modified value to the CPACR &lt;/P&gt;&lt;P&gt; while(1)&lt;BR /&gt; {&lt;BR /&gt;&amp;nbsp; A.X = rand();&lt;BR /&gt;&amp;nbsp; A.Y = rand();&lt;BR /&gt;&amp;nbsp; A.Z = rand();&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; B.X = rand();&lt;BR /&gt;&amp;nbsp; B.Y = rand();&lt;BR /&gt;&amp;nbsp; B.Z = rand();&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; printf("A.X:%f\n", A.X);&lt;BR /&gt;&amp;nbsp; printf("A.Y:%f\n", A.Y);&lt;BR /&gt;&amp;nbsp; printf("A.Z:%f\n", A.Z);&lt;/P&gt;&lt;P&gt;&amp;nbsp; printf("B.X:%f\n", B.X);&lt;BR /&gt;&amp;nbsp; printf("B.Y:%f\n", B.Y);&lt;BR /&gt;&amp;nbsp; printf("B.Z:%f\n", B.Z);&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp; A = Vectors_Sum(A, B);&lt;BR /&gt;&amp;nbsp; printf("Result.X:%f\n", A.X);&lt;BR /&gt;&amp;nbsp; printf("Result.Y:%f\n", A.Y);&lt;BR /&gt;&amp;nbsp; printf("Result.Z:%f\n", A.Z);&lt;BR /&gt; } &lt;BR /&gt;}&lt;BR /&gt;/********************************************************************/&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 01 Dec 2013 23:56:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Floating-point-parameter-passing-error/m-p/243789#M147</guid>
      <dc:creator>mad4chip</dc:creator>
      <dc:date>2013-12-01T23:56:54Z</dc:date>
    </item>
    <item>
      <title>Re: Floating point parameter passing error</title>
      <link>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Floating-point-parameter-passing-error/m-p/243790#M148</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Giovanni,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry for the delay.&lt;/P&gt;&lt;P&gt;If you think there is a bug in the build tool chain, I recommend you to report the problem under Service Request system.&lt;/P&gt;&lt;P&gt;We need to know exactly the tool version used, the interface, board, etc ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Pascal&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Mar 2014 09:42:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-Development-Tools/Floating-point-parameter-passing-error/m-p/243790#M148</guid>
      <dc:creator>trytohelp</dc:creator>
      <dc:date>2014-03-11T09:42:00Z</dc:date>
    </item>
  </channel>
</rss>

