<?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: Error when printing a float ( HardFault_Handler) in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/Error-when-printing-a-float-HardFault-Handler/m-p/595712#M31493</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by kemes on Sun Apr 07 00:06:05 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Here are data:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; text&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bss&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hex&amp;nbsp;&amp;nbsp;&amp;nbsp; filename&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; 63844&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2220&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1172&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 67236&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 106a4&amp;nbsp;&amp;nbsp;&amp;nbsp; RemoteTemp.axf&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;considering that LPC11U37/401&amp;nbsp; has 10K of ram, I should have about 7K of ram free.&amp;nbsp; How can I detect if I have stack overflow ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 22:57:24 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T22:57:24Z</dc:date>
    <item>
      <title>Error when printing a float ( HardFault_Handler)</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Error-when-printing-a-float-HardFault-Handler/m-p/595709#M31490</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by kemes on Sat Apr 06 07:42:48 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi to all&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I am using LPC11U37/401 with LPCXpresso v5.1.2 [Build 2065] [2013-02-20] with newlib.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;When I attempt to use sprintf with a float I obtain an HardFault Handler.&amp;nbsp; here is the code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; float&amp;nbsp;&amp;nbsp; Temp= 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;char actTemp[128];&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sprintf(actTemp,"%4.2f",Temp[0]);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;no change if I use newlib in nohost or semihost.&amp;nbsp; How can I solve ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(All ok if I attemp to print a decimal, that is sprintf(actTemp,"%d",value); )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:57:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Error-when-printing-a-float-HardFault-Handler/m-p/595709#M31490</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:57:22Z</dc:date>
    </item>
    <item>
      <title>Re: Error when printing a float ( HardFault_Handler)</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Error-when-printing-a-float-HardFault-Handler/m-p/595710#M31491</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by frame on Sat Apr 06 09:31:26 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;A stack overflow ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;printf() and other clib function eat up your RAM, avoid it if possible.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:57:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Error-when-printing-a-float-HardFault-Handler/m-p/595710#M31491</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:57:23Z</dc:date>
    </item>
    <item>
      <title>Re: Error when printing a float ( HardFault_Handler)</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Error-when-printing-a-float-HardFault-Handler/m-p/595711#M31492</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by CodeRedSupport on Sat Apr 06 10:23:09 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Stack overflow (or heap overflow) is a distinct possibility here with Newlib. The memory requirements for Redlib printf are generally much lower.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Check the details given by your build log and the map file - how much RAM do you actually have available after building your project?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://"&gt;http://support.code-red-tech.com/CodeRedWiki/FlashRamSize&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;CodeRedSupport&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:57:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Error-when-printing-a-float-HardFault-Handler/m-p/595711#M31492</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:57:23Z</dc:date>
    </item>
    <item>
      <title>Re: Error when printing a float ( HardFault_Handler)</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Error-when-printing-a-float-HardFault-Handler/m-p/595712#M31493</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by kemes on Sun Apr 07 00:06:05 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Here are data:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; text&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bss&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hex&amp;nbsp;&amp;nbsp;&amp;nbsp; filename&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; 63844&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2220&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1172&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 67236&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 106a4&amp;nbsp;&amp;nbsp;&amp;nbsp; RemoteTemp.axf&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;considering that LPC11U37/401&amp;nbsp; has 10K of ram, I should have about 7K of ram free.&amp;nbsp; How can I detect if I have stack overflow ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:57:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Error-when-printing-a-float-HardFault-Handler/m-p/595712#M31493</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:57:24Z</dc:date>
    </item>
    <item>
      <title>Re: Error when printing a float ( HardFault_Handler)</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Error-when-printing-a-float-HardFault-Handler/m-p/595713#M31494</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by frame on Sun Apr 07 08:30:49 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;How can I detect if I have stack overflow ?&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt;First, you can single-step into the offending printf() (probably need to step &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;through the assembler code...), and watch the stack.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;For better visibility, you can modify the startup code to fill the stack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;with a specific pattern. As a side info, Visual C used 0xDDDD.DDDD here ...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Or you can catch the error - probably the hardfault handler - and unwind/check&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;the stack and system registers there. There is a famous code from Joseph Yiu around&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(definitive guide to cortex M3 ...)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Or, you can just increase the reserved stacksize and see if the problem goes away.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Choosing a less-consumptive lib, avoiding floats and/or writing a small&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;special purpose function yourself could also help.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:57:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Error-when-printing-a-float-HardFault-Handler/m-p/595713#M31494</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:57:25Z</dc:date>
    </item>
    <item>
      <title>Re: Error when printing a float ( HardFault_Handler)</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Error-when-printing-a-float-HardFault-Handler/m-p/595714#M31495</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 Sun Apr 07 08:40:16 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;The heap starts from the end of your data (ram) area and the stack starts from the end of ram. Therefore, they grow towards each other. There is no stack checking on a Cortex-M3 so the stack and the heap can overwrite each other. So, if you allocate a lot of heap (e.g malloc) and use a lot of stack (large number of local variables or very deep nesting of function calls) you can end up in this situation. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Your stack is in the SP register, the current extent of your heap is in __end_of_heap (if you are using redlib).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;One other possibility is that you are overwriting memory yourself. For example, writing beyond the end of an array or a block that you have malloc()'d&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:57:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Error-when-printing-a-float-HardFault-Handler/m-p/595714#M31495</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:57:25Z</dc:date>
    </item>
  </channel>
</rss>

