<?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: Hardfault, after adding USB stack in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Hardfault-after-adding-USB-stack/m-p/523672#M6308</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by jeshwanth on Mon Jan 26 23:51:19 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Not Working code (After adding USB stack):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[color=#f30]xxx1 long unsigned int9502977&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx2 long unsigned int2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/color]xxx3 long unsigned int0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx4 long unsigned int100&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx5 long unsigned int0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx6 long unsigned int0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx7 long unsigned int268442460&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx8 long unsigned int2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx9 long unsigned int11&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Working code (Before USB stack):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx1 long unsigned int0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx2 long unsigned int100&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx2 long unsigned int0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx4 long unsigned int0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx5 long unsigned int268442380&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx6 long unsigned int2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx7 long unsigned int11&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx8 long unsigned int0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx9 long unsigned int0&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Value got from the symbol XYZ from ELF file:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;00 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;64 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;00 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;00 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;5C 43 00 10 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;02 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;0B 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;00 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;00 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;01 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;0C 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;00 00 00 00&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;From above information:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have got the data available in the struct with working code and not working code (mentioned above). If you see, in Not working code xx1 is starting from xx3. So I can say 8 bytes shifting. So my program not getting the right value to compute and it goes to Hard fault. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So I assumed that, there is a problem with my ELF only. Like the data is same in the ELF only and used the tools like objdump etc and got the value present in my ELF (Mentioned above). But my surprise the value is correct in ELF file also. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now I can guess the problem would be in Linker, But don't know where to look for this. Can you please suggest something ? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is my .data symbols.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
10000000 l&amp;nbsp;&amp;nbsp;&amp;nbsp; d&amp;nbsp; .data00000000 .data
2007c000 l&amp;nbsp;&amp;nbsp;&amp;nbsp; d&amp;nbsp; .data_RAM200000000 .data_RAM2
10000424 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000048 xx1
10000478 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000001 A
1000047c l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000004 B
10000480 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000004 C
10000484 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000004 D
100004dc l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000004 E
100004e0 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000010 F
100004f0 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data0000001c G
1000050c l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data0000013b H
1000064c l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data0000001c I
10000668 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data000000dc J
10000744 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000004 K
10000748 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000004 L
100000c0 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data0000035c M
10000647 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000003 N
100004c8 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000010 O
10000498 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000018 P
1000041e g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000002 Q
1000046c g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data0000000c R
10000488 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000004 S
100004b0 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000018 T
10000420 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000001 U
100004d8 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000004 V
10000494 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000002 W
1000041d g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000001 X
1000041c g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000001 Y
2007c000 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data_RAM200000008 Z
10000000 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .data00000000 _data
1000074c g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .data00000000 _edata
10000000 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data000000c0 AA
1000048c g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000008 AB
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In above .data symbols, xx1 value at 10000424 is shifted to 10000432.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Note: I have changed the symbol name here xxx1, xxx2, and A, B, C and all.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in Advance.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 18:04:04 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T18:04:04Z</dc:date>
    <item>
      <title>Hardfault, after adding USB stack</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Hardfault-after-adding-USB-stack/m-p/523667#M6303</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by jeshwanth on Thu Jan 22 22:47:13 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello List,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am working on LPC1768 board. I have integrated USB stack to our software stack, after integrating it started failing (hardfault) initial stages like initialization itself.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There are many cases where I am getting hardfaults, I would like to explain one case here.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There is a Global variable called XYZ (It's a struct). As this variable comes in .data section, while copying the .data from flash it's copying wrong value. one of the value must be zero-0 but it's copying some junk value 9502977. So my program getting failed. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Ok, now lets consider I am moving the XYZ to flash by making it const. Then the program fails in next variable which is getting used after some 30 instruction from the previous fail point.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This behaviour&amp;nbsp; I found after adding my USB stack into it, before that it works normally.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is my size command output.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; text&amp;nbsp;&amp;nbsp; data&amp;nbsp;&amp;nbsp;&amp;nbsp; bss&amp;nbsp;&amp;nbsp;&amp;nbsp; dec&amp;nbsp;&amp;nbsp;&amp;nbsp; hexfilename&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; 71936&amp;nbsp;&amp;nbsp; 1800&amp;nbsp; 26204&amp;nbsp; 99940&amp;nbsp; 18664Output/App/project.axf&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And I am using FreeRTOS as the RTOS and this is failing before creating FreeRTOS tasks I mean initialization itself.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As many people told, there might be problem with Linker script. So I am posting the Ld script here.&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;/*
 * GENERATED FILE - DO NOT EDIT
 * (C) Code Red Technologies Ltd, 2008-2014
 * Generated linker script file for LPC1768
 * Created from generic_c.ld (vLPCXpresso v5.2 (4 [Build 2122] [2013-04-29] ))
 * By LPCXpresso v5.2.4 [Build 2122] [2013-04-29]&amp;nbsp; on Thu Jun 19 10:46:14 IST 2014
 */


 GROUP(
 libcr_nohost.a
 libcr_c.a
 libcr_eabihelpers.a
 )

MEMORY
{
&amp;nbsp; /* Define each memory region */
&amp;nbsp; MFlash512 (rx) : ORIGIN = 0x0000, LENGTH = 0x80000 
&amp;nbsp; RamLoc32 (rwx) : ORIGIN = 0x10000000, LENGTH = 0x8000 /* 32k */
&amp;nbsp; RamAHB32 (rwx) : ORIGIN = 0x2007c000, LENGTH = 0x8000 /* 32k */

}
&amp;nbsp; /* Define a symbol for the top of each memory region */
&amp;nbsp; __top_RamLoc32 = 0x10000000 + 0x8000;
&amp;nbsp; __top_RamAHB32 = 0x2007c000 + 0x8000;


ENTRY(ResetISR)

SECTIONS
{

&amp;nbsp;&amp;nbsp;&amp;nbsp; .text_Flash2 : ALIGN(4)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILL(0xff)
&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.text_Flash2*)
&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.text_MFlash512_246*)
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; MFlash512_246
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MAIN TEXT SECTION */&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; .text : ALIGN(4)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILL(0xff)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __vectors_start__ = ABSOLUTE(.) ;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(.isr_vector))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Global Section Table */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4) ;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __section_table_start = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __data_section_table = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG(LOADADDR(.data));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG(&amp;nbsp;&amp;nbsp;&amp;nbsp; ADDR(.data)) ;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG(&amp;nbsp; SIZEOF(.data));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG(LOADADDR(.data_RAM2));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG(&amp;nbsp;&amp;nbsp;&amp;nbsp; ADDR(.data_RAM2)) ;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG(&amp;nbsp; SIZEOF(.data_RAM2));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __data_section_table_end = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __bss_section_table = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG(&amp;nbsp;&amp;nbsp;&amp;nbsp; ADDR(.bss));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG(&amp;nbsp; SIZEOF(.bss));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG(&amp;nbsp;&amp;nbsp;&amp;nbsp; ADDR(.bss_RAM2));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LONG(&amp;nbsp; SIZEOF(.bss_RAM2));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __bss_section_table_end = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __section_table_end = . ;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* End of Global Section Table */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.after_vectors*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt;MFlash512
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; .text : ALIGN(4)&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.text*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.rodata .rodata.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; MFlash512

&amp;nbsp;&amp;nbsp;&amp;nbsp; /*
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * for exception handling/unwind - some Newlib functions (in common
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * with C++ and STDC++) use this. 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp; .ARM.extab : ALIGN(4)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.ARM.extab* .gnu.linkonce.armextab.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; MFlash512
&amp;nbsp;&amp;nbsp;&amp;nbsp; __exidx_start = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; .ARM.exidx : ALIGN(4)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.ARM.exidx* .gnu.linkonce.armexidx.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; MFlash512
&amp;nbsp;&amp;nbsp;&amp;nbsp; __exidx_end = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; _etext = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DATA section for RamAHB32 */
&amp;nbsp;&amp;nbsp;&amp;nbsp; .data_RAM2 : ALIGN(4)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FILL(0xff)
&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.data.$RAM2*)
&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.data.$RamAHB32*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4) ;
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; RamAHB32 AT&amp;gt;MFlash512
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MAIN DATA SECTION */
&amp;nbsp;&amp;nbsp;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp; .uninit_RESERVED : ALIGN(4)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KEEP(*(.bss.$RESERVED*))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4) ;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _end_uninit_RESERVED = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; RamLoc32


/* Main DATA section (RamLoc32) */
.data : ALIGN(4)
{
&amp;nbsp;&amp;nbsp; FILL(0xff)
&amp;nbsp;&amp;nbsp; _data = . ;
&amp;nbsp;&amp;nbsp; *(vtable)
&amp;nbsp;&amp;nbsp; *(.data*)
&amp;nbsp;&amp;nbsp; . = ALIGN(4) ;
&amp;nbsp;&amp;nbsp; _edata = . ;
} &amp;gt; RamLoc32 AT&amp;gt;MFlash512

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* BSS section for RamAHB32 */
&amp;nbsp;&amp;nbsp;&amp;nbsp; .bss_RAM2 : ALIGN(4)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.bss.$RAM2*)
&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.bss.$RamAHB32*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4) ;
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; RamAHB32

&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MAIN BSS SECTION */
&amp;nbsp;&amp;nbsp;&amp;nbsp; .bss : ALIGN(4)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&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; *(.bss*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(COMMON)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4) ;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _ebss = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(end = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; RamLoc32
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; /* NOINIT section for RamAHB32 */
&amp;nbsp;&amp;nbsp;&amp;nbsp; .noinit_RAM2 (NOLOAD) : ALIGN(4)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.noinit.$RAM2*)
&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.noinit.$RamAHB32*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4) ;
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; RamAHB32 
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DEFAULT NOINIT SECTION */
&amp;nbsp;&amp;nbsp;&amp;nbsp; .noinit (NOLOAD): ALIGN(4)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _noinit = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.noinit*) 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4) ;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _end_noinit = .;
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt; RamLoc32
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(_pvHeapStart = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(_vStackTop = __top_RamLoc32 - 0);
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But I found everything fine in ld script. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can anybody help me in fixing this ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in Advance &lt;SPAN class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;&lt;LI-EMOJI id="lia_slightly-smiling-face" title=":slightly_smiling_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:04:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Hardfault-after-adding-USB-stack/m-p/523667#M6303</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:04:01Z</dc:date>
    </item>
    <item>
      <title>Re: Hardfault, after adding USB stack</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Hardfault-after-adding-USB-stack/m-p/523668#M6304</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by lpcxpresso-support on Thu Jan 22 23:53:51 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Which version of LPCXpresso are you using? Why are you using your own linker script instead of the one automatically generated by LPCXpresso? What does your startup code do?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:04:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Hardfault-after-adding-USB-stack/m-p/523668#M6304</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:04:02Z</dc:date>
    </item>
    <item>
      <title>Re: Hardfault, after adding USB stack</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Hardfault-after-adding-USB-stack/m-p/523669#M6305</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by MikeSimmonds on Fri Jan 23 03:50:03 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: lpcxpresso-support&lt;/STRONG&gt;&lt;BR /&gt;Which version of LPCXpresso are you using? Why are you using your own linker script instead of the one automatically generated by LPCXpresso? What does your startup code do?&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you read more carefully, the script he posted &lt;/SPAN&gt;&lt;I&gt;is&lt;/I&gt;&lt;SPAN&gt; the auto generated one &lt;/SPAN&gt;&lt;I&gt;and&lt;/I&gt;&lt;SPAN&gt; the comment at the top&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;shows that it was created by LPCXpresso 5.2.4.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Although the date does look odd.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Agree we need to see the startup (copy flash to ram etc.) code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;6/10 Could do better&amp;nbsp; ;-) &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Mike&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:04:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Hardfault-after-adding-USB-stack/m-p/523669#M6305</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:04:02Z</dc:date>
    </item>
    <item>
      <title>Re: Hardfault, after adding USB stack</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Hardfault-after-adding-USB-stack/m-p/523670#M6306</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by lpcxpresso-support on Fri Jan 23 04:42:00 MST 2015&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;If you read more carefully, the script he posted is the auto generated one and the comment at the top&lt;BR /&gt;shows that it was created by LPCXpresso 5.2.4.&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Why are you making that assumption? It could quite easily have been copy and pasted - why is why I asked the question. And give that it includes the GROUP command where the auto generated one uses an INCLUDE here, strongly implies that a) it has been edited and b) it is not generated by LPCXpresso...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:04:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Hardfault-after-adding-USB-stack/m-p/523670#M6306</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:04:03Z</dc:date>
    </item>
    <item>
      <title>Re: Hardfault, after adding USB stack</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Hardfault-after-adding-USB-stack/m-p/523671#M6307</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by jeshwanth on Fri Jan 23 06:33:08 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi, &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am using Red Suite 5.2.6 version, and that Linker we have created when we started with LPC Xpresso. We have created the Linker script for memory mapping of Bootloader and Application, because we use same linker file for App and Bootloader. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My Startup Code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; ResetISR(void) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned long *pulSrc, *pulDest;

&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Copy the data segment initializers from flash to SRAM.
&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; pulsrc=&amp;amp;_etext;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for(pulDest = &amp;amp;_data; pulDest &amp;lt; &amp;amp;_edata; )
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *pulDest++ = *pulSrc++;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Zero fill the bss segment.&amp;nbsp; This is done with inline assembly since this
&amp;nbsp;&amp;nbsp;&amp;nbsp; // will clear the value of pulDest if it is not kept in a register.
&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm("&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r0, =_bss\n"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r1, =_ebss\n"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r2, #0\n"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp; .thumb_func\n"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "zero_loop:\n"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r0, r1\n"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; it&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lt\n"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; strlt&amp;nbsp;&amp;nbsp; r2, [r0], #4\n"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; blt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zero_loop");

#ifdef __USE_CMSIS
SystemInit();
#endif

#if defined (__cplusplus)
//
// Call C++ library initialisation
//
__libc_init_array();
#endif

#if defined (__REDLIB__)
// Call the Redlib library, which in turn calls main()
__main() ;
#else
main();
#endif

//
// main() shouldn't return, but if it does, we'll just enter an infinite loop 
//
while (1) {
;
}
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have got some more information while debugging today. Please find in below post.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:04:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Hardfault-after-adding-USB-stack/m-p/523671#M6307</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:04:03Z</dc:date>
    </item>
    <item>
      <title>Re: Hardfault, after adding USB stack</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Hardfault-after-adding-USB-stack/m-p/523672#M6308</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by jeshwanth on Mon Jan 26 23:51:19 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Not Working code (After adding USB stack):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[color=#f30]xxx1 long unsigned int9502977&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx2 long unsigned int2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/color]xxx3 long unsigned int0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx4 long unsigned int100&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx5 long unsigned int0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx6 long unsigned int0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx7 long unsigned int268442460&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx8 long unsigned int2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx9 long unsigned int11&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Working code (Before USB stack):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx1 long unsigned int0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx2 long unsigned int100&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx2 long unsigned int0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx4 long unsigned int0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx5 long unsigned int268442380&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx6 long unsigned int2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx7 long unsigned int11&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx8 long unsigned int0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;xxx9 long unsigned int0&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Value got from the symbol XYZ from ELF file:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;00 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;64 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;00 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;00 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;5C 43 00 10 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;02 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;0B 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;00 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;00 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;01 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;0C 00 00 00 &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;00 00 00 00&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;From above information:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have got the data available in the struct with working code and not working code (mentioned above). If you see, in Not working code xx1 is starting from xx3. So I can say 8 bytes shifting. So my program not getting the right value to compute and it goes to Hard fault. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So I assumed that, there is a problem with my ELF only. Like the data is same in the ELF only and used the tools like objdump etc and got the value present in my ELF (Mentioned above). But my surprise the value is correct in ELF file also. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now I can guess the problem would be in Linker, But don't know where to look for this. Can you please suggest something ? &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is my .data symbols.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
10000000 l&amp;nbsp;&amp;nbsp;&amp;nbsp; d&amp;nbsp; .data00000000 .data
2007c000 l&amp;nbsp;&amp;nbsp;&amp;nbsp; d&amp;nbsp; .data_RAM200000000 .data_RAM2
10000424 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000048 xx1
10000478 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000001 A
1000047c l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000004 B
10000480 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000004 C
10000484 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000004 D
100004dc l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000004 E
100004e0 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000010 F
100004f0 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data0000001c G
1000050c l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data0000013b H
1000064c l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data0000001c I
10000668 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data000000dc J
10000744 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000004 K
10000748 l&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000004 L
100000c0 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data0000035c M
10000647 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000003 N
100004c8 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000010 O
10000498 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000018 P
1000041e g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000002 Q
1000046c g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data0000000c R
10000488 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000004 S
100004b0 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000018 T
10000420 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000001 U
100004d8 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000004 V
10000494 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000002 W
1000041d g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000001 X
1000041c g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000001 Y
2007c000 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data_RAM200000008 Z
10000000 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .data00000000 _data
1000074c g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .data00000000 _edata
10000000 g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data000000c0 AA
1000048c g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O .data00000008 AB
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In above .data symbols, xx1 value at 10000424 is shifted to 10000432.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Note: I have changed the symbol name here xxx1, xxx2, and A, B, C and all.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in Advance.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:04:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Hardfault-after-adding-USB-stack/m-p/523672#M6308</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:04:04Z</dc:date>
    </item>
    <item>
      <title>Re: Hardfault, after adding USB stack</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Hardfault-after-adding-USB-stack/m-p/523673#M6309</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by jeshwanth on Mon Feb 02 22:54:08 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I found the solution. The problem was in LD script. Orderly arranging the memory section in LD script fix the issue. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:04:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Hardfault-after-adding-USB-stack/m-p/523673#M6309</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:04:05Z</dc:date>
    </item>
  </channel>
</rss>

